Produced by Araxis Merge on 3/13/2018 7:47:01 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | Wed Mar 14 00:47:01 2018 UTC | ||
| 2 | TASCore_v1.0_Build_2_Jan_2018.zip\Build_Artifacts\mccf-tas_TAS.01.00.121_20171213_164037.tar\assets\uswds\js | uswds.js | Wed Dec 13 23:09:45 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 0 | 0 |
| Changed | 0 | 0 |
| Inserted | 1 | 1863 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | (function e(t,n,r){f unction s( o,u){if(!n [o]){if(!t [o]){var a =typeof re quire=="fu nction"&&r equire;if( !u&&a)retu rn a(o,!0) ;if(i)retu rn i(o,!0) ;var f=new Error("Ca nnot find module '"+ o+"'");thr ow f.code= "MODULE_NO T_FOUND",f }var l=n[o ]={exports :{}};t[o][ 0].call(l. exports,fu nction(e){ var n=t[o] [1][e];ret urn s(n?n: e)},l,l.ex ports,e,t, n,r)}retur n n[o].exp orts}var i =typeof re quire=="fu nction"&&r equire;for (var o=0;o <r.length; o++)s(r[o] );return s })({1:[fun ction(requ ire,module ,exports){ | |||||
| 2 | 'use stric t'; | |||||
| 3 | ||||||
| 4 | /** | |||||
| 5 | * Array#f ilter. | |||||
| 6 | * | |||||
| 7 | * @param {Array} ar r | |||||
| 8 | * @param {Function} fn | |||||
| 9 | * @param {Object=} self | |||||
| 10 | * @return {Array} | |||||
| 11 | * @throw TypeError | |||||
| 12 | */ | |||||
| 13 | ||||||
| 14 | module.exp orts = fun ction (arr , fn, self ) { | |||||
| 15 | if (arr. filter) re turn arr.f ilter(fn, self); | |||||
| 16 | if (void 0 === arr || null = == arr) th row new Ty peError(); | |||||
| 17 | if ('fun ction' != typeof fn) throw new TypeError (); | |||||
| 18 | var ret = []; | |||||
| 19 | for (var i = 0; i < arr.leng th; i++) { | |||||
| 20 | if (!h asOwn.call (arr, i)) continue; | |||||
| 21 | var va l = arr[i] ; | |||||
| 22 | if (fn .call(self , val, i, arr)) ret. push(val); | |||||
| 23 | } | |||||
| 24 | return r et; | |||||
| 25 | }; | |||||
| 26 | ||||||
| 27 | var hasOwn = Object. prototype. hasOwnProp erty; | |||||
| 28 | ||||||
| 29 | },{}],2:[f unction(re quire,modu le,exports ){ | |||||
| 30 | /** | |||||
| 31 | * array-f oreach | |||||
| 32 | * Array #forEach p onyfill fo r older br owsers | |||||
| 33 | * (Pony fill: A po lyfill tha t doesn't overwrite the native method) | |||||
| 34 | * | |||||
| 35 | * https:/ /github.co m/twada/ar ray-foreac h | |||||
| 36 | * | |||||
| 37 | * Copyrig ht (c) 201 5-2016 Tak uto Wada | |||||
| 38 | * License d under th e MIT lice nse. | |||||
| 39 | * https ://github. com/twada/ array-fore ach/blob/m aster/MIT- LICENSE | |||||
| 40 | */ | |||||
| 41 | 'use stric t'; | |||||
| 42 | ||||||
| 43 | module.exp orts = fun ction forE ach(ary, c allback, t hisArg) { | |||||
| 44 | if (ar y.forEach) { | |||||
| 45 | ar y.forEach( callback, thisArg); | |||||
| 46 | re turn; | |||||
| 47 | } | |||||
| 48 | for (v ar i = 0; i < ary.le ngth; i += 1) { | |||||
| 49 | ca llback.cal l(thisArg, ary[i], i , ary); | |||||
| 50 | } | |||||
| 51 | }; | |||||
| 52 | ||||||
| 53 | },{}],3:[f unction(re quire,modu le,exports ){ | |||||
| 54 | "use stric t"; | |||||
| 55 | ||||||
| 56 | /* | |||||
| 57 | * classLi st.js: Cro ss-browser full elem ent.classL ist implem entation. | |||||
| 58 | * 1.1.201 70427 | |||||
| 59 | * | |||||
| 60 | * By Eli Grey, http ://eligrey .com | |||||
| 61 | * License : Dedicate d to the p ublic doma in. | |||||
| 62 | * See h ttps://git hub.com/el igrey/clas sList.js/b lob/master /LICENSE.m d | |||||
| 63 | */ | |||||
| 64 | ||||||
| 65 | /*global s elf, docum ent, DOMEx ception */ | |||||
| 66 | ||||||
| 67 | /*! @sourc e http://p url.eligre y.com/gith ub/classLi st.js/blob /master/cl assList.js */ | |||||
| 68 | ||||||
| 69 | if ("docum ent" in wi ndow.self) { | |||||
| 70 | ||||||
| 71 | // Full poly fill for b rowsers wi th no clas sList supp ort | |||||
| 72 | // Including IE < Edge missing S VGElement. classList | |||||
| 73 | if (!("class List" in d ocument.cr eateElemen t("_")) || document. createElem entNS && ! ("classLis t" in docu ment.creat eElementNS ("http://w ww.w3.org/ 2000/svg", "g"))) { | |||||
| 74 | ||||||
| 75 | (fun ction (vie w) { | |||||
| 76 | ||||||
| 77 | "use s trict"; | |||||
| 78 | ||||||
| 79 | if (!( 'Element' in view)) return; | |||||
| 80 | ||||||
| 81 | var cl assListPro p = "class List", | |||||
| 82 | pr otoProp = "prototype ", | |||||
| 83 | el emCtrProto = view.El ement[prot oProp], | |||||
| 84 | ob jCtr = Obj ect, | |||||
| 85 | st rTrim = St ring[proto Prop].trim || functi on () { | |||||
| 86 | return t his.replac e(/^\s+|\s +$/g, ""); | |||||
| 87 | }, | |||||
| 88 | ar rIndexOf = Array[pro toProp].in dexOf || f unction (i tem) { | |||||
| 89 | var i = 0, | |||||
| 90 | len = this.len gth; | |||||
| 91 | for (; i < len; i+ +) { | |||||
| 92 | if (i in t his && thi s[i] === i tem) { | |||||
| 93 | re turn i; | |||||
| 94 | } | |||||
| 95 | } | |||||
| 96 | return - 1; | |||||
| 97 | } | |||||
| 98 | // Ven dors: plea se allow c ontent cod e to insta ntiate DOM Exceptions | |||||
| 99 | , | |||||
| 100 | DO MEx = func tion DOMEx (type, mes sage) { | |||||
| 101 | this.nam e = type; | |||||
| 102 | this.cod e = DOMExc eption[typ e]; | |||||
| 103 | this.mes sage = mes sage; | |||||
| 104 | }, | |||||
| 105 | ch eckTokenAn dGetIndex = function checkToke nAndGetInd ex(classLi st, token) { | |||||
| 106 | if (toke n === "") { | |||||
| 107 | throw new DOMEx("SYN TAX_ERR", "An invali d or illeg al string was specif ied"); | |||||
| 108 | } | |||||
| 109 | if (/\s/ .test(toke n)) { | |||||
| 110 | throw new DOMEx("INV ALID_CHARA CTER_ERR", "String c ontains an invalid c haracter") ; | |||||
| 111 | } | |||||
| 112 | return a rrIndexOf. call(class List, toke n); | |||||
| 113 | }, | |||||
| 114 | Cl assList = function C lassList(e lem) { | |||||
| 115 | var trim medClasses = strTrim .call(elem .getAttrib ute("class ") || ""), | |||||
| 116 | clas ses = trim medClasses ? trimmed Classes.sp lit(/\s+/) : [], | |||||
| 117 | i = 0, | |||||
| 118 | len = classes. length; | |||||
| 119 | for (; i < len; i+ +) { | |||||
| 120 | this.push( classes[i] ); | |||||
| 121 | } | |||||
| 122 | this._up dateClassN ame = func tion () { | |||||
| 123 | elem.setAt tribute("c lass", thi s.toString ()); | |||||
| 124 | }; | |||||
| 125 | }, | |||||
| 126 | cl assListPro to = Class List[proto Prop] = [] , | |||||
| 127 | cl assListGet ter = func tion class ListGetter () { | |||||
| 128 | return n ew ClassLi st(this); | |||||
| 129 | }; | |||||
| 130 | // Mos t DOMExcep tion imple mentations don't all ow calling DOMExcept ion's toSt ring() | |||||
| 131 | // on non-DOMExc eptions. E rror's toS tring() is sufficien t here. | |||||
| 132 | DOMEx[ protoProp] = Error[p rotoProp]; | |||||
| 133 | classL istProto.i tem = func tion (i) { | |||||
| 134 | return t his[i] || null; | |||||
| 135 | }; | |||||
| 136 | classL istProto.c ontains = function ( token) { | |||||
| 137 | token += ""; | |||||
| 138 | return c heckTokenA ndGetIndex (this, tok en) !== -1 ; | |||||
| 139 | }; | |||||
| 140 | classL istProto.a dd = funct ion () { | |||||
| 141 | var toke ns = argum ents, | |||||
| 142 | i = 0, | |||||
| 143 | l = tokens.len gth, | |||||
| 144 | toke n, | |||||
| 145 | upda ted = fals e; | |||||
| 146 | do { | |||||
| 147 | token = to kens[i] + ""; | |||||
| 148 | if (checkT okenAndGet Index(this , token) = == -1) { | |||||
| 149 | th is.push(to ken); | |||||
| 150 | up dated = tr ue; | |||||
| 151 | } | |||||
| 152 | } while (++i < l); | |||||
| 153 | ||||||
| 154 | if (upda ted) { | |||||
| 155 | this._upda teClassNam e(); | |||||
| 156 | } | |||||
| 157 | }; | |||||
| 158 | classL istProto.r emove = fu nction () { | |||||
| 159 | var toke ns = argum ents, | |||||
| 160 | i = 0, | |||||
| 161 | l = tokens.len gth, | |||||
| 162 | toke n, | |||||
| 163 | upda ted = fals e, | |||||
| 164 | inde x; | |||||
| 165 | do { | |||||
| 166 | token = to kens[i] + ""; | |||||
| 167 | index = ch eckTokenAn dGetIndex( this, toke n); | |||||
| 168 | while (ind ex !== -1) { | |||||
| 169 | th is.splice( index, 1); | |||||
| 170 | up dated = tr ue; | |||||
| 171 | in dex = chec kTokenAndG etIndex(th is, token) ; | |||||
| 172 | } | |||||
| 173 | } while (++i < l); | |||||
| 174 | ||||||
| 175 | if (upda ted) { | |||||
| 176 | this._upda teClassNam e(); | |||||
| 177 | } | |||||
| 178 | }; | |||||
| 179 | classL istProto.t oggle = fu nction (to ken, force ) { | |||||
| 180 | token += ""; | |||||
| 181 | ||||||
| 182 | var resu lt = this. contains(t oken), | |||||
| 183 | meth od = resul t ? force !== true & & "remove" : force ! == false & & "add"; | |||||
| 184 | ||||||
| 185 | if (meth od) { | |||||
| 186 | this[metho d](token); | |||||
| 187 | } | |||||
| 188 | ||||||
| 189 | if (forc e === true || force === false) { | |||||
| 190 | return for ce; | |||||
| 191 | } else { | |||||
| 192 | return !re sult; | |||||
| 193 | } | |||||
| 194 | }; | |||||
| 195 | classL istProto.t oString = function ( ) { | |||||
| 196 | return t his.join(" "); | |||||
| 197 | }; | |||||
| 198 | ||||||
| 199 | if (ob jCtr.defin eProperty) { | |||||
| 200 | var clas sListPropD esc = { | |||||
| 201 | get: class ListGetter , | |||||
| 202 | enumerable : true, | |||||
| 203 | configurab le: true | |||||
| 204 | }; | |||||
| 205 | try { | |||||
| 206 | objCtr.def inePropert y(elemCtrP roto, clas sListProp, classList PropDesc); | |||||
| 207 | } catch (ex) { | |||||
| 208 | // IE 8 do esn't supp ort enumer able:true | |||||
| 209 | // adding undefined to fight t his issue https://gi thub.com/e ligrey/cla ssList.js/ issues/36 | |||||
| 210 | // moderni e IE8-MSW7 machine h as IE8 8.0 .6001.1870 2 and is a ffected | |||||
| 211 | if (ex.num ber === un defined || ex.number === -0x7F F5EC54) { | |||||
| 212 | cl assListPro pDesc.enum erable = f alse; | |||||
| 213 | ob jCtr.defin eProperty( elemCtrPro to, classL istProp, c lassListPr opDesc); | |||||
| 214 | } | |||||
| 215 | } | |||||
| 216 | } else if (objCt r[protoPro p].__defin eGetter__) { | |||||
| 217 | elemCtrP roto.__def ineGetter_ _(classLis tProp, cla ssListGett er); | |||||
| 218 | } | |||||
| 219 | })(w indow.self ); | |||||
| 220 | } | |||||
| 221 | ||||||
| 222 | // There is full or pa rtial nati ve classLi st support , so just check if w e need | |||||
| 223 | // to normal ize the ad d/remove a nd toggle APIs. | |||||
| 224 | ||||||
| 225 | (f unction () { | |||||
| 226 | "use strict"; | |||||
| 227 | ||||||
| 228 | var testElemen t = docume nt.createE lement("_" ); | |||||
| 229 | ||||||
| 230 | test Element.cl assList.ad d("c1", "c 2"); | |||||
| 231 | ||||||
| 232 | // P olyfill fo r IE 10/11 and Firef ox <26, wh ere classL ist.add an d | |||||
| 233 | // c lassList.r emove exis t but supp ort only o ne argumen t at a tim e. | |||||
| 234 | if ( !testEleme nt.classLi st.contain s("c2")) { | |||||
| 235 | var cr eateMethod = functio n createMe thod(metho d) { | |||||
| 236 | var orig inal = DOM TokenList. prototype[ method]; | |||||
| 237 | ||||||
| 238 | DOMToken List.proto type[metho d] = funct ion (token ) { | |||||
| 239 | var i, | |||||
| 240 | len = arguments. length; | |||||
| 241 | ||||||
| 242 | for (i = 0 ; i < len; i++) { | |||||
| 243 | to ken = argu ments[i]; | |||||
| 244 | or iginal.cal l(this, to ken); | |||||
| 245 | } | |||||
| 246 | }; | |||||
| 247 | }; | |||||
| 248 | create Method('ad d'); | |||||
| 249 | create Method('re move'); | |||||
| 250 | } | |||||
| 251 | ||||||
| 252 | test Element.cl assList.to ggle("c3", false); | |||||
| 253 | ||||||
| 254 | // P olyfill fo r IE 10 an d Firefox <24, where classList .toggle do es not | |||||
| 255 | // s upport the second ar gument. | |||||
| 256 | if ( testElemen t.classLis t.contains ("c3")) { | |||||
| 257 | var _t oggle = DO MTokenList .prototype .toggle; | |||||
| 258 | ||||||
| 259 | DOMTok enList.pro totype.tog gle = func tion (toke n, force) { | |||||
| 260 | if (1 in arguments && !this. contains(t oken) === !force) { | |||||
| 261 | return for ce; | |||||
| 262 | } else { | |||||
| 263 | return _to ggle.call( this, toke n); | |||||
| 264 | } | |||||
| 265 | }; | |||||
| 266 | } | |||||
| 267 | ||||||
| 268 | test Element = null; | |||||
| 269 | }) (); | |||||
| 270 | } | |||||
| 271 | ||||||
| 272 | },{}],4:[f unction(re quire,modu le,exports ){ | |||||
| 273 | 'use stric t'; | |||||
| 274 | ||||||
| 275 | var _typeo f = typeof Symbol == = "functio n" && type of Symbol. iterator = == "symbol " ? functi on (obj) { return ty peof obj; } : functi on (obj) { return ob j && typeo f Symbol = == "functi on" && obj .construct or === Sym bol && obj !== Symbo l.prototyp e ? "symbo l" : typeo f obj; }; | |||||
| 276 | ||||||
| 277 | /*! | |||||
| 278 | * domrea dy (c) Dus tin Diaz 2 014 - Lice nse MIT | |||||
| 279 | */ | |||||
| 280 | !function (name, def inition) { | |||||
| 281 | ||||||
| 282 | if (type of module != 'undefi ned') modu le.exports = definit ion();else if (typeo f define = = 'functio n' && _typ eof(define .amd) == ' object') d efine(defi nition);el se this[na me] = defi nition(); | |||||
| 283 | }('domread y', functi on () { | |||||
| 284 | ||||||
| 285 | var fns = [], | |||||
| 286 | _lis tener, | |||||
| 287 | doc = document , | |||||
| 288 | hack = doc.doc umentEleme nt.doScrol l, | |||||
| 289 | domC ontentLoad ed = 'DOMC ontentLoad ed', | |||||
| 290 | load ed = (hack ? /^loade d|^c/ : /^ loaded|^i| ^c/).test( doc.readyS tate); | |||||
| 291 | ||||||
| 292 | if (!loa ded) doc.a ddEventLis tener(domC ontentLoad ed, _liste ner = func tion liste ner() { | |||||
| 293 | doc.re moveEventL istener(do mContentLo aded, _lis tener); | |||||
| 294 | loaded = 1; | |||||
| 295 | while (_listener = fns.shi ft()) { | |||||
| 296 | _lis tener(); | |||||
| 297 | } | |||||
| 298 | }); | |||||
| 299 | ||||||
| 300 | return f unction (f n) { | |||||
| 301 | loaded ? setTime out(fn, 0) : fns.pus h(fn); | |||||
| 302 | }; | |||||
| 303 | }); | |||||
| 304 | ||||||
| 305 | },{}],5:[f unction(re quire,modu le,exports ){ | |||||
| 306 | 'use stric t'; | |||||
| 307 | ||||||
| 308 | // <3 Mode rnizr | |||||
| 309 | // https:/ /raw.githu buserconte nt.com/Mod ernizr/Mod ernizr/mas ter/featur e-detects/ dom/datase t.js | |||||
| 310 | ||||||
| 311 | function u seNative() { | |||||
| 312 | va r elem = d ocument.cr eateElemen t('div'); | |||||
| 313 | el em.setAttr ibute('dat a-a-b', 'c '); | |||||
| 314 | ||||||
| 315 | re turn Boole an(elem.da taset && e lem.datase t.aB === ' c'); | |||||
| 316 | } | |||||
| 317 | ||||||
| 318 | function n ativeDatas et(element ) { | |||||
| 319 | re turn eleme nt.dataset ; | |||||
| 320 | } | |||||
| 321 | ||||||
| 322 | module.exp orts = use Native() ? nativeDat aset : fun ction (ele ment) { | |||||
| 323 | va r map = {} ; | |||||
| 324 | va r attribut es = eleme nt.attribu tes; | |||||
| 325 | ||||||
| 326 | fu nction get ter() { | |||||
| 327 | retu rn this.va lue; | |||||
| 328 | } | |||||
| 329 | ||||||
| 330 | fu nction set ter(name, value) { | |||||
| 331 | if ( typeof val ue === 'un defined') { | |||||
| 332 | this.r emoveAttri bute(name) ; | |||||
| 333 | } el se { | |||||
| 334 | this.s etAttribut e(name, va lue); | |||||
| 335 | } | |||||
| 336 | } | |||||
| 337 | ||||||
| 338 | fo r (var i = 0, j = at tributes.l ength; i < j; i++) { | |||||
| 339 | var attribute = attribut es[i]; | |||||
| 340 | ||||||
| 341 | if ( attribute) { | |||||
| 342 | var na me = attri bute.name; | |||||
| 343 | ||||||
| 344 | if (na me.indexOf ('data-') === 0) { | |||||
| 345 | var prop = name.sl ice(5).rep lace(/-./g , function (u) { | |||||
| 346 | return u.c harAt(1).t oUpperCase (); | |||||
| 347 | }); | |||||
| 348 | ||||||
| 349 | var valu e = attrib ute.value; | |||||
| 350 | ||||||
| 351 | Object.d efinePrope rty(map, p rop, { | |||||
| 352 | enumerable : true, | |||||
| 353 | get: gette r.bind({ v alue: valu e || '' }) , | |||||
| 354 | set: sette r.bind(ele ment, name ) | |||||
| 355 | }); | |||||
| 356 | } | |||||
| 357 | } | |||||
| 358 | } | |||||
| 359 | ||||||
| 360 | re turn map; | |||||
| 361 | }; | |||||
| 362 | ||||||
| 363 | },{}],6:[f unction(re quire,modu le,exports ){ | |||||
| 364 | 'use stric t'; | |||||
| 365 | ||||||
| 366 | // element -closest | CC0-1.0 | github.co m/jonathan tneal/clos est | |||||
| 367 | ||||||
| 368 | (function (ElementPr oto) { | |||||
| 369 | if (typeof E lementProt o.matches !== 'funct ion') { | |||||
| 370 | Elem entProto.m atches = E lementProt o.msMatche sSelector || Element Proto.mozM atchesSele ctor || El ementProto .webkitMat chesSelect or || func tion match es(selecto r) { | |||||
| 371 | var el ement = th is; | |||||
| 372 | var el ements = ( element.do cument || element.ow nerDocumen t).querySe lectorAll( selector); | |||||
| 373 | var in dex = 0; | |||||
| 374 | ||||||
| 375 | while (elements[ index] && elements[i ndex] !== element) { | |||||
| 376 | ++index; | |||||
| 377 | } | |||||
| 378 | ||||||
| 379 | return Boolean(e lements[in dex]); | |||||
| 380 | }; | |||||
| 381 | } | |||||
| 382 | ||||||
| 383 | if (typeof E lementProt o.closest !== 'funct ion') { | |||||
| 384 | Elem entProto.c losest = f unction cl osest(sele ctor) { | |||||
| 385 | var el ement = th is; | |||||
| 386 | ||||||
| 387 | while (element & & element. nodeType = == 1) { | |||||
| 388 | if (elem ent.matche s(selector )) { | |||||
| 389 | return ele ment; | |||||
| 390 | } | |||||
| 391 | ||||||
| 392 | element = element. parentNode ; | |||||
| 393 | } | |||||
| 394 | ||||||
| 395 | return null; | |||||
| 396 | }; | |||||
| 397 | } | |||||
| 398 | })(window. Element.pr ototype); | |||||
| 399 | ||||||
| 400 | },{}],7:[f unction(re quire,modu le,exports ){ | |||||
| 401 | (function (global){ | |||||
| 402 | 'use stric t'; | |||||
| 403 | ||||||
| 404 | var _typeo f = typeof Symbol == = "functio n" && type of Symbol. iterator = == "symbol " ? functi on (obj) { return ty peof obj; } : functi on (obj) { return ob j && typeo f Symbol = == "functi on" && obj .construct or === Sym bol && obj !== Symbo l.prototyp e ? "symbo l" : typeo f obj; }; | |||||
| 405 | ||||||
| 406 | /** | |||||
| 407 | * lodash (Custom Bu ild) <http s://lodash .com/> | |||||
| 408 | * Build: `lodash mo dularize e xports="np m" -o ./` | |||||
| 409 | * Copyrig ht jQuery Foundation and other contribut ors <https ://jquery. org/> | |||||
| 410 | * Release d under MI T license <https://l odash.com/ license> | |||||
| 411 | * Based o n Undersco re.js 1.8. 3 <http:// underscore js.org/LIC ENSE> | |||||
| 412 | * Copyrig ht Jeremy Ashkenas, DocumentCl oud and In vestigativ e Reporter s & Editor s | |||||
| 413 | */ | |||||
| 414 | ||||||
| 415 | /** Used a s the `Typ eError` me ssage for "Functions " methods. */ | |||||
| 416 | var FUNC_E RROR_TEXT = 'Expecte d a functi on'; | |||||
| 417 | ||||||
| 418 | /** Used a s referenc es for var ious `Numb er` consta nts. */ | |||||
| 419 | var NAN = 0 / 0; | |||||
| 420 | ||||||
| 421 | /** `Objec t#toString ` result r eferences. */ | |||||
| 422 | var symbol Tag = '[ob ject Symbo l]'; | |||||
| 423 | ||||||
| 424 | /** Used t o match le ading and trailing w hitespace. */ | |||||
| 425 | var reTrim = /^\s+|\ s+$/g; | |||||
| 426 | ||||||
| 427 | /** Used t o detect b ad signed hexadecima l string v alues. */ | |||||
| 428 | var reIsBa dHex = /^[ -+]0x[0-9a -f]+$/i; | |||||
| 429 | ||||||
| 430 | /** Used t o detect b inary stri ng values. */ | |||||
| 431 | var reIsBi nary = /^0 b[01]+$/i; | |||||
| 432 | ||||||
| 433 | /** Used t o detect o ctal strin g values. */ | |||||
| 434 | var reIsOc tal = /^0o [0-7]+$/i; | |||||
| 435 | ||||||
| 436 | /** Built- in method references without a dependenc y on `root `. */ | |||||
| 437 | var freePa rseInt = p arseInt; | |||||
| 438 | ||||||
| 439 | /** Detect free vari able `glob al` from N ode.js. */ | |||||
| 440 | var freeGl obal = (ty peof globa l === 'und efined' ? 'undefined ' : _typeo f(global)) == 'objec t' && glob al && glob al.Object === Object && global ; | |||||
| 441 | ||||||
| 442 | /** Detect free vari able `self `. */ | |||||
| 443 | var freeSe lf = (type of self == = 'undefin ed' ? 'und efined' : _typeof(se lf)) == 'o bject' && self && se lf.Object === Object && self; | |||||
| 444 | ||||||
| 445 | /** Used a s a refere nce to the global ob ject. */ | |||||
| 446 | var root = freeGloba l || freeS elf || Fun ction('ret urn this') (); | |||||
| 447 | ||||||
| 448 | /** Used f or built-i n method r eferences. */ | |||||
| 449 | var object Proto = Ob ject.proto type; | |||||
| 450 | ||||||
| 451 | /** | |||||
| 452 | * Used to resolve t he | |||||
| 453 | * [`toStr ingTag`](h ttp://ecma -internati onal.org/e cma-262/7. 0/#sec-obj ect.protot ype.tostri ng) | |||||
| 454 | * of valu es. | |||||
| 455 | */ | |||||
| 456 | var object ToString = objectPro to.toStrin g; | |||||
| 457 | ||||||
| 458 | /* Built-i n method r eferences for those with the s ame name a s other `l odash` met hods. */ | |||||
| 459 | var native Max = Math .max, | |||||
| 460 | native Min = Math .min; | |||||
| 461 | ||||||
| 462 | /** | |||||
| 463 | * Gets th e timestam p of the n umber of m illisecond s that hav e elapsed since | |||||
| 464 | * the Uni x epoch (1 January 1 970 00:00: 00 UTC). | |||||
| 465 | * | |||||
| 466 | * @static | |||||
| 467 | * @member Of _ | |||||
| 468 | * @since 2.4.0 | |||||
| 469 | * @catego ry Date | |||||
| 470 | * @return s {number} Returns t he timesta mp. | |||||
| 471 | * @exampl e | |||||
| 472 | * | |||||
| 473 | * _.defer (function( stamp) { | |||||
| 474 | * conso le.log(_.n ow() - sta mp); | |||||
| 475 | * }, _.no w()); | |||||
| 476 | * // => L ogs the nu mber of mi lliseconds it took f or the def erred invo cation. | |||||
| 477 | */ | |||||
| 478 | var now = function n ow() { | |||||
| 479 | return r oot.Date.n ow(); | |||||
| 480 | }; | |||||
| 481 | ||||||
| 482 | /** | |||||
| 483 | * Creates a debounc ed functio n that del ays invoki ng `func` until afte r `wait` | |||||
| 484 | * millise conds have elapsed s ince the l ast time t he debounc ed functio n was | |||||
| 485 | * invoked . The debo unced func tion comes with a `c ancel` met hod to can cel | |||||
| 486 | * delayed `func` in vocations and a `flu sh` method to immedi ately invo ke them. | |||||
| 487 | * Provide `options` to indica te whether `func` sh ould be in voked on t he | |||||
| 488 | * leading and/or tr ailing edg e of the ` wait` time out. The ` func` is i nvoked | |||||
| 489 | * with th e last arg uments pro vided to t he debounc ed functio n. Subsequ ent | |||||
| 490 | * calls t o the debo unced func tion retur n the resu lt of the last `func ` | |||||
| 491 | * invocat ion. | |||||
| 492 | * | |||||
| 493 | * **Note: ** If `lea ding` and `trailing` options a re `true`, `func` is | |||||
| 494 | * invoked on the tr ailing edg e of the t imeout onl y if the d ebounced f unction | |||||
| 495 | * is invo ked more t han once d uring the `wait` tim eout. | |||||
| 496 | * | |||||
| 497 | * If `wai t` is `0` and `leadi ng` is `fa lse`, `fun c` invocat ion is def erred | |||||
| 498 | * until t o the next tick, sim ilar to `s etTimeout` with a ti meout of ` 0`. | |||||
| 499 | * | |||||
| 500 | * See [Da vid Corbac ho's artic le](https: //css-tric ks.com/deb ouncing-th rottling-e xplained-e xamples/) | |||||
| 501 | * for det ails over the differ ences betw een `_.deb ounce` and `_.thrott le`. | |||||
| 502 | * | |||||
| 503 | * @static | |||||
| 504 | * @member Of _ | |||||
| 505 | * @since 0.1.0 | |||||
| 506 | * @catego ry Functio n | |||||
| 507 | * @param {Function} func The function t o debounce . | |||||
| 508 | * @param {number} [ wait=0] Th e number o f millisec onds to de lay. | |||||
| 509 | * @param {Object} [ options={} ] The opti ons object . | |||||
| 510 | * @param {boolean} [options.l eading=fal se] | |||||
| 511 | * Specif y invoking on the le ading edge of the ti meout. | |||||
| 512 | * @param {number} [ options.ma xWait] | |||||
| 513 | * The ma ximum time `func` is allowed t o be delay ed before it's invok ed. | |||||
| 514 | * @param {boolean} [options.t railing=tr ue] | |||||
| 515 | * Specif y invoking on the tr ailing edg e of the t imeout. | |||||
| 516 | * @return s {Functio n} Returns the new d ebounced f unction. | |||||
| 517 | * @exampl e | |||||
| 518 | * | |||||
| 519 | * // Avoi d costly c alculation s while th e window s ize is in flux. | |||||
| 520 | * jQuery( window).on ('resize', _.debounc e(calculat eLayout, 1 50)); | |||||
| 521 | * | |||||
| 522 | * // Invo ke `sendMa il` when c licked, de bouncing s ubsequent calls. | |||||
| 523 | * jQuery( element).o n('click', _.debounc e(sendMail , 300, { | |||||
| 524 | * 'lead ing': true , | |||||
| 525 | * 'trai ling': fal se | |||||
| 526 | * })); | |||||
| 527 | * | |||||
| 528 | * // Ensu re `batchL og` is inv oked once after 1 se cond of de bounced ca lls. | |||||
| 529 | * var deb ounced = _ .debounce( batchLog, 250, { 'ma xWait': 10 00 }); | |||||
| 530 | * var sou rce = new EventSourc e('/stream '); | |||||
| 531 | * jQuery( source).on ('message' , debounce d); | |||||
| 532 | * | |||||
| 533 | * // Canc el the tra iling debo unced invo cation. | |||||
| 534 | * jQuery( window).on ('popstate ', debounc ed.cancel) ; | |||||
| 535 | */ | |||||
| 536 | function d ebounce(fu nc, wait, options) { | |||||
| 537 | var last Args, | |||||
| 538 | last This, | |||||
| 539 | maxW ait, | |||||
| 540 | resu lt, | |||||
| 541 | time rId, | |||||
| 542 | last CallTime, | |||||
| 543 | last InvokeTime = 0, | |||||
| 544 | lead ing = fals e, | |||||
| 545 | maxi ng = false , | |||||
| 546 | trai ling = tru e; | |||||
| 547 | ||||||
| 548 | if (type of func != 'function ') { | |||||
| 549 | throw new TypeEr ror(FUNC_E RROR_TEXT) ; | |||||
| 550 | } | |||||
| 551 | wait = t oNumber(wa it) || 0; | |||||
| 552 | if (isOb ject(optio ns)) { | |||||
| 553 | leadin g = !!opti ons.leadin g; | |||||
| 554 | maxing = 'maxWai t' in opti ons; | |||||
| 555 | maxWai t = maxing ? nativeM ax(toNumbe r(options. maxWait) | | 0, wait) : maxWait ; | |||||
| 556 | traili ng = 'trai ling' in o ptions ? ! !options.t railing : trailing; | |||||
| 557 | } | |||||
| 558 | ||||||
| 559 | function invokeFun c(time) { | |||||
| 560 | var ar gs = lastA rgs, | |||||
| 561 | th isArg = la stThis; | |||||
| 562 | ||||||
| 563 | lastAr gs = lastT his = unde fined; | |||||
| 564 | lastIn vokeTime = time; | |||||
| 565 | result = func.ap ply(thisAr g, args); | |||||
| 566 | return result; | |||||
| 567 | } | |||||
| 568 | ||||||
| 569 | function leadingEd ge(time) { | |||||
| 570 | // Res et any `ma xWait` tim er. | |||||
| 571 | lastIn vokeTime = time; | |||||
| 572 | // Sta rt the tim er for the trailing edge. | |||||
| 573 | timerI d = setTim eout(timer Expired, w ait); | |||||
| 574 | // Inv oke the le ading edge . | |||||
| 575 | return leading ? invokeFun c(time) : result; | |||||
| 576 | } | |||||
| 577 | ||||||
| 578 | function remaining Wait(time) { | |||||
| 579 | var ti meSinceLas tCall = ti me - lastC allTime, | |||||
| 580 | ti meSinceLas tInvoke = time - las tInvokeTim e, | |||||
| 581 | re sult = wai t - timeSi nceLastCal l; | |||||
| 582 | ||||||
| 583 | return maxing ? nativeMin( result, ma xWait - ti meSinceLas tInvoke) : result; | |||||
| 584 | } | |||||
| 585 | ||||||
| 586 | function shouldInv oke(time) { | |||||
| 587 | var ti meSinceLas tCall = ti me - lastC allTime, | |||||
| 588 | ti meSinceLas tInvoke = time - las tInvokeTim e; | |||||
| 589 | ||||||
| 590 | // Eit her this i s the firs t call, ac tivity has stopped a nd we're a t the | |||||
| 591 | // tra iling edge , the syst em time ha s gone bac kwards and we're tre ating | |||||
| 592 | // it as the tra iling edge , or we've hit the ` maxWait` l imit. | |||||
| 593 | return lastCallT ime === un defined || timeSince LastCall > = wait || timeSinceL astCall < 0 || maxin g && timeS inceLastIn voke >= ma xWait; | |||||
| 594 | } | |||||
| 595 | ||||||
| 596 | function timerExpi red() { | |||||
| 597 | var ti me = now() ; | |||||
| 598 | if (sh ouldInvoke (time)) { | |||||
| 599 | retu rn trailin gEdge(time ); | |||||
| 600 | } | |||||
| 601 | // Res tart the t imer. | |||||
| 602 | timerI d = setTim eout(timer Expired, r emainingWa it(time)); | |||||
| 603 | } | |||||
| 604 | ||||||
| 605 | function trailingE dge(time) { | |||||
| 606 | timerI d = undefi ned; | |||||
| 607 | ||||||
| 608 | // Onl y invoke i f we have `lastArgs` which mea ns `func` has been | |||||
| 609 | // deb ounced at least once . | |||||
| 610 | if (tr ailing && lastArgs) { | |||||
| 611 | retu rn invokeF unc(time); | |||||
| 612 | } | |||||
| 613 | lastAr gs = lastT his = unde fined; | |||||
| 614 | return result; | |||||
| 615 | } | |||||
| 616 | ||||||
| 617 | function cancel() { | |||||
| 618 | if (ti merId !== undefined) { | |||||
| 619 | clea rTimeout(t imerId); | |||||
| 620 | } | |||||
| 621 | lastIn vokeTime = 0; | |||||
| 622 | lastAr gs = lastC allTime = lastThis = timerId = undefined ; | |||||
| 623 | } | |||||
| 624 | ||||||
| 625 | function flush() { | |||||
| 626 | return timerId = == undefin ed ? resul t : traili ngEdge(now ()); | |||||
| 627 | } | |||||
| 628 | ||||||
| 629 | function debounced () { | |||||
| 630 | var ti me = now() , | |||||
| 631 | is Invoking = shouldInv oke(time); | |||||
| 632 | ||||||
| 633 | lastAr gs = argum ents; | |||||
| 634 | lastTh is = this; | |||||
| 635 | lastCa llTime = t ime; | |||||
| 636 | ||||||
| 637 | if (is Invoking) { | |||||
| 638 | if ( timerId == = undefine d) { | |||||
| 639 | re turn leadi ngEdge(las tCallTime) ; | |||||
| 640 | } | |||||
| 641 | if ( maxing) { | |||||
| 642 | // Handle in vocations in a tight loop. | |||||
| 643 | ti merId = se tTimeout(t imerExpire d, wait); | |||||
| 644 | re turn invok eFunc(last CallTime); | |||||
| 645 | } | |||||
| 646 | } | |||||
| 647 | if (ti merId === undefined) { | |||||
| 648 | time rId = setT imeout(tim erExpired, wait); | |||||
| 649 | } | |||||
| 650 | return result; | |||||
| 651 | } | |||||
| 652 | debounce d.cancel = cancel; | |||||
| 653 | debounce d.flush = flush; | |||||
| 654 | return d ebounced; | |||||
| 655 | } | |||||
| 656 | ||||||
| 657 | /** | |||||
| 658 | * Checks if `value` is the | |||||
| 659 | * [langua ge type](h ttp://www. ecma-inter national.o rg/ecma-26 2/7.0/#sec -ecmascrip t-language -types) | |||||
| 660 | * of `Obj ect`. (e.g . arrays, functions, objects, regexes, ` new Number (0)`, and `new Strin g('')`) | |||||
| 661 | * | |||||
| 662 | * @static | |||||
| 663 | * @member Of _ | |||||
| 664 | * @since 0.1.0 | |||||
| 665 | * @catego ry Lang | |||||
| 666 | * @param {*} value The value to check. | |||||
| 667 | * @return s {boolean } Returns `true` if `value` is an object , else `fa lse`. | |||||
| 668 | * @exampl e | |||||
| 669 | * | |||||
| 670 | * _.isObj ect({}); | |||||
| 671 | * // => t rue | |||||
| 672 | * | |||||
| 673 | * _.isObj ect([1, 2, 3]); | |||||
| 674 | * // => t rue | |||||
| 675 | * | |||||
| 676 | * _.isObj ect(_.noop ); | |||||
| 677 | * // => t rue | |||||
| 678 | * | |||||
| 679 | * _.isObj ect(null); | |||||
| 680 | * // => f alse | |||||
| 681 | */ | |||||
| 682 | function i sObject(va lue) { | |||||
| 683 | var type = typeof value === 'undefined ' ? 'undef ined' : _t ypeof(valu e); | |||||
| 684 | return ! !value && (type == ' object' || type == ' function') ; | |||||
| 685 | } | |||||
| 686 | ||||||
| 687 | /** | |||||
| 688 | * Checks if `value` is object -like. A v alue is ob ject-like if it's no t `null` | |||||
| 689 | * and has a `typeof ` result o f "object" . | |||||
| 690 | * | |||||
| 691 | * @static | |||||
| 692 | * @member Of _ | |||||
| 693 | * @since 4.0.0 | |||||
| 694 | * @catego ry Lang | |||||
| 695 | * @param {*} value The value to check. | |||||
| 696 | * @return s {boolean } Returns `true` if `value` is object-li ke, else ` false`. | |||||
| 697 | * @exampl e | |||||
| 698 | * | |||||
| 699 | * _.isObj ectLike({} ); | |||||
| 700 | * // => t rue | |||||
| 701 | * | |||||
| 702 | * _.isObj ectLike([1 , 2, 3]); | |||||
| 703 | * // => t rue | |||||
| 704 | * | |||||
| 705 | * _.isObj ectLike(_. noop); | |||||
| 706 | * // => f alse | |||||
| 707 | * | |||||
| 708 | * _.isObj ectLike(nu ll); | |||||
| 709 | * // => f alse | |||||
| 710 | */ | |||||
| 711 | function i sObjectLik e(value) { | |||||
| 712 | return ! !value && (typeof va lue === 'u ndefined' ? 'undefin ed' : _typ eof(value) ) == 'obje ct'; | |||||
| 713 | } | |||||
| 714 | ||||||
| 715 | /** | |||||
| 716 | * Checks if `value` is classi fied as a `Symbol` p rimitive o r object. | |||||
| 717 | * | |||||
| 718 | * @static | |||||
| 719 | * @member Of _ | |||||
| 720 | * @since 4.0.0 | |||||
| 721 | * @catego ry Lang | |||||
| 722 | * @param {*} value The value to check. | |||||
| 723 | * @return s {boolean } Returns `true` if `value` is a symbol, else `fal se`. | |||||
| 724 | * @exampl e | |||||
| 725 | * | |||||
| 726 | * _.isSym bol(Symbol .iterator) ; | |||||
| 727 | * // => t rue | |||||
| 728 | * | |||||
| 729 | * _.isSym bol('abc') ; | |||||
| 730 | * // => f alse | |||||
| 731 | */ | |||||
| 732 | function i sSymbol(va lue) { | |||||
| 733 | return ( typeof val ue === 'un defined' ? 'undefine d' : _type of(value)) == 'symbo l' || isOb jectLike(v alue) && o bjectToStr ing.call(v alue) == s ymbolTag; | |||||
| 734 | } | |||||
| 735 | ||||||
| 736 | /** | |||||
| 737 | * Convert s `value` to a numbe r. | |||||
| 738 | * | |||||
| 739 | * @static | |||||
| 740 | * @member Of _ | |||||
| 741 | * @since 4.0.0 | |||||
| 742 | * @catego ry Lang | |||||
| 743 | * @param {*} value The value to process . | |||||
| 744 | * @return s {number} Returns t he number. | |||||
| 745 | * @exampl e | |||||
| 746 | * | |||||
| 747 | * _.toNum ber(3.2); | |||||
| 748 | * // => 3 .2 | |||||
| 749 | * | |||||
| 750 | * _.toNum ber(Number .MIN_VALUE ); | |||||
| 751 | * // => 5 e-324 | |||||
| 752 | * | |||||
| 753 | * _.toNum ber(Infini ty); | |||||
| 754 | * // => I nfinity | |||||
| 755 | * | |||||
| 756 | * _.toNum ber('3.2') ; | |||||
| 757 | * // => 3 .2 | |||||
| 758 | */ | |||||
| 759 | function t oNumber(va lue) { | |||||
| 760 | if (type of value = = 'number' ) { | |||||
| 761 | return value; | |||||
| 762 | } | |||||
| 763 | if (isSy mbol(value )) { | |||||
| 764 | return NAN; | |||||
| 765 | } | |||||
| 766 | if (isOb ject(value )) { | |||||
| 767 | var ot her = type of value.v alueOf == 'function' ? value.v alueOf() : value; | |||||
| 768 | value = isObject (other) ? other + '' : other; | |||||
| 769 | } | |||||
| 770 | if (type of value ! = 'string' ) { | |||||
| 771 | return value === 0 ? value : +value; | |||||
| 772 | } | |||||
| 773 | value = value.repl ace(reTrim , ''); | |||||
| 774 | var isBi nary = reI sBinary.te st(value); | |||||
| 775 | return i sBinary || reIsOctal .test(valu e) ? freeP arseInt(va lue.slice( 2), isBina ry ? 2 : 8 ) : reIsBa dHex.test( value) ? N AN : +valu e; | |||||
| 776 | } | |||||
| 777 | ||||||
| 778 | module.exp orts = deb ounce; | |||||
| 779 | ||||||
| 780 | }).call(th is,typeof global !== "undefine d" ? globa l : typeof self !== "undefined " ? self : typeof wi ndow !== " undefined" ? window : {}) | |||||
| 781 | ||||||
| 782 | },{}],8:[f unction(re quire,modu le,exports ){ | |||||
| 783 | /* | |||||
| 784 | object-ass ign | |||||
| 785 | (c) Sindre Sorhus | |||||
| 786 | @license M IT | |||||
| 787 | */ | |||||
| 788 | ||||||
| 789 | 'use stric t'; | |||||
| 790 | /* eslint- disable no -unused-va rs */ | |||||
| 791 | ||||||
| 792 | var getOwn PropertySy mbols = Ob ject.getOw nPropertyS ymbols; | |||||
| 793 | var hasOwn Property = Object.pr ototype.ha sOwnProper ty; | |||||
| 794 | var propIs Enumerable = Object. prototype. propertyIs Enumerable ; | |||||
| 795 | ||||||
| 796 | function t oObject(va l) { | |||||
| 797 | if (val === null || va l === unde fined) { | |||||
| 798 | thro w new Type Error('Obj ect.assign cannot be called wi th null or undefined '); | |||||
| 799 | } | |||||
| 800 | ||||||
| 801 | re turn Objec t(val); | |||||
| 802 | } | |||||
| 803 | ||||||
| 804 | function s houldUseNa tive() { | |||||
| 805 | tr y { | |||||
| 806 | if ( !Object.as sign) { | |||||
| 807 | return false; | |||||
| 808 | } | |||||
| 809 | ||||||
| 810 | // D etect bugg y property enumerati on order i n older V8 versions. | |||||
| 811 | ||||||
| 812 | // h ttps://bug s.chromium .org/p/v8/ issues/det ail?id=411 8 | |||||
| 813 | var test1 = ne w String(' abc'); // eslint-dis able-line no-new-wra ppers | |||||
| 814 | test 1[5] = 'de '; | |||||
| 815 | if ( Object.get OwnPropert yNames(tes t1)[0] === '5') { | |||||
| 816 | return false; | |||||
| 817 | } | |||||
| 818 | ||||||
| 819 | // h ttps://bug s.chromium .org/p/v8/ issues/det ail?id=305 6 | |||||
| 820 | var test2 = {} ; | |||||
| 821 | for (var i = 0 ; i < 10; i++) { | |||||
| 822 | test2[ '_' + Stri ng.fromCha rCode(i)] = i; | |||||
| 823 | } | |||||
| 824 | var order2 = O bject.getO wnProperty Names(test 2).map(fun ction (n) { | |||||
| 825 | return test2[n]; | |||||
| 826 | }); | |||||
| 827 | if ( order2.joi n('') !== '012345678 9') { | |||||
| 828 | return false; | |||||
| 829 | } | |||||
| 830 | ||||||
| 831 | // h ttps://bug s.chromium .org/p/v8/ issues/det ail?id=305 6 | |||||
| 832 | var test3 = {} ; | |||||
| 833 | 'abc defghijklm nopqrst'.s plit('').f orEach(fun ction (let ter) { | |||||
| 834 | test3[ letter] = letter; | |||||
| 835 | }); | |||||
| 836 | if ( Object.key s(Object.a ssign({}, test3)).jo in('') !== 'abcdefgh ijklmnopqr st') { | |||||
| 837 | return false; | |||||
| 838 | } | |||||
| 839 | ||||||
| 840 | retu rn true; | |||||
| 841 | } catch (err ) { | |||||
| 842 | // W e don't ex pect any o f the abov e to throw , but bett er to be s afe. | |||||
| 843 | retu rn false; | |||||
| 844 | } | |||||
| 845 | } | |||||
| 846 | ||||||
| 847 | module.exp orts = sho uldUseNati ve() ? Obj ect.assign : functio n (target, source) { | |||||
| 848 | va r from; | |||||
| 849 | va r to = toO bject(targ et); | |||||
| 850 | va r symbols; | |||||
| 851 | ||||||
| 852 | fo r (var s = 1; s < ar guments.le ngth; s++) { | |||||
| 853 | from = Object( arguments[ s]); | |||||
| 854 | ||||||
| 855 | for (var key i n from) { | |||||
| 856 | if (ha sOwnProper ty.call(fr om, key)) { | |||||
| 857 | to[key] = from[key ]; | |||||
| 858 | } | |||||
| 859 | } | |||||
| 860 | ||||||
| 861 | if ( getOwnProp ertySymbol s) { | |||||
| 862 | symbol s = getOwn PropertySy mbols(from ); | |||||
| 863 | for (v ar i = 0; i < symbol s.length; i++) { | |||||
| 864 | if (prop IsEnumerab le.call(fr om, symbol s[i])) { | |||||
| 865 | to[symbols [i]] = fro m[symbols[ i]]; | |||||
| 866 | } | |||||
| 867 | } | |||||
| 868 | } | |||||
| 869 | } | |||||
| 870 | ||||||
| 871 | re turn to; | |||||
| 872 | }; | |||||
| 873 | ||||||
| 874 | },{}],9:[f unction(re quire,modu le,exports ){ | |||||
| 875 | 'use stric t'; | |||||
| 876 | ||||||
| 877 | var _typeo f = typeof Symbol == = "functio n" && type of Symbol. iterator = == "symbol " ? functi on (obj) { return ty peof obj; } : functi on (obj) { return ob j && typeo f Symbol = == "functi on" && obj .construct or === Sym bol && obj !== Symbo l.prototyp e ? "symbo l" : typeo f obj; }; | |||||
| 878 | ||||||
| 879 | var assign = require ('object-a ssign'); | |||||
| 880 | var delega te = requi re('../del egate'); | |||||
| 881 | var delega teAll = re quire('../ delegateAl l'); | |||||
| 882 | ||||||
| 883 | var DELEGA TE_PATTERN = /^(.+): delegate\( (.+)\)$/; | |||||
| 884 | var SPACE = ' '; | |||||
| 885 | ||||||
| 886 | var getLis teners = f unction ge tListeners (type, han dler) { | |||||
| 887 | var matc h = type.m atch(DELEG ATE_PATTER N); | |||||
| 888 | var sele ctor; | |||||
| 889 | if (matc h) { | |||||
| 890 | type = match[1]; | |||||
| 891 | select or = match [2]; | |||||
| 892 | } | |||||
| 893 | ||||||
| 894 | var opti ons; | |||||
| 895 | if ((typ eof handle r === 'und efined' ? 'undefined ' : _typeo f(handler) ) === 'obj ect') { | |||||
| 896 | option s = { | |||||
| 897 | capt ure: popKe y(handler, 'capture' ), | |||||
| 898 | pass ive: popKe y(handler, 'passive' ) | |||||
| 899 | }; | |||||
| 900 | } | |||||
| 901 | ||||||
| 902 | var list ener = { | |||||
| 903 | select or: select or, | |||||
| 904 | delega te: (typeo f handler === 'undef ined' ? 'u ndefined' : _typeof( handler)) === 'objec t' ? deleg ateAll(han dler) : se lector ? d elegate(se lector, ha ndler) : h andler, | |||||
| 905 | option s: options | |||||
| 906 | }; | |||||
| 907 | ||||||
| 908 | if (type .indexOf(S PACE) > -1 ) { | |||||
| 909 | return type.spli t(SPACE).m ap(functio n (_type) { | |||||
| 910 | retu rn assign( { type: _t ype }, lis tener); | |||||
| 911 | }); | |||||
| 912 | } else { | |||||
| 913 | listen er.type = type; | |||||
| 914 | return [listener ]; | |||||
| 915 | } | |||||
| 916 | }; | |||||
| 917 | ||||||
| 918 | var popKey = functio n popKey(o bj, key) { | |||||
| 919 | var valu e = obj[ke y]; | |||||
| 920 | delete o bj[key]; | |||||
| 921 | return v alue; | |||||
| 922 | }; | |||||
| 923 | ||||||
| 924 | module.exp orts = fun ction beha vior(event s, props) { | |||||
| 925 | var list eners = Ob ject.keys( events).re duce(funct ion (memo, type) { | |||||
| 926 | var li steners = getListene rs(type, e vents[type ]); | |||||
| 927 | return memo.conc at(listene rs); | |||||
| 928 | }, []); | |||||
| 929 | ||||||
| 930 | return a ssign({ | |||||
| 931 | add: f unction ad dBehavior( element) { | |||||
| 932 | list eners.forE ach(functi on (listen er) { | |||||
| 933 | el ement.addE ventListen er(listene r.type, li stener.del egate, lis tener.opti ons); | |||||
| 934 | }); | |||||
| 935 | }, | |||||
| 936 | remove : function removeBeh avior(elem ent) { | |||||
| 937 | list eners.forE ach(functi on (listen er) { | |||||
| 938 | el ement.remo veEventLis tener(list ener.type, listener. delegate, listener.o ptions); | |||||
| 939 | }); | |||||
| 940 | } | |||||
| 941 | }, props ); | |||||
| 942 | }; | |||||
| 943 | ||||||
| 944 | },{"../del egate":11, "../delega teAll":12, "object-as sign":8}], 10:[functi on(require ,module,ex ports){ | |||||
| 945 | "use stric t"; | |||||
| 946 | ||||||
| 947 | module.exp orts = fun ction comp ose(functi ons) { | |||||
| 948 | return f unction (e ) { | |||||
| 949 | return functions .some(func tion (fn) { | |||||
| 950 | retu rn fn.call (this, e) === false; | |||||
| 951 | }, thi s); | |||||
| 952 | }; | |||||
| 953 | }; | |||||
| 954 | ||||||
| 955 | },{}],11:[ function(r equire,mod ule,export s){ | |||||
| 956 | 'use stric t'; | |||||
| 957 | ||||||
| 958 | // polyfil l Element. prototype. closest | |||||
| 959 | require('e lement-clo sest'); | |||||
| 960 | ||||||
| 961 | module.exp orts = fun ction dele gate(selec tor, fn) { | |||||
| 962 | return f unction de legation(e vent) { | |||||
| 963 | var ta rget = eve nt.target. closest(se lector); | |||||
| 964 | if (ta rget) { | |||||
| 965 | retu rn fn.call (target, e vent); | |||||
| 966 | } | |||||
| 967 | }; | |||||
| 968 | }; | |||||
| 969 | ||||||
| 970 | },{"elemen t-closest" :6}],12:[f unction(re quire,modu le,exports ){ | |||||
| 971 | 'use stric t'; | |||||
| 972 | ||||||
| 973 | var delega te = requi re('../del egate'); | |||||
| 974 | var compos e = requir e('../comp ose'); | |||||
| 975 | ||||||
| 976 | var SPLAT = '*'; | |||||
| 977 | ||||||
| 978 | module.exp orts = fun ction dele gateAll(se lectors) { | |||||
| 979 | var keys = Object. keys(selec tors); | |||||
| 980 | ||||||
| 981 | // XXX o ptimizatio n: if ther e is only one handle r and it a pplies to | |||||
| 982 | // all e lements (t he "*" CSS selector) , then jus t return t hat | |||||
| 983 | // handl er | |||||
| 984 | if (keys .length == = 1 && key s[0] === S PLAT) { | |||||
| 985 | return selectors [SPLAT]; | |||||
| 986 | } | |||||
| 987 | ||||||
| 988 | var dele gates = ke ys.reduce( function ( memo, sele ctor) { | |||||
| 989 | memo.p ush(delega te(selecto r, selecto rs[selecto r])); | |||||
| 990 | return memo; | |||||
| 991 | }, []); | |||||
| 992 | return c ompose(del egates); | |||||
| 993 | }; | |||||
| 994 | ||||||
| 995 | },{"../com pose":10," ../delegat e":11}],13 :[function (require,m odule,expo rts){ | |||||
| 996 | "use stric t"; | |||||
| 997 | ||||||
| 998 | module.exp orts = fun ction igno re(element , fn) { | |||||
| 999 | return f unction ig norance(e) { | |||||
| 1000 | if (el ement !== e.target & & !element .contains( e.target)) { | |||||
| 1001 | retu rn fn.call (this, e); | |||||
| 1002 | } | |||||
| 1003 | }; | |||||
| 1004 | }; | |||||
| 1005 | ||||||
| 1006 | },{}],14:[ function(r equire,mod ule,export s){ | |||||
| 1007 | "use stric t"; | |||||
| 1008 | ||||||
| 1009 | module.exp orts = fun ction once (listener, options) { | |||||
| 1010 | var wrap ped = func tion wrapp edOnce(e) { | |||||
| 1011 | e.curr entTarget. removeEven tListener( e.type, wr apped, opt ions); | |||||
| 1012 | return listener. call(this, e); | |||||
| 1013 | }; | |||||
| 1014 | return w rapped; | |||||
| 1015 | }; | |||||
| 1016 | ||||||
| 1017 | },{}],15:[ function(r equire,mod ule,export s){ | |||||
| 1018 | 'use stric t'; | |||||
| 1019 | ||||||
| 1020 | var _typeo f = typeof Symbol == = "functio n" && type of Symbol. iterator = == "symbol " ? functi on (obj) { return ty peof obj; } : functi on (obj) { return ob j && typeo f Symbol = == "functi on" && obj .construct or === Sym bol && obj !== Symbo l.prototyp e ? "symbo l" : typeo f obj; }; | |||||
| 1021 | ||||||
| 1022 | var RE_TRI M = /(^\s+ )|(\s+$)/g ; | |||||
| 1023 | var RE_SPL IT = /\s+/ ; | |||||
| 1024 | ||||||
| 1025 | var trim = String.pr ototype.tr im ? funct ion (str) { | |||||
| 1026 | return s tr.trim(); | |||||
| 1027 | } : functi on (str) { | |||||
| 1028 | return s tr.replace (RE_TRIM, ''); | |||||
| 1029 | }; | |||||
| 1030 | ||||||
| 1031 | var queryB yId = func tion query ById(id) { | |||||
| 1032 | return t his.queryS elector('[ id="' + id .replace(/ "/g, '\\"' ) + '"]'); | |||||
| 1033 | }; | |||||
| 1034 | ||||||
| 1035 | module.exp orts = fun ction reso lveIds(ids , doc) { | |||||
| 1036 | if (type of ids !== 'string') { | |||||
| 1037 | throw new Error( 'Expected a string b ut got ' + (typeof i ds === 'un defined' ? 'undefine d' : _type of(ids))); | |||||
| 1038 | } | |||||
| 1039 | ||||||
| 1040 | if (!doc ) { | |||||
| 1041 | doc = window.doc ument; | |||||
| 1042 | } | |||||
| 1043 | ||||||
| 1044 | var getE lementById = doc.get ElementByI d ? doc.ge tElementBy Id.bind(do c) : query ById.bind( doc); | |||||
| 1045 | ||||||
| 1046 | ids = tr im(ids).sp lit(RE_SPL IT); | |||||
| 1047 | ||||||
| 1048 | // XXX w e can shor t-circuit here becau se trimmin g and spli tting a | |||||
| 1049 | // strin g of just whitespace produces an array c ontaining a single, | |||||
| 1050 | // empty string | |||||
| 1051 | if (ids. length === 1 && ids[ 0] === '') { | |||||
| 1052 | return []; | |||||
| 1053 | } | |||||
| 1054 | ||||||
| 1055 | return i ds.map(fun ction (id) { | |||||
| 1056 | var el = getElem entById(id ); | |||||
| 1057 | if (!e l) { | |||||
| 1058 | thro w new Erro r('no elem ent with i d: "' + id + '"'); | |||||
| 1059 | } | |||||
| 1060 | return el; | |||||
| 1061 | }); | |||||
| 1062 | }; | |||||
| 1063 | ||||||
| 1064 | },{}],16:[ function(r equire,mod ule,export s){ | |||||
| 1065 | 'use stric t'; | |||||
| 1066 | ||||||
| 1067 | function _ defineProp erty(obj, key, value ) { if (ke y in obj) { Object.d efinePrope rty(obj, k ey, { valu e: value, enumerable : true, co nfigurable : true, wr itable: tr ue }); } e lse { obj[ key] = val ue; } retu rn obj; } | |||||
| 1068 | ||||||
| 1069 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1070 | var filter = require ('array-fi lter'); | |||||
| 1071 | var forEac h = requir e('array-f oreach'); | |||||
| 1072 | var toggle = require ('../utils /toggle'); | |||||
| 1073 | var isElem entInViewp ort = requ ire('../ut ils/is-in- viewport') ; | |||||
| 1074 | ||||||
| 1075 | var CLICK = require( '../events ').CLICK; | |||||
| 1076 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1077 | ||||||
| 1078 | // XXX mat ch .usa-ac cordion an d .usa-acc ordion-bor dered | |||||
| 1079 | var ACCORD ION = '.' + PREFIX + '-accordi on, .' + P REFIX + '- accordion- bordered'; | |||||
| 1080 | var BUTTON = '.' + P REFIX + '- accordion- button[ari a-controls ]'; | |||||
| 1081 | var EXPAND ED = 'aria -expanded' ; | |||||
| 1082 | var MULTIS ELECTABLE = 'aria-mu ltiselecta ble'; | |||||
| 1083 | ||||||
| 1084 | /** | |||||
| 1085 | * Toggle a button's "pressed" state, op tionally p roviding a target | |||||
| 1086 | * state. | |||||
| 1087 | * | |||||
| 1088 | * @param {HTMLButto nElement} button | |||||
| 1089 | * @param {boolean?} expanded If no stat e is provi ded, the c urrent | |||||
| 1090 | * state w ill be tog gled (from false to true, and vice-versa ). | |||||
| 1091 | * @return {boolean} the resul ting state | |||||
| 1092 | */ | |||||
| 1093 | var toggle Button = f unction to ggleButton (button, e xpanded) { | |||||
| 1094 | var acco rdion = bu tton.close st(ACCORDI ON); | |||||
| 1095 | if (!acc ordion) { | |||||
| 1096 | throw new Error( BUTTON + ' is missin g outer ' + ACCORDIO N); | |||||
| 1097 | } | |||||
| 1098 | ||||||
| 1099 | expanded = toggle( button, ex panded); | |||||
| 1100 | // XXX m ultiselect able is op t-in, to p reserve le gacy behav ior | |||||
| 1101 | var mult iselectabl e = accord ion.getAtt ribute(MUL TISELECTAB LE) === 't rue'; | |||||
| 1102 | ||||||
| 1103 | if (expa nded && !m ultiselect able) { | |||||
| 1104 | forEac h(getAccor dionButton s(accordio n), functi on (other) { | |||||
| 1105 | if ( other !== button) { | |||||
| 1106 | to ggle(other , false); | |||||
| 1107 | } | |||||
| 1108 | }); | |||||
| 1109 | } | |||||
| 1110 | }; | |||||
| 1111 | ||||||
| 1112 | /** | |||||
| 1113 | * @param {HTMLButto nElement} button | |||||
| 1114 | * @return {boolean} true | |||||
| 1115 | */ | |||||
| 1116 | var showBu tton = fun ction show Button(but ton) { | |||||
| 1117 | return t oggleButto n(button, true); | |||||
| 1118 | }; | |||||
| 1119 | ||||||
| 1120 | /** | |||||
| 1121 | * @param {HTMLButto nElement} button | |||||
| 1122 | * @return {boolean} false | |||||
| 1123 | */ | |||||
| 1124 | var hideBu tton = fun ction hide Button(but ton) { | |||||
| 1125 | return t oggleButto n(button, false); | |||||
| 1126 | }; | |||||
| 1127 | ||||||
| 1128 | /** | |||||
| 1129 | * Get an Array of b utton elem ents belon ging direc tly to the given | |||||
| 1130 | * accordi on element . | |||||
| 1131 | * @param {HTMLEleme nt} accord ion | |||||
| 1132 | * @return {array<HT MLButtonEl ement>} | |||||
| 1133 | */ | |||||
| 1134 | var getAcc ordionButt ons = func tion getAc cordionBut tons(accor dion) { | |||||
| 1135 | return f ilter(acco rdion.quer ySelectorA ll(BUTTON) , function (button) { | |||||
| 1136 | return button.cl osest(ACCO RDION) === accordion ; | |||||
| 1137 | }); | |||||
| 1138 | }; | |||||
| 1139 | ||||||
| 1140 | var accord ion = beha vior(_defi neProperty ({}, CLICK , _defineP roperty({} , BUTTON, function ( event) { | |||||
| 1141 | event.pr eventDefau lt(); | |||||
| 1142 | toggleBu tton(this) ; | |||||
| 1143 | ||||||
| 1144 | if (this .getAttrib ute(EXPAND ED) === 't rue') { | |||||
| 1145 | // We were just expanded, but if ano ther accor dion was a lso just | |||||
| 1146 | // col lapsed, we may no lo nger be in the viewp ort. This ensures | |||||
| 1147 | // tha t we are s till visib le, so the user isn' t confused . | |||||
| 1148 | if (!i sElementIn Viewport(t his)) this .scrollInt oView(); | |||||
| 1149 | } | |||||
| 1150 | })), { | |||||
| 1151 | init: fu nction ini t(root) { | |||||
| 1152 | forEac h(root.que rySelector All(BUTTON ), functio n (button) { | |||||
| 1153 | var expanded = button.ge tAttribute (EXPANDED) === 'true '; | |||||
| 1154 | togg leButton(b utton, exp anded); | |||||
| 1155 | }); | |||||
| 1156 | }, | |||||
| 1157 | ACCORDIO N: ACCORDI ON, | |||||
| 1158 | BUTTON: BUTTON, | |||||
| 1159 | show: sh owButton, | |||||
| 1160 | hide: hi deButton, | |||||
| 1161 | toggle: toggleButt on, | |||||
| 1162 | getButto ns: getAcc ordionButt ons | |||||
| 1163 | }); | |||||
| 1164 | ||||||
| 1165 | /** | |||||
| 1166 | * TODO: f or 2.0, re move every thing belo w this com ment and e xport the | |||||
| 1167 | * behavio r directly : | |||||
| 1168 | * | |||||
| 1169 | * module. exports = behavior({ ...}); | |||||
| 1170 | */ | |||||
| 1171 | var Accord ion = func tion Accor dion(root) { | |||||
| 1172 | this.roo t = root; | |||||
| 1173 | accordio n.on(this. root); | |||||
| 1174 | }; | |||||
| 1175 | ||||||
| 1176 | // copy al l of the b ehavior me thods and props to A ccordion | |||||
| 1177 | var assign = require ('object-a ssign'); | |||||
| 1178 | assign(Acc ordion, ac cordion); | |||||
| 1179 | ||||||
| 1180 | Accordion. prototype. show = sho wButton; | |||||
| 1181 | Accordion. prototype. hide = hid eButton; | |||||
| 1182 | ||||||
| 1183 | Accordion. prototype. remove = f unction () { | |||||
| 1184 | accordio n.off(this .root); | |||||
| 1185 | }; | |||||
| 1186 | ||||||
| 1187 | module.exp orts = Acc ordion; | |||||
| 1188 | ||||||
| 1189 | },{"../con fig":25,". ./events": 26,"../uti ls/behavio r":30,"../ utils/is-i n-viewport ":31,"../u tils/toggl e":35,"arr ay-filter" :1,"array- foreach":2 ,"object-a ssign":8}] ,17:[funct ion(requir e,module,e xports){ | |||||
| 1190 | 'use stric t'; | |||||
| 1191 | ||||||
| 1192 | function _ defineProp erty(obj, key, value ) { if (ke y in obj) { Object.d efinePrope rty(obj, k ey, { valu e: value, enumerable : true, co nfigurable : true, wr itable: tr ue }); } e lse { obj[ key] = val ue; } retu rn obj; } | |||||
| 1193 | ||||||
| 1194 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1195 | var toggle = require ('../utils /toggle'); | |||||
| 1196 | ||||||
| 1197 | var CLICK = require( '../events ').CLICK; | |||||
| 1198 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1199 | ||||||
| 1200 | var HEADER = '.' + P REFIX + '- banner-hea der'; | |||||
| 1201 | var EXPAND ED_CLASS = PREFIX + '-banner-h eader-expa nded'; | |||||
| 1202 | ||||||
| 1203 | var toggle Banner = f unction to ggleBanner (event) { | |||||
| 1204 | event.pr eventDefau lt(); | |||||
| 1205 | this.clo sest(HEADE R).classLi st.toggle( EXPANDED_C LASS); | |||||
| 1206 | return f alse; | |||||
| 1207 | }; | |||||
| 1208 | ||||||
| 1209 | module.exp orts = beh avior(_def inePropert y({}, CLIC K, _define Property({ }, HEADER + ' [aria- controls]' , toggleBa nner))); | |||||
| 1210 | ||||||
| 1211 | },{"../con fig":25,". ./events": 26,"../uti ls/behavio r":30,"../ utils/togg le":35}],1 8:[functio n(require, module,exp orts){ | |||||
| 1212 | 'use stric t'; | |||||
| 1213 | ||||||
| 1214 | function _ defineProp erty(obj, key, value ) { if (ke y in obj) { Object.d efinePrope rty(obj, k ey, { valu e: value, enumerable : true, co nfigurable : true, wr itable: tr ue }); } e lse { obj[ key] = val ue; } retu rn obj; } | |||||
| 1215 | ||||||
| 1216 | var accord ion = requ ire('./acc ordion'); | |||||
| 1217 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1218 | var deboun ce = requi re('lodash .debounce' ); | |||||
| 1219 | var forEac h = requir e('array-f oreach'); | |||||
| 1220 | var select = require ('../utils /select'); | |||||
| 1221 | ||||||
| 1222 | var CLICK = require( '../events ').CLICK; | |||||
| 1223 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1224 | ||||||
| 1225 | var HIDDEN = 'hidden '; | |||||
| 1226 | var SCOPE = '.' + PR EFIX + '-f ooter-big' ; | |||||
| 1227 | var NAV = SCOPE + ' nav'; | |||||
| 1228 | var BUTTON = NAV + ' .' + PREF IX + '-foo ter-primar y-link'; | |||||
| 1229 | var LIST = NAV + ' u l'; | |||||
| 1230 | ||||||
| 1231 | var HIDE_M AX_WIDTH = 600; | |||||
| 1232 | var DEBOUN CE_RATE = 180; | |||||
| 1233 | ||||||
| 1234 | var showPa nel = func tion showP anel() { | |||||
| 1235 | var list = this.cl osest(LIST ); | |||||
| 1236 | list.cla ssList.rem ove(HIDDEN ); | |||||
| 1237 | ||||||
| 1238 | // NB: t his *shoul d* always succeed be cause the button | |||||
| 1239 | // selec tor is sco ped to ".{ prefix}-fo oter-big n av" | |||||
| 1240 | var list s = list.c losest(NAV ).querySel ectorAll(' ul'); | |||||
| 1241 | ||||||
| 1242 | forEach( lists, fun ction (el) { | |||||
| 1243 | if (el !== list) { | |||||
| 1244 | el.c lassList.a dd(HIDDEN) ; | |||||
| 1245 | } | |||||
| 1246 | }); | |||||
| 1247 | }; | |||||
| 1248 | ||||||
| 1249 | var resize = debounc e(function () { | |||||
| 1250 | var hidd en = windo w.innerWid th < HIDE_ MAX_WIDTH; | |||||
| 1251 | forEach( select(LIS T), functi on (list) { | |||||
| 1252 | list.c lassList.t oggle(HIDD EN, hidden ); | |||||
| 1253 | }); | |||||
| 1254 | }, DEBOUNC E_RATE); | |||||
| 1255 | ||||||
| 1256 | module.exp orts = beh avior(_def inePropert y({}, CLIC K, _define Property({ }, BUTTON, showPanel )), { | |||||
| 1257 | // expor t for use elsewhere | |||||
| 1258 | HIDE_MAX _WIDTH: HI DE_MAX_WID TH, | |||||
| 1259 | DEBOUNCE _RATE: DEB OUNCE_RATE , | |||||
| 1260 | ||||||
| 1261 | init: fu nction ini t(target) { | |||||
| 1262 | resize (); | |||||
| 1263 | window .addEventL istener('r esize', re size); | |||||
| 1264 | }, | |||||
| 1265 | ||||||
| 1266 | teardown : function teardown( target) { | |||||
| 1267 | window .removeEve ntListener ('resize', resize); | |||||
| 1268 | } | |||||
| 1269 | }); | |||||
| 1270 | ||||||
| 1271 | },{"../con fig":25,". ./events": 26,"../uti ls/behavio r":30,"../ utils/sele ct":32,"./ accordion" :16,"array -foreach": 2,"lodash. debounce": 7}],19:[fu nction(req uire,modul e,exports) { | |||||
| 1272 | 'use stric t'; | |||||
| 1273 | ||||||
| 1274 | module.exp orts = { | |||||
| 1275 | accordio n: require ('./accord ion'), | |||||
| 1276 | banner: require('. /banner'), | |||||
| 1277 | footer: require('. /footer'), | |||||
| 1278 | navigati on: requir e('./navig ation'), | |||||
| 1279 | password : require( './passwor d'), | |||||
| 1280 | search: require('. /search'), | |||||
| 1281 | skipnav: require(' ./skipnav' ), | |||||
| 1282 | validato r: require ('./valida tor') | |||||
| 1283 | }; | |||||
| 1284 | ||||||
| 1285 | },{"./acco rdion":16, "./banner" :17,"./foo ter":18,". /navigatio n":20,"./p assword":2 1,"./searc h":22,"./s kipnav":23 ,"./valida tor":24}], 20:[functi on(require ,module,ex ports){ | |||||
| 1286 | 'use stric t'; | |||||
| 1287 | ||||||
| 1288 | var _CLICK ; | |||||
| 1289 | ||||||
| 1290 | function _ defineProp erty(obj, key, value ) { if (ke y in obj) { Object.d efinePrope rty(obj, k ey, { valu e: value, enumerable : true, co nfigurable : true, wr itable: tr ue }); } e lse { obj[ key] = val ue; } retu rn obj; } | |||||
| 1291 | ||||||
| 1292 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1293 | var forEac h = requir e('array-f oreach'); | |||||
| 1294 | var select = require ('../utils /select'); | |||||
| 1295 | var accord ion = requ ire('./acc ordion'); | |||||
| 1296 | ||||||
| 1297 | var CLICK = require( '../events ').CLICK; | |||||
| 1298 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1299 | ||||||
| 1300 | var NAV = '.' + PREF IX + '-nav '; | |||||
| 1301 | var NAV_LI NKS = NAV + ' a'; | |||||
| 1302 | var OPENER S = '.' + PREFIX + ' -menu-btn' ; | |||||
| 1303 | var CLOSE_ BUTTON = ' .' + PREFI X + '-nav- close'; | |||||
| 1304 | var OVERLA Y = '.' + PREFIX + ' -overlay'; | |||||
| 1305 | var CLOSER S = CLOSE_ BUTTON + ' , .' + PRE FIX + '-ov erlay'; | |||||
| 1306 | var TOGGLE S = [NAV, OVERLAY].j oin(', '); | |||||
| 1307 | ||||||
| 1308 | var ACTIVE _CLASS = ' usa-mobile _nav-activ e'; | |||||
| 1309 | var VISIBL E_CLASS = 'is-visibl e'; | |||||
| 1310 | ||||||
| 1311 | var isActi ve = funct ion isActi ve() { | |||||
| 1312 | return d ocument.bo dy.classLi st.contain s(ACTIVE_C LASS); | |||||
| 1313 | }; | |||||
| 1314 | ||||||
| 1315 | var toggle Nav = func tion toggl eNav(activ e) { | |||||
| 1316 | var body = documen t.body; | |||||
| 1317 | if (type of active !== 'boole an') { | |||||
| 1318 | active = !isActi ve(); | |||||
| 1319 | } | |||||
| 1320 | body.cla ssList.tog gle(ACTIVE _CLASS, ac tive); | |||||
| 1321 | ||||||
| 1322 | forEach( select(TOG GLES), fun ction (el) { | |||||
| 1323 | el.cla ssList.tog gle(VISIBL E_CLASS, a ctive); | |||||
| 1324 | }); | |||||
| 1325 | ||||||
| 1326 | var clos eButton = body.query Selector(C LOSE_BUTTO N); | |||||
| 1327 | var menu Button = b ody.queryS elector(OP ENERS); | |||||
| 1328 | ||||||
| 1329 | if (acti ve && clos eButton) { | |||||
| 1330 | // The mobile na v was just activated , so focus on the cl ose button , | |||||
| 1331 | // whi ch is just before al l the nav elements i n the tab order. | |||||
| 1332 | closeB utton.focu s(); | |||||
| 1333 | } else i f (!active && docume nt.activeE lement === closeButt on && menu Button) { | |||||
| 1334 | // The mobile na v was just deactivat ed, and fo cus was on the close | |||||
| 1335 | // but ton, which is no lon ger visibl e. We don' t want the focus to | |||||
| 1336 | // dis appear int o the void , so focus on the me nu button if it's | |||||
| 1337 | // vis ible (this may have been what the user w as just fo cused on, | |||||
| 1338 | // if they trigg ered the m obile nav by mistake ). | |||||
| 1339 | menuBu tton.focus (); | |||||
| 1340 | } | |||||
| 1341 | ||||||
| 1342 | return a ctive; | |||||
| 1343 | }; | |||||
| 1344 | ||||||
| 1345 | var resize = functio n resize() { | |||||
| 1346 | var clos er = docum ent.body.q uerySelect or(CLOSE_B UTTON); | |||||
| 1347 | ||||||
| 1348 | if (isAc tive() && closer && closer.get BoundingCl ientRect() .width === 0) { | |||||
| 1349 | // The mobile na v is activ e, but the close box isn't vis ible, whic h | |||||
| 1350 | // mea ns the use r's viewpo rt has bee n resized so that it is no lon ger | |||||
| 1351 | // in mobile mod e. Let's m ake the pa ge state c onsistent by | |||||
| 1352 | // dea ctivating the mobile nav. | |||||
| 1353 | toggle Nav.call(c loser, fal se); | |||||
| 1354 | } | |||||
| 1355 | }; | |||||
| 1356 | ||||||
| 1357 | var naviga tion = beh avior(_def inePropert y({}, CLIC K, (_CLICK = {}, _de fineProper ty(_CLICK, OPENERS, toggleNav) , _defineP roperty(_C LICK, CLOS ERS, toggl eNav), _de fineProper ty(_CLICK, NAV_LINKS , function () { | |||||
| 1358 | // A nav igation li nk has bee n clicked! We want t o collapse any | |||||
| 1359 | // hiera rchical na vigation U I it's a p art of, so that the user | |||||
| 1360 | // can f ocus on wh atever the y've just selected. | |||||
| 1361 | ||||||
| 1362 | // Some navigation links are inside ac cordions; when they' re | |||||
| 1363 | // click ed, we wan t to colla pse those accordions . | |||||
| 1364 | var acc = this.clo sest(accor dion.ACCOR DION); | |||||
| 1365 | if (acc) { | |||||
| 1366 | accord ion.getBut tons(acc). forEach(fu nction (bt n) { | |||||
| 1367 | retu rn accordi on.hide(bt n); | |||||
| 1368 | }); | |||||
| 1369 | } | |||||
| 1370 | ||||||
| 1371 | // If th e mobile n avigation menu is ac tive, we w ant to hid e it. | |||||
| 1372 | if (isAc tive()) { | |||||
| 1373 | toggle Nav.call(t his, false ); | |||||
| 1374 | } | |||||
| 1375 | }), _CLICK )), { | |||||
| 1376 | init: fu nction ini t() { | |||||
| 1377 | resize (); | |||||
| 1378 | window .addEventL istener('r esize', re size, fals e); | |||||
| 1379 | }, | |||||
| 1380 | teardown : function teardown( ) { | |||||
| 1381 | window .removeEve ntListener ('resize', resize, f alse); | |||||
| 1382 | } | |||||
| 1383 | }); | |||||
| 1384 | ||||||
| 1385 | /** | |||||
| 1386 | * TODO fo r 2.0, rem ove this s tatement a nd export `navigatio n` directl y: | |||||
| 1387 | * | |||||
| 1388 | * module. exports = behavior({ ...}); | |||||
| 1389 | */ | |||||
| 1390 | var assign = require ('object-a ssign'); | |||||
| 1391 | module.exp orts = ass ign(functi on (el) { | |||||
| 1392 | return n avigation. on(el); | |||||
| 1393 | }, navigat ion); | |||||
| 1394 | ||||||
| 1395 | },{"../con fig":25,". ./events": 26,"../uti ls/behavio r":30,"../ utils/sele ct":32,"./ accordion" :16,"array -foreach": 2,"object- assign":8} ],21:[func tion(requi re,module, exports){ | |||||
| 1396 | 'use stric t'; | |||||
| 1397 | ||||||
| 1398 | function _ defineProp erty(obj, key, value ) { if (ke y in obj) { Object.d efinePrope rty(obj, k ey, { valu e: value, enumerable : true, co nfigurable : true, wr itable: tr ue }); } e lse { obj[ key] = val ue; } retu rn obj; } | |||||
| 1399 | ||||||
| 1400 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1401 | var toggle FormInput = require( '../utils/ toggle-for m-input'); | |||||
| 1402 | ||||||
| 1403 | var CLICK = require( '../events ').CLICK; | |||||
| 1404 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1405 | ||||||
| 1406 | var LINK = '.' + PRE FIX + '-sh ow_passwor d, .' + PR EFIX + '-s how_multip assword'; | |||||
| 1407 | ||||||
| 1408 | var toggle = functio n toggle(e vent) { | |||||
| 1409 | event.pr eventDefau lt(); | |||||
| 1410 | toggleFo rmInput(th is); | |||||
| 1411 | }; | |||||
| 1412 | ||||||
| 1413 | module.exp orts = beh avior(_def inePropert y({}, CLIC K, _define Property({ }, LINK, t oggle))); | |||||
| 1414 | ||||||
| 1415 | },{"../con fig":25,". ./events": 26,"../uti ls/behavio r":30,"../ utils/togg le-form-in put":34}], 22:[functi on(require ,module,ex ports){ | |||||
| 1416 | 'use stric t'; | |||||
| 1417 | ||||||
| 1418 | function _ defineProp erty(obj, key, value ) { if (ke y in obj) { Object.d efinePrope rty(obj, k ey, { valu e: value, enumerable : true, co nfigurable : true, wr itable: tr ue }); } e lse { obj[ key] = val ue; } retu rn obj; } | |||||
| 1419 | ||||||
| 1420 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1421 | var forEac h = requir e('array-f oreach'); | |||||
| 1422 | var ignore = require ('receptor /ignore'); | |||||
| 1423 | var select = require ('../utils /select'); | |||||
| 1424 | ||||||
| 1425 | var CLICK = require( '../events ').CLICK; | |||||
| 1426 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1427 | ||||||
| 1428 | var BUTTON = '.js-se arch-butto n'; | |||||
| 1429 | var FORM = '.js-sear ch-form'; | |||||
| 1430 | var INPUT = '[type=s earch]'; | |||||
| 1431 | var CONTEX T = 'heade r'; // XXX | |||||
| 1432 | var VISUAL LY_HIDDEN = PREFIX + '-sr-only '; | |||||
| 1433 | ||||||
| 1434 | var lastBu tton = voi d 0; | |||||
| 1435 | ||||||
| 1436 | var showSe arch = fun ction show Search(eve nt) { | |||||
| 1437 | toggleSe arch(this, true); | |||||
| 1438 | lastButt on = this; | |||||
| 1439 | }; | |||||
| 1440 | ||||||
| 1441 | var hideSe arch = fun ction hide Search(eve nt) { | |||||
| 1442 | toggleSe arch(this, false); | |||||
| 1443 | lastButt on = undef ined; | |||||
| 1444 | }; | |||||
| 1445 | ||||||
| 1446 | var getFor m = functi on getForm (button) { | |||||
| 1447 | var cont ext = butt on.closest (CONTEXT); | |||||
| 1448 | return c ontext ? c ontext.que rySelector (FORM) : d ocument.qu erySelecto r(FORM); | |||||
| 1449 | }; | |||||
| 1450 | ||||||
| 1451 | var toggle Search = f unction to ggleSearch (button, a ctive) { | |||||
| 1452 | var form = getForm (button); | |||||
| 1453 | if (!for m) { | |||||
| 1454 | throw new Error( 'No ' + FO RM + ' fou nd for sea rch toggle in ' + CO NTEXT + '! '); | |||||
| 1455 | } | |||||
| 1456 | ||||||
| 1457 | button.h idden = ac tive; | |||||
| 1458 | form.cla ssList.tog gle(VISUAL LY_HIDDEN, !active); | |||||
| 1459 | ||||||
| 1460 | if (acti ve) { | |||||
| 1461 | var in put = form .querySele ctor(INPUT ); | |||||
| 1462 | if (in put) { | |||||
| 1463 | inpu t.focus(); | |||||
| 1464 | } | |||||
| 1465 | // whe n the user clicks _o utside_ of the form w/ignore() : hide the | |||||
| 1466 | // sea rch, then remove the listener | |||||
| 1467 | var li stener = i gnore(form , function (e) { | |||||
| 1468 | if ( lastButton ) { | |||||
| 1469 | hi deSearch.c all(lastBu tton); | |||||
| 1470 | } | |||||
| 1471 | docu ment.body. removeEven tListener( CLICK, lis tener); | |||||
| 1472 | }); | |||||
| 1473 | ||||||
| 1474 | // Nor mally we w ould just run this c ode withou t a timeou t, but | |||||
| 1475 | // IE1 1 and Edge will actu ally call the listen er *immedi ately* bec ause | |||||
| 1476 | // the y are curr ently hand ling this exact type of event, so we'll | |||||
| 1477 | // mak e sure the browser i s done han dling the current cl ick event, | |||||
| 1478 | // if any, befor e we attac h the list ener. | |||||
| 1479 | setTim eout(funct ion () { | |||||
| 1480 | docu ment.body. addEventLi stener(CLI CK, listen er); | |||||
| 1481 | }, 0); | |||||
| 1482 | } | |||||
| 1483 | }; | |||||
| 1484 | ||||||
| 1485 | var search = behavio r(_defineP roperty({} , CLICK, _ defineProp erty({}, B UTTON, sho wSearch)), { | |||||
| 1486 | init: fu nction ini t(target) { | |||||
| 1487 | forEac h(select(B UTTON, tar get), func tion (butt on) { | |||||
| 1488 | togg leSearch(b utton, fal se); | |||||
| 1489 | }); | |||||
| 1490 | }, | |||||
| 1491 | teardown : function teardown( target) { | |||||
| 1492 | // for get the la st button clicked | |||||
| 1493 | lastBu tton = und efined; | |||||
| 1494 | } | |||||
| 1495 | }); | |||||
| 1496 | ||||||
| 1497 | /** | |||||
| 1498 | * TODO fo r 2.0, rem ove this s tatement a nd export `navigatio n` directl y: | |||||
| 1499 | * | |||||
| 1500 | * module. exports = behavior({ ...}); | |||||
| 1501 | */ | |||||
| 1502 | var assign = require ('object-a ssign'); | |||||
| 1503 | module.exp orts = ass ign(functi on (el) { | |||||
| 1504 | return s earch.on(e l); | |||||
| 1505 | }, search) ; | |||||
| 1506 | ||||||
| 1507 | },{"../con fig":25,". ./events": 26,"../uti ls/behavio r":30,"../ utils/sele ct":32,"ar ray-foreac h":2,"obje ct-assign" :8,"recept or/ignore" :13}],23:[ function(r equire,mod ule,export s){ | |||||
| 1508 | 'use stric t'; | |||||
| 1509 | ||||||
| 1510 | function _ defineProp erty(obj, key, value ) { if (ke y in obj) { Object.d efinePrope rty(obj, k ey, { valu e: value, enumerable : true, co nfigurable : true, wr itable: tr ue }); } e lse { obj[ key] = val ue; } retu rn obj; } | |||||
| 1511 | ||||||
| 1512 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1513 | var once = require(' receptor/o nce'); | |||||
| 1514 | ||||||
| 1515 | var CLICK = require( '../events ').CLICK; | |||||
| 1516 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1517 | var LINK = '.' + PRE FIX + '-sk ipnav[href ^="#"]'; | |||||
| 1518 | ||||||
| 1519 | var setTab index = fu nction set Tabindex(e vent) { | |||||
| 1520 | // NB: w e know bec ause of th e selector we're del egating to below tha t the | |||||
| 1521 | // href already be gins with '#' | |||||
| 1522 | var id = this.getA ttribute(' href').sli ce(1); | |||||
| 1523 | var targ et = docum ent.getEle mentById(i d); | |||||
| 1524 | if (targ et) { | |||||
| 1525 | target .setAttrib ute('tabin dex', 0); | |||||
| 1526 | target .addEventL istener('b lur', once (function (event) { | |||||
| 1527 | targ et.setAttr ibute('tab index', -1 ); | |||||
| 1528 | })); | |||||
| 1529 | } else { | |||||
| 1530 | // thr ow an erro r? | |||||
| 1531 | } | |||||
| 1532 | }; | |||||
| 1533 | ||||||
| 1534 | module.exp orts = beh avior(_def inePropert y({}, CLIC K, _define Property({ }, LINK, s etTabindex ))); | |||||
| 1535 | ||||||
| 1536 | },{"../con fig":25,". ./events": 26,"../uti ls/behavio r":30,"rec eptor/once ":14}],24: [function( require,mo dule,expor ts){ | |||||
| 1537 | 'use stric t'; | |||||
| 1538 | ||||||
| 1539 | var behavi or = requi re('../uti ls/behavio r'); | |||||
| 1540 | var valida te = requi re('../uti ls/validat e-input'); | |||||
| 1541 | var deboun ce = requi re('lodash .debounce' ); | |||||
| 1542 | ||||||
| 1543 | var change = functio n change(e vent) { | |||||
| 1544 | return v alidate(th is); | |||||
| 1545 | }; | |||||
| 1546 | ||||||
| 1547 | var valida tor = beha vior({ | |||||
| 1548 | 'keyup c hange': { | |||||
| 1549 | 'input [data-vali dation-ele ment]': ch ange | |||||
| 1550 | } | |||||
| 1551 | }); | |||||
| 1552 | ||||||
| 1553 | /** | |||||
| 1554 | * TODO fo r 2.0, rem ove this s tatement a nd export `navigatio n` directl y: | |||||
| 1555 | * | |||||
| 1556 | * module. exports = behavior({ ...}); | |||||
| 1557 | */ | |||||
| 1558 | var assign = require ('object-a ssign'); | |||||
| 1559 | module.exp orts = ass ign(functi on (el) { | |||||
| 1560 | return v alidator.o n(el); | |||||
| 1561 | }, validat or); | |||||
| 1562 | ||||||
| 1563 | },{"../uti ls/behavio r":30,"../ utils/vali date-input ":36,"loda sh.debounc e":7,"obje ct-assign" :8}],25:[f unction(re quire,modu le,exports ){ | |||||
| 1564 | 'use stric t'; | |||||
| 1565 | ||||||
| 1566 | module.exp orts = { | |||||
| 1567 | prefix: 'usa' | |||||
| 1568 | }; | |||||
| 1569 | ||||||
| 1570 | },{}],26:[ function(r equire,mod ule,export s){ | |||||
| 1571 | 'use stric t'; | |||||
| 1572 | ||||||
| 1573 | module.exp orts = { | |||||
| 1574 | // This used to be condition ally depen dent on wh ether the | |||||
| 1575 | // brows er support ed touch e vents; if it did, `C LICK` was set to | |||||
| 1576 | // `touc hstart`. However, t his had do wnsides: | |||||
| 1577 | // | |||||
| 1578 | // * It pre-empted mobile br owsers' de fault beha vior of de tecting | |||||
| 1579 | // whe ther a tou ch turned into a scr oll, there by prevent ing | |||||
| 1580 | // use rs from us ing some o f our comp onents as scroll sur faces. | |||||
| 1581 | // | |||||
| 1582 | // * Som e devices, such as t he Microso ft Surface Pro, supp ort *both* | |||||
| 1583 | // tou ch and cli cks. This meant the conditiona l effectiv ely droppe d | |||||
| 1584 | // sup port for t he user's mouse, fru strating u sers who p referred | |||||
| 1585 | // it on those s ystems. | |||||
| 1586 | CLICK: ' click' | |||||
| 1587 | }; | |||||
| 1588 | ||||||
| 1589 | },{}],27:[ function(r equire,mod ule,export s){ | |||||
| 1590 | 'use stric t'; | |||||
| 1591 | ||||||
| 1592 | var elprot o = window .HTMLEleme nt.prototy pe; | |||||
| 1593 | var HIDDEN = 'hidden '; | |||||
| 1594 | ||||||
| 1595 | if (!(HIDD EN in elpr oto)) { | |||||
| 1596 | Object.d efinePrope rty(elprot o, HIDDEN, { | |||||
| 1597 | get: f unction ge t() { | |||||
| 1598 | retu rn this.ha sAttribute (HIDDEN); | |||||
| 1599 | }, | |||||
| 1600 | set: f unction se t(value) { | |||||
| 1601 | if ( value) { | |||||
| 1602 | th is.setAttr ibute(HIDD EN, ''); | |||||
| 1603 | } el se { | |||||
| 1604 | th is.removeA ttribute(H IDDEN); | |||||
| 1605 | } | |||||
| 1606 | } | |||||
| 1607 | }); | |||||
| 1608 | } | |||||
| 1609 | ||||||
| 1610 | },{}],28:[ function(r equire,mod ule,export s){ | |||||
| 1611 | 'use stric t'; | |||||
| 1612 | // polyfil ls HTMLEle ment.proto type.class List and D OMTokenLis t | |||||
| 1613 | ||||||
| 1614 | require('c lasslist-p olyfill'); | |||||
| 1615 | // polyfil ls HTMLEle ment.proto type.hidde n | |||||
| 1616 | require('. /element-h idden'); | |||||
| 1617 | ||||||
| 1618 | },{"./elem ent-hidden ":27,"clas slist-poly fill":3}], 29:[functi on(require ,module,ex ports){ | |||||
| 1619 | 'use stric t'; | |||||
| 1620 | ||||||
| 1621 | var domrea dy = requi re('domrea dy'); | |||||
| 1622 | ||||||
| 1623 | /** | |||||
| 1624 | * The 'po lyfills' d efine key ECMAScript 5 methods that may be missing from | |||||
| 1625 | * older b rowsers, s o must be loaded fir st. | |||||
| 1626 | */ | |||||
| 1627 | require('. /polyfills '); | |||||
| 1628 | ||||||
| 1629 | var uswds = require( './config' ); | |||||
| 1630 | ||||||
| 1631 | var compon ents = req uire('./co mponents') ; | |||||
| 1632 | uswds.comp onents = c omponents; | |||||
| 1633 | ||||||
| 1634 | domready(f unction () { | |||||
| 1635 | var targ et = docum ent.body; | |||||
| 1636 | for (var name in c omponents) { | |||||
| 1637 | var be havior = c omponents[ name]; | |||||
| 1638 | behavi or.on(targ et); | |||||
| 1639 | } | |||||
| 1640 | }); | |||||
| 1641 | ||||||
| 1642 | module.exp orts = usw ds; | |||||
| 1643 | ||||||
| 1644 | },{"./comp onents":19 ,"./config ":25,"./po lyfills":2 8,"domread y":4}],30: [function( require,mo dule,expor ts){ | |||||
| 1645 | 'use stric t'; | |||||
| 1646 | ||||||
| 1647 | var assign = require ('object-a ssign'); | |||||
| 1648 | var forEac h = requir e('array-f oreach'); | |||||
| 1649 | var Behavi or = requi re('recept or/behavio r'); | |||||
| 1650 | ||||||
| 1651 | var sequen ce = funct ion sequen ce() { | |||||
| 1652 | var seq = [].slice .call(argu ments); | |||||
| 1653 | return f unction (t arget) { | |||||
| 1654 | var _t his = this ; | |||||
| 1655 | ||||||
| 1656 | if (!t arget) { | |||||
| 1657 | targ et = docum ent.body; | |||||
| 1658 | } | |||||
| 1659 | forEac h(seq, fun ction (met hod) { | |||||
| 1660 | if ( typeof _th is[method] === 'func tion') { | |||||
| 1661 | _t his[method ].call(_th is, target ); | |||||
| 1662 | } | |||||
| 1663 | }); | |||||
| 1664 | }; | |||||
| 1665 | }; | |||||
| 1666 | ||||||
| 1667 | /** | |||||
| 1668 | * @name b ehavior | |||||
| 1669 | * @param {object} e vents | |||||
| 1670 | * @param {object?} props | |||||
| 1671 | * @return {receptor .behavior} | |||||
| 1672 | */ | |||||
| 1673 | module.exp orts = fun ction (eve nts, props ) { | |||||
| 1674 | return B ehavior(ev ents, assi gn({ | |||||
| 1675 | on: se quence('in it', 'add' ), | |||||
| 1676 | off: s equence('t eardown', 'remove') | |||||
| 1677 | }, props )); | |||||
| 1678 | }; | |||||
| 1679 | ||||||
| 1680 | },{"array- foreach":2 ,"object-a ssign":8," receptor/b ehavior":9 }],31:[fun ction(requ ire,module ,exports){ | |||||
| 1681 | "use stric t"; | |||||
| 1682 | ||||||
| 1683 | // https:/ /stackover flow.com/a /7557433 | |||||
| 1684 | function i sElementIn Viewport(e l) { | |||||
| 1685 | var win = argument s.length > 1 && argu ments[1] ! == undefin ed ? argum ents[1] : window; | |||||
| 1686 | var docE l = argume nts.length > 2 && ar guments[2] !== undef ined ? arg uments[2] : document .documentE lement; | |||||
| 1687 | ||||||
| 1688 | var rect = el.getB oundingCli entRect(); | |||||
| 1689 | ||||||
| 1690 | return r ect.top >= 0 && rect .left >= 0 && rect.b ottom <= ( win.innerH eight || d ocEl.clien tHeight) & & rect.rig ht <= (win .innerWidt h || docEl .clientWid th); | |||||
| 1691 | } | |||||
| 1692 | ||||||
| 1693 | module.exp orts = isE lementInVi ewport; | |||||
| 1694 | ||||||
| 1695 | },{}],32:[ function(r equire,mod ule,export s){ | |||||
| 1696 | 'use stric t'; | |||||
| 1697 | ||||||
| 1698 | /** | |||||
| 1699 | * @name i sElement | |||||
| 1700 | * @desc r eturns whe ther or no t the give n argument is a DOM element. | |||||
| 1701 | * @param {any} valu e | |||||
| 1702 | * @return {boolean} | |||||
| 1703 | */ | |||||
| 1704 | ||||||
| 1705 | var _typeo f = typeof Symbol == = "functio n" && type of Symbol. iterator = == "symbol " ? functi on (obj) { return ty peof obj; } : functi on (obj) { return ob j && typeo f Symbol = == "functi on" && obj .construct or === Sym bol && obj !== Symbo l.prototyp e ? "symbo l" : typeo f obj; }; | |||||
| 1706 | ||||||
| 1707 | var isElem ent = func tion isEle ment(value ) { | |||||
| 1708 | return v alue && (t ypeof valu e === 'und efined' ? 'undefined ' : _typeo f(value)) === 'objec t' && valu e.nodeType === 1; | |||||
| 1709 | }; | |||||
| 1710 | ||||||
| 1711 | /** | |||||
| 1712 | * @name s elect | |||||
| 1713 | * @desc s elects ele ments from the DOM b y class se lector or ID selecto r. | |||||
| 1714 | * @param {string} s elector - The select or to trav erse the D OM with. | |||||
| 1715 | * @param {Document| HTMLElemen t?} contex t - The co ntext to t raverse th e DOM | |||||
| 1716 | * in. I f not prov ided, it d efaults to the docum ent. | |||||
| 1717 | * @return {HTMLElem ent[]} - A n array of DOM nodes or an emp ty array. | |||||
| 1718 | */ | |||||
| 1719 | module.exp orts = fun ction sele ct(selecto r, context ) { | |||||
| 1720 | ||||||
| 1721 | if (type of selecto r !== 'str ing') { | |||||
| 1722 | return []; | |||||
| 1723 | } | |||||
| 1724 | ||||||
| 1725 | if (!con text || !i sElement(c ontext)) { | |||||
| 1726 | contex t = window .document; | |||||
| 1727 | } | |||||
| 1728 | ||||||
| 1729 | var sele ction = co ntext.quer ySelectorA ll(selecto r); | |||||
| 1730 | return A rray.proto type.slice .call(sele ction); | |||||
| 1731 | }; | |||||
| 1732 | ||||||
| 1733 | },{}],33:[ function(r equire,mod ule,export s){ | |||||
| 1734 | 'use stric t'; | |||||
| 1735 | ||||||
| 1736 | /** | |||||
| 1737 | * Flips g iven INPUT elements between ma sked (hidi ng the fie ld value) and unmask ed | |||||
| 1738 | * @param {Array.HTM LElement} fields - A n array of INPUT ele ments | |||||
| 1739 | * @param {Boolean} mask - Whe ther the m ask should be applie d, hiding the field value | |||||
| 1740 | */ | |||||
| 1741 | module.exp orts = fun ction (fie ld, mask) { | |||||
| 1742 | field.se tAttribute ('autocapi talize', ' off'); | |||||
| 1743 | field.se tAttribute ('autocorr ect', 'off '); | |||||
| 1744 | field.se tAttribute ('type', m ask ? 'pas sword' : ' text'); | |||||
| 1745 | }; | |||||
| 1746 | ||||||
| 1747 | },{}],34:[ function(r equire,mod ule,export s){ | |||||
| 1748 | 'use stric t'; | |||||
| 1749 | ||||||
| 1750 | var forEac h = requir e('array-f oreach'); | |||||
| 1751 | var resolv eIdRefs = require('r esolve-id- refs'); | |||||
| 1752 | var select = require ('./select '); | |||||
| 1753 | var toggle FieldMask = require( './toggle- field-mask '); | |||||
| 1754 | ||||||
| 1755 | var CONTRO LS = 'aria -controls' ; | |||||
| 1756 | var PRESSE D = 'aria- pressed'; | |||||
| 1757 | var SHOW_A TTR = 'dat a-show-tex t'; | |||||
| 1758 | var HIDE_A TTR = 'dat a-hide-tex t'; | |||||
| 1759 | ||||||
| 1760 | /** | |||||
| 1761 | * Replace the word "Show" (or "show") w ith "Hide" (or "hide ") in a st ring. | |||||
| 1762 | * @param {string} s howText | |||||
| 1763 | * @return {strong} hideText | |||||
| 1764 | */ | |||||
| 1765 | var getHid eText = fu nction get HideText(s howText) { | |||||
| 1766 | return s howText.re place(/\bS how\b/i, f unction (s how) { | |||||
| 1767 | return ('S' === show[0] ? 'H' : 'h') + 'ide'; | |||||
| 1768 | }); | |||||
| 1769 | }; | |||||
| 1770 | ||||||
| 1771 | /** | |||||
| 1772 | * Compone nt that de corates an HTML elem ent with t he ability to toggle the | |||||
| 1773 | * masked state of a n input fi eld (like a password ) when cli cked. | |||||
| 1774 | * The ids of the fi elds to be masked wi ll be pull ed directl y from the button's | |||||
| 1775 | * `aria-c ontrols` a ttribute. | |||||
| 1776 | * | |||||
| 1777 | * @param {HTMLElem ent} el Parent el ement cont aining the fields to be masked | |||||
| 1778 | * @return {boolean} | |||||
| 1779 | */ | |||||
| 1780 | module.exp orts = fun ction (el) { | |||||
| 1781 | // this is the *ta rget* stat e: | |||||
| 1782 | // * if the elemen t has the attr and i t's !== "t rue", pres sed is tru e | |||||
| 1783 | // * oth erwise, pr essed is f alse | |||||
| 1784 | var pres sed = el.h asAttribut e(PRESSED) && el.get Attribute( PRESSED) ! == 'true'; | |||||
| 1785 | ||||||
| 1786 | var fiel ds = resol veIdRefs(e l.getAttri bute(CONTR OLS)); | |||||
| 1787 | forEach( fields, fu nction (fi eld) { | |||||
| 1788 | return toggleFie ldMask(fie ld, presse d); | |||||
| 1789 | }); | |||||
| 1790 | ||||||
| 1791 | if (!el. hasAttribu te(SHOW_AT TR)) { | |||||
| 1792 | el.set Attribute( SHOW_ATTR, el.textCo ntent); | |||||
| 1793 | } | |||||
| 1794 | ||||||
| 1795 | var show Text = el. getAttribu te(SHOW_AT TR); | |||||
| 1796 | var hide Text = el. getAttribu te(HIDE_AT TR) || get HideText(s howText); | |||||
| 1797 | ||||||
| 1798 | el.textC ontent = p ressed ? s howText : hideText; | |||||
| 1799 | el.setAt tribute(PR ESSED, pre ssed); | |||||
| 1800 | return p ressed; | |||||
| 1801 | }; | |||||
| 1802 | ||||||
| 1803 | },{"./sele ct":32,"./ toggle-fie ld-mask":3 3,"array-f oreach":2, "resolve-i d-refs":15 }],35:[fun ction(requ ire,module ,exports){ | |||||
| 1804 | 'use stric t'; | |||||
| 1805 | ||||||
| 1806 | var EXPAND ED = 'aria -expanded' ; | |||||
| 1807 | var CONTRO LS = 'aria -controls' ; | |||||
| 1808 | var HIDDEN = 'aria-h idden'; | |||||
| 1809 | ||||||
| 1810 | module.exp orts = fun ction (but ton, expan ded) { | |||||
| 1811 | ||||||
| 1812 | if (type of expande d !== 'boo lean') { | |||||
| 1813 | expand ed = butto n.getAttri bute(EXPAN DED) === ' false'; | |||||
| 1814 | } | |||||
| 1815 | button.s etAttribut e(EXPANDED , expanded ); | |||||
| 1816 | ||||||
| 1817 | var id = button.ge tAttribute (CONTROLS) ; | |||||
| 1818 | var cont rols = doc ument.getE lementById (id); | |||||
| 1819 | if (!con trols) { | |||||
| 1820 | throw new Error( 'No toggle target fo und with i d: "' + id + '"'); | |||||
| 1821 | } | |||||
| 1822 | ||||||
| 1823 | controls .setAttrib ute(HIDDEN , !expande d); | |||||
| 1824 | return e xpanded; | |||||
| 1825 | }; | |||||
| 1826 | ||||||
| 1827 | },{}],36:[ function(r equire,mod ule,export s){ | |||||
| 1828 | 'use stric t'; | |||||
| 1829 | ||||||
| 1830 | var datase t = requir e('elem-da taset'); | |||||
| 1831 | ||||||
| 1832 | var PREFIX = require ('../confi g').prefix ; | |||||
| 1833 | var CHECKE D = 'aria- checked'; | |||||
| 1834 | var CHECKE D_CLASS = PREFIX + ' -checklist -checked'; | |||||
| 1835 | ||||||
| 1836 | module.exp orts = fun ction vali date(el) { | |||||
| 1837 | var data = dataset (el); | |||||
| 1838 | var id = data.vali dationElem ent; | |||||
| 1839 | var chec kList = id .charAt(0) === '#' ? document. querySelec tor(id) : document.g etElementB yId(id); | |||||
| 1840 | ||||||
| 1841 | if (!che ckList) { | |||||
| 1842 | throw new Error( 'No valida tion eleme nt found w ith id: "' + id + '" '); | |||||
| 1843 | } | |||||
| 1844 | ||||||
| 1845 | for (var key in da ta) { | |||||
| 1846 | if (ke y.startsWi th('valida te')) { | |||||
| 1847 | var validatorN ame = key. substr('va lidate'.le ngth).toLo werCase(); | |||||
| 1848 | var validatorP attern = n ew RegExp( data[key]) ; | |||||
| 1849 | var validatorS elector = '[data-val idator="' + validato rName + '" ]'; | |||||
| 1850 | var validatorC heckbox = checkList. querySelec tor(valida torSelecto r); | |||||
| 1851 | if ( !validator Checkbox) { | |||||
| 1852 | th row new Er ror('No va lidator ch eckbox fou nd for: "' + validat orName + ' "'); | |||||
| 1853 | } | |||||
| 1854 | ||||||
| 1855 | var checked = validatorP attern.tes t(el.value ); | |||||
| 1856 | vali datorCheck box.classL ist.toggle (CHECKED_C LASS, chec ked); | |||||
| 1857 | vali datorCheck box.setAtt ribute(CHE CKED, chec ked); | |||||
| 1858 | } | |||||
| 1859 | } | |||||
| 1860 | }; | |||||
| 1861 | ||||||
| 1862 | },{"../con fig":25,"e lem-datase t":5}]},{} ,[29]) | |||||
| 1863 | //# source MappingURL =data:appl ication/js on;charset =utf-8;bas e64,eyJ2ZX JzaW9uIjoz LCJzb3VyY2 VzIjpbIm5v ZGVfbW9kdW xlcy9icm93 c2VyLXBhY2 svX3ByZWx1 ZGUuanMiLC Jub2RlX21v ZHVsZXMvYX JyYXktZmls dGVyL2luZG V4LmpzIiwi bm9kZV9tb2 R1bGVzL2Fy cmF5LWZvcm VhY2gvaW5k ZXguanMiLC Jub2RlX21v ZHVsZXMvY2 xhc3NsaXN0 LXBvbHlmaW xsL3NyYy9p bmRleC5qcy IsIm5vZGVf bW9kdWxlcy 9kb21yZWFk eS9yZWFkeS 5qcyIsIm5v ZGVfbW9kdW xlcy9lbGVt LWRhdGFzZX QvZGlzdC9p bmRleC5qcy IsIm5vZGVf bW9kdWxlcy 9lbGVtZW50 LWNsb3Nlc3 QvZWxlbWVu dC1jbG9zZX N0LmpzIiwi bm9kZV9tb2 R1bGVzL2xv ZGFzaC5kZW JvdW5jZS9p bmRleC5qcy IsIm5vZGVf bW9kdWxlcy 9vYmplY3Qt YXNzaWduL2 luZGV4Lmpz Iiwibm9kZV 9tb2R1bGVz L3JlY2VwdG 9yL2JlaGF2 aW9yL2luZG V4LmpzIiwi bm9kZV9tb2 R1bGVzL3Jl Y2VwdG9yL2 NvbXBvc2Uv aW5kZXguan MiLCJub2Rl X21vZHVsZX MvcmVjZXB0 b3IvZGVsZW dhdGUvaW5k ZXguanMiLC Jub2RlX21v ZHVsZXMvcm VjZXB0b3Iv ZGVsZWdhdG VBbGwvaW5k ZXguanMiLC Jub2RlX21v ZHVsZXMvcm VjZXB0b3Iv aWdub3JlL2 luZGV4Lmpz Iiwibm9kZV 9tb2R1bGVz L3JlY2VwdG 9yL29uY2Uv aW5kZXguan MiLCJub2Rl X21vZHVsZX MvcmVzb2x2 ZS1pZC1yZW ZzL2luZGV4 LmpzIiwic3 JjL2pzL2Nv bXBvbmVudH MvYWNjb3Jk aW9uLmpzIi wic3JjL2pz L2NvbXBvbm VudHMvYmFu bmVyLmpzIi wic3JjL2pz L2NvbXBvbm VudHMvZm9v dGVyLmpzIi wic3JjL2pz L2NvbXBvbm VudHMvaW5k ZXguanMiLC JzcmMvanMv Y29tcG9uZW 50cy9uYXZp Z2F0aW9uLm pzIiwic3Jj L2pzL2NvbX BvbmVudHMv cGFzc3dvcm QuanMiLCJz cmMvanMvY2 9tcG9uZW50 cy9zZWFyY2 guanMiLCJz cmMvanMvY2 9tcG9uZW50 cy9za2lwbm F2LmpzIiwi c3JjL2pzL2 NvbXBvbmVu dHMvdmFsaW RhdG9yLmpz Iiwic3JjL2 pzL2NvbmZp Zy5qcyIsIn NyYy9qcy9l dmVudHMuan MiLCJzcmMv anMvcG9seW ZpbGxzL2Vs ZW1lbnQtaG lkZGVuLmpz Iiwic3JjL2 pzL3BvbHlm aWxscy9pbm RleC5qcyIs InNyYy9qcy 9zdGFydC5q cyIsInNyYy 9qcy91dGls cy9iZWhhdm lvci5qcyIs InNyYy9qcy 91dGlscy9p cy1pbi12aW V3cG9ydC5q cyIsInNyYy 9qcy91dGls cy9zZWxlY3 QuanMiLCJz cmMvanMvdX RpbHMvdG9n Z2xlLWZpZW xkLW1hc2su anMiLCJzcm MvanMvdXRp bHMvdG9nZ2 xlLWZvcm0t aW5wdXQuan MiLCJzcmMv anMvdXRpbH MvdG9nZ2xl LmpzIiwic3 JjL2pzL3V0 aWxzL3ZhbG lkYXRlLWlu cHV0LmpzIl 0sIm5hbWVz IjpbXSwibW FwcGluZ3Mi OiJBQUFBOz s7QUNDQTs7 Ozs7Ozs7Oz tBQVVBLE9B QU8sT0FBUC xHQUFpQixV QUFVLEdBQV YsRUFBZSxF QUFmLEVBQW 1CLElBQW5C LEVBQXlCO0 FBQ3hDLE1B QUksSUFBSS xNQUFSLEVB QWdCLE9BQU 8sSUFBSSxN QUFKLENBQV csRUFBWCxF QUFlLElBQW YsQ0FBUDtB QUNoQixNQU FJLEtBQUss Q0FBTCxLQU FXLEdBQVgs SUFBa0IsU0 FBUyxHQUEv QixFQUFvQy xNQUFNLElB QUksU0FBSi xFQUFOO0FB Q3BDLE1BQU ksY0FBYyxP QUFPLEVBQX pCLEVBQTZC LE1BQU0sSU FBSSxTQUFK LEVBQU47QU FDN0IsTUFB SSxNQUFNLE VBQVY7QUFD QSxPQUFLLE lBQUksSUFB SSxDQUFiLE VBQWdCLElB QUksSUFBSS xNQUF4QixF QUFnQyxHQU FoQyxFQUFx QztBQUNuQy xRQUFJLENB QUMsT0FBTy xJQUFQLENB QVksR0FBWi xFQUFpQixD QUFqQixDQU FMLEVBQTBC O0FBQzFCLF FBQUksTUFB TSxJQUFJLE NBQUosQ0FB VjtBQUNBLF FBQUksR0FB RyxJQUFILE NBQVEsSUFB UixFQUFjLE dBQWQsRUFB bUIsQ0FBbk IsRUFBc0Is R0FBdEIsQ0 FBSixFQUFn QyxJQUFJLE lBQUosQ0FB UyxHQUFUO0 FBQ2pDO0FB Q0QsU0FBTy xHQUFQO0FB Q0QsQ0FYRD s7QUFhQSxJ QUFJLFNBQV MsT0FBTyxT QUFQLENBQW lCLGNBQTlC Ozs7QUN4Qk E7Ozs7Ozs7 Ozs7O0FBV0 E7O0FBRUEs T0FBTyxPQU FQLEdBQWlC LFNBQVMsT0 FBVCxDQUFr QixHQUFsQi xFQUF1QixR QUF2QixFQU FpQyxPQUFq QyxFQUEwQz tBQUN2RCxR QUFJLElBQU ksT0FBUixF QUFpQjtBQU NiLFlBQUks T0FBSixDQU FZLFFBQVos RUFBc0IsT0 FBdEI7QUFD QTtBQUNIO0 FBQ0QsU0FB SyxJQUFJLE lBQUksQ0FB YixFQUFnQi xJQUFJLElB QUksTUFBeE IsRUFBZ0Ms S0FBRyxDQU FuQyxFQUFz QztBQUNsQy xpQkFBUyxJ QUFULENBQW MsT0FBZCxF QUF1QixJQU FJLENBQUos Q0FBdkIsRU FBK0IsQ0FB L0IsRUFBa0 MsR0FBbEM7 QUFDSDtBQU NKLENBUkQ7 Ozs7O0FDYk E7Ozs7Ozs7 OztBQVNBOz tBQUVBOztB QUVBLElBQU ksY0FBYyxP QUFPLElBQX pCLEVBQStC OztBQUUvQj tBQUNBO0FB Q0EsS0FBSS xFQUFFLGVB QWUsU0FBUy xhQUFULENB QXVCLEdBQX ZCLENBQWpC LEtBQ0EsU0 FBUyxlQUFU LElBQTRCLE VBQUUsZUFB ZSxTQUFTLG VBQVQsQ0FB eUIsNEJBQX pCLEVBQXNE LEdBQXRELE NBQWpCLENB RGhDLEVBQz hHOztBQUU3 RyxhQUFVLE lBQVYsRUFB Z0I7O0FBRW pCOztBQUVB LE9BQUksRU FBRSxhQUFh LElBQWYsQ0 FBSixFQUEw Qjs7QUFFMU IsT0FDRyxn QkFBZ0IsV0 FEbkI7QUFB QSxPQUVHLF lBQVksV0FG ZjtBQUFBLE 9BR0csZUFB ZSxLQUFLLE 9BQUwsQ0FB YSxTQUFiLE NBSGxCO0FB QUEsT0FJRy xTQUFTLE1B Slo7QUFBQS xPQUtHLFVB QVUsT0FBTy xTQUFQLEVB QWtCLElBQW xCLElBQTBC LFlBQVk7QU FDakQsV0FB TyxLQUFLLE 9BQUwsQ0FB YSxZQUFiLE VBQTJCLEVB QTNCLENBQV A7QUFDQSxJ QVBGO0FBQU EsT0FRRyxh QUFhLE1BQU 0sU0FBTixF QUFpQixPQU FqQixJQUE0 QixVQUFVLE lBQVYsRUFB Z0I7QUFDMU QsUUFDRyxJ QUFJLENBRF A7QUFBQSxR QUVHLE1BQU 0sS0FBSyxN QUZkO0FBSU EsV0FBTyxJ QUFJLEdBQV gsRUFBZ0Is R0FBaEIsRU FBcUI7QUFD cEIsU0FBSS xLQUFLLElB QUwsSUFBYS xLQUFLLENB QUwsTUFBWS xJQUE3QixF QUFtQztBQU NsQyxhQUFP LENBQVA7QU FDQTtBQUNE O0FBQ0QsV0 FBTyxDQUFD LENBQVI7QU FDQTtBQUNE O0FBcEJEO0 FBQUEsT0Fx QkcsUUFBUS xTQUFSLEtB QVEsQ0FBVS xJQUFWLEVB QWdCLE9BQW hCLEVBQXlC O0FBQ2xDLF NBQUssSUFB TCxHQUFZLE lBQVo7QUFD QSxTQUFLLE lBQUwsR0FB WSxhQUFhLE lBQWIsQ0FB WjtBQUNBLF NBQUssT0FB TCxHQUFlLE 9BQWY7QUFD QSxJQXpCRj tBQUFBLE9B MEJHLHdCQU F3QixTQUF4 QixxQkFBd0 IsQ0FBVSxT QUFWLEVBQX FCLEtBQXJC LEVBQTRCO0 FBQ3JELFFB QUksVUFBVS xFQUFkLEVB QWtCO0FBQ2 pCLFdBQU0s SUFBSSxLQU FKLENBQ0gs WUFERyxFQU VILDRDQUZH LENBQU47QU FJQTtBQUNE LFFBQUksS0 FBSyxJQUFM LENBQVUsS0 FBVixDQUFK LEVBQXNCO0 FBQ3JCLFdB QU0sSUFBSS xLQUFKLENB Q0gsdUJBRE csRUFFSCxz Q0FGRyxDQU FOO0FBSUE7 QUFDRCxXQU FPLFdBQVcs SUFBWCxDQU FnQixTQUFo QixFQUEyQi xLQUEzQixD QUFQO0FBQ0 EsSUF4Q0Y7 QUFBQSxPQX lDRyxZQUFZ LFNBQVosU0 FBWSxDQUFV LElBQVYsRU FBZ0I7QUFD N0IsUUFDRy xpQkFBaUIs UUFBUSxJQU FSLENBQWEs S0FBSyxZQU FMLENBQWtC LE9BQWxCLE tBQThCLEVB QTNDLENBRH BCO0FBQUEs UUFFRyxVQU FVLGlCQUFp QixlQUFlLE tBQWYsQ0FB cUIsS0FBck IsQ0FBakIs R0FBK0MsRU FGNUQ7QUFB QSxRQUdHLE lBQUksQ0FI UDtBQUFBLF FBSUcsTUFB TSxRQUFRLE 1BSmpCO0FB TUEsV0FBTy xJQUFJLEdB QVgsRUFBZ0 IsR0FBaEIs RUFBcUI7QU FDcEIsVUFB SyxJQUFMLE NBQVUsUUFB USxDQUFSLE NBQVY7QUFD QTtBQUNELF NBQUssZ0JB QUwsR0FBd0 IsWUFBWTtB QUNuQyxVQU FLLFlBQUws Q0FBa0IsT0 FBbEIsRUFB MkIsS0FBSy xRQUFMLEVB QTNCO0FBQ0 EsS0FGRDtB QUdBLElBdE RGO0FBQUEs T0F1REcsaU JBQWlCLFVB QVUsU0FBVi xJQUF1QixF QXZEM0M7QU FBQSxPQXdE RyxrQkFBa0 IsU0FBbEIs ZUFBa0IsR0 FBWTtBQUMv QixXQUFPLE lBQUksU0FB SixDQUFjLE lBQWQsQ0FB UDtBQUNBLE lBMURGO0FB NERBO0FBQ0 E7QUFDQSxT QUFNLFNBQU 4sSUFBbUIs TUFBTSxTQU FOLENBQW5C O0FBQ0Esa0 JBQWUsSUFB ZixHQUFzQi xVQUFVLENB QVYsRUFBYT tBQUNsQyxX QUFPLEtBQU ssQ0FBTCxL QUFXLElBQW xCO0FBQ0Es SUFGRDtBQU dBLGtCQUFl LFFBQWYsR0 FBMEIsVUFB VSxLQUFWLE VBQWlCO0FB QzFDLGFBQV MsRUFBVDtB QUNBLFdBQU 8sc0JBQXNC LElBQXRCLE VBQTRCLEtB QTVCLE1BQX VDLENBQUMs Q0FBL0M7QU FDQSxJQUhE O0FBSUEsa0 JBQWUsR0FB ZixHQUFxQi xZQUFZO0FB Q2hDLFFBQ0 csU0FBUyxT QURaO0FBQU EsUUFFRyxJ QUFJLENBRl A7QUFBQSxR QUdHLElBQU ksT0FBTyxN QUhkO0FBQU EsUUFJRyxL QUpIO0FBQU EsUUFLRyxV QUFVLEtBTG I7QUFPQSxP QUFHO0FBQ0 YsYUFBUSxP QUFPLENBQV AsSUFBWSxF QUFwQjtBQU NBLFNBQUks c0JBQXNCLE lBQXRCLEVB QTRCLEtBQT VCLE1BQXVD LENBQUMsQ0 FBNUMsRUFB K0M7QUFDOU MsV0FBSyxJ QUFMLENBQV UsS0FBVjtB QUNBLGdCQU FVLElBQVY7 QUFDQTtBQU NELEtBTkQs UUFPTyxFQU FFLENBQUYs R0FBTSxDQV BiOztBQVNB LFFBQUksT0 FBSixFQUFh O0FBQ1osVU FBSyxnQkFB TDtBQUNBO0 FBQ0QsSUFw QkQ7QUFxQk Esa0JBQWUs TUFBZixHQU F3QixZQUFZ O0FBQ25DLF FBQ0csU0FB UyxTQURaO0 FBQUEsUUFF RyxJQUFJLE NBRlA7QUFB QSxRQUdHLE lBQUksT0FB TyxNQUhkO0 FBQUEsUUFJ RyxLQUpIO0 FBQUEsUUFL RyxVQUFVLE tBTGI7QUFB QSxRQU1HLE tBTkg7QUFR QSxPQUFHO0 FBQ0YsYUFB USxPQUFPLE NBQVAsSUFB WSxFQUFwQj tBQUNBLGFB QVEsc0JBQX NCLElBQXRC LEVBQTRCLE tBQTVCLENB QVI7QUFDQS xZQUFPLFVB QVUsQ0FBQy xDQUFsQixF QUFxQjtBQU NwQixXQUFL LE1BQUwsQ0 FBWSxLQUFa LEVBQW1CLE NBQW5CO0FB Q0EsZ0JBQV UsSUFBVjtB QUNBLGNBQV Esc0JBQXNC LElBQXRCLE VBQTRCLEtB QTVCLENBQV I7QUFDQTtB QUNELEtBUk QsUUFTTyxF QUFFLENBQU YsR0FBTSxD QVRiOztBQV dBLFFBQUks T0FBSixFQU FhO0FBQ1os VUFBSyxnQk FBTDtBQUNB O0FBQ0QsSU F2QkQ7QUF3 QkEsa0JBQW UsTUFBZixH QUF3QixVQU FVLEtBQVYs RUFBaUIsS0 FBakIsRUFB d0I7QUFDL0 MsYUFBUyxF QUFUOztBQU VBLFFBQ0cs U0FBUyxLQU FLLFFBQUws Q0FBYyxLQU FkLENBRFo7 QUFBQSxRQU VHLFNBQVMs U0FDVixVQU FVLElBQVYs SUFBa0IsUU FEUixHQUdW LFVBQVUsS0 FBVixJQUFt QixLQUxyQj s7QUFRQSxR QUFJLE1BQU osRUFBWTtB QUNYLFVBQU ssTUFBTCxF QUFhLEtBQW I7QUFDQTs7 QUFFRCxRQU FJLFVBQVUs SUFBVixJQU FrQixVQUFV LEtBQWhDLE VBQXVDO0FB Q3RDLFlBQU 8sS0FBUDtB QUNBLEtBRk QsTUFFTztB QUNOLFlBQU 8sQ0FBQyxN QUFSO0FBQ0 E7QUFDRCxJ QXBCRDtBQX FCQSxrQkFB ZSxRQUFmLE dBQTBCLFlB QVk7QUFDck MsV0FBTyxL QUFLLElBQU wsQ0FBVSxH QUFWLENBQV A7QUFDQSxJ QUZEOztBQU lBLE9BQUks T0FBTyxjQU FYLEVBQTJC O0FBQzFCLF FBQUksb0JB QW9CO0FBQ3 JCLFVBQUss ZUFEZ0I7QU FFckIsaUJB QVksSUFGUz tBQUdyQixt QkFBYztBQU hPLEtBQXhC O0FBS0EsUU FBSTtBQUNI LFlBQU8sY0 FBUCxDQUFz QixZQUF0Qi xFQUFvQyxh QUFwQyxFQU FtRCxpQkFB bkQ7QUFDQS xLQUZELENB RUUsT0FBTy xFQUFQLEVB QVc7QUFBRT tBQUNkO0FB Q0E7QUFDQS xTQUFJLEdB QUcsTUFBSC xLQUFjLFNB QWQsSUFBMk IsR0FBRyxN QUFILEtBQW MsQ0FBQyxV QUE5QyxFQU EwRDtBQUN6 RCx3QkFBa0 IsVUFBbEIs R0FBK0IsS0 FBL0I7QUFD QSxhQUFPLG NBQVAsQ0FB c0IsWUFBdE IsRUFBb0Ms YUFBcEMsRU FBbUQsaUJB QW5EO0FBQ0 E7QUFDRDtB QUNELElBaE JELE1BZ0JP LElBQUksT0 FBTyxTQUFQ LEVBQWtCLG dCQUF0QixF QUF3QztBQU M5QyxpQkFB YSxnQkFBYi xDQUE4Qixh QUE5QixFQU E2QyxlQUE3 QztBQUNBO0 FBRUEsR0F0 S0EsRUFzS0 MsT0FBTyxJ QXRLUixDQU FEO0FBd0tD OztBQUVEO0 FBQ0E7O0FB RUMsY0FBWT tBQUNaOztB QUVBLE1BQU ksY0FBYyxT QUFTLGFBQV QsQ0FBdUIs R0FBdkIsQ0 FBbEI7O0FB RUEsY0FBWS xTQUFaLENB QXNCLEdBQX RCLENBQTBC LElBQTFCLE VBQWdDLElB QWhDOztBQU VBO0FBQ0E7 QUFDQSxNQU FJLENBQUMs WUFBWSxTQU FaLENBQXNC LFFBQXRCLE NBQStCLElB QS9CLENBQU wsRUFBMkM7 QUFDMUMsT0 FBSSxlQUFl LFNBQWYsWU FBZSxDQUFT LE1BQVQsRU FBaUI7QUFD bkMsUUFBSS xXQUFXLGFB QWEsU0FBYi xDQUF1QixN QUF2QixDQU FmOztBQUVB LGlCQUFhLF NBQWIsQ0FB dUIsTUFBdk IsSUFBaUMs VUFBUyxLQU FULEVBQWdC O0FBQ2hELF NBQUksQ0FB SjtBQUFBLF NBQU8sTUFB TSxVQUFVLE 1BQXZCOztB QUVBLFVBQU ssSUFBSSxD QUFULEVBQV ksSUFBSSxH QUFoQixFQU FxQixHQUFy QixFQUEwQj tBQUN6Qixj QUFRLFVBQV UsQ0FBVixD QUFSO0FBQ0 EsZUFBUyxJ QUFULENBQW MsSUFBZCxF QUFvQixLQU FwQjtBQUNB O0FBQ0QsS0 FQRDtBQVFB LElBWEQ7QU FZQSxnQkFB YSxLQUFiO0 FBQ0EsZ0JB QWEsUUFBYj tBQUNBOztB QUVELGNBQV ksU0FBWixD QUFzQixNQU F0QixDQUE2 QixJQUE3Qi xFQUFtQyxL QUFuQzs7QU FFQTtBQUNB O0FBQ0EsTU FBSSxZQUFZ LFNBQVosQ0 FBc0IsUUFB dEIsQ0FBK0 IsSUFBL0Is Q0FBSixFQU EwQztBQUN6 QyxPQUFJLF VBQVUsYUFB YSxTQUFiLE NBQXVCLE1B QXJDOztBQU VBLGdCQUFh LFNBQWIsQ0 FBdUIsTUFB dkIsR0FBZ0 MsVUFBUyxL QUFULEVBQW dCLEtBQWhC LEVBQXVCO0 FBQ3RELFFB QUksS0FBSy xTQUFMLElB QWtCLENBQU MsS0FBSyxR QUFMLENBQW MsS0FBZCxD QUFELEtBQT BCLENBQUMs S0FBakQsRU FBd0Q7QUFD dkQsWUFBTy xLQUFQO0FB Q0EsS0FGRC xNQUVPO0FB Q04sWUFBTy xRQUFRLElB QVIsQ0FBYS xJQUFiLEVB QW1CLEtBQW 5CLENBQVA7 QUFDQTtBQU NELElBTkQ7 QUFRQTs7QU FFRCxnQkFB YyxJQUFkO0 FBQ0EsRUE1 Q0EsR0FBRD tBQThDQzs7 Ozs7OztBQy 9PRDs7O0FB R0EsQ0FBQy xVQUFVLElB QVYsRUFBZ0 IsVUFBaEIs RUFBNEI7O0 FBRTNCLE1B QUksT0FBTy xNQUFQLElB QWlCLFdBQX JCLEVBQWtD LE9BQU8sT0 FBUCxHQUFp QixZQUFqQi xDQUFsQyxL QUNLLElBQU ksT0FBTyxN QUFQLElBQW lCLFVBQWpC LElBQStCLF FBQU8sT0FB TyxHQUFkLE tBQXFCLFFB QXhELEVBQW tFLE9BQU8s VUFBUCxFQU FsRSxLQUNB LEtBQUssSU FBTCxJQUFh LFlBQWI7QU FFTixDQU5B LENBTUMsVU FORCxFQU1h LFlBQVk7O0 FBRXhCLE1B QUksTUFBTS xFQUFWO0FB QUEsTUFBYy xTQUFkO0FB QUEsTUFDSS xNQUFNLFFB RFY7QUFBQS xNQUVJLE9B QU8sSUFBSS xlQUFKLENB QW9CLFFBRi 9CO0FBQUEs TUFHSSxtQk FBbUIsa0JB SHZCO0FBQU EsTUFJSSxT QUFTLENBQU MsT0FBTyxZ QUFQLEdBQX NCLGVBQXZC LEVBQXdDLE lBQXhDLENB QTZDLElBQU ksVUFBakQs Q0FKYjs7QU FPQSxNQUFJ LENBQUMsTU FBTCxFQUNB LElBQUksZ0 JBQUosQ0FB cUIsZ0JBQX JCLEVBQXVD LFlBQVcsb0 JBQVk7QUFD NUQsUUFBSS xtQkFBSixD QUF3QixnQk FBeEIsRUFB MEMsU0FBMU M7QUFDQSxh QUFTLENBQV Q7QUFDQSxX QUFPLFlBQV csSUFBSSxL QUFKLEVBQW xCO0FBQStC O0FBQS9CO0 FBQ0QsR0FK RDs7QUFNQS xTQUFPLFVB QVUsRUFBVi xFQUFjO0FB Q25CLGFBQV MsV0FBVyxF QUFYLEVBQW UsQ0FBZixD QUFULEdBQT ZCLElBQUks SUFBSixDQU FTLEVBQVQs Q0FBN0I7QU FDRCxHQUZE O0FBSUQsQ0 ExQkEsQ0FB RDs7O0FDSE E7O0FBRUE7 QUFDQTs7QU FFQSxTQUFT LFNBQVQsR0 FBcUI7QUFD cEIsS0FBSS xPQUFPLFNB QVMsYUFBVC xDQUF1QixL QUF2QixDQU FYO0FBQ0Es TUFBSyxZQU FMLENBQWtC LFVBQWxCLE VBQThCLEdB QTlCOztBQU VBLFFBQU8s UUFBUSxLQU FLLE9BQUws SUFBZ0IsS0 FBSyxPQUFM LENBQWEsRU FBYixLQUFv QixHQUE1Qy xDQUFQO0FB Q0E7O0FBRU QsU0FBUyxh QUFULENBQX VCLE9BQXZC LEVBQWdDO0 FBQy9CLFFB QU8sUUFBUS xPQUFmO0FB Q0E7O0FBRU QsT0FBTyxP QUFQLEdBQW lCLGNBQWMs YUFBZCxHQU E4QixVQUFV LE9BQVYsRU FBbUI7QUFD akUsS0FBSS xNQUFNLEVB QVY7QUFDQS xLQUFJLGFB QWEsUUFBUS xVQUF6Qjs7 QUFFQSxVQU FTLE1BQVQs R0FBa0I7QU FDakIsU0FB TyxLQUFLLE tBQVo7QUFD QTs7QUFFRC xVQUFTLE1B QVQsQ0FBZ0 IsSUFBaEIs RUFBc0IsS0 FBdEIsRUFB NkI7QUFDNU IsTUFBSSxP QUFPLEtBQV AsS0FBaUIs V0FBckIsRU FBa0M7QUFD akMsUUFBSy xlQUFMLENB QXFCLElBQX JCO0FBQ0Es R0FGRCxNQU VPO0FBQ04s UUFBSyxZQU FMLENBQWtC LElBQWxCLE VBQXdCLEtB QXhCO0FBQ0 E7QUFDRDs7 QUFFRCxNQU FLLElBQUks SUFBSSxDQU FSLEVBQVcs SUFBSSxXQU FXLE1BQS9C LEVBQXVDLE lBQUksQ0FB M0MsRUFBOE MsR0FBOUMs RUFBbUQ7QU FDbEQsTUFB SSxZQUFZLF dBQVcsQ0FB WCxDQUFoQj s7QUFFQSxN QUFJLFNBQU osRUFBZTtB QUNkLE9BQU ksT0FBTyxV QUFVLElBQX JCOztBQUVB LE9BQUksS0 FBSyxPQUFM LENBQWEsT0 FBYixNQUEw QixDQUE5Qi xFQUFpQztB QUNoQyxRQU FJLE9BQU8s S0FBSyxLQU FMLENBQVcs Q0FBWCxFQU FjLE9BQWQs Q0FBc0IsS0 FBdEIsRUFB NkIsVUFBVS xDQUFWLEVB QWE7QUFDcE QsWUFBTyxF QUFFLE1BQU YsQ0FBUyxD QUFULEVBQV ksV0FBWixF QUFQO0FBQ0 EsS0FGVSxD QUFYOztBQU lBLFFBQUks UUFBUSxVQU FVLEtBQXRC OztBQUVBLF dBQU8sY0FB UCxDQUFzQi xHQUF0QixF QUEyQixJQU EzQixFQUFp QztBQUNoQy xpQkFBWSxJ QURvQjtBQU VoQyxVQUFL LE9BQU8sSU FBUCxDQUFZ LEVBQUUsT0 FBTyxTQUFT LEVBQWxCLE VBQVosQ0FG MkI7QUFHaE MsVUFBSyxP QUFPLElBQV AsQ0FBWSxP QUFaLEVBQX FCLElBQXJC O0FBSDJCLE tBQWpDO0FB S0E7QUFDRD tBQUNEOztB QUVELFFBQU 8sR0FBUDtB QUNBLENBdk NEOzs7OztB Q2hCQTs7QU FFQSxDQUFD LFVBQVUsWU FBVixFQUF3 QjtBQUN4Qi xLQUFJLE9B QU8sYUFBYS xPQUFwQixL QUFnQyxVQU FwQyxFQUFn RDtBQUMvQy xlQUFhLE9B QWIsR0FBdU IsYUFBYSxp QkFBYixJQU FrQyxhQUFh LGtCQUEvQy xJQUFxRSxh QUFhLHFCQU FsRixJQUEy RyxTQUFTLE 9BQVQsQ0FB aUIsUUFBak IsRUFBMkI7 QUFDNUosT0 FBSSxVQUFV LElBQWQ7QU FDQSxPQUFJ LFdBQVcsQ0 FBQyxRQUFR LFFBQVIsSU FBb0IsUUFB USxhQUE3Qi xFQUE0Qyxn QkFBNUMsQ0 FBNkQsUUFB N0QsQ0FBZj tBQUNBLE9B QUksUUFBUS xDQUFaOztB QUVBLFVBQU 8sU0FBUyxL QUFULEtBQW 1CLFNBQVMs S0FBVCxNQU FvQixPQUE5 QyxFQUF1RD tBQUN0RCxN QUFFLEtBQU Y7QUFDQTs7 QUFFRCxVQU FPLFFBQVEs U0FBUyxLQU FULENBQVIs Q0FBUDtBQU NBLEdBVkQ7 QUFXQTs7QU FFRCxLQUFJ LE9BQU8sYU FBYSxPQUFw QixLQUFnQy xVQUFwQyxF QUFnRDtBQU MvQyxlQUFh LE9BQWIsR0 FBdUIsU0FB UyxPQUFULE NBQWlCLFFB QWpCLEVBQT JCO0FBQ2pE LE9BQUksVU FBVSxJQUFk OztBQUVBLF VBQU8sV0FB VyxRQUFRLF FBQVIsS0FB cUIsQ0FBdk MsRUFBMEM7 QUFDekMsUU FBSSxRQUFR LE9BQVIsQ0 FBZ0IsUUFB aEIsQ0FBSi xFQUErQjtB QUM5QixZQU FPLE9BQVA7 QUFDQTs7QU FFRCxjQUFV LFFBQVEsVU FBbEI7QUFD QTs7QUFFRC xVQUFPLElB QVA7QUFDQS xHQVpEO0FB YUE7QUFDRC xDQTlCRCxF QThCRyxPQU FPLE9BQVAs Q0FBZSxTQT lCbEI7Ozs7 Ozs7O0FDRk E7Ozs7Ozs7 OztBQVNBO0 FBQ0EsSUFB SSxrQkFBa0 IscUJBQXRC OztBQUVBO0 FBQ0EsSUFB SSxNQUFNLE lBQUksQ0FB ZDs7QUFFQT tBQUNBLElB QUksWUFBWS xpQkFBaEI7 O0FBRUE7QU FDQSxJQUFJ LFNBQVMsWU FBYjs7QUFF QTtBQUNBLE lBQUksYUFB YSxvQkFBak I7O0FBRUE7 QUFDQSxJQU FJLGFBQWEs WUFBakI7O0 FBRUE7QUFD QSxJQUFJLF lBQVksYUFB aEI7O0FBRU E7QUFDQSxJ QUFJLGVBQW UsUUFBbkI7 O0FBRUE7QU FDQSxJQUFJ LGFBQWEsUU FBTyxNQUFQ LHlDQUFPLE 1BQVAsTUFB aUIsUUFBak IsSUFBNkIs TUFBN0IsSU FBdUMsT0FB TyxNQUFQLE tBQWtCLE1B QXpELElBQW 1FLE1BQXBG OztBQUVBO0 FBQ0EsSUFB SSxXQUFXLF FBQU8sSUFB UCx5Q0FBTy xJQUFQLE1B QWUsUUFBZi xJQUEyQixJ QUEzQixJQU FtQyxLQUFL LE1BQUwsS0 FBZ0IsTUFB bkQsSUFBNk QsSUFBNUU7 O0FBRUE7QU FDQSxJQUFJ LE9BQU8sY0 FBYyxRQUFk LElBQTBCLF NBQVMsYUFB VCxHQUFyQz s7QUFFQTtB QUNBLElBQU ksY0FBYyxP QUFPLFNBQX pCOztBQUVB Ozs7OztBQU tBLElBQUks aUJBQWlCLF lBQVksUUFB akM7O0FBRU E7QUFDQSxJ QUFJLFlBQV ksS0FBSyxH QUFyQjtBQU FBLElBQ0ks WUFBWSxLQU FLLEdBRHJC OztBQUdBOz s7Ozs7Ozs7 Ozs7Ozs7O0 FBZ0JBLElB QUksTUFBTS xTQUFOLEdB QU0sR0FBVz tBQUNuQixT QUFPLEtBQU ssSUFBTCxD QUFVLEdBQV YsRUFBUDtB QUNELENBRk Q7O0FBSUE7 Ozs7Ozs7Oz s7Ozs7Ozs7 Ozs7Ozs7Oz s7Ozs7Ozs7 Ozs7Ozs7Oz s7Ozs7Ozs7 Ozs7Ozs7Oz tBQXNEQSxT QUFTLFFBQV QsQ0FBa0Is SUFBbEIsRU FBd0IsSUFB eEIsRUFBOE IsT0FBOUIs RUFBdUM7QU FDckMsTUFB SSxRQUFKO0 FBQUEsTUFD SSxRQURKO0 FBQUEsTUFF SSxPQUZKO0 FBQUEsTUFH SSxNQUhKO0 FBQUEsTUFJ SSxPQUpKO0 FBQUEsTUFL SSxZQUxKO0 FBQUEsTUFN SSxpQkFBaU IsQ0FOckI7 QUFBQSxNQU 9JLFVBQVUs S0FQZDtBQU FBLE1BUUks U0FBUyxLQV JiO0FBQUEs TUFTSSxXQU FXLElBVGY7 O0FBV0EsTU FBSSxPQUFP LElBQVAsSU FBZSxVQUFu QixFQUErQj tBQUM3QixV QUFNLElBQU ksU0FBSixD QUFjLGVBQW QsQ0FBTjtB QUNEO0FBQ0 QsU0FBTyxT QUFTLElBQV QsS0FBa0Is Q0FBekI7QU FDQSxNQUFJ LFNBQVMsT0 FBVCxDQUFK LEVBQXVCO0 FBQ3JCLGNB QVUsQ0FBQy xDQUFDLFFB QVEsT0FBcE I7QUFDQSxh QUFTLGFBQW EsT0FBdEI7 QUFDQSxjQU FVLFNBQVMs VUFBVSxTQU FTLFFBQVEs T0FBakIsS0 FBNkIsQ0FB dkMsRUFBME MsSUFBMUMs Q0FBVCxHQU EyRCxPQUFy RTtBQUNBLG VBQVcsY0FB YyxPQUFkLE dBQXdCLENB QUMsQ0FBQy xRQUFRLFFB QWxDLEdBQT ZDLFFBQXhE O0FBQ0Q7O0 FBRUQsV0FB UyxVQUFULE NBQW9CLElB QXBCLEVBQT BCO0FBQ3hC LFFBQUksT0 FBTyxRQUFY O0FBQUEsUU FDSSxVQUFV LFFBRGQ7O0 FBR0EsZUFB VyxXQUFXLF NBQXRCO0FB Q0EscUJBQW lCLElBQWpC O0FBQ0EsYU FBUyxLQUFL LEtBQUwsQ0 FBVyxPQUFY LEVBQW9CLE lBQXBCLENB QVQ7QUFDQS xXQUFPLE1B QVA7QUFDRD s7QUFFRCxX QUFTLFdBQV QsQ0FBcUIs SUFBckIsRU FBMkI7QUFD ekI7QUFDQS xxQkFBaUIs SUFBakI7QU FDQTtBQUNB LGNBQVUsV0 FBVyxZQUFY LEVBQXlCLE lBQXpCLENB QVY7QUFDQT tBQUNBLFdB QU8sVUFBVS xXQUFXLElB QVgsQ0FBVi xHQUE2QixN QUFwQztBQU NEOztBQUVE LFdBQVMsYU FBVCxDQUF1 QixJQUF2Qi xFQUE2QjtB QUMzQixRQU FJLG9CQUFv QixPQUFPLF lBQS9CO0FB QUEsUUFDSS xzQkFBc0Is T0FBTyxjQU RqQztBQUFB LFFBRUksU0 FBUyxPQUFP LGlCQUZwQj s7QUFJQSxX QUFPLFNBQV MsVUFBVSxN QUFWLEVBQW tCLFVBQVUs bUJBQTVCLE NBQVQsR0FB NEQsTUFBbk U7QUFDRDs7 QUFFRCxXQU FTLFlBQVQs Q0FBc0IsSU FBdEIsRUFB NEI7QUFDMU IsUUFBSSxv QkFBb0IsT0 FBTyxZQUEv QjtBQUFBLF FBQ0ksc0JB QXNCLE9BQU 8sY0FEakM7 O0FBR0E7QU FDQTtBQUNB O0FBQ0EsV0 FBUSxpQkFB aUIsU0FBak IsSUFBK0Is cUJBQXFCLE lBQXBELElB Q0wsb0JBQW 9CLENBRGYs SUFDc0IsVU FBVSx1QkFB dUIsT0FEL0 Q7QUFFRDs7 QUFFRCxXQU FTLFlBQVQs R0FBd0I7QU FDdEIsUUFB SSxPQUFPLE tBQVg7QUFD QSxRQUFJLG FBQWEsSUFB YixDQUFKLE VBQXdCO0FB Q3RCLGFBQU 8sYUFBYSxJ QUFiLENBQV A7QUFDRDtB QUNEO0FBQ0 EsY0FBVSxX QUFXLFlBQV gsRUFBeUIs Y0FBYyxJQU FkLENBQXpC LENBQVY7QU FDRDs7QUFF RCxXQUFTLF lBQVQsQ0FB c0IsSUFBdE IsRUFBNEI7 QUFDMUIsY0 FBVSxTQUFW OztBQUVBO0 FBQ0E7QUFD QSxRQUFJLF lBQVksUUFB aEIsRUFBME I7QUFDeEIs YUFBTyxXQU FXLElBQVgs Q0FBUDtBQU NEO0FBQ0Qs ZUFBVyxXQU FXLFNBQXRC O0FBQ0EsV0 FBTyxNQUFQ O0FBQ0Q7O0 FBRUQsV0FB UyxNQUFULE dBQWtCO0FB Q2hCLFFBQU ksWUFBWSxT QUFoQixFQU EyQjtBQUN6 QixtQkFBYS xPQUFiO0FB Q0Q7QUFDRC xxQkFBaUIs Q0FBakI7QU FDQSxlQUFX LGVBQWUsV0 FBVyxVQUFV LFNBQS9DO0 FBQ0Q7O0FB RUQsV0FBUy xLQUFULEdB QWlCO0FBQ2 YsV0FBTyxZ QUFZLFNBQV osR0FBd0Is TUFBeEIsR0 FBaUMsYUFB YSxLQUFiLE NBQXhDO0FB Q0Q7O0FBRU QsV0FBUyxT QUFULEdBQX FCO0FBQ25C LFFBQUksT0 FBTyxLQUFY O0FBQUEsUU FDSSxhQUFh LGFBQWEsSU FBYixDQURq Qjs7QUFHQS xlQUFXLFNB QVg7QUFDQS xlQUFXLElB QVg7QUFDQS xtQkFBZSxJ QUFmOztBQU VBLFFBQUks VUFBSixFQU FnQjtBQUNk LFVBQUksWU FBWSxTQUFo QixFQUEyQj tBQUN6Qixl QUFPLFlBQV ksWUFBWixD QUFQO0FBQ0 Q7QUFDRCxV QUFJLE1BQU osRUFBWTtB QUNWO0FBQ0 Esa0JBQVUs V0FBVyxZQU FYLEVBQXlC LElBQXpCLE NBQVY7QUFD QSxlQUFPLF dBQVcsWUFB WCxDQUFQO0 FBQ0Q7QUFD RjtBQUNELF FBQUksWUFB WSxTQUFoQi xFQUEyQjtB QUN6QixnQk FBVSxXQUFX LFlBQVgsRU FBeUIsSUFB ekIsQ0FBVj tBQUNEO0FB Q0QsV0FBTy xNQUFQO0FB Q0Q7QUFDRC xZQUFVLE1B QVYsR0FBbU IsTUFBbkI7 QUFDQSxZQU FVLEtBQVYs R0FBa0IsS0 FBbEI7QUFD QSxTQUFPLF NBQVA7QUFD RDs7QUFFRD s7Ozs7Ozs7 Ozs7Ozs7Oz s7Ozs7Ozs7 OztBQXlCQS xTQUFTLFFB QVQsQ0FBa0 IsS0FBbEIs RUFBeUI7QU FDdkIsTUFB SSxjQUFjLE tBQWQseUNB QWMsS0FBZC xDQUFKO0FB Q0EsU0FBTy xDQUFDLENB QUMsS0FBRi xLQUFZLFFB QVEsUUFBUi xJQUFvQixR QUFRLFVBQX hDLENBQVA7 QUFDRDs7QU FFRDs7Ozs7 Ozs7Ozs7Oz s7Ozs7Ozs7 Ozs7O0FBd0 JBLFNBQVMs WUFBVCxDQU FzQixLQUF0 QixFQUE2Qj tBQUMzQixT QUFPLENBQU MsQ0FBQyxL QUFGLElBQV csUUFBTyxL QUFQLHlDQU FPLEtBQVAs TUFBZ0IsUU FBbEM7QUFD RDs7QUFFRD s7Ozs7Ozs7 Ozs7Ozs7Oz s7QUFpQkEs U0FBUyxRQU FULENBQWtC LEtBQWxCLE VBQXlCO0FB Q3ZCLFNBQU 8sUUFBTyxL QUFQLHlDQU FPLEtBQVAs TUFBZ0IsUU FBaEIsSUFD SixhQUFhLE tBQWIsS0FB dUIsZUFBZS xJQUFmLENB QW9CLEtBQX BCLEtBQThC LFNBRHhEO0 FBRUQ7O0FB RUQ7Ozs7Oz s7Ozs7Ozs7 Ozs7Ozs7Oz s7O0FBdUJB LFNBQVMsUU FBVCxDQUFr QixLQUFsQi xFQUF5QjtB QUN2QixNQU FJLE9BQU8s S0FBUCxJQU FnQixRQUFw QixFQUE4Qj tBQUM1QixX QUFPLEtBQV A7QUFDRDtB QUNELE1BQU ksU0FBUyxL QUFULENBQU osRUFBcUI7 QUFDbkIsV0 FBTyxHQUFQ O0FBQ0Q7QU FDRCxNQUFJ LFNBQVMsS0 FBVCxDQUFK LEVBQXFCO0 FBQ25CLFFB QUksUUFBUS xPQUFPLE1B QU0sT0FBYi xJQUF3QixV QUF4QixHQU FxQyxNQUFN LE9BQU4sRU FBckMsR0FB dUQsS0FBbk U7QUFDQSxZ QUFRLFNBQV MsS0FBVCxJ QUFtQixRQU FRLEVBQTNC LEdBQWlDLE tBQXpDO0FB Q0Q7QUFDRC xNQUFJLE9B QU8sS0FBUC xJQUFnQixR QUFwQixFQU E4QjtBQUM1 QixXQUFPLF VBQVUsQ0FB VixHQUFjLE tBQWQsR0FB c0IsQ0FBQy xLQUE5QjtB QUNEO0FBQ0 QsVUFBUSxN QUFNLE9BQU 4sQ0FBYyxN QUFkLEVBQX NCLEVBQXRC LENBQVI7QU FDQSxNQUFJ LFdBQVcsV0 FBVyxJQUFY LENBQWdCLE tBQWhCLENB QWY7QUFDQS xTQUFRLFlB QVksVUFBVS xJQUFWLENB QWUsS0FBZi xDQUFiLEdB Q0gsYUFBYS xNQUFNLEtB QU4sQ0FBWS xDQUFaLENB QWIsRUFBNk IsV0FBVyxD QUFYLEdBQW UsQ0FBNUMs Q0FERyxHQU VGLFdBQVcs SUFBWCxDQU FnQixLQUFo QixJQUF5Qi xHQUF6QixH QUErQixDQU FDLEtBRnJD O0FBR0Q7O0 FBRUQsT0FB TyxPQUFQLE dBQWlCLFFB QWpCOzs7Oz tBQ3hYQTs7 Ozs7O0FBTU E7QUFDQTs7 QUFDQSxJQU FJLHdCQUF3 QixPQUFPLH FCQUFuQztB QUNBLElBQU ksaUJBQWlC LE9BQU8sU0 FBUCxDQUFp QixjQUF0Qz tBQUNBLElB QUksbUJBQW 1CLE9BQU8s U0FBUCxDQU FpQixvQkFB eEM7O0FBRU EsU0FBUyxR QUFULENBQW tCLEdBQWxC LEVBQXVCO0 FBQ3RCLEtB QUksUUFBUS xJQUFSLElB QWdCLFFBQV EsU0FBNUIs RUFBdUM7QU FDdEMsUUFB TSxJQUFJLF NBQUosQ0FB Yyx1REFBZC xDQUFOO0FB Q0E7O0FBRU QsUUFBTyxP QUFPLEdBQV AsQ0FBUDtB QUNBOztBQU VELFNBQVMs ZUFBVCxHQU EyQjtBQUMx QixLQUFJO0 FBQ0gsTUFB SSxDQUFDLE 9BQU8sTUFB WixFQUFvQj tBQUNuQixV QUFPLEtBQV A7QUFDQTs7 QUFFRDs7QU FFQTtBQUNB LE1BQUksUU FBUSxJQUFJ LE1BQUosQ0 FBVyxLQUFY LENBQVosQ0 FSRyxDQVE2 QjtBQUNoQy xRQUFNLENB QU4sSUFBVy xJQUFYO0FB Q0EsTUFBSS xPQUFPLG1C QUFQLENBQT JCLEtBQTNC LEVBQWtDLE NBQWxDLE1B QXlDLEdBQT dDLEVBQWtE O0FBQ2pELF VBQU8sS0FB UDtBQUNBOz tBQUVEO0FB Q0EsTUFBSS xRQUFRLEVB QVo7QUFDQS xPQUFLLElB QUksSUFBSS xDQUFiLEVB QWdCLElBQU ksRUFBcEIs RUFBd0IsR0 FBeEIsRUFB NkI7QUFDNU IsU0FBTSxN QUFNLE9BQU 8sWUFBUCxD QUFvQixDQU FwQixDQUFa LElBQXNDLE NBQXRDO0FB Q0E7QUFDRC xNQUFJLFNB QVMsT0FBTy xtQkFBUCxD QUEyQixLQU EzQixFQUFr QyxHQUFsQy xDQUFzQyxV QUFVLENBQV YsRUFBYTtB QUMvRCxVQU FPLE1BQU0s Q0FBTixDQU FQO0FBQ0Es R0FGWSxDQU FiO0FBR0Es TUFBSSxPQU FPLElBQVAs Q0FBWSxFQU FaLE1BQW9C LFlBQXhCLE VBQXNDO0FB Q3JDLFVBQU 8sS0FBUDtB QUNBOztBQU VEO0FBQ0Es TUFBSSxRQU FRLEVBQVo7 QUFDQSx5Qk FBdUIsS0FB dkIsQ0FBNk IsRUFBN0Is RUFBaUMsT0 FBakMsQ0FB eUMsVUFBVS xNQUFWLEVB QWtCO0FBQz FELFNBQU0s TUFBTixJQU FnQixNQUFo QjtBQUNBLE dBRkQ7QUFH QSxNQUFJLE 9BQU8sSUFB UCxDQUFZLE 9BQU8sTUFB UCxDQUFjLE VBQWQsRUFB a0IsS0FBbE IsQ0FBWixF QUFzQyxJQU F0QyxDQUEy QyxFQUEzQy xNQUNGLHNC QURGLEVBQz BCO0FBQ3pC LFVBQU8sS0 FBUDtBQUNB OztBQUVELF NBQU8sSUFB UDtBQUNBLE VBckNELENB cUNFLE9BQU 8sR0FBUCxF QUFZO0FBQ2 I7QUFDQSxT QUFPLEtBQV A7QUFDQTtB QUNEOztBQU VELE9BQU8s T0FBUCxHQU FpQixvQkFB b0IsT0FBTy xNQUEzQixH QUFvQyxVQU FVLE1BQVYs RUFBa0IsTU FBbEIsRUFB MEI7QUFDOU UsS0FBSSxJ QUFKO0FBQ0 EsS0FBSSxL QUFLLFNBQV MsTUFBVCxD QUFUO0FBQ0 EsS0FBSSxP QUFKOztBQU VBLE1BQUss SUFBSSxJQU FJLENBQWIs RUFBZ0IsSU FBSSxVQUFV LE1BQTlCLE VBQXNDLEdB QXRDLEVBQT JDO0FBQzFD LFNBQU8sT0 FBTyxVQUFV LENBQVYsQ0 FBUCxDQUFQ OztBQUVBLE 9BQUssSUFB SSxHQUFULE lBQWdCLElB QWhCLEVBQX NCO0FBQ3JC LE9BQUksZU FBZSxJQUFm LENBQW9CLE lBQXBCLEVB QTBCLEdBQT FCLENBQUos RUFBb0M7QU FDbkMsT0FB RyxHQUFILE lBQVUsS0FB SyxHQUFMLE NBQVY7QUFD QTtBQUNEOz tBQUVELE1B QUkscUJBQU osRUFBMkI7 QUFDMUIsYU FBVSxzQkFB c0IsSUFBdE IsQ0FBVjtB QUNBLFFBQU ssSUFBSSxJ QUFJLENBQW IsRUFBZ0Is SUFBSSxRQU FRLE1BQTVC LEVBQW9DLE dBQXBDLEVB QXlDO0FBQ3 hDLFFBQUks aUJBQWlCLE lBQWpCLENB QXNCLElBQX RCLEVBQTRC LFFBQVEsQ0 FBUixDQUE1 QixDQUFKLE VBQTZDO0FB QzVDLFFBQU csUUFBUSxD QUFSLENBQU gsSUFBaUIs S0FBSyxRQU FRLENBQVIs Q0FBTCxDQU FqQjtBQUNB O0FBQ0Q7QU FDRDtBQUNE OztBQUVELF FBQU8sRUFB UDtBQUNBLE NBekJEOzs7 Ozs7O0FDaE VBLElBQU0s U0FBUyxRQU FRLGVBQVIs Q0FBZjtBQU NBLElBQU0s V0FBVyxRQU FRLGFBQVIs Q0FBakI7QU FDQSxJQUFN LGNBQWMsUU FBUSxnQkFB UixDQUFwQj s7QUFFQSxJ QUFNLG1CQU FtQix5QkFB ekI7QUFDQS xJQUFNLFFB QVEsR0FBZD s7QUFFQSxJ QUFNLGVBQW UsU0FBZixZ QUFlLENBQV MsSUFBVCxF QUFlLE9BQW YsRUFBd0I7 QUFDM0MsTU FBSSxRQUFR LEtBQUssS0 FBTCxDQUFX LGdCQUFYLE NBQVo7QUFD QSxNQUFJLF FBQUo7QUFD QSxNQUFJLE tBQUosRUFB VztBQUNULF dBQU8sTUFB TSxDQUFOLE NBQVA7QUFD QSxlQUFXLE 1BQU0sQ0FB TixDQUFYO0 FBQ0Q7O0FB RUQsTUFBSS xPQUFKO0FB Q0EsTUFBSS xRQUFPLE9B QVAseUNBQU 8sT0FBUCxP QUFtQixRQU F2QixFQUFp QztBQUMvQi xjQUFVO0FB Q1IsZUFBUy xPQUFPLE9B QVAsRUFBZ0 IsU0FBaEIs Q0FERDtBQU VSLGVBQVMs T0FBTyxPQU FQLEVBQWdC LFNBQWhCO0 FBRkQsS0FB VjtBQUlEOz tBQUVELE1B QUksV0FBVz tBQUNiLGNB QVUsUUFERz tBQUViLGNB QVcsUUFBTy xPQUFQLHlD QUFPLE9BQV AsT0FBbUIs UUFBcEIsR0 FDTixZQUFZ LE9BQVosQ0 FETSxHQUVO LFdBQ0UsU0 FBUyxRQUFU LEVBQW1CLE 9BQW5CLENB REYsR0FFRS xPQU5PO0FB T2IsYUFBUz tBQVBJLEdB QWY7O0FBVU EsTUFBSSxL QUFLLE9BQU wsQ0FBYSxL QUFiLElBQX NCLENBQUMs Q0FBM0IsRU FBOEI7QUFD NUIsV0FBTy xLQUFLLEtB QUwsQ0FBVy xLQUFYLEVB QWtCLEdBQW xCLENBQXNC LFVBQVMsS0 FBVCxFQUFn QjtBQUMzQy xhQUFPLE9B QU8sRUFBQy xNQUFNLEtB QVAsRUFBUC xFQUFzQixR QUF0QixDQU FQO0FBQ0Qs S0FGTSxDQU FQO0FBR0Qs R0FKRCxNQU lPO0FBQ0ws YUFBUyxJQU FULEdBQWdC LElBQWhCO0 FBQ0EsV0FB TyxDQUFDLF FBQUQsQ0FB UDtBQUNEO0 FBQ0YsQ0Fs Q0Q7O0FBb0 NBLElBQUks U0FBUyxTQU FULE1BQVMs Q0FBUyxHQU FULEVBQWMs R0FBZCxFQU FtQjtBQUM5 QixNQUFJLF FBQVEsSUFB SSxHQUFKLE NBQVo7QUFD QSxTQUFPLE lBQUksR0FB SixDQUFQO0 FBQ0EsU0FB TyxLQUFQO0 FBQ0QsQ0FK RDs7QUFNQS xPQUFPLE9B QVAsR0FBaU IsU0FBUyxR QUFULENBQW tCLE1BQWxC LEVBQTBCLE tBQTFCLEVB QWlDO0FBQ2 hELE1BQU0s WUFBWSxPQU FPLElBQVAs Q0FBWSxNQU FaLEVBQ2Ys TUFEZSxDQU NSLFVBQVMs SUFBVCxFQU FlLElBQWYs RUFBcUI7QU FDM0IsUUFB SSxZQUFZLG FBQWEsSUFB YixFQUFtQi xPQUFPLElB QVAsQ0FBbk IsQ0FBaEI7 QUFDQSxXQU FPLEtBQUss TUFBTCxDQU FZLFNBQVos Q0FBUDtBQU NELEdBSmUs RUFJYixFQU phLENBQWxC OztBQU1BLF NBQU8sT0FB TztBQUNaLF NBQUssU0FB UyxXQUFULE NBQXFCLE9B QXJCLEVBQT hCO0FBQ2pD LGdCQUFVLE 9BQVYsQ0FB a0IsVUFBUy xRQUFULEVB QW1CO0FBQ2 5DLGdCQUFR LGdCQUFSLE NBQ0UsU0FB UyxJQURYLE VBRUUsU0FB UyxRQUZYLE VBR0UsU0FB UyxPQUhYO0 FBS0QsT0FO RDtBQU9ELE tBVFc7QUFV WixZQUFRLF NBQVMsY0FB VCxDQUF3Qi xPQUF4QixF QUFpQztBQU N2QyxnQkFB VSxPQUFWLE NBQWtCLFVB QVMsUUFBVC xFQUFtQjtB QUNuQyxnQk FBUSxtQkFB UixDQUNFLF NBQVMsSUFE WCxFQUVFLF NBQVMsUUFG WCxFQUdFLF NBQVMsT0FI WDtBQUtELE 9BTkQ7QUFP RDtBQWxCVy xHQUFQLEVB bUJKLEtBbk JJLENBQVA7 QUFvQkQsQ0 EzQkQ7Ozs7 O0FDakRBLE 9BQU8sT0FB UCxHQUFpQi xTQUFTLE9B QVQsQ0FBaU IsU0FBakIs RUFBNEI7QU FDM0MsU0FB TyxVQUFTLE NBQVQsRUFB WTtBQUNqQi xXQUFPLFVB QVUsSUFBVi xDQUFlLFVB QVMsRUFBVC xFQUFhO0FB Q2pDLGFBQU 8sR0FBRyxJ QUFILENBQV EsSUFBUixF QUFjLENBQW QsTUFBcUIs S0FBNUI7QU FDRCxLQUZN LEVBRUosSU FGSSxDQUFQ O0FBR0QsR0 FKRDtBQUtE LENBTkQ7Oz s7O0FDQUE7 QUFDQSxRQU FRLGlCQUFS OztBQUVBLE 9BQU8sT0FB UCxHQUFpQi xTQUFTLFFB QVQsQ0FBa0 IsUUFBbEIs RUFBNEIsRU FBNUIsRUFB Z0M7QUFDL0 MsU0FBTyxT QUFTLFVBQV QsQ0FBb0Is S0FBcEIsRU FBMkI7QUFD aEMsUUFBSS xTQUFTLE1B QU0sTUFBTi xDQUFhLE9B QWIsQ0FBcU IsUUFBckIs Q0FBYjtBQU NBLFFBQUks TUFBSixFQU FZO0FBQ1Ys YUFBTyxHQU FHLElBQUgs Q0FBUSxNQU FSLEVBQWdC LEtBQWhCLE NBQVA7QUFD RDtBQUNGLE dBTEQ7QUFN RCxDQVBEOz s7OztBQ0hB LElBQU0sV0 FBVyxRQUFR LGFBQVIsQ0 FBakI7QUFD QSxJQUFNLF VBQVUsUUFB USxZQUFSLE NBQWhCOztB QUVBLElBQU 0sUUFBUSxH QUFkOztBQU VBLE9BQU8s T0FBUCxHQU FpQixTQUFT LFdBQVQsQ0 FBcUIsU0FB ckIsRUFBZ0 M7QUFDL0Ms TUFBTSxPQU FPLE9BQU8s SUFBUCxDQU FZLFNBQVos Q0FBYjs7QU FFQTtBQUNB O0FBQ0E7QU FDQSxNQUFJ LEtBQUssTU FBTCxLQUFn QixDQUFoQi xJQUFxQixL QUFLLENBQU wsTUFBWSxL QUFyQyxFQU E0QztBQUMx QyxXQUFPLF VBQVUsS0FB VixDQUFQO0 FBQ0Q7O0FB RUQsTUFBTS xZQUFZLEtB QUssTUFBTC xDQUFZLFVB QVMsSUFBVC xFQUFlLFFB QWYsRUFBeU I7QUFDckQs U0FBSyxJQU FMLENBQVUs U0FBUyxRQU FULEVBQW1C LFVBQVUsUU FBVixDQUFu QixDQUFWO0 FBQ0EsV0FB TyxJQUFQO0 FBQ0QsR0FI aUIsRUFHZi xFQUhlLENB QWxCO0FBSU EsU0FBTyxR QUFRLFNBQV IsQ0FBUDtB QUNELENBZk Q7Ozs7O0FD TEEsT0FBTy xPQUFQLEdB QWlCLFNBQV MsTUFBVCxD QUFnQixPQU FoQixFQUF5 QixFQUF6Qi xFQUE2QjtB QUM1QyxTQU FPLFNBQVMs U0FBVCxDQU FtQixDQUFu QixFQUFzQj tBQUMzQixR QUFJLFlBQV ksRUFBRSxN QUFkLElBQX dCLENBQUMs UUFBUSxRQU FSLENBQWlC LEVBQUUsTU FBbkIsQ0FB N0IsRUFBeU Q7QUFDdkQs YUFBTyxHQU FHLElBQUgs Q0FBUSxJQU FSLEVBQWMs Q0FBZCxDQU FQO0FBQ0Q7 QUFDRixHQU pEO0FBS0Qs Q0FORDs7Oz s7QUNBQSxP QUFPLE9BQV AsR0FBaUIs U0FBUyxJQU FULENBQWMs UUFBZCxFQU F3QixPQUF4 QixFQUFpQz tBQUNoRCxN QUFJLFVBQV UsU0FBUyxX QUFULENBQX FCLENBQXJC LEVBQXdCO0 FBQ3BDLE1B QUUsYUFBRi xDQUFnQixt QkFBaEIsQ0 FBb0MsRUFB RSxJQUF0Qy xFQUE0QyxP QUE1QyxFQU FxRCxPQUFy RDtBQUNBLF dBQU8sU0FB UyxJQUFULE NBQWMsSUFB ZCxFQUFvQi xDQUFwQixD QUFQO0FBQ0 QsR0FIRDtB QUlBLFNBQU 8sT0FBUDtB QUNELENBTk Q7OztBQ0FB Ozs7O0FBRU EsSUFBSSxV QUFVLGdCQU FkO0FBQ0Es SUFBSSxXQU FXLEtBQWY7 O0FBRUEsSU FBSSxPQUFP LE9BQU8sU0 FBUCxDQUFp QixJQUFqQi xHQUNQLFVB QVMsR0FBVC xFQUFjO0FB QUUsU0FBTy xJQUFJLElB QUosRUFBUD tBQUFvQixD QUQ3QixHQU VQLFVBQVMs R0FBVCxFQU FjO0FBQUUs U0FBTyxJQU FJLE9BQUos Q0FBWSxPQU FaLEVBQXFC LEVBQXJCLE NBQVA7QUFB a0MsQ0FGdE Q7O0FBSUEs SUFBSSxZQU FZLFNBQVos U0FBWSxDQU FTLEVBQVQs RUFBYTtBQU MzQixTQUFP LEtBQUssYU FBTCxDQUFt QixVQUFVLE dBQUcsT0FB SCxDQUFXLE lBQVgsRUFB aUIsS0FBak IsQ0FBVixH QUFvQyxJQU F2RCxDQUFQ O0FBQ0QsQ0 FGRDs7QUFJ QSxPQUFPLE 9BQVAsR0FB aUIsU0FBUy xVQUFULENB QW9CLEdBQX BCLEVBQXlC LEdBQXpCLE VBQThCO0FB QzdDLE1BQU ksT0FBTyxH QUFQLEtBQW UsUUFBbkIs RUFBNkI7QU FDM0IsVUFB TSxJQUFJLE tBQUosQ0FB VSx1Q0FBdU MsR0FBdkMs eUNBQXVDLE dBQXZDLEVB QVYsQ0FBTj tBQUNEOztB QUVELE1BQU ksQ0FBQyxH QUFMLEVBQV U7QUFDUixV QUFNLE9BQU 8sUUFBYjtB QUNEOztBQU VELE1BQUks aUJBQWlCLE lBQUksY0FB SixHQUNqQi xJQUFJLGNB QUosQ0FBbU IsSUFBbkIs Q0FBd0IsR0 FBeEIsQ0FE aUIsR0FFak IsVUFBVSxJ QUFWLENBQW UsR0FBZixD QUZKOztBQU lBLFFBQU0s S0FBSyxHQU FMLEVBQVUs S0FBVixDQU FnQixRQUFo QixDQUFOOz tBQUVBO0FB Q0E7QUFDQT tBQUNBLE1B QUksSUFBSS xNQUFKLEtB QWUsQ0FBZi xJQUFvQixJ QUFJLENBQU osTUFBVyxF QUFuQyxFQU F1QztBQUNy QyxXQUFPLE VBQVA7QUFD RDs7QUFFRC xTQUFPLElB Q0osR0FESS xDQUNBLFVB QVMsRUFBVC xFQUFhO0FB Q2hCLFFBQU ksS0FBSyxl QUFlLEVBQW YsQ0FBVDtB QUNBLFFBQU ksQ0FBQyxF QUFMLEVBQV M7QUFDUCxZ QUFNLElBQU ksS0FBSixD QUFVLDBCQU EwQixFQUEx QixHQUErQi xHQUF6QyxD QUFOO0FBQ0 Q7QUFDRCxX QUFPLEVBQV A7QUFDRCxH QVBJLENBQV A7QUFRRCxD QTlCRDs7O0 FDYkE7Ozs7 QUFDQSxJQU FNLFdBQVcs UUFBUSxtQk FBUixDQUFq QjtBQUNBLE lBQU0sU0FB UyxRQUFRLG NBQVIsQ0FB ZjtBQUNBLE lBQU0sVUFB VSxRQUFRLG VBQVIsQ0FB aEI7QUFDQS xJQUFNLFNB QVMsUUFBUS xpQkFBUixD QUFmO0FBQ0 EsSUFBTSxz QkFBc0IsUU FBUSx5QkFB UixDQUE1Qj s7QUFFQSxJ QUFNLFFBQV EsUUFBUSxX QUFSLEVBQX FCLEtBQW5D O0FBQ0EsSU FBTSxTQUFT LFFBQVEsV0 FBUixFQUFx QixNQUFwQz s7QUFFQTtB QUNBLElBQU 0sa0JBQWdC LE1BQWhCLH FCQUFzQyxN QUF0Qyx3Qk FBTjtBQUNB LElBQU0sZU FBYSxNQUFi LHFDQUFOO0 FBQ0EsSUFB TSxXQUFXLG VBQWpCO0FB Q0EsSUFBTS xrQkFBa0Is c0JBQXhCOz tBQUVBOzs7 Ozs7Ozs7QU FTQSxJQUFN LGVBQWUsU0 FBZixZQUFl LENBQUMsTU FBRCxFQUFT LFFBQVQsRU FBc0I7QUFD ekMsTUFBSS xZQUFZLE9B QU8sT0FBUC xDQUFlLFNB QWYsQ0FBaE I7QUFDQSxN QUFJLENBQU MsU0FBTCxF QUFnQjtBQU NkLFVBQU0s SUFBSSxLQU FKLENBQWEs TUFBYiwwQk FBd0MsU0FB eEMsQ0FBTj tBQUNEOztB QUVELGFBQV csT0FBTyxN QUFQLEVBQW UsUUFBZixD QUFYO0FBQ0 E7QUFDQSxN QUFNLGtCQU FrQixVQUFV LFlBQVYsQ0 FBdUIsZUFB dkIsTUFBNE MsTUFBcEU7 O0FBRUEsTU FBSSxZQUFZ LENBQUMsZU FBakIsRUFB a0M7QUFDaE MsWUFBUSxv QkFBb0IsU0 FBcEIsQ0FB UixFQUF3Qy xpQkFBUztB QUMvQyxVQU FJLFVBQVUs TUFBZCxFQU FzQjtBQUNw QixlQUFPLE tBQVAsRUFB YyxLQUFkO0 FBQ0Q7QUFD RixLQUpEO0 FBS0Q7QUFD RixDQWpCRD s7QUFtQkE7 Ozs7QUFJQS xJQUFNLGFB QWEsU0FBYi xVQUFhO0FB QUEsU0FBVS xhQUFhLE1B QWIsRUFBcU IsSUFBckIs Q0FBVjtBQU FBLENBQW5C OztBQUVBOz s7O0FBSUEs SUFBTSxhQU FhLFNBQWIs VUFBYTtBQU FBLFNBQVUs YUFBYSxNQU FiLEVBQXFC LEtBQXJCLE NBQVY7QUFB QSxDQUFuQj s7QUFFQTs7 Ozs7O0FBTU EsSUFBTSxz QkFBc0IsU0 FBdEIsbUJB QXNCLFlBQW E7QUFDdkMs U0FBTyxPQU FPLFVBQVUs Z0JBQVYsQ0 FBMkIsTUFB M0IsQ0FBUC xFQUEyQyxr QkFBVTtBQU MxRCxXQUFP LE9BQU8sT0 FBUCxDQUFl LFNBQWYsTU FBOEIsU0FB ckM7QUFDRC xHQUZNLENB QVA7QUFHRC xDQUpEOztB QU1BLElBQU 0sWUFBWSw2 QkFDZCxLQU RjLHNCQUVa LE1BRlksRU FFRixVQUFV LEtBQVYsRU FBaUI7QUFD M0IsUUFBTS xjQUFOO0FB Q0EsZUFBYS xJQUFiOztB QUVBLE1BQU ksS0FBSyxZ QUFMLENBQW tCLFFBQWxC LE1BQWdDLE 1BQXBDLEVB QTRDO0FBQz FDO0FBQ0E7 QUFDQTtBQU NBLFFBQUks Q0FBQyxvQk FBb0IsSUFB cEIsQ0FBTC xFQUFnQyxL QUFLLGNBQU w7QUFDakM7 QUFDRixDQV phLElBY2Y7 QUFDRCxRQU FNLG9CQUFR O0FBQ1osWU FBUSxLQUFL LGdCQUFMLE NBQXNCLE1B QXRCLENBQV IsRUFBdUMs a0JBQVU7QU FDL0MsVUFB TSxXQUFXLE 9BQU8sWUFB UCxDQUFvQi xRQUFwQixN QUFrQyxNQU FuRDtBQUNB LG1CQUFhLE 1BQWIsRUFB cUIsUUFBck I7QUFDRCxL QUhEO0FBSU QsR0FOQTtB QU9ELHNCQV BDO0FBUUQs Z0JBUkM7QU FTRCxRQUFN LFVBVEw7QU FVRCxRQUFN LFVBVkw7QU FXRCxVQUFR LFlBWFA7QU FZRCxjQUFZ O0FBWlgsQ0 FkZSxDQUFs Qjs7QUE2Qk E7Ozs7OztB QU1BLElBQU 0sWUFBWSxT QUFaLFNBQV ksQ0FBVSxJ QUFWLEVBQW dCO0FBQ2hD LE9BQUssSU FBTCxHQUFZ LElBQVo7QU FDQSxZQUFV LEVBQVYsQ0 FBYSxLQUFL LElBQWxCO0 FBQ0QsQ0FI RDs7QUFLQT tBQUNBLElB QU0sU0FBUy xRQUFRLGVB QVIsQ0FBZj tBQUNBLE9B QU8sU0FBUC xFQUFrQixT QUFsQjs7QU FFQSxVQUFV LFNBQVYsQ0 FBb0IsSUFB cEIsR0FBMk IsVUFBM0I7 QUFDQSxVQU FVLFNBQVYs Q0FBb0IsSU FBcEIsR0FB MkIsVUFBM0 I7O0FBRUEs VUFBVSxTQU FWLENBQW9C LE1BQXBCLE dBQTZCLFlB QVk7QUFDdk MsWUFBVSxH QUFWLENBQW MsS0FBSyxJ QUFuQjtBQU NELENBRkQ7 O0FBSUEsT0 FBTyxPQUFQ LEdBQWlCLF NBQWpCOzs7 QUN2SEE7Oz s7QUFDQSxJ QUFNLFdBQV csUUFBUSxt QkFBUixDQU FqQjtBQUNB LElBQU0sU0 FBUyxRQUFR LGlCQUFSLE NBQWY7O0FB RUEsSUFBTS xRQUFRLFFB QVEsV0FBUi xFQUFxQixL QUFuQztBQU NBLElBQU0s U0FBUyxRQU FRLFdBQVIs RUFBcUIsTU FBcEM7O0FB RUEsSUFBTS xlQUFhLE1B QWIsbUJBQU 47QUFDQSxJ QUFNLGlCQU FvQixNQUFw Qiw0QkFBTj s7QUFFQSxJ QUFNLGVBQW UsU0FBZixZ QUFlLENBQV UsS0FBVixF QUFpQjtBQU NwQyxRQUFN LGNBQU47QU FDQSxPQUFL LE9BQUwsQ0 FBYSxNQUFi LEVBQXFCLF NBQXJCLENB QStCLE1BQS 9CLENBQXND LGNBQXRDO0 FBQ0EsU0FB TyxLQUFQO0 FBQ0QsQ0FK RDs7QUFNQS xPQUFPLE9B QVAsR0FBaU IsNkJBQ2Is S0FEYSxzQk FFUixNQUZR LHVCQUVvQi xZQUZwQixH QUFqQjs7O0 FDaEJBOzs7 O0FBQ0EsSU FBTSxZQUFZ LFFBQVEsYU FBUixDQUFs QjtBQUNBLE lBQU0sV0FB VyxRQUFRLG 1CQUFSLENB QWpCO0FBQ0 EsSUFBTSxX QUFXLFFBQV EsaUJBQVIs Q0FBakI7QU FDQSxJQUFN LFVBQVUsUU FBUSxlQUFS LENBQWhCO0 FBQ0EsSUFB TSxTQUFTLF FBQVEsaUJB QVIsQ0FBZj s7QUFFQSxJ QUFNLFFBQV EsUUFBUSxX QUFSLEVBQX FCLEtBQW5D O0FBQ0EsSU FBTSxTQUFT LFFBQVEsV0 FBUixFQUFx QixNQUFwQz s7QUFFQSxJ QUFNLFNBQV MsUUFBZjtB QUNBLElBQU 0sY0FBWSxN QUFaLGdCQU FOO0FBQ0Es SUFBTSxNQU FTLEtBQVQs U0FBTjtBQU NBLElBQU0s U0FBWSxHQU FaLFVBQW9C LE1BQXBCLH lCQUFOO0FB Q0EsSUFBTS xPQUFVLEdB QVYsUUFBTj s7QUFFQSxJ QUFNLGlCQU FpQixHQUF2 QjtBQUNBLE lBQU0sZ0JB QWdCLEdBQX RCOztBQUVB LElBQU0sWU FBWSxTQUFa LFNBQVksR0 FBWTtBQUM1 QixNQUFNLE 9BQU8sS0FB SyxPQUFMLE NBQWEsSUFB YixDQUFiO0 FBQ0EsT0FB SyxTQUFMLE NBQWUsTUFB ZixDQUFzQi xNQUF0Qjs7 QUFFQTtBQU NBO0FBQ0Es TUFBTSxRQU FRLEtBQUss T0FBTCxDQU FhLEdBQWIs RUFDWCxnQk FEVyxDQUNN LElBRE4sQ0 FBZDs7QUFH QSxVQUFRLE tBQVIsRUFB ZSxjQUFNO0 FBQ25CLFFB QUksT0FBTy xJQUFYLEVB QWlCO0FBQ2 YsU0FBRyxT QUFILENBQW EsR0FBYixD QUFpQixNQU FqQjtBQUNE O0FBQ0YsR0 FKRDtBQUtE LENBZEQ7O0 FBZ0JBLElB QU0sU0FBUy xTQUFTLFlB QU07QUFDNU IsTUFBTSxT QUFTLE9BQU 8sVUFBUCxH QUFvQixjQU FuQztBQUNB LFVBQVEsT0 FBTyxJQUFQ LENBQVIsRU FBc0IsZ0JB QVE7QUFDNU IsU0FBSyxT QUFMLENBQW UsTUFBZixD QUFzQixNQU F0QixFQUE4 QixNQUE5Qj tBQUNELEdB RkQ7QUFHRC xDQUxjLEVB S1osYUFMWS xDQUFmOztB QU9BLE9BQU 8sT0FBUCxH QUFpQiw2Qk FDYixLQURh LHNCQUVYLE 1BRlcsRUFF RCxTQUZDLE lBSWQ7QUFD RDtBQUNBLG dDQUZDO0FB R0QsOEJBSE M7O0FBS0Qs UUFBTSxzQk FBVTtBQUNk O0FBQ0EsV0 FBTyxnQkFB UCxDQUF3Qi xRQUF4QixF QUFrQyxNQU FsQztBQUNE LEdBUkE7O0 FBVUQsWUFB VSwwQkFBVT tBQUNsQixX QUFPLG1CQU FQLENBQTJC LFFBQTNCLE VBQXFDLE1B QXJDO0FBQ0 Q7QUFaQSxD QUpjLENBQW pCOzs7OztB QzFDQSxPQU FPLE9BQVAs R0FBaUI7QU FDZixhQUFZ LFFBQVEsYU FBUixDQURH O0FBRWYsVU FBWSxRQUFR LFVBQVIsQ0 FGRztBQUdm LFVBQVksUU FBUSxVQUFS LENBSEc7QU FJZixjQUFZ LFFBQVEsY0 FBUixDQUpH O0FBS2YsWU FBWSxRQUFR LFlBQVIsQ0 FMRztBQU1m LFVBQVksUU FBUSxVQUFS LENBTkc7QU FPZixXQUFZ LFFBQVEsV0 FBUixDQVBH O0FBUWYsYU FBWSxRQUFR LGFBQVI7QU FSRyxDQUFq Qjs7O0FDQU E7Ozs7OztB QUNBLElBQU 0sV0FBVyxR QUFRLG1CQU FSLENBQWpC O0FBQ0EsSU FBTSxVQUFV LFFBQVEsZU FBUixDQUFo QjtBQUNBLE lBQU0sU0FB UyxRQUFRLG lCQUFSLENB QWY7QUFDQS xJQUFNLFlB QVksUUFBUS xhQUFSLENB QWxCOztBQU VBLElBQU0s UUFBUSxRQU FRLFdBQVIs RUFBcUIsS0 FBbkM7QUFD QSxJQUFNLF NBQVMsUUFB USxXQUFSLE VBQXFCLE1B QXBDOztBQU VBLElBQU0s WUFBVSxNQU FWLFNBQU47 QUFDQSxJQU FNLFlBQWUs R0FBZixPQU FOO0FBQ0Es SUFBTSxnQk FBYyxNQUFk LGNBQU47QU FDQSxJQUFN LHFCQUFtQi xNQUFuQixl QUFOO0FBQ0 EsSUFBTSxn QkFBYyxNQU FkLGFBQU47 QUFDQSxJQU FNLFVBQWEs WUFBYixXQU ErQixNQUEv QixhQUFOO0 FBQ0EsSUFB TSxVQUFVLE NBQUUsR0FB RixFQUFPLE 9BQVAsRUFB aUIsSUFBak IsQ0FBc0Is SUFBdEIsQ0 FBaEI7O0FB RUEsSUFBTS xlQUFlLHVC QUFyQjtBQU NBLElBQU0s Z0JBQWdCLF lBQXRCOztB QUVBLElBQU 0sV0FBVyxT QUFYLFFBQV c7QUFBQSxT QUFNLFNBQV MsSUFBVCxD QUFjLFNBQW QsQ0FBd0Is UUFBeEIsQ0 FBaUMsWUFB akMsQ0FBTj tBQUFBLENB QWpCOztBQU VBLElBQU0s WUFBWSxTQU FaLFNBQVks Q0FBVSxNQU FWLEVBQWtC O0FBQ2xDLE 1BQU0sT0FB TyxTQUFTLE lBQXRCO0FB Q0EsTUFBSS xPQUFPLE1B QVAsS0FBa0 IsU0FBdEIs RUFBaUM7QU FDL0IsYUFB UyxDQUFDLF VBQVY7QUFD RDtBQUNELE 9BQUssU0FB TCxDQUFlLE 1BQWYsQ0FB c0IsWUFBdE IsRUFBb0Ms TUFBcEM7O0 FBRUEsVUFB USxPQUFPLE 9BQVAsQ0FB UixFQUF5Qi xjQUFNO0FB QzdCLE9BQU csU0FBSCxD QUFhLE1BQW IsQ0FBb0Is YUFBcEIsRU FBbUMsTUFB bkM7QUFDRC xHQUZEOztB QUlBLE1BQU 0sY0FBYyxL QUFLLGFBQU wsQ0FBbUIs WUFBbkIsQ0 FBcEI7QUFD QSxNQUFNLG FBQWEsS0FB SyxhQUFMLE NBQW1CLE9B QW5CLENBQW 5COztBQUVB LE1BQUksVU FBVSxXQUFk LEVBQTJCO0 FBQ3pCO0FB Q0E7QUFDQS xnQkFBWSxL QUFaO0FBQ0 QsR0FKRCxN QUlPLElBQU ksQ0FBQyxN QUFELElBQV csU0FBUyxh QUFULEtBQT JCLFdBQXRD LElBQ0EsVU FESixFQUNn QjtBQUNyQj tBQUNBO0FB Q0E7QUFDQT tBQUNBO0FB Q0EsZUFBVy xLQUFYO0FB Q0Q7O0FBRU QsU0FBTyxN QUFQO0FBQ0 QsQ0E3QkQ7 O0FBK0JBLE lBQU0sU0FB UyxTQUFULE 1BQVMsR0FB TTtBQUNuQi xNQUFNLFNB QVMsU0FBUy xJQUFULENB QWMsYUFBZC xDQUE0QixZ QUE1QixDQU FmOztBQUVB LE1BQUksY0 FBYyxNQUFk LElBQXdCLE 9BQU8scUJB QVAsR0FBK0 IsS0FBL0Is S0FBeUMsQ0 FBckUsRUFB d0U7QUFDdE U7QUFDQTtB QUNBO0FBQ0 E7QUFDQSxj QUFVLElBQV YsQ0FBZSxN QUFmLEVBQX VCLEtBQXZC O0FBQ0Q7QU FDRixDQVZE OztBQVlBLE lBQU0sYUFB YSw2QkFDZi xLQURlLHdD QUViLE9BRm EsRUFFRixT QUZFLDJCQU diLE9BSGEs RUFHRixTQU hFLDJCQUli LFNBSmEsRU FJQSxZQUFZ O0FBQ3pCO0 FBQ0E7QUFD QTs7QUFFQT tBQUNBO0FB Q0EsTUFBTS xNQUFNLEtB QUssT0FBTC xDQUFhLFVB QVUsU0FBdk IsQ0FBWjtB QUNBLE1BQU ksR0FBSixF QUFTO0FBQ1 AsY0FBVSxV QUFWLENBQX FCLEdBQXJC LEVBQTBCLE 9BQTFCLENB QWtDO0FBQU EsYUFBTyxV QUFVLElBQV YsQ0FBZSxH QUFmLENBQV A7QUFBQSxL QUFsQztBQU NEOztBQUVE O0FBQ0EsTU FBSSxVQUFK LEVBQWdCO0 FBQ2QsY0FB VSxJQUFWLE NBQWUsSUFB ZixFQUFxQi xLQUFyQjtB QUNEO0FBQ0 YsQ0FwQmMs YUFzQmhCO0 FBQ0QsTUFE QyxrQkFDTz tBQUNOO0FB Q0EsV0FBTy xnQkFBUCxD QUF3QixRQU F4QixFQUFr QyxNQUFsQy xFQUEwQyxL QUExQztBQU NELEdBSkE7 QUFLRCxVQU xDLHNCQUtX O0FBQ1YsV0 FBTyxtQkFB UCxDQUEyQi xRQUEzQixF QUFxQyxNQU FyQyxFQUE2 QyxLQUE3Qz tBQUNEO0FB UEEsQ0F0Qm dCLENBQW5C OztBQWdDQT s7Ozs7QUFL QSxJQUFNLF NBQVMsUUFB USxlQUFSLE NBQWY7QUFD QSxPQUFPLE 9BQVAsR0FB aUIsT0FDZj tBQUFBLFNB QU0sV0FBVy xFQUFYLENB QWMsRUFBZC xDQUFOO0FB QUEsQ0FEZS xFQUVmLFVB RmUsQ0FBak I7OztBQ3ZH QTs7OztBQU NBLElBQU0s V0FBVyxRQU FRLG1CQUFS LENBQWpCO0 FBQ0EsSUFB TSxrQkFBa0 IsUUFBUSw0 QkFBUixDQU F4Qjs7QUFF QSxJQUFNLF FBQVEsUUFB USxXQUFSLE VBQXFCLEtB QW5DO0FBQ0 EsSUFBTSxT QUFTLFFBQV EsV0FBUixF QUFxQixNQU FwQzs7QUFF QSxJQUFNLG FBQVcsTUFB WCx5QkFBcU MsTUFBckMs d0JBQU47O0 FBRUEsSUFB TSxTQUFTLF NBQVQsTUFB UyxDQUFVLE tBQVYsRUFB aUI7QUFDOU IsUUFBTSxj QUFOO0FBQ0 Esa0JBQWdC LElBQWhCO0 FBQ0QsQ0FI RDs7QUFLQS xPQUFPLE9B QVAsR0FBaU IsNkJBQ2Is S0FEYSxzQk FFWCxJQUZX LEVBRUgsTU FGRyxHQUFq Qjs7O0FDZE E7Ozs7QUFD QSxJQUFNLF dBQVcsUUFB USxtQkFBUi xDQUFqQjtB QUNBLElBQU 0sVUFBVSxR QUFRLGVBQV IsQ0FBaEI7 QUFDQSxJQU FNLFNBQVMs UUFBUSxpQk FBUixDQUFm O0FBQ0EsSU FBTSxTQUFT LFFBQVEsaU JBQVIsQ0FB Zjs7QUFFQS xJQUFNLFFB QVEsUUFBUS xXQUFSLEVB QXFCLEtBQW 5DO0FBQ0Es SUFBTSxTQU FTLFFBQVEs V0FBUixFQU FxQixNQUFw Qzs7QUFFQS xJQUFNLFNB QVMsbUJBQW Y7QUFDQSxJ QUFNLE9BQU 8saUJBQWI7 QUFDQSxJQU FNLFFBQVEs ZUFBZDtBQU NBLElBQU0s VUFBVSxRQU FoQixDLENB QTBCO0FBQz FCLElBQU0s a0JBQXFCLE 1BQXJCLGFB QU47O0FBRU EsSUFBSSxt QkFBSjs7QU FFQSxJQUFN LGFBQWEsU0 FBYixVQUFh LENBQVUsS0 FBVixFQUFp QjtBQUNsQy xlQUFhLElB QWIsRUFBbU IsSUFBbkI7 QUFDQSxlQU FhLElBQWI7 QUFDRCxDQU hEOztBQUtB LElBQU0sYU FBYSxTQUFi LFVBQWEsQ0 FBVSxLQUFW LEVBQWlCO0 FBQ2xDLGVB QWEsSUFBYi xFQUFtQixL QUFuQjtBQU NBLGVBQWEs U0FBYjtBQU NELENBSEQ7 O0FBS0EsSU FBTSxVQUFV LFNBQVYsT0 FBVSxTQUFV O0FBQ3hCLE 1BQU0sVUFB VSxPQUFPLE 9BQVAsQ0FB ZSxPQUFmLE NBQWhCO0FB Q0EsU0FBTy xVQUNILFFB QVEsYUFBUi xDQUFzQixJ QUF0QixDQU RHLEdBRUgs U0FBUyxhQU FULENBQXVC LElBQXZCLE NBRko7QUFH RCxDQUxEOz tBQU9BLElB QU0sZUFBZS xTQUFmLFlB QWUsQ0FBQy xNQUFELEVB QVMsTUFBVC xFQUFvQjtB QUN2QyxNQU FNLE9BQU8s UUFBUSxNQU FSLENBQWI7 QUFDQSxNQU FJLENBQUMs SUFBTCxFQU FXO0FBQ1Qs VUFBTSxJQU FJLEtBQUos U0FBZ0IsSU FBaEIsb0NB QW1ELE9BQW 5ELE9BQU47 QUFDRDs7QU FFRCxTQUFP LE1BQVAsR0 FBZ0IsTUFB aEI7QUFDQS xPQUFLLFNB QUwsQ0FBZS xNQUFmLENB QXNCLGVBQX RCLEVBQXVD LENBQUMsTU FBeEM7O0FB RUEsTUFBSS xNQUFKLEVB QVk7QUFDVi xRQUFNLFFB QVEsS0FBSy xhQUFMLENB QW1CLEtBQW 5CLENBQWQ7 QUFDQSxRQU FJLEtBQUos RUFBVztBQU NULFlBQU0s S0FBTjtBQU NEO0FBQ0Q7 QUFDQTtBQU NBLFFBQU0s V0FBVyxPQU FPLElBQVAs RUFBYSxhQU FLO0FBQ2pD LFVBQUksVU FBSixFQUFn QjtBQUNkLG 1CQUFXLElB QVgsQ0FBZ0 IsVUFBaEI7 QUFDRDtBQU NELGVBQVMs SUFBVCxDQU FjLG1CQUFk LENBQWtDLE tBQWxDLEVB QXlDLFFBQX pDO0FBQ0Qs S0FMZ0IsQ0 FBakI7O0FB T0E7QUFDQT tBQUNBO0FB Q0E7QUFDQT tBQUNBLGVB QVcsWUFBTT tBQUNmLGVB QVMsSUFBVC xDQUFjLGdC QUFkLENBQS tCLEtBQS9C LEVBQXNDLF FBQXRDO0FB Q0QsS0FGRC xFQUVHLENB Rkg7QUFHRD tBQUNGLENB aENEOztBQW tDQSxJQUFN LFNBQVMsNk JBQ1gsS0FE VyxzQkFFVC xNQUZTLEVB RUMsVUFGRC xJQUlaO0FB Q0QsUUFBTS xjQUFDLE1B QUQsRUFBWT tBQUNoQixZ QUFRLE9BQU 8sTUFBUCxF QUFlLE1BQW YsQ0FBUixF QUFnQyxrQk FBVTtBQUN4 QyxtQkFBYS xNQUFiLEVB QXFCLEtBQX JCO0FBQ0Qs S0FGRDtBQU dELEdBTEE7 QUFNRCxZQU FVLGtCQUFD LE1BQUQsRU FBWTtBQUNw QjtBQUNBLG lCQUFhLFNB QWI7QUFDRD tBQVRBLENB SlksQ0FBZj s7QUFnQkE7 Ozs7O0FBS0 EsSUFBTSxT QUFTLFFBQV EsZUFBUixD QUFmO0FBQ0 EsT0FBTyxP QUFQLEdBQW lCLE9BQ2Y7 QUFBQSxTQU FNLE9BQU8s RUFBUCxDQU FVLEVBQVYs Q0FBTjtBQU FBLENBRGUs RUFFZixNQU ZlLENBQWpC Ozs7QUMxRk E7Ozs7QUFD QSxJQUFNLF dBQVcsUUFB USxtQkFBUi xDQUFqQjtB QUNBLElBQU 0sT0FBTyxR QUFRLGVBQV IsQ0FBYjs7 QUFFQSxJQU FNLFFBQVEs UUFBUSxXQU FSLEVBQXFC LEtBQW5DO0 FBQ0EsSUFB TSxTQUFTLF FBQVEsV0FB UixFQUFxQi xNQUFwQztB QUNBLElBQU 0sYUFBVyxN QUFYLHdCQU FOOztBQUVB LElBQU0sY0 FBYyxTQUFk LFdBQWMsQ0 FBVSxLQUFW LEVBQWlCO0 FBQ25DO0FB Q0E7QUFDQS xNQUFNLEtB QUssS0FBSy xZQUFMLENB QWtCLE1BQW xCLEVBQTBC LEtBQTFCLE NBQWdDLENB QWhDLENBQV g7QUFDQSxN QUFNLFNBQV MsU0FBUyxj QUFULENBQX dCLEVBQXhC LENBQWY7QU FDQSxNQUFJ LE1BQUosRU FBWTtBQUNW LFdBQU8sWU FBUCxDQUFv QixVQUFwQi xFQUFnQyxD QUFoQztBQU NBLFdBQU8s Z0JBQVAsQ0 FBd0IsTUFB eEIsRUFBZ0 MsS0FBSyxp QkFBUztBQU M1QyxhQUFP LFlBQVAsQ0 FBb0IsVUFB cEIsRUFBZ0 MsQ0FBQyxD QUFqQztBQU NELEtBRitC LENBQWhDO0 FBR0QsR0FM RCxNQUtPO0 FBQ0w7QUFD RDtBQUNGLE NBYkQ7O0FB ZUEsT0FBTy xPQUFQLEdB QWlCLDZCQU NiLEtBRGEs c0JBRVgsSU FGVyxFQUVI LFdBRkcsR0 FBakI7OztB Q3ZCQTs7QU FDQSxJQUFN LFdBQVcsUU FBUSxtQkFB UixDQUFqQj tBQUNBLElB QU0sV0FBVy xRQUFRLHlC QUFSLENBQW pCO0FBQ0Es SUFBTSxXQU FXLFFBQVEs aUJBQVIsQ0 FBakI7O0FB RUEsSUFBTS xTQUFTLFNB QVQsTUFBUy xDQUFVLEtB QVYsRUFBaU I7QUFDOUIs U0FBTyxTQU FTLElBQVQs Q0FBUDtBQU NELENBRkQ7 O0FBSUEsSU FBTSxZQUFZ LFNBQVM7QU FDekIsa0JB QWdCO0FBQ2 Qsc0NBQWtD O0FBRHBCO0 FBRFMsQ0FB VCxDQUFsQj s7QUFNQTs7 Ozs7QUFLQS xJQUFNLFNB QVMsUUFBUS xlQUFSLENB QWY7QUFDQS xPQUFPLE9B QVAsR0FBaU IsT0FDZjtB QUFBLFNBQU 0sVUFBVSxF QUFWLENBQW EsRUFBYixD QUFOO0FBQU EsQ0FEZSxF QUVmLFNBRm UsQ0FBakI7 Ozs7O0FDck JBLE9BQU8s T0FBUCxHQU FpQjtBQUNm LFVBQVE7QU FETyxDQUFq Qjs7Ozs7QU NBQSxPQUFP LE9BQVAsR0 FBaUI7QUFD ZjtBQUNBO0 FBQ0E7QUFD QTtBQUNBO0 FBQ0E7QUFD QTtBQUNBO0 FBQ0E7QUFD QTtBQUNBO0 FBQ0E7QUFD QSxTQUFPO0 FBYlEsQ0FB akI7OztBQ0 FBOztBQUNB LElBQU0sVU FBVSxPQUFP LFdBQVAsQ0 FBbUIsU0FB bkM7QUFDQS xJQUFNLFNB QVMsUUFBZj s7QUFFQSxJ QUFJLEVBQU UsVUFBVSxP QUFaLENBQU osRUFBMEI7 QUFDeEIsU0 FBTyxjQUFQ LENBQXNCLE 9BQXRCLEVB QStCLE1BQS 9CLEVBQXVD O0FBQ3JDLF NBQUssZUFB WTtBQUNmLG FBQU8sS0FB SyxZQUFMLE NBQWtCLE1B QWxCLENBQV A7QUFDRCxL QUhvQztBQU lyQyxTQUFL LGFBQVUsS0 FBVixFQUFp QjtBQUNwQi xVQUFJLEtB QUosRUFBVz tBQUNULGFB QUssWUFBTC xDQUFrQixN QUFsQixFQU EwQixFQUEx QjtBQUNELE 9BRkQsTUFF TztBQUNMLG FBQUssZUFB TCxDQUFxQi xNQUFyQjtB QUNEO0FBQ0 Y7QUFWb0Ms R0FBdkM7QU FZRDs7O0FD akJEO0FBQ0 E7O0FBQ0Es UUFBUSxvQk FBUjtBQUNB O0FBQ0EsUU FBUSxrQkFB Ujs7O0FDSk E7O0FBQ0Es SUFBTSxXQU FXLFFBQVEs VUFBUixDQU FqQjs7QUFF QTs7OztBQU lBLFFBQVEs YUFBUjs7QU FFQSxJQUFN LFFBQVEsUU FBUSxVQUFS LENBQWQ7O0 FBRUEsSUFB TSxhQUFhLF FBQVEsY0FB UixDQUFuQj tBQUNBLE1B QU0sVUFBTi xHQUFtQixV QUFuQjs7QU FFQSxTQUFT LFlBQU07QU FDYixNQUFN LFNBQVMsU0 FBUyxJQUF4 QjtBQUNBLE 9BQUssSUFB SSxJQUFULE lBQWlCLFVB QWpCLEVBQT ZCO0FBQzNC LFFBQU0sV0 FBVyxXQUFZ LElBQVosQ0 FBakI7QUFD QSxhQUFTLE VBQVQsQ0FB WSxNQUFaO0 FBQ0Q7QUFD RixDQU5EOz tBQVFBLE9B QU8sT0FBUC xHQUFpQixL QUFqQjs7O0 FDdEJBOztB QUNBLElBQU 0sU0FBUyxR QUFRLGVBQV IsQ0FBZjtB QUNBLElBQU 0sVUFBVSxR QUFRLGVBQV IsQ0FBaEI7 QUFDQSxJQU FNLFdBQVcs UUFBUSxtQk FBUixDQUFq Qjs7QUFFQS xJQUFNLFdB QVcsU0FBWC xRQUFXLEdB QVk7QUFDM0 IsTUFBTSxN QUFNLEdBQU csS0FBSCxD QUFTLElBQV QsQ0FBYyxT QUFkLENBQV o7QUFDQSxT QUFPLFVBQV UsTUFBVixF QUFrQjtBQU FBOztBQUN2 QixRQUFJLE NBQUMsTUFB TCxFQUFhO0 FBQ1gsZUFB UyxTQUFTLE lBQWxCO0FB Q0Q7QUFDRC xZQUFRLEdB QVIsRUFBYS xrQkFBVTtB QUNyQixVQU FJLE9BQU8s TUFBTSxNQU FOLENBQVAs S0FBMEIsVU FBOUIsRUFB MEM7QUFDeE MsY0FBTSxN QUFOLEVBQW UsSUFBZixR QUEwQixNQU ExQjtBQUNE O0FBQ0YsS0 FKRDtBQUtE LEdBVEQ7QU FVRCxDQVpE OztBQWNBOz s7Ozs7QUFN QSxPQUFPLE 9BQVAsR0FB aUIsVUFBQy xNQUFELEVB QVMsS0FBVC xFQUFtQjtB QUNsQyxTQU FPLFNBQVMs TUFBVCxFQU FpQixPQUFP O0FBQzdCLF FBQU0sU0FB UyxNQUFULE VBQWlCLEtB QWpCLENBRH VCO0FBRTdC LFNBQU0sU0 FBUyxVQUFU LEVBQXFCLF FBQXJCO0FB RnVCLEdBQV AsRUFHckIs S0FIcUIsQ0 FBakIsQ0FB UDtBQUlELE NBTEQ7Ozs7 O0FDekJBO0 FBQ0EsU0FB UyxtQkFBVC xDQUE4QixF QUE5QixFQU M4RDtBQUFB LE1BRDVCLE dBQzRCLHVF QUR4QixNQU N3QjtBQUFB LE1BQWhDLE tBQWdDLHVF QUExQixTQU FTLGVBQWlC OztBQUM1RC xNQUFJLE9B QU8sR0FBRy xxQkFBSCxF QUFYOztBQU VBLFNBQ0Us S0FBSyxHQU FMLElBQVks Q0FBWixJQU NBLEtBQUss SUFBTCxJQU FhLENBRGIs SUFFQSxLQU FLLE1BQUws S0FBZ0IsSU FBSSxXQUFK LElBQW1CLE 1BQU0sWUFB ekMsQ0FGQS xJQUdBLEtB QUssS0FBTC xLQUFlLElB QUksVUFBSi xJQUFrQixN QUFNLFdBQX ZDLENBSkY7 QUFNRDs7QU FFRCxPQUFP LE9BQVAsR0 FBaUIsbUJB QWpCOzs7QU NiQTs7QUFF QTs7Ozs7Oz s7O0FBTUEs SUFBTSxZQU FZLFNBQVos U0FBWSxRQU FTO0FBQ3pC LFNBQU8sU0 FBUyxRQUFP LEtBQVAseU NBQU8sS0FB UCxPQUFpQi xRQUExQixJ QUFzQyxNQU FNLFFBQU4s S0FBbUIsQ0 FBaEU7QUFD RCxDQUZEOz tBQUlBOzs7 Ozs7OztBQV FBLE9BQU8s T0FBUCxHQU FpQixTQUFT LE1BQVQsQ0 FBaUIsUUFB akIsRUFBMk IsT0FBM0Is RUFBb0M7O0 FBRW5ELE1B QUksT0FBTy xRQUFQLEtB QW9CLFFBQX hCLEVBQWtD O0FBQ2hDLF dBQU8sRUFB UDtBQUNEOz tBQUVELE1B QUksQ0FBQy xPQUFELElB QVksQ0FBQy xVQUFVLE9B QVYsQ0FBak IsRUFBcUM7 QUFDbkMsY0 FBVSxPQUFP LFFBQWpCO0 FBQ0Q7O0FB RUQsTUFBTS xZQUFZLFFB QVEsZ0JBQV IsQ0FBeUIs UUFBekIsQ0 FBbEI7QUFD QSxTQUFPLE 1BQU0sU0FB TixDQUFnQi xLQUFoQixD QUFzQixJQU F0QixDQUEy QixTQUEzQi xDQUFQO0FB Q0QsQ0FaRD s7Ozs7QUNw QkE7Ozs7O0 FBS0EsT0FB TyxPQUFQLE dBQWlCLFVB QUMsS0FBRC xFQUFRLElB QVIsRUFBaU I7QUFDaEMs UUFBTSxZQU FOLENBQW1C LGdCQUFuQi xFQUFxQyxL QUFyQztBQU NBLFFBQU0s WUFBTixDQU FtQixhQUFu QixFQUFrQy xLQUFsQztB QUNBLFFBQU 0sWUFBTixD QUFtQixNQU FuQixFQUEy QixPQUFPLF VBQVAsR0FB b0IsTUFBL0 M7QUFDRCxD QUpEOzs7QU NMQTs7QUFD QSxJQUFNLF VBQVUsUUFB USxlQUFSLE NBQWhCO0FB Q0EsSUFBTS xnQkFBZ0Is UUFBUSxpQk FBUixDQUF0 QjtBQUNBLE lBQU0sU0FB UyxRQUFRLF VBQVIsQ0FB ZjtBQUNBLE lBQU0sa0JB QWtCLFFBQV EscUJBQVIs Q0FBeEI7O0 FBRUEsSUFB TSxXQUFXLG VBQWpCO0FB Q0EsSUFBTS xVQUFVLGNB QWhCO0FBQ0 EsSUFBTSxZ QUFZLGdCQU FsQjtBQUNB LElBQU0sWU FBWSxnQkFB bEI7O0FBRU E7Ozs7O0FB S0EsSUFBTS xjQUFjLFNB QWQsV0FBYy xXQUFZO0FB QzlCLFNBQU 8sU0FBUyxP QUFULENBQW lCLFdBQWpC LEVBQThCLG dCQUFRO0FB QzNDLFdBQU 8sQ0FBQyxR QUFRLEtBQU 0sQ0FBTixD QUFSLEdBQW 9CLEdBQXBC LEdBQTBCLE dBQTNCLElB QWtDLEtBQX pDO0FBQ0Qs R0FGTSxDQU FQO0FBR0Qs Q0FKRDs7QU FNQTs7Ozs7 Ozs7O0FBU0 EsT0FBTyxP QUFQLEdBQW lCLGNBQU07 QUFDckI7QU FDQTtBQUNB O0FBQ0EsTU FBTSxVQUFV LEdBQUcsWU FBSCxDQUFn QixPQUFoQi xLQUNYLEdB QUcsWUFBSC xDQUFnQixP QUFoQixNQU E2QixNQURs Qzs7QUFHQS xNQUFNLFNB QVMsY0FBYy xHQUFHLFlB QUgsQ0FBZ0 IsUUFBaEIs Q0FBZCxDQU FmO0FBQ0Es VUFBUSxNQU FSLEVBQWdC O0FBQUEsV0 FBUyxnQkFB Z0IsS0FBaE IsRUFBdUIs T0FBdkIsQ0 FBVDtBQUFB LEdBQWhCOz tBQUVBLE1B QUksQ0FBQy xHQUFHLFlB QUgsQ0FBZ0 IsU0FBaEIs Q0FBTCxFQU FpQztBQUMv QixPQUFHLF lBQUgsQ0FB Z0IsU0FBaE IsRUFBMkIs R0FBRyxXQU E5QjtBQUNE OztBQUVELE 1BQU0sV0FB VyxHQUFHLF lBQUgsQ0FB Z0IsU0FBaE IsQ0FBakI7 QUFDQSxNQU FNLFdBQVcs R0FBRyxZQU FILENBQWdC LFNBQWhCLE tBQThCLFlB QVksUUFBWi xDQUEvQzs7 QUFFQSxLQU FHLFdBQUgs R0FBaUIsVU FBVSxRQUFW LEdBQXFCLF FBQXRDO0FB Q0EsS0FBRy xZQUFILENB QWdCLE9BQW hCLEVBQXlC LE9BQXpCO0 FBQ0EsU0FB TyxPQUFQO0 FBQ0QsQ0Fw QkQ7OztBQy 9CQTs7QUFD QSxJQUFNLF dBQVcsZUFB akI7QUFDQS xJQUFNLFdB QVcsZUFBak I7QUFDQSxJ QUFNLFNBQV MsYUFBZjs7 QUFFQSxPQU FPLE9BQVAs R0FBaUIsVU FBQyxNQUFE LEVBQVMsUU FBVCxFQUFz Qjs7QUFFck MsTUFBSSxP QUFPLFFBQV AsS0FBb0Is U0FBeEIsRU FBbUM7QUFD akMsZUFBVy xPQUFPLFlB QVAsQ0FBb0 IsUUFBcEIs TUFBa0MsT0 FBN0M7QUFD RDtBQUNELF NBQU8sWUFB UCxDQUFvQi xRQUFwQixF QUE4QixRQU E5Qjs7QUFF QSxNQUFNLE tBQUssT0FB TyxZQUFQLE NBQW9CLFFB QXBCLENBQV g7QUFDQSxN QUFNLFdBQV csU0FBUyxj QUFULENBQX dCLEVBQXhC LENBQWpCO0 FBQ0EsTUFB SSxDQUFDLF FBQUwsRUFB ZTtBQUNiLF VBQU0sSUFB SSxLQUFKLE NBQ0osc0NB QXNDLEVBQX RDLEdBQTJD LEdBRHZDLE NBQU47QUFH RDs7QUFFRC xXQUFTLFlB QVQsQ0FBc0 IsTUFBdEIs RUFBOEIsQ0 FBQyxRQUEv QjtBQUNBLF NBQU8sUUFB UDtBQUNELE NBakJEOzs7 QUNMQTs7QU FDQSxJQUFN LFVBQVUsUU FBUSxjQUFS LENBQWhCOz tBQUVBLElB QU0sU0FBUy xRQUFRLFdB QVIsRUFBcU IsTUFBcEM7 QUFDQSxJQU FNLFVBQVUs Y0FBaEI7QU FDQSxJQUFN LGdCQUFtQi xNQUFuQix1 QkFBTjs7QU FFQSxPQUFP LE9BQVAsR0 FBaUIsU0FB UyxRQUFULE NBQW1CLEVB QW5CLEVBQX VCO0FBQ3RD LE1BQU0sT0 FBTyxRQUFR LEVBQVIsQ0 FBYjtBQUNB LE1BQU0sS0 FBSyxLQUFL LGlCQUFoQj tBQUNBLE1B QU0sWUFBWS xHQUFHLE1B QUgsQ0FBVS xDQUFWLE1B QWlCLEdBQW pCLEdBQ2Qs U0FBUyxhQU FULENBQXVC LEVBQXZCLE NBRGMsR0FF ZCxTQUFTLG NBQVQsQ0FB d0IsRUFBeE IsQ0FGSjs7 QUFJQSxNQU FJLENBQUMs U0FBTCxFQU FnQjtBQUNk LFVBQU0sSU FBSSxLQUFK LDRDQUNxQy xFQURyQyxP QUFOO0FBR0 Q7O0FBRUQs T0FBSyxJQU FNLEdBQVgs SUFBa0IsSU FBbEIsRUFB d0I7QUFDdE IsUUFBSSxJ QUFJLFVBQU osQ0FBZSxV QUFmLENBQU osRUFBZ0M7 QUFDOUIsVU FBTSxnQkFB Z0IsSUFBSS xNQUFKLENB QVcsV0FBVy xNQUF0QixF QUE4QixXQU E5QixFQUF0 QjtBQUNBLF VBQU0sbUJB QW1CLElBQU ksTUFBSixD QUFXLEtBQU 0sR0FBTixD QUFYLENBQX pCO0FBQ0Es VUFBTSwwQ0 FBd0MsYUFB eEMsT0FBTj tBQUNBLFVB QU0sb0JBQW 9CLFVBQVUs YUFBVixDQU F3QixpQkFB eEIsQ0FBMU I7QUFDQSxV QUFJLENBQU MsaUJBQUws RUFBd0I7QU FDdEIsY0FB TSxJQUFJLE tBQUosd0NB Q2lDLGFBRG pDLE9BQU47 QUFHRDs7QU FFRCxVQUFN LFVBQVUsaU JBQWlCLElB QWpCLENBQX NCLEdBQUcs S0FBekIsQ0 FBaEI7QUFD QSx3QkFBa0 IsU0FBbEIs Q0FBNEIsTU FBNUIsQ0FB bUMsYUFBbk MsRUFBa0Qs T0FBbEQ7QU FDQSx3QkFB a0IsWUFBbE IsQ0FBK0Is T0FBL0IsRU FBd0MsT0FB eEM7QUFDRD tBQUNGO0FB Q0YsQ0E5Qk QiLCJmaWxl IjoiZ2VuZX JhdGVkLmpz Iiwic291cm NlUm9vdCI6 IiIsInNvdX JjZXNDb250 ZW50IjpbIi hmdW5jdGlv biBlKHQsbi xyKXtmdW5j dGlvbiBzKG 8sdSl7aWYo IW5bb10pe2 lmKCF0W29d KXt2YXIgYT 10eXBlb2Yg cmVxdWlyZT 09XCJmdW5j dGlvblwiJi ZyZXF1aXJl O2lmKCF1Ji ZhKXJldHVy biBhKG8sIT ApO2lmKGkp cmV0dXJuIG kobywhMCk7 dmFyIGY9bm V3IEVycm9y KFwiQ2Fubm 90IGZpbmQg bW9kdWxlIC dcIitvK1wi J1wiKTt0aH JvdyBmLmNv ZGU9XCJNT0 RVTEVfTk9U X0ZPVU5EXC IsZn12YXIg bD1uW29dPX tleHBvcnRz Ont9fTt0W2 9dWzBdLmNh bGwobC5leH BvcnRzLGZ1 bmN0aW9uKG Upe3ZhciBu PXRbb11bMV 1bZV07cmV0 dXJuIHMobj 9uOmUpfSxs LGwuZXhwb3 J0cyxlLHQs bixyKX1yZX R1cm4gbltv XS5leHBvcn RzfXZhciBp PXR5cGVvZi ByZXF1aXJl PT1cImZ1bm N0aW9uXCIm JnJlcXVpcm U7Zm9yKHZh ciBvPTA7bz xyLmxlbmd0 aDtvKyspcy hyW29dKTty ZXR1cm4gc3 0pIiwiXG4v KipcbiAqIE FycmF5I2Zp bHRlci5cbi AqXG4gKiBA cGFyYW0ge0 FycmF5fSBh cnJcbiAqIE BwYXJhbSB7 RnVuY3Rpb2 59IGZuXG4g KiBAcGFyYW 0ge09iamVj dD19IHNlbG ZcbiAqIEBy ZXR1cm4ge0 FycmF5fVxu ICogQHRocm 93IFR5cGVF cnJvclxuIC ovXG5cbm1v ZHVsZS5leH BvcnRzID0g ZnVuY3Rpb2 4gKGFyciwg Zm4sIHNlbG YpIHtcbiAg aWYgKGFyci 5maWx0ZXIp IHJldHVybi BhcnIuZmls dGVyKGZuLC BzZWxmKTtc biAgaWYgKH ZvaWQgMCA9 PT0gYXJyIH x8IG51bGwg PT09IGFyci kgdGhyb3cg bmV3IFR5cG VFcnJvcjtc biAgaWYgKC dmdW5jdGlv bicgIT0gdH lwZW9mIGZu KSB0aHJvdy BuZXcgVHlw ZUVycm9yO1 xuICB2YXIg cmV0ID0gW1 07XG4gIGZv ciAodmFyIG kgPSAwOyBp IDwgYXJyLm xlbmd0aDsg aSsrKSB7XG 4gICAgaWYg KCFoYXNPd2 4uY2FsbChh cnIsIGkpKS Bjb250aW51 ZTtcbiAgIC B2YXIgdmFs ID0gYXJyW2 ldO1xuICAg IGlmIChmbi 5jYWxsKHNl bGYsIHZhbC wgaSwgYXJy KSkgcmV0Ln B1c2godmFs KTtcbiAgfV xuICByZXR1 cm4gcmV0O1 xufTtcblxu dmFyIGhhc0 93biA9IE9i amVjdC5wcm 90b3R5cGUu aGFzT3duUH JvcGVydHk7 XG4iLCIvKi pcbiAqIGFy cmF5LWZvcm VhY2hcbiAq ICAgQXJyYX kjZm9yRWFj aCBwb255Zm lsbCBmb3Ig b2xkZXIgYn Jvd3NlcnNc biAqICAgKF BvbnlmaWxs OiBBIHBvbH lmaWxsIHRo YXQgZG9lc2 4ndCBvdmVy d3JpdGUgdG hlIG5hdGl2 ZSBtZXRob2 QpXG4gKiBc biAqIGh0dH BzOi8vZ2l0 aHViLmNvbS 90d2FkYS9h cnJheS1mb3 JlYWNoXG4g KlxuICogQ2 9weXJpZ2h0 IChjKSAyMD E1LTIwMTYg VGFrdXRvIF dhZGFcbiAq IExpY2Vuc2 VkIHVuZGVy IHRoZSBNSV QgbGljZW5z ZS5cbiAqIC AgaHR0cHM6 Ly9naXRodW IuY29tL3R3 YWRhL2Fycm F5LWZvcmVh Y2gvYmxvYi 9tYXN0ZXIv TUlULUxJQ0 VOU0VcbiAq L1xuJ3VzZS BzdHJpY3Qn O1xuXG5tb2 R1bGUuZXhw b3J0cyA9IG Z1bmN0aW9u IGZvckVhY2 ggKGFyeSwg Y2FsbGJhY2 ssIHRoaXNB cmcpIHtcbi AgICBpZiAo YXJ5LmZvck VhY2gpIHtc biAgICAgIC AgYXJ5LmZv ckVhY2goY2 FsbGJhY2ss IHRoaXNBcm cpO1xuICAg ICAgICByZX R1cm47XG4g ICAgfVxuIC AgIGZvciAo dmFyIGkgPS AwOyBpIDwg YXJ5Lmxlbm d0aDsgaSs9 MSkge1xuIC AgICAgICBj YWxsYmFjay 5jYWxsKHRo aXNBcmcsIG FyeVtpXSwg aSwgYXJ5KT tcbiAgICB9 XG59O1xuIi wiLypcbiAq IGNsYXNzTG lzdC5qczog Q3Jvc3MtYn Jvd3NlciBm dWxsIGVsZW 1lbnQuY2xh c3NMaXN0IG ltcGxlbWVu dGF0aW9uLl xuICogMS4x LjIwMTcwND I3XG4gKlxu ICogQnkgRW xpIEdyZXks IGh0dHA6Ly 9lbGlncmV5 LmNvbVxuIC ogTGljZW5z ZTogRGVkaW NhdGVkIHRv IHRoZSBwdW JsaWMgZG9t YWluLlxuIC ogICBTZWUg aHR0cHM6Ly 9naXRodWIu Y29tL2VsaW dyZXkvY2xh c3NMaXN0Lm pzL2Jsb2Iv bWFzdGVyL0 xJQ0VOU0Uu bWRcbiAqL1 xuXG4vKmds b2JhbCBzZW xmLCBkb2N1 bWVudCwgRE 9NRXhjZXB0 aW9uICovXG 5cbi8qISBA c291cmNlIG h0dHA6Ly9w dXJsLmVsaW dyZXkuY29t L2dpdGh1Yi 9jbGFzc0xp c3QuanMvYm xvYi9tYXN0 ZXIvY2xhc3 NMaXN0Lmpz ICovXG5cbm lmIChcImRv Y3VtZW50XC IgaW4gd2lu ZG93LnNlbG YpIHtcblxu Ly8gRnVsbC Bwb2x5Zmls bCBmb3IgYn Jvd3NlcnMg d2l0aCBuby BjbGFzc0xp c3Qgc3VwcG 9ydFxuLy8g SW5jbHVkaW 5nIElFIDwg RWRnZSBtaX NzaW5nIFNW R0VsZW1lbn QuY2xhc3NM aXN0XG5pZi AoIShcImNs YXNzTGlzdF wiIGluIGRv Y3VtZW50Lm NyZWF0ZUVs ZW1lbnQoXC JfXCIpKSBc blx0fHwgZG 9jdW1lbnQu Y3JlYXRlRW xlbWVudE5T ICYmICEoXC JjbGFzc0xp c3RcIiBpbi Bkb2N1bWVu dC5jcmVhdG VFbGVtZW50 TlMoXCJodH RwOi8vd3d3 LnczLm9yZy 8yMDAwL3N2 Z1wiLFwiZ1 wiKSkpIHtc blxuKGZ1bm N0aW9uICh2 aWV3KSB7XG 5cblwidXNl IHN0cmljdF wiO1xuXG5p ZiAoISgnRW xlbWVudCcg aW4gdmlldy kpIHJldHVy bjtcblxudm FyXG5cdCAg Y2xhc3NMaX N0UHJvcCA9 IFwiY2xhc3 NMaXN0XCJc blx0LCBwcm 90b1Byb3Ag PSBcInByb3 RvdHlwZVwi XG5cdCwgZW xlbUN0clBy b3RvID0gdm lldy5FbGVt ZW50W3Byb3 RvUHJvcF1c blx0LCBvYm pDdHIgPSBP YmplY3Rcbl x0LCBzdHJU cmltID0gU3 RyaW5nW3By b3RvUHJvcF 0udHJpbSB8 fCBmdW5jdG lvbiAoKSB7 XG5cdFx0cm V0dXJuIHRo aXMucmVwbG FjZSgvXlxc cyt8XFxzKy QvZywgXCJc Iik7XG5cdH 1cblx0LCBh cnJJbmRleE 9mID0gQXJy YXlbcHJvdG 9Qcm9wXS5p bmRleE9mIH x8IGZ1bmN0 aW9uIChpdG VtKSB7XG5c dFx0dmFyXG 5cdFx0XHQg IGkgPSAwXG 5cdFx0XHQs IGxlbiA9IH RoaXMubGVu Z3RoXG5cdF x0O1xuXHRc dGZvciAoOy BpIDwgbGVu OyBpKyspIH tcblx0XHRc dGlmIChpIG luIHRoaXMg JiYgdGhpc1 tpXSA9PT0g aXRlbSkge1 xuXHRcdFx0 XHRyZXR1cm 4gaTtcblx0 XHRcdH1cbl x0XHR9XG5c dFx0cmV0dX JuIC0xO1xu XHR9XG5cdC 8vIFZlbmRv cnM6IHBsZW FzZSBhbGxv dyBjb250ZW 50IGNvZGUg dG8gaW5zdG FudGlhdGUg RE9NRXhjZX B0aW9uc1xu XHQsIERPTU V4ID0gZnVu Y3Rpb24gKH R5cGUsIG1l c3NhZ2UpIH tcblx0XHR0 aGlzLm5hbW UgPSB0eXBl O1xuXHRcdH RoaXMuY29k ZSA9IERPTU V4Y2VwdGlv blt0eXBlXT tcblx0XHR0 aGlzLm1lc3 NhZ2UgPSBt ZXNzYWdlO1 xuXHR9XG5c dCwgY2hlY2 tUb2tlbkFu ZEdldEluZG V4ID0gZnVu Y3Rpb24gKG NsYXNzTGlz dCwgdG9rZW 4pIHtcblx0 XHRpZiAodG 9rZW4gPT09 IFwiXCIpIH tcblx0XHRc dHRocm93IG 5ldyBET01F eChcblx0XH RcdFx0ICBc IlNZTlRBWF 9FUlJcIlxu XHRcdFx0XH QsIFwiQW4g aW52YWxpZC BvciBpbGxl Z2FsIHN0cm luZyB3YXMg c3BlY2lmaW VkXCJcblx0 XHRcdCk7XG 5cdFx0fVxu XHRcdGlmIC gvXFxzLy50 ZXN0KHRva2 VuKSkge1xu XHRcdFx0dG hyb3cgbmV3 IERPTUV4KF xuXHRcdFx0 XHQgIFwiSU 5WQUxJRF9D SEFSQUNURV JfRVJSXCJc blx0XHRcdF x0LCBcIlN0 cmluZyBjb2 50YWlucyBh biBpbnZhbG lkIGNoYXJh Y3RlclwiXG 5cdFx0XHQp O1xuXHRcdH 1cblx0XHRy ZXR1cm4gYX JySW5kZXhP Zi5jYWxsKG NsYXNzTGlz dCwgdG9rZW 4pO1xuXHR9 XG5cdCwgQ2 xhc3NMaXN0 ID0gZnVuY3 Rpb24gKGVs ZW0pIHtcbl x0XHR2YXJc blx0XHRcdC AgdHJpbW1l ZENsYXNzZX MgPSBzdHJU cmltLmNhbG woZWxlbS5n ZXRBdHRyaW J1dGUoXCJj bGFzc1wiKS B8fCBcIlwi KVxuXHRcdF x0LCBjbGFz c2VzID0gdH JpbW1lZENs YXNzZXMgPy B0cmltbWVk Q2xhc3Nlcy 5zcGxpdCgv XFxzKy8pID ogW11cblx0 XHRcdCwgaS A9IDBcblx0 XHRcdCwgbG VuID0gY2xh c3Nlcy5sZW 5ndGhcblx0 XHQ7XG5cdF x0Zm9yICg7 IGkgPCBsZW 47IGkrKykg e1xuXHRcdF x0dGhpcy5w dXNoKGNsYX NzZXNbaV0p O1xuXHRcdH 1cblx0XHR0 aGlzLl91cG RhdGVDbGFz c05hbWUgPS BmdW5jdGlv biAoKSB7XG 5cdFx0XHRl bGVtLnNldE F0dHJpYnV0 ZShcImNsYX NzXCIsIHRo aXMudG9TdH JpbmcoKSk7 XG5cdFx0fT tcblx0fVxu XHQsIGNsYX NzTGlzdFBy b3RvID0gQ2 xhc3NMaXN0 W3Byb3RvUH JvcF0gPSBb XVxuXHQsIG NsYXNzTGlz dEdldHRlci A9IGZ1bmN0 aW9uICgpIH tcblx0XHRy ZXR1cm4gbm V3IENsYXNz TGlzdCh0aG lzKTtcblx0 fVxuO1xuLy 8gTW9zdCBE T01FeGNlcH Rpb24gaW1w bGVtZW50YX Rpb25zIGRv bid0IGFsbG 93IGNhbGxp bmcgRE9NRX hjZXB0aW9u J3MgdG9TdH JpbmcoKVxu Ly8gb24gbm 9uLURPTUV4 Y2VwdGlvbn MuIEVycm9y J3MgdG9TdH JpbmcoKSBp cyBzdWZmaW NpZW50IGhl cmUuXG5ET0 1FeFtwcm90 b1Byb3BdID 0gRXJyb3Jb cHJvdG9Qcm 9wXTtcbmNs YXNzTGlzdF Byb3RvLml0 ZW0gPSBmdW 5jdGlvbiAo aSkge1xuXH RyZXR1cm4g dGhpc1tpXS B8fCBudWxs O1xufTtcbm NsYXNzTGlz dFByb3RvLm NvbnRhaW5z ID0gZnVuY3 Rpb24gKHRv a2VuKSB7XG 5cdHRva2Vu ICs9IFwiXC I7XG5cdHJl dHVybiBjaG Vja1Rva2Vu QW5kR2V0SW 5kZXgodGhp cywgdG9rZW 4pICE9PSAt MTtcbn07XG 5jbGFzc0xp c3RQcm90by 5hZGQgPSBm dW5jdGlvbi AoKSB7XG5c dHZhclxuXH RcdCAgdG9r ZW5zID0gYX JndW1lbnRz XG5cdFx0LC BpID0gMFxu XHRcdCwgbC A9IHRva2Vu cy5sZW5ndG hcblx0XHQs IHRva2VuXG 5cdFx0LCB1 cGRhdGVkID 0gZmFsc2Vc blx0O1xuXH RkbyB7XG5c dFx0dG9rZW 4gPSB0b2tl bnNbaV0gKy BcIlwiO1xu XHRcdGlmIC hjaGVja1Rv a2VuQW5kR2 V0SW5kZXgo dGhpcywgdG 9rZW4pID09 PSAtMSkge1 xuXHRcdFx0 dGhpcy5wdX NoKHRva2Vu KTtcblx0XH RcdHVwZGF0 ZWQgPSB0cn VlO1xuXHRc dH1cblx0fV xuXHR3aGls ZSAoKytpID wgbCk7XG5c blx0aWYgKH VwZGF0ZWQp IHtcblx0XH R0aGlzLl91 cGRhdGVDbG Fzc05hbWUo KTtcblx0fV xufTtcbmNs YXNzTGlzdF Byb3RvLnJl bW92ZSA9IG Z1bmN0aW9u ICgpIHtcbl x0dmFyXG5c dFx0ICB0b2 tlbnMgPSBh cmd1bWVudH Ncblx0XHQs IGkgPSAwXG 5cdFx0LCBs ID0gdG9rZW 5zLmxlbmd0 aFxuXHRcdC wgdG9rZW5c blx0XHQsIH VwZGF0ZWQg PSBmYWxzZV xuXHRcdCwg aW5kZXhcbl x0O1xuXHRk byB7XG5cdF x0dG9rZW4g PSB0b2tlbn NbaV0gKyBc IlwiO1xuXH RcdGluZGV4 ID0gY2hlY2 tUb2tlbkFu ZEdldEluZG V4KHRoaXMs IHRva2VuKT tcblx0XHR3 aGlsZSAoaW 5kZXggIT09 IC0xKSB7XG 5cdFx0XHR0 aGlzLnNwbG ljZShpbmRl eCwgMSk7XG 5cdFx0XHR1 cGRhdGVkID 0gdHJ1ZTtc blx0XHRcdG luZGV4ID0g Y2hlY2tUb2 tlbkFuZEdl dEluZGV4KH RoaXMsIHRv a2VuKTtcbl x0XHR9XG5c dH1cblx0d2 hpbGUgKCsr aSA8IGwpO1 xuXG5cdGlm ICh1cGRhdG VkKSB7XG5c dFx0dGhpcy 5fdXBkYXRl Q2xhc3NOYW 1lKCk7XG5c dH1cbn07XG 5jbGFzc0xp c3RQcm90by 50b2dnbGUg PSBmdW5jdG lvbiAodG9r ZW4sIGZvcm NlKSB7XG5c dHRva2VuIC s9IFwiXCI7 XG5cblx0dm FyXG5cdFx0 ICByZXN1bH QgPSB0aGlz LmNvbnRhaW 5zKHRva2Vu KVxuXHRcdC wgbWV0aG9k ID0gcmVzdW x0ID9cblx0 XHRcdGZvcm NlICE9PSB0 cnVlICYmIF wicmVtb3Zl XCJcblx0XH Q6XG5cdFx0 XHRmb3JjZS AhPT0gZmFs c2UgJiYgXC JhZGRcIlxu XHQ7XG5cbl x0aWYgKG1l dGhvZCkge1 xuXHRcdHRo aXNbbWV0aG 9kXSh0b2tl bik7XG5cdH 1cblxuXHRp ZiAoZm9yY2 UgPT09IHRy dWUgfHwgZm 9yY2UgPT09 IGZhbHNlKS B7XG5cdFx0 cmV0dXJuIG ZvcmNlO1xu XHR9IGVsc2 Uge1xuXHRc dHJldHVybi AhcmVzdWx0 O1xuXHR9XG 59O1xuY2xh c3NMaXN0UH JvdG8udG9T dHJpbmcgPS BmdW5jdGlv biAoKSB7XG 5cdHJldHVy biB0aGlzLm pvaW4oXCIg XCIpO1xufT tcblxuaWYg KG9iakN0ci 5kZWZpbmVQ cm9wZXJ0eS kge1xuXHR2 YXIgY2xhc3 NMaXN0UHJv cERlc2MgPS B7XG5cdFx0 ICBnZXQ6IG NsYXNzTGlz dEdldHRlcl xuXHRcdCwg ZW51bWVyYW JsZTogdHJ1 ZVxuXHRcdC wgY29uZmln dXJhYmxlOi B0cnVlXG5c dH07XG5cdH RyeSB7XG5c dFx0b2JqQ3 RyLmRlZmlu ZVByb3Blcn R5KGVsZW1D dHJQcm90by wgY2xhc3NM aXN0UHJvcC wgY2xhc3NM aXN0UHJvcE Rlc2MpO1xu XHR9IGNhdG NoIChleCkg eyAvLyBJRS A4IGRvZXNu J3Qgc3VwcG 9ydCBlbnVt ZXJhYmxlOn RydWVcblx0 XHQvLyBhZG RpbmcgdW5k ZWZpbmVkIH RvIGZpZ2h0 IHRoaXMgaX NzdWUgaHR0 cHM6Ly9naX RodWIuY29t L2VsaWdyZX kvY2xhc3NM aXN0LmpzL2 lzc3Vlcy8z NlxuXHRcdC 8vIG1vZGVy bmllIElFOC 1NU1c3IG1h Y2hpbmUgaG FzIElFOCA4 LjAuNjAwMS 4xODcwMiBh bmQgaXMgYW ZmZWN0ZWRc blx0XHRpZi AoZXgubnVt YmVyID09PS B1bmRlZmlu ZWQgfHwgZX gubnVtYmVy ID09PSAtMH g3RkY1RUM1 NCkge1xuXH RcdFx0Y2xh c3NMaXN0UH JvcERlc2Mu ZW51bWVyYW JsZSA9IGZh bHNlO1xuXH RcdFx0b2Jq Q3RyLmRlZm luZVByb3Bl cnR5KGVsZW 1DdHJQcm90 bywgY2xhc3 NMaXN0UHJv cCwgY2xhc3 NMaXN0UHJv cERlc2MpO1 xuXHRcdH1c blx0fVxufS BlbHNlIGlm IChvYmpDdH JbcHJvdG9Q cm9wXS5fX2 RlZmluZUdl dHRlcl9fKS B7XG5cdGVs ZW1DdHJQcm 90by5fX2Rl ZmluZUdldH Rlcl9fKGNs YXNzTGlzdF Byb3AsIGNs YXNzTGlzdE dldHRlcik7 XG59XG5cbn 0od2luZG93 LnNlbGYpKT tcblxufVxu XG4vLyBUaG VyZSBpcyBm dWxsIG9yIH BhcnRpYWwg bmF0aXZlIG NsYXNzTGlz dCBzdXBwb3 J0LCBzbyBq dXN0IGNoZW NrIGlmIHdl IG5lZWRcbi 8vIHRvIG5v cm1hbGl6ZS B0aGUgYWRk L3JlbW92ZS BhbmQgdG9n Z2xlIEFQSX MuXG5cbihm dW5jdGlvbi AoKSB7XG5c dFwidXNlIH N0cmljdFwi O1xuXG5cdH ZhciB0ZXN0 RWxlbWVudC A9IGRvY3Vt ZW50LmNyZW F0ZUVsZW1l bnQoXCJfXC IpO1xuXG5c dHRlc3RFbG VtZW50LmNs YXNzTGlzdC 5hZGQoXCJj MVwiLCBcIm MyXCIpO1xu XG5cdC8vIF BvbHlmaWxs IGZvciBJRS AxMC8xMSBh bmQgRmlyZW ZveCA8MjYs IHdoZXJlIG NsYXNzTGlz dC5hZGQgYW 5kXG5cdC8v IGNsYXNzTG lzdC5yZW1v dmUgZXhpc3 QgYnV0IHN1 cHBvcnQgb2 5seSBvbmUg YXJndW1lbn QgYXQgYSB0 aW1lLlxuXH RpZiAoIXRl c3RFbGVtZW 50LmNsYXNz TGlzdC5jb2 50YWlucyhc ImMyXCIpKS B7XG5cdFx0 dmFyIGNyZW F0ZU1ldGhv ZCA9IGZ1bm N0aW9uKG1l dGhvZCkge1 xuXHRcdFx0 dmFyIG9yaW dpbmFsID0g RE9NVG9rZW 5MaXN0LnBy b3RvdHlwZV ttZXRob2Rd O1xuXG5cdF x0XHRET01U b2tlbkxpc3 QucHJvdG90 eXBlW21ldG hvZF0gPSBm dW5jdGlvbi h0b2tlbikg e1xuXHRcdF x0XHR2YXIg aSwgbGVuID 0gYXJndW1l bnRzLmxlbm d0aDtcblxu XHRcdFx0XH Rmb3IgKGkg PSAwOyBpID wgbGVuOyBp KyspIHtcbl x0XHRcdFx0 XHR0b2tlbi A9IGFyZ3Vt ZW50c1tpXT tcblx0XHRc dFx0XHRvcm lnaW5hbC5j YWxsKHRoaX MsIHRva2Vu KTtcblx0XH RcdFx0fVxu XHRcdFx0fT tcblx0XHR9 O1xuXHRcdG NyZWF0ZU1l dGhvZCgnYW RkJyk7XG5c dFx0Y3JlYX RlTWV0aG9k KCdyZW1vdm UnKTtcblx0 fVxuXG5cdH Rlc3RFbGVt ZW50LmNsYX NzTGlzdC50 b2dnbGUoXC JjM1wiLCBm YWxzZSk7XG 5cblx0Ly8g UG9seWZpbG wgZm9yIElF IDEwIGFuZC BGaXJlZm94 IDwyNCwgd2 hlcmUgY2xh c3NMaXN0Ln RvZ2dsZSBk b2VzIG5vdF xuXHQvLyBz dXBwb3J0IH RoZSBzZWNv bmQgYXJndW 1lbnQuXG5c dGlmICh0ZX N0RWxlbWVu dC5jbGFzc0 xpc3QuY29u dGFpbnMoXC JjM1wiKSkg e1xuXHRcdH ZhciBfdG9n Z2xlID0gRE 9NVG9rZW5M aXN0LnByb3 RvdHlwZS50 b2dnbGU7XG 5cblx0XHRE T01Ub2tlbk xpc3QucHJv dG90eXBlLn RvZ2dsZSA9 IGZ1bmN0aW 9uKHRva2Vu LCBmb3JjZS kge1xuXHRc dFx0aWYgKD EgaW4gYXJn dW1lbnRzIC YmICF0aGlz LmNvbnRhaW 5zKHRva2Vu KSA9PT0gIW ZvcmNlKSB7 XG5cdFx0XH RcdHJldHVy biBmb3JjZT tcblx0XHRc dH0gZWxzZS B7XG5cdFx0 XHRcdHJldH VybiBfdG9n Z2xlLmNhbG wodGhpcywg dG9rZW4pO1 xuXHRcdFx0 fVxuXHRcdH 07XG5cblx0 fVxuXG5cdH Rlc3RFbGVt ZW50ID0gbn VsbDtcbn0o KSk7XG5cbn 1cbiIsIi8q IVxuICAqIG RvbXJlYWR5 IChjKSBEdX N0aW4gRGlh eiAyMDE0IC 0gTGljZW5z ZSBNSVRcbi AgKi9cbiFm dW5jdGlvbi AobmFtZSwg ZGVmaW5pdG lvbikge1xu XG4gIGlmIC h0eXBlb2Yg bW9kdWxlIC E9ICd1bmRl ZmluZWQnKS Btb2R1bGUu ZXhwb3J0cy A9IGRlZmlu aXRpb24oKV xuICBlbHNl IGlmICh0eX Blb2YgZGVm aW5lID09IC dmdW5jdGlv bicgJiYgdH lwZW9mIGRl ZmluZS5hbW QgPT0gJ29i amVjdCcpIG RlZmluZShk ZWZpbml0aW 9uKVxuICBl bHNlIHRoaX NbbmFtZV0g PSBkZWZpbm l0aW9uKClc blxufSgnZG 9tcmVhZHkn LCBmdW5jdG lvbiAoKSB7 XG5cbiAgdm FyIGZucyA9 IFtdLCBsaX N0ZW5lclxu ICAgICwgZG 9jID0gZG9j dW1lbnRcbi AgICAsIGhh Y2sgPSBkb2 MuZG9jdW1l bnRFbGVtZW 50LmRvU2Ny b2xsXG4gIC AgLCBkb21D b250ZW50TG 9hZGVkID0g J0RPTUNvbn RlbnRMb2Fk ZWQnXG4gIC AgLCBsb2Fk ZWQgPSAoaG FjayA/IC9e bG9hZGVkfF 5jLyA6IC9e bG9hZGVkfF 5pfF5jLyku dGVzdChkb2 MucmVhZHlT dGF0ZSlcbl xuXG4gIGlm ICghbG9hZG VkKVxuICBk b2MuYWRkRX ZlbnRMaXN0 ZW5lcihkb2 1Db250ZW50 TG9hZGVkLC BsaXN0ZW5l ciA9IGZ1bm N0aW9uICgp IHtcbiAgIC Bkb2MucmVt b3ZlRXZlbn RMaXN0ZW5l cihkb21Db2 50ZW50TG9h ZGVkLCBsaX N0ZW5lcilc biAgICBsb2 FkZWQgPSAx XG4gICAgd2 hpbGUgKGxp c3RlbmVyID 0gZm5zLnNo aWZ0KCkpIG xpc3RlbmVy KClcbiAgfS lcblxuICBy ZXR1cm4gZn VuY3Rpb24g KGZuKSB7XG 4gICAgbG9h ZGVkID8gc2 V0VGltZW91 dChmbiwgMC kgOiBmbnMu cHVzaChmbi lcbiAgfVxu XG59KTtcbi IsIid1c2Ug c3RyaWN0Jz tcblxuLy8g PDMgTW9kZX JuaXpyXG4v LyBodHRwcz ovL3Jhdy5n aXRodWJ1c2 VyY29udGVu dC5jb20vTW 9kZXJuaXpy L01vZGVybm l6ci9tYXN0 ZXIvZmVhdH VyZS1kZXRl Y3RzL2RvbS 9kYXRhc2V0 LmpzXG5cbm Z1bmN0aW9u IHVzZU5hdG l2ZSgpIHtc blx0dmFyIG VsZW0gPSBk b2N1bWVudC 5jcmVhdGVF bGVtZW50KC dkaXYnKTtc blx0ZWxlbS 5zZXRBdHRy aWJ1dGUoJ2 RhdGEtYS1i JywgJ2MnKT tcblxuXHRy ZXR1cm4gQm 9vbGVhbihl bGVtLmRhdG FzZXQgJiYg ZWxlbS5kYX Rhc2V0LmFC ID09PSAnYy cpO1xufVxu XG5mdW5jdG lvbiBuYXRp dmVEYXRhc2 V0KGVsZW1l bnQpIHtcbl x0cmV0dXJu IGVsZW1lbn QuZGF0YXNl dDtcbn1cbl xubW9kdWxl LmV4cG9ydH MgPSB1c2VO YXRpdmUoKS A/IG5hdGl2 ZURhdGFzZX QgOiBmdW5j dGlvbiAoZW xlbWVudCkg e1xuXHR2YX IgbWFwID0g e307XG5cdH ZhciBhdHRy aWJ1dGVzID 0gZWxlbWVu dC5hdHRyaW J1dGVzO1xu XG5cdGZ1bm N0aW9uIGdl dHRlcigpIH tcblx0XHRy ZXR1cm4gdG hpcy52YWx1 ZTtcblx0fV xuXG5cdGZ1 bmN0aW9uIH NldHRlcihu YW1lLCB2YW x1ZSkge1xu XHRcdGlmIC h0eXBlb2Yg dmFsdWUgPT 09ICd1bmRl ZmluZWQnKS B7XG5cdFx0 XHR0aGlzLn JlbW92ZUF0 dHJpYnV0ZS huYW1lKTtc blx0XHR9IG Vsc2Uge1xu XHRcdFx0dG hpcy5zZXRB dHRyaWJ1dG UobmFtZSwg dmFsdWUpO1 xuXHRcdH1c blx0fVxuXG 5cdGZvciAo dmFyIGkgPS AwLCBqID0g YXR0cmlidX Rlcy5sZW5n dGg7IGkgPC BqOyBpKysp IHtcblx0XH R2YXIgYXR0 cmlidXRlID 0gYXR0cmli dXRlc1tpXT tcblxuXHRc dGlmIChhdH RyaWJ1dGUp IHtcblx0XH RcdHZhciBu YW1lID0gYX R0cmlidXRl Lm5hbWU7XG 5cblx0XHRc dGlmIChuYW 1lLmluZGV4 T2YoJ2RhdG EtJykgPT09 IDApIHtcbl x0XHRcdFx0 dmFyIHByb3 AgPSBuYW1l LnNsaWNlKD UpLnJlcGxh Y2UoLy0uL2 csIGZ1bmN0 aW9uICh1KS B7XG5cdFx0 XHRcdFx0cm V0dXJuIHUu Y2hhckF0KD EpLnRvVXBw ZXJDYXNlKC k7XG5cdFx0 XHRcdH0pO1 xuXG5cdFx0 XHRcdHZhci B2YWx1ZSA9 IGF0dHJpYn V0ZS52YWx1 ZTtcblxuXH RcdFx0XHRP YmplY3QuZG VmaW5lUHJv cGVydHkobW FwLCBwcm9w LCB7XG5cdF x0XHRcdFx0 ZW51bWVyYW JsZTogdHJ1 ZSxcblx0XH RcdFx0XHRn ZXQ6IGdldH Rlci5iaW5k KHsgdmFsdW U6IHZhbHVl IHx8ICcnIH 0pLFxuXHRc dFx0XHRcdH NldDogc2V0 dGVyLmJpbm QoZWxlbWVu dCwgbmFtZS lcblx0XHRc dFx0fSk7XG 5cdFx0XHR9 XG5cdFx0fV xuXHR9XG5c blx0cmV0dX JuIG1hcDtc bn07XG5cbi IsIi8vIGVs ZW1lbnQtY2 xvc2VzdCB8 IENDMC0xLj AgfCBnaXRo dWIuY29tL2 pvbmF0aGFu dG5lYWwvY2 xvc2VzdFxu XG4oZnVuY3 Rpb24gKEVs ZW1lbnRQcm 90bykge1xu XHRpZiAodH lwZW9mIEVs ZW1lbnRQcm 90by5tYXRj aGVzICE9PS AnZnVuY3Rp b24nKSB7XG 5cdFx0RWxl bWVudFByb3 RvLm1hdGNo ZXMgPSBFbG VtZW50UHJv dG8ubXNNYX RjaGVzU2Vs ZWN0b3IgfH wgRWxlbWVu dFByb3RvLm 1vek1hdGNo ZXNTZWxlY3 RvciB8fCBF bGVtZW50UH JvdG8ud2Vi a2l0TWF0Y2 hlc1NlbGVj dG9yIHx8IG Z1bmN0aW9u IG1hdGNoZX Moc2VsZWN0 b3IpIHtcbl x0XHRcdHZh ciBlbGVtZW 50ID0gdGhp cztcblx0XH RcdHZhciBl bGVtZW50cy A9IChlbGVt ZW50LmRvY3 VtZW50IHx8 IGVsZW1lbn Qub3duZXJE b2N1bWVudC kucXVlcnlT ZWxlY3Rvck FsbChzZWxl Y3Rvcik7XG 5cdFx0XHR2 YXIgaW5kZX ggPSAwO1xu XG5cdFx0XH R3aGlsZSAo ZWxlbWVudH NbaW5kZXhd ICYmIGVsZW 1lbnRzW2lu ZGV4XSAhPT 0gZWxlbWVu dCkge1xuXH RcdFx0XHQr K2luZGV4O1 xuXHRcdFx0 fVxuXG5cdF x0XHRyZXR1 cm4gQm9vbG VhbihlbGVt ZW50c1tpbm RleF0pO1xu XHRcdH07XG 5cdH1cblxu XHRpZiAodH lwZW9mIEVs ZW1lbnRQcm 90by5jbG9z ZXN0ICE9PS AnZnVuY3Rp b24nKSB7XG 5cdFx0RWxl bWVudFByb3 RvLmNsb3Nl c3QgPSBmdW 5jdGlvbiBj bG9zZXN0KH NlbGVjdG9y KSB7XG5cdF x0XHR2YXIg ZWxlbWVudC A9IHRoaXM7 XG5cblx0XH RcdHdoaWxl IChlbGVtZW 50ICYmIGVs ZW1lbnQubm 9kZVR5cGUg PT09IDEpIH tcblx0XHRc dFx0aWYgKG VsZW1lbnQu bWF0Y2hlcy hzZWxlY3Rv cikpIHtcbl x0XHRcdFx0 XHRyZXR1cm 4gZWxlbWVu dDtcblx0XH RcdFx0fVxu XG5cdFx0XH RcdGVsZW1l bnQgPSBlbG VtZW50LnBh cmVudE5vZG U7XG5cdFx0 XHR9XG5cbl x0XHRcdHJl dHVybiBudW xsO1xuXHRc dH07XG5cdH 1cbn0pKHdp bmRvdy5FbG VtZW50LnBy b3RvdHlwZS k7XG4iLCIv KipcbiAqIG xvZGFzaCAo Q3VzdG9tIE J1aWxkKSA8 aHR0cHM6Ly 9sb2Rhc2gu Y29tLz5cbi AqIEJ1aWxk OiBgbG9kYX NoIG1vZHVs YXJpemUgZX hwb3J0cz1c Im5wbVwiIC 1vIC4vYFxu ICogQ29weX JpZ2h0IGpR dWVyeSBGb3 VuZGF0aW9u IGFuZCBvdG hlciBjb250 cmlidXRvcn MgPGh0dHBz Oi8vanF1ZX J5Lm9yZy8+ XG4gKiBSZW xlYXNlZCB1 bmRlciBNSV QgbGljZW5z ZSA8aHR0cH M6Ly9sb2Rh c2guY29tL2 xpY2Vuc2U+ XG4gKiBCYX NlZCBvbiBV bmRlcnNjb3 JlLmpzIDEu OC4zIDxodH RwOi8vdW5k ZXJzY29yZW pzLm9yZy9M SUNFTlNFPl xuICogQ29w eXJpZ2h0IE plcmVteSBB c2hrZW5hcy wgRG9jdW1l bnRDbG91ZC BhbmQgSW52 ZXN0aWdhdG l2ZSBSZXBv cnRlcnMgJi BFZGl0b3Jz XG4gKi9cbl xuLyoqIFVz ZWQgYXMgdG hlIGBUeXBl RXJyb3JgIG 1lc3NhZ2Ug Zm9yIFwiRn VuY3Rpb25z XCIgbWV0aG 9kcy4gKi9c bnZhciBGVU 5DX0VSUk9S X1RFWFQgPS AnRXhwZWN0 ZWQgYSBmdW 5jdGlvbic7 XG5cbi8qKi BVc2VkIGFz IHJlZmVyZW 5jZXMgZm9y IHZhcmlvdX MgYE51bWJl cmAgY29uc3 RhbnRzLiAq L1xudmFyIE 5BTiA9IDAg LyAwO1xuXG 4vKiogYE9i amVjdCN0b1 N0cmluZ2Ag cmVzdWx0IH JlZmVyZW5j ZXMuICovXG 52YXIgc3lt Ym9sVGFnID 0gJ1tvYmpl Y3QgU3ltYm 9sXSc7XG5c bi8qKiBVc2 VkIHRvIG1h dGNoIGxlYW RpbmcgYW5k IHRyYWlsaW 5nIHdoaXRl c3BhY2UuIC ovXG52YXIg cmVUcmltID 0gL15cXHMr fFxccyskL2 c7XG5cbi8q KiBVc2VkIH RvIGRldGVj dCBiYWQgc2 lnbmVkIGhl eGFkZWNpbW FsIHN0cmlu ZyB2YWx1ZX MuICovXG52 YXIgcmVJc0 JhZEhleCA9 IC9eWy0rXT B4WzAtOWEt Zl0rJC9pO1 xuXG4vKiog VXNlZCB0by BkZXRlY3Qg YmluYXJ5IH N0cmluZyB2 YWx1ZXMuIC ovXG52YXIg cmVJc0Jpbm FyeSA9IC9e MGJbMDFdKy QvaTtcblxu LyoqIFVzZW QgdG8gZGV0 ZWN0IG9jdG FsIHN0cmlu ZyB2YWx1ZX MuICovXG52 YXIgcmVJc0 9jdGFsID0g L14wb1swLT ddKyQvaTtc blxuLyoqIE J1aWx0LWlu IG1ldGhvZC ByZWZlcmVu Y2VzIHdpdG hvdXQgYSBk ZXBlbmRlbm N5IG9uIGBy b290YC4gKi 9cbnZhciBm cmVlUGFyc2 VJbnQgPSBw YXJzZUludD tcblxuLyoq IERldGVjdC BmcmVlIHZh cmlhYmxlIG BnbG9iYWxg IGZyb20gTm 9kZS5qcy4g Ki9cbnZhci BmcmVlR2xv YmFsID0gdH lwZW9mIGds b2JhbCA9PS Anb2JqZWN0 JyAmJiBnbG 9iYWwgJiYg Z2xvYmFsLk 9iamVjdCA9 PT0gT2JqZW N0ICYmIGds b2JhbDtcbl xuLyoqIERl dGVjdCBmcm VlIHZhcmlh YmxlIGBzZW xmYC4gKi9c bnZhciBmcm VlU2VsZiA9 IHR5cGVvZi BzZWxmID09 ICdvYmplY3 QnICYmIHNl bGYgJiYgc2 VsZi5PYmpl Y3QgPT09IE 9iamVjdCAm JiBzZWxmO1 xuXG4vKiog VXNlZCBhcy BhIHJlZmVy ZW5jZSB0by B0aGUgZ2xv YmFsIG9iam VjdC4gKi9c bnZhciByb2 90ID0gZnJl ZUdsb2JhbC B8fCBmcmVl U2VsZiB8fC BGdW5jdGlv bigncmV0dX JuIHRoaXMn KSgpO1xuXG 4vKiogVXNl ZCBmb3IgYn VpbHQtaW4g bWV0aG9kIH JlZmVyZW5j ZXMuICovXG 52YXIgb2Jq ZWN0UHJvdG 8gPSBPYmpl Y3QucHJvdG 90eXBlO1xu XG4vKipcbi AqIFVzZWQg dG8gcmVzb2 x2ZSB0aGVc biAqIFtgdG 9TdHJpbmdU YWdgXShodH RwOi8vZWNt YS1pbnRlcm 5hdGlvbmFs Lm9yZy9lY2 1hLTI2Mi83 LjAvI3NlYy 1vYmplY3Qu cHJvdG90eX BlLnRvc3Ry aW5nKVxuIC ogb2YgdmFs dWVzLlxuIC ovXG52YXIg b2JqZWN0VG 9TdHJpbmcg PSBvYmplY3 RQcm90by50 b1N0cmluZz tcblxuLyog QnVpbHQtaW 4gbWV0aG9k IHJlZmVyZW 5jZXMgZm9y IHRob3NlIH dpdGggdGhl IHNhbWUgbm FtZSBhcyBv dGhlciBgbG 9kYXNoYCBt ZXRob2RzLi AqL1xudmFy IG5hdGl2ZU 1heCA9IE1h dGgubWF4LF xuICAgIG5h dGl2ZU1pbi A9IE1hdGgu bWluO1xuXG 4vKipcbiAq IEdldHMgdG hlIHRpbWVz dGFtcCBvZi B0aGUgbnVt YmVyIG9mIG 1pbGxpc2Vj b25kcyB0aG F0IGhhdmUg ZWxhcHNlZC BzaW5jZVxu ICogdGhlIF VuaXggZXBv Y2ggKDEgSm FudWFyeSAx OTcwIDAwOj AwOjAwIFVU QykuXG4gKl xuICogQHN0 YXRpY1xuIC ogQG1lbWJl ck9mIF9cbi AqIEBzaW5j ZSAyLjQuMF xuICogQGNh dGVnb3J5IE RhdGVcbiAq IEByZXR1cm 5zIHtudW1i ZXJ9IFJldH VybnMgdGhl IHRpbWVzdG FtcC5cbiAq IEBleGFtcG xlXG4gKlxu ICogXy5kZW ZlcihmdW5j dGlvbihzdG FtcCkge1xu ICogICBjb2 5zb2xlLmxv ZyhfLm5vdy gpIC0gc3Rh bXApO1xuIC ogfSwgXy5u b3coKSk7XG 4gKiAvLyA9 PiBMb2dzIH RoZSBudW1i ZXIgb2YgbW lsbGlzZWNv bmRzIGl0IH Rvb2sgZm9y IHRoZSBkZW ZlcnJlZCBp bnZvY2F0aW 9uLlxuICov XG52YXIgbm 93ID0gZnVu Y3Rpb24oKS B7XG4gIHJl dHVybiByb2 90LkRhdGUu bm93KCk7XG 59O1xuXG4v KipcbiAqIE NyZWF0ZXMg YSBkZWJvdW 5jZWQgZnVu Y3Rpb24gdG hhdCBkZWxh eXMgaW52b2 tpbmcgYGZ1 bmNgIHVudG lsIGFmdGVy IGB3YWl0YF xuICogbWls bGlzZWNvbm RzIGhhdmUg ZWxhcHNlZC BzaW5jZSB0 aGUgbGFzdC B0aW1lIHRo ZSBkZWJvdW 5jZWQgZnVu Y3Rpb24gd2 FzXG4gKiBp bnZva2VkLi BUaGUgZGVi b3VuY2VkIG Z1bmN0aW9u IGNvbWVzIH dpdGggYSBg Y2FuY2VsYC BtZXRob2Qg dG8gY2FuY2 VsXG4gKiBk ZWxheWVkIG BmdW5jYCBp bnZvY2F0aW 9ucyBhbmQg YSBgZmx1c2 hgIG1ldGhv ZCB0byBpbW 1lZGlhdGVs eSBpbnZva2 UgdGhlbS5c biAqIFByb3 ZpZGUgYG9w dGlvbnNgIH RvIGluZGlj YXRlIHdoZX RoZXIgYGZ1 bmNgIHNob3 VsZCBiZSBp bnZva2VkIG 9uIHRoZVxu ICogbGVhZG luZyBhbmQv b3IgdHJhaW xpbmcgZWRn ZSBvZiB0aG UgYHdhaXRg IHRpbWVvdX QuIFRoZSBg ZnVuY2AgaX MgaW52b2tl ZFxuICogd2 l0aCB0aGUg bGFzdCBhcm d1bWVudHMg cHJvdmlkZW QgdG8gdGhl IGRlYm91bm NlZCBmdW5j dGlvbi4gU3 Vic2VxdWVu dFxuICogY2 FsbHMgdG8g dGhlIGRlYm 91bmNlZCBm dW5jdGlvbi ByZXR1cm4g dGhlIHJlc3 VsdCBvZiB0 aGUgbGFzdC BgZnVuY2Bc biAqIGludm 9jYXRpb24u XG4gKlxuIC ogKipOb3Rl OioqIElmIG BsZWFkaW5n YCBhbmQgYH RyYWlsaW5n YCBvcHRpb2 5zIGFyZSBg dHJ1ZWAsIG BmdW5jYCBp c1xuICogaW 52b2tlZCBv biB0aGUgdH JhaWxpbmcg ZWRnZSBvZi B0aGUgdGlt ZW91dCBvbm x5IGlmIHRo ZSBkZWJvdW 5jZWQgZnVu Y3Rpb25cbi AqIGlzIGlu dm9rZWQgbW 9yZSB0aGFu IG9uY2UgZH VyaW5nIHRo ZSBgd2FpdG AgdGltZW91 dC5cbiAqXG 4gKiBJZiBg d2FpdGAgaX MgYDBgIGFu ZCBgbGVhZG luZ2AgaXMg YGZhbHNlYC wgYGZ1bmNg IGludm9jYX Rpb24gaXMg ZGVmZXJyZW RcbiAqIHVu dGlsIHRvIH RoZSBuZXh0 IHRpY2ssIH NpbWlsYXIg dG8gYHNldF RpbWVvdXRg IHdpdGggYS B0aW1lb3V0 IG9mIGAwYC 5cbiAqXG4g KiBTZWUgW0 RhdmlkIENv cmJhY2hvJ3 MgYXJ0aWNs ZV0oaHR0cH M6Ly9jc3Mt dHJpY2tzLm NvbS9kZWJv dW5jaW5nLX Rocm90dGxp bmctZXhwbG FpbmVkLWV4 YW1wbGVzLy lcbiAqIGZv ciBkZXRhaW xzIG92ZXIg dGhlIGRpZm ZlcmVuY2Vz IGJldHdlZW 4gYF8uZGVi b3VuY2VgIG FuZCBgXy50 aHJvdHRsZW AuXG4gKlxu ICogQHN0YX RpY1xuICog QG1lbWJlck 9mIF9cbiAq IEBzaW5jZS AwLjEuMFxu ICogQGNhdG Vnb3J5IEZ1 bmN0aW9uXG 4gKiBAcGFy YW0ge0Z1bm N0aW9ufSBm dW5jIFRoZS BmdW5jdGlv biB0byBkZW JvdW5jZS5c biAqIEBwYX JhbSB7bnVt YmVyfSBbd2 FpdD0wXSBU aGUgbnVtYm VyIG9mIG1p bGxpc2Vjb2 5kcyB0byBk ZWxheS5cbi AqIEBwYXJh bSB7T2JqZW N0fSBbb3B0 aW9ucz17fV 0gVGhlIG9w dGlvbnMgb2 JqZWN0Llxu ICogQHBhcm FtIHtib29s ZWFufSBbb3 B0aW9ucy5s ZWFkaW5nPW ZhbHNlXVxu ICogIFNwZW NpZnkgaW52 b2tpbmcgb2 4gdGhlIGxl YWRpbmcgZW RnZSBvZiB0 aGUgdGltZW 91dC5cbiAq IEBwYXJhbS B7bnVtYmVy fSBbb3B0aW 9ucy5tYXhX YWl0XVxuIC ogIFRoZSBt YXhpbXVtIH RpbWUgYGZ1 bmNgIGlzIG FsbG93ZWQg dG8gYmUgZG VsYXllZCBi ZWZvcmUgaX QncyBpbnZv a2VkLlxuIC ogQHBhcmFt IHtib29sZW FufSBbb3B0 aW9ucy50cm FpbGluZz10 cnVlXVxuIC ogIFNwZWNp ZnkgaW52b2 tpbmcgb24g dGhlIHRyYW lsaW5nIGVk Z2Ugb2YgdG hlIHRpbWVv dXQuXG4gKi BAcmV0dXJu cyB7RnVuY3 Rpb259IFJl dHVybnMgdG hlIG5ldyBk ZWJvdW5jZW QgZnVuY3Rp b24uXG4gKi BAZXhhbXBs ZVxuICpcbi AqIC8vIEF2 b2lkIGNvc3 RseSBjYWxj dWxhdGlvbn Mgd2hpbGUg dGhlIHdpbm RvdyBzaXpl IGlzIGluIG ZsdXguXG4g KiBqUXVlcn kod2luZG93 KS5vbigncm VzaXplJywg Xy5kZWJvdW 5jZShjYWxj dWxhdGVMYX lvdXQsIDE1 MCkpO1xuIC pcbiAqIC8v IEludm9rZS Bgc2VuZE1h aWxgIHdoZW 4gY2xpY2tl ZCwgZGVib3 VuY2luZyBz dWJzZXF1ZW 50IGNhbGxz LlxuICogal F1ZXJ5KGVs ZW1lbnQpLm 9uKCdjbGlj aycsIF8uZG Vib3VuY2Uo c2VuZE1haW wsIDMwMCwg e1xuICogIC AnbGVhZGlu Zyc6IHRydW UsXG4gKiAg ICd0cmFpbG luZyc6IGZh bHNlXG4gKi B9KSk7XG4g KlxuICogLy 8gRW5zdXJl IGBiYXRjaE xvZ2AgaXMg aW52b2tlZC BvbmNlIGFm dGVyIDEgc2 Vjb25kIG9m IGRlYm91bm NlZCBjYWxs cy5cbiAqIH ZhciBkZWJv dW5jZWQgPS BfLmRlYm91 bmNlKGJhdG NoTG9nLCAy NTAsIHsgJ2 1heFdhaXQn OiAxMDAwIH 0pO1xuICog dmFyIHNvdX JjZSA9IG5l dyBFdmVudF NvdXJjZSgn L3N0cmVhbS cpO1xuICog alF1ZXJ5KH NvdXJjZSku b24oJ21lc3 NhZ2UnLCBk ZWJvdW5jZW QpO1xuICpc biAqIC8vIE NhbmNlbCB0 aGUgdHJhaW xpbmcgZGVi b3VuY2VkIG ludm9jYXRp b24uXG4gKi BqUXVlcnko d2luZG93KS 5vbigncG9w c3RhdGUnLC BkZWJvdW5j ZWQuY2FuY2 VsKTtcbiAq L1xuZnVuY3 Rpb24gZGVi b3VuY2UoZn VuYywgd2Fp dCwgb3B0aW 9ucykge1xu ICB2YXIgbG FzdEFyZ3Ms XG4gICAgIC BsYXN0VGhp cyxcbiAgIC AgIG1heFdh aXQsXG4gIC AgICByZXN1 bHQsXG4gIC AgICB0aW1l cklkLFxuIC AgICAgbGFz dENhbGxUaW 1lLFxuICAg ICAgbGFzdE ludm9rZVRp bWUgPSAwLF xuICAgICAg bGVhZGluZy A9IGZhbHNl LFxuICAgIC AgbWF4aW5n ID0gZmFsc2 UsXG4gICAg ICB0cmFpbG luZyA9IHRy dWU7XG5cbi AgaWYgKHR5 cGVvZiBmdW 5jICE9ICdm dW5jdGlvbi cpIHtcbiAg ICB0aHJvdy BuZXcgVHlw ZUVycm9yKE ZVTkNfRVJS T1JfVEVYVC k7XG4gIH1c biAgd2FpdC A9IHRvTnVt YmVyKHdhaX QpIHx8IDA7 XG4gIGlmIC hpc09iamVj dChvcHRpb2 5zKSkge1xu ICAgIGxlYW RpbmcgPSAh IW9wdGlvbn MubGVhZGlu ZztcbiAgIC BtYXhpbmcg PSAnbWF4V2 FpdCcgaW4g b3B0aW9ucz tcbiAgICBt YXhXYWl0ID 0gbWF4aW5n ID8gbmF0aX ZlTWF4KHRv TnVtYmVyKG 9wdGlvbnMu bWF4V2FpdC kgfHwgMCwg d2FpdCkgOi BtYXhXYWl0 O1xuICAgIH RyYWlsaW5n ID0gJ3RyYW lsaW5nJyBp biBvcHRpb2 5zID8gISFv cHRpb25zLn RyYWlsaW5n IDogdHJhaW xpbmc7XG4g IH1cblxuIC BmdW5jdGlv biBpbnZva2 VGdW5jKHRp bWUpIHtcbi AgICB2YXIg YXJncyA9IG xhc3RBcmdz LFxuICAgIC AgICB0aGlz QXJnID0gbG FzdFRoaXM7 XG5cbiAgIC BsYXN0QXJn cyA9IGxhc3 RUaGlzID0g dW5kZWZpbm VkO1xuICAg IGxhc3RJbn Zva2VUaW1l ID0gdGltZT tcbiAgICBy ZXN1bHQgPS BmdW5jLmFw cGx5KHRoaX NBcmcsIGFy Z3MpO1xuIC AgIHJldHVy biByZXN1bH Q7XG4gIH1c blxuICBmdW 5jdGlvbiBs ZWFkaW5nRW RnZSh0aW1l KSB7XG4gIC AgLy8gUmVz ZXQgYW55IG BtYXhXYWl0 YCB0aW1lci 5cbiAgICBs YXN0SW52b2 tlVGltZSA9 IHRpbWU7XG 4gICAgLy8g U3RhcnQgdG hlIHRpbWVy IGZvciB0aG UgdHJhaWxp bmcgZWRnZS 5cbiAgICB0 aW1lcklkID 0gc2V0VGlt ZW91dCh0aW 1lckV4cGly ZWQsIHdhaX QpO1xuICAg IC8vIEludm 9rZSB0aGUg bGVhZGluZy BlZGdlLlxu ICAgIHJldH VybiBsZWFk aW5nID8gaW 52b2tlRnVu Yyh0aW1lKS A6IHJlc3Vs dDtcbiAgfV xuXG4gIGZ1 bmN0aW9uIH JlbWFpbmlu Z1dhaXQodG ltZSkge1xu ICAgIHZhci B0aW1lU2lu Y2VMYXN0Q2 FsbCA9IHRp bWUgLSBsYX N0Q2FsbFRp bWUsXG4gIC AgICAgIHRp bWVTaW5jZU xhc3RJbnZv a2UgPSB0aW 1lIC0gbGFz dEludm9rZV RpbWUsXG4g ICAgICAgIH Jlc3VsdCA9 IHdhaXQgLS B0aW1lU2lu Y2VMYXN0Q2 FsbDtcblxu ICAgIHJldH VybiBtYXhp bmcgPyBuYX RpdmVNaW4o cmVzdWx0LC BtYXhXYWl0 IC0gdGltZV NpbmNlTGFz dEludm9rZS kgOiByZXN1 bHQ7XG4gIH 1cblxuICBm dW5jdGlvbi BzaG91bGRJ bnZva2UodG ltZSkge1xu ICAgIHZhci B0aW1lU2lu Y2VMYXN0Q2 FsbCA9IHRp bWUgLSBsYX N0Q2FsbFRp bWUsXG4gIC AgICAgIHRp bWVTaW5jZU xhc3RJbnZv a2UgPSB0aW 1lIC0gbGFz dEludm9rZV RpbWU7XG5c biAgICAvLy BFaXRoZXIg dGhpcyBpcy B0aGUgZmly c3QgY2FsbC wgYWN0aXZp dHkgaGFzIH N0b3BwZWQg YW5kIHdlJ3 JlIGF0IHRo ZVxuICAgIC 8vIHRyYWls aW5nIGVkZ2 UsIHRoZSBz eXN0ZW0gdG ltZSBoYXMg Z29uZSBiYW Nrd2FyZHMg YW5kIHdlJ3 JlIHRyZWF0 aW5nXG4gIC AgLy8gaXQg YXMgdGhlIH RyYWlsaW5n IGVkZ2UsIG 9yIHdlJ3Zl IGhpdCB0aG UgYG1heFdh aXRgIGxpbW l0LlxuICAg IHJldHVybi AobGFzdENh bGxUaW1lID 09PSB1bmRl ZmluZWQgfH wgKHRpbWVT aW5jZUxhc3 RDYWxsID49 IHdhaXQpIH x8XG4gICAg ICAodGltZV NpbmNlTGFz dENhbGwgPC AwKSB8fCAo bWF4aW5nIC YmIHRpbWVT aW5jZUxhc3 RJbnZva2Ug Pj0gbWF4V2 FpdCkpO1xu ICB9XG5cbi AgZnVuY3Rp b24gdGltZX JFeHBpcmVk KCkge1xuIC AgIHZhciB0 aW1lID0gbm 93KCk7XG4g ICAgaWYgKH Nob3VsZElu dm9rZSh0aW 1lKSkge1xu ICAgICAgcm V0dXJuIHRy YWlsaW5nRW RnZSh0aW1l KTtcbiAgIC B9XG4gICAg Ly8gUmVzdG FydCB0aGUg dGltZXIuXG 4gICAgdGlt ZXJJZCA9IH NldFRpbWVv dXQodGltZX JFeHBpcmVk LCByZW1haW 5pbmdXYWl0 KHRpbWUpKT tcbiAgfVxu XG4gIGZ1bm N0aW9uIHRy YWlsaW5nRW RnZSh0aW1l KSB7XG4gIC AgdGltZXJJ ZCA9IHVuZG VmaW5lZDtc blxuICAgIC 8vIE9ubHkg aW52b2tlIG lmIHdlIGhh dmUgYGxhc3 RBcmdzYCB3 aGljaCBtZW FucyBgZnVu Y2AgaGFzIG JlZW5cbiAg ICAvLyBkZW JvdW5jZWQg YXQgbGVhc3 Qgb25jZS5c biAgICBpZi AodHJhaWxp bmcgJiYgbG FzdEFyZ3Mp IHtcbiAgIC AgIHJldHVy biBpbnZva2 VGdW5jKHRp bWUpO1xuIC AgIH1cbiAg ICBsYXN0QX JncyA9IGxh c3RUaGlzID 0gdW5kZWZp bmVkO1xuIC AgIHJldHVy biByZXN1bH Q7XG4gIH1c blxuICBmdW 5jdGlvbiBj YW5jZWwoKS B7XG4gICAg aWYgKHRpbW VySWQgIT09 IHVuZGVmaW 5lZCkge1xu ICAgICAgY2 xlYXJUaW1l b3V0KHRpbW VySWQpO1xu ICAgIH1cbi AgICBsYXN0 SW52b2tlVG ltZSA9IDA7 XG4gICAgbG FzdEFyZ3Mg PSBsYXN0Q2 FsbFRpbWUg PSBsYXN0VG hpcyA9IHRp bWVySWQgPS B1bmRlZmlu ZWQ7XG4gIH 1cblxuICBm dW5jdGlvbi BmbHVzaCgp IHtcbiAgIC ByZXR1cm4g dGltZXJJZC A9PT0gdW5k ZWZpbmVkID 8gcmVzdWx0 IDogdHJhaW xpbmdFZGdl KG5vdygpKT tcbiAgfVxu XG4gIGZ1bm N0aW9uIGRl Ym91bmNlZC gpIHtcbiAg ICB2YXIgdG ltZSA9IG5v dygpLFxuIC AgICAgICBp c0ludm9raW 5nID0gc2hv dWxkSW52b2 tlKHRpbWUp O1xuXG4gIC AgbGFzdEFy Z3MgPSBhcm d1bWVudHM7 XG4gICAgbG FzdFRoaXMg PSB0aGlzO1 xuICAgIGxh c3RDYWxsVG ltZSA9IHRp bWU7XG5cbi AgICBpZiAo aXNJbnZva2 luZykge1xu ICAgICAgaW YgKHRpbWVy SWQgPT09IH VuZGVmaW5l ZCkge1xuIC AgICAgICBy ZXR1cm4gbG VhZGluZ0Vk Z2UobGFzdE NhbGxUaW1l KTtcbiAgIC AgIH1cbiAg ICAgIGlmIC htYXhpbmcp IHtcbiAgIC AgICAgLy8g SGFuZGxlIG ludm9jYXRp b25zIGluIG EgdGlnaHQg bG9vcC5cbi AgICAgICAg dGltZXJJZC A9IHNldFRp bWVvdXQodG ltZXJFeHBp cmVkLCB3YW l0KTtcbiAg ICAgICAgcm V0dXJuIGlu dm9rZUZ1bm MobGFzdENh bGxUaW1lKT tcbiAgICAg IH1cbiAgIC B9XG4gICAg aWYgKHRpbW VySWQgPT09 IHVuZGVmaW 5lZCkge1xu ICAgICAgdG ltZXJJZCA9 IHNldFRpbW VvdXQodGlt ZXJFeHBpcm VkLCB3YWl0 KTtcbiAgIC B9XG4gICAg cmV0dXJuIH Jlc3VsdDtc biAgfVxuIC BkZWJvdW5j ZWQuY2FuY2 VsID0gY2Fu Y2VsO1xuIC BkZWJvdW5j ZWQuZmx1c2 ggPSBmbHVz aDtcbiAgcm V0dXJuIGRl Ym91bmNlZD tcbn1cblxu LyoqXG4gKi BDaGVja3Mg aWYgYHZhbH VlYCBpcyB0 aGVcbiAqIF tsYW5ndWFn ZSB0eXBlXS hodHRwOi8v d3d3LmVjbW EtaW50ZXJu YXRpb25hbC 5vcmcvZWNt YS0yNjIvNy 4wLyNzZWMt ZWNtYXNjcm lwdC1sYW5n dWFnZS10eX BlcylcbiAq IG9mIGBPYm plY3RgLiAo ZS5nLiBhcn JheXMsIGZ1 bmN0aW9ucy wgb2JqZWN0 cywgcmVnZX hlcywgYG5l dyBOdW1iZX IoMClgLCBh bmQgYG5ldy BTdHJpbmco JycpYClcbi AqXG4gKiBA c3RhdGljXG 4gKiBAbWVt YmVyT2YgX1 xuICogQHNp bmNlIDAuMS 4wXG4gKiBA Y2F0ZWdvcn kgTGFuZ1xu ICogQHBhcm FtIHsqfSB2 YWx1ZSBUaG UgdmFsdWUg dG8gY2hlY2 suXG4gKiBA cmV0dXJucy B7Ym9vbGVh bn0gUmV0dX JucyBgdHJ1 ZWAgaWYgYH ZhbHVlYCBp cyBhbiBvYm plY3QsIGVs c2UgYGZhbH NlYC5cbiAq IEBleGFtcG xlXG4gKlxu ICogXy5pc0 9iamVjdCh7 fSk7XG4gKi AvLyA9PiB0 cnVlXG4gKl xuICogXy5p c09iamVjdC hbMSwgMiwg M10pO1xuIC ogLy8gPT4g dHJ1ZVxuIC pcbiAqIF8u aXNPYmplY3 QoXy5ub29w KTtcbiAqIC 8vID0+IHRy dWVcbiAqXG 4gKiBfLmlz T2JqZWN0KG 51bGwpO1xu ICogLy8gPT 4gZmFsc2Vc biAqL1xuZn VuY3Rpb24g aXNPYmplY3 QodmFsdWUp IHtcbiAgdm FyIHR5cGUg PSB0eXBlb2 YgdmFsdWU7 XG4gIHJldH VybiAhIXZh bHVlICYmIC h0eXBlID09 ICdvYmplY3 QnIHx8IHR5 cGUgPT0gJ2 Z1bmN0aW9u Jyk7XG59XG 5cbi8qKlxu ICogQ2hlY2 tzIGlmIGB2 YWx1ZWAgaX Mgb2JqZWN0 LWxpa2UuIE EgdmFsdWUg aXMgb2JqZW N0LWxpa2Ug aWYgaXQncy Bub3QgYG51 bGxgXG4gKi BhbmQgaGFz IGEgYHR5cG VvZmAgcmVz dWx0IG9mIF wib2JqZWN0 XCIuXG4gKl xuICogQHN0 YXRpY1xuIC ogQG1lbWJl ck9mIF9cbi AqIEBzaW5j ZSA0LjAuMF xuICogQGNh dGVnb3J5IE xhbmdcbiAq IEBwYXJhbS B7Kn0gdmFs dWUgVGhlIH ZhbHVlIHRv IGNoZWNrLl xuICogQHJl dHVybnMge2 Jvb2xlYW59 IFJldHVybn MgYHRydWVg IGlmIGB2YW x1ZWAgaXMg b2JqZWN0LW xpa2UsIGVs c2UgYGZhbH NlYC5cbiAq IEBleGFtcG xlXG4gKlxu ICogXy5pc0 9iamVjdExp a2Uoe30pO1 xuICogLy8g PT4gdHJ1ZV xuICpcbiAq IF8uaXNPYm plY3RMaWtl KFsxLCAyLC AzXSk7XG4g KiAvLyA9Pi B0cnVlXG4g KlxuICogXy 5pc09iamVj dExpa2UoXy 5ub29wKTtc biAqIC8vID 0+IGZhbHNl XG4gKlxuIC ogXy5pc09i amVjdExpa2 UobnVsbCk7 XG4gKiAvLy A9PiBmYWxz ZVxuICovXG 5mdW5jdGlv biBpc09iam VjdExpa2Uo dmFsdWUpIH tcbiAgcmV0 dXJuICEhdm FsdWUgJiYg dHlwZW9mIH ZhbHVlID09 ICdvYmplY3 QnO1xufVxu XG4vKipcbi AqIENoZWNr cyBpZiBgdm FsdWVgIGlz IGNsYXNzaW ZpZWQgYXMg YSBgU3ltYm 9sYCBwcmlt aXRpdmUgb3 Igb2JqZWN0 LlxuICpcbi AqIEBzdGF0 aWNcbiAqIE BtZW1iZXJP ZiBfXG4gKi BAc2luY2Ug NC4wLjBcbi AqIEBjYXRl Z29yeSBMYW 5nXG4gKiBA cGFyYW0gey p9IHZhbHVl IFRoZSB2YW x1ZSB0byBj aGVjay5cbi AqIEByZXR1 cm5zIHtib2 9sZWFufSBS ZXR1cm5zIG B0cnVlYCBp ZiBgdmFsdW VgIGlzIGEg c3ltYm9sLC BlbHNlIGBm YWxzZWAuXG 4gKiBAZXhh bXBsZVxuIC pcbiAqIF8u aXNTeW1ib2 woU3ltYm9s Lml0ZXJhdG 9yKTtcbiAq IC8vID0+IH RydWVcbiAq XG4gKiBfLm lzU3ltYm9s KCdhYmMnKT tcbiAqIC8v ID0+IGZhbH NlXG4gKi9c bmZ1bmN0aW 9uIGlzU3lt Ym9sKHZhbH VlKSB7XG4g IHJldHVybi B0eXBlb2Yg dmFsdWUgPT 0gJ3N5bWJv bCcgfHxcbi AgICAoaXNP YmplY3RMaW tlKHZhbHVl KSAmJiBvYm plY3RUb1N0 cmluZy5jYW xsKHZhbHVl KSA9PSBzeW 1ib2xUYWcp O1xufVxuXG 4vKipcbiAq IENvbnZlcn RzIGB2YWx1 ZWAgdG8gYS BudW1iZXIu XG4gKlxuIC ogQHN0YXRp Y1xuICogQG 1lbWJlck9m IF9cbiAqIE BzaW5jZSA0 LjAuMFxuIC ogQGNhdGVn b3J5IExhbm dcbiAqIEBw YXJhbSB7Kn 0gdmFsdWUg VGhlIHZhbH VlIHRvIHBy b2Nlc3MuXG 4gKiBAcmV0 dXJucyB7bn VtYmVyfSBS ZXR1cm5zIH RoZSBudW1i ZXIuXG4gKi BAZXhhbXBs ZVxuICpcbi AqIF8udG9O dW1iZXIoMy 4yKTtcbiAq IC8vID0+ID MuMlxuICpc biAqIF8udG 9OdW1iZXIo TnVtYmVyLk 1JTl9WQUxV RSk7XG4gKi AvLyA9PiA1 ZS0zMjRcbi AqXG4gKiBf LnRvTnVtYm VyKEluZmlu aXR5KTtcbi AqIC8vID0+ IEluZmluaX R5XG4gKlxu ICogXy50b0 51bWJlcign My4yJyk7XG 4gKiAvLyA9 PiAzLjJcbi AqL1xuZnVu Y3Rpb24gdG 9OdW1iZXIo dmFsdWUpIH tcbiAgaWYg KHR5cGVvZi B2YWx1ZSA9 PSAnbnVtYm VyJykge1xu ICAgIHJldH VybiB2YWx1 ZTtcbiAgfV xuICBpZiAo aXNTeW1ib2 wodmFsdWUp KSB7XG4gIC AgcmV0dXJu IE5BTjtcbi AgfVxuICBp ZiAoaXNPYm plY3QodmFs dWUpKSB7XG 4gICAgdmFy IG90aGVyID 0gdHlwZW9m IHZhbHVlLn ZhbHVlT2Yg PT0gJ2Z1bm N0aW9uJyA/ IHZhbHVlLn ZhbHVlT2Yo KSA6IHZhbH VlO1xuICAg IHZhbHVlID 0gaXNPYmpl Y3Qob3RoZX IpID8gKG90 aGVyICsgJy cpIDogb3Ro ZXI7XG4gIH 1cbiAgaWYg KHR5cGVvZi B2YWx1ZSAh PSAnc3RyaW 5nJykge1xu ICAgIHJldH VybiB2YWx1 ZSA9PT0gMC A/IHZhbHVl IDogK3ZhbH VlO1xuICB9 XG4gIHZhbH VlID0gdmFs dWUucmVwbG FjZShyZVRy aW0sICcnKT tcbiAgdmFy IGlzQmluYX J5ID0gcmVJ c0JpbmFyeS 50ZXN0KHZh bHVlKTtcbi AgcmV0dXJu IChpc0Jpbm FyeSB8fCBy ZUlzT2N0YW wudGVzdCh2 YWx1ZSkpXG 4gICAgPyBm cmVlUGFyc2 VJbnQodmFs dWUuc2xpY2 UoMiksIGlz QmluYXJ5ID 8gMiA6IDgp XG4gICAgOi AocmVJc0Jh ZEhleC50ZX N0KHZhbHVl KSA/IE5BTi A6ICt2YWx1 ZSk7XG59XG 5cbm1vZHVs ZS5leHBvcn RzID0gZGVi b3VuY2U7XG 4iLCIvKlxu b2JqZWN0LW Fzc2lnblxu KGMpIFNpbm RyZSBTb3Jo dXNcbkBsaW NlbnNlIE1J VFxuKi9cbl xuJ3VzZSBz dHJpY3QnO1 xuLyogZXNs aW50LWRpc2 FibGUgbm8t dW51c2VkLX ZhcnMgKi9c bnZhciBnZX RPd25Qcm9w ZXJ0eVN5bW JvbHMgPSBP YmplY3QuZ2 V0T3duUHJv cGVydHlTeW 1ib2xzO1xu dmFyIGhhc0 93blByb3Bl cnR5ID0gT2 JqZWN0LnBy b3RvdHlwZS 5oYXNPd25Q cm9wZXJ0eT tcbnZhciBw cm9wSXNFbn VtZXJhYmxl ID0gT2JqZW N0LnByb3Rv dHlwZS5wcm 9wZXJ0eUlz RW51bWVyYW JsZTtcblxu ZnVuY3Rpb2 4gdG9PYmpl Y3QodmFsKS B7XG5cdGlm ICh2YWwgPT 09IG51bGwg fHwgdmFsID 09PSB1bmRl ZmluZWQpIH tcblx0XHR0 aHJvdyBuZX cgVHlwZUVy cm9yKCdPYm plY3QuYXNz aWduIGNhbm 5vdCBiZSBj YWxsZWQgd2 l0aCBudWxs IG9yIHVuZG VmaW5lZCcp O1xuXHR9XG 5cblx0cmV0 dXJuIE9iam VjdCh2YWwp O1xufVxuXG 5mdW5jdGlv biBzaG91bG RVc2VOYXRp dmUoKSB7XG 5cdHRyeSB7 XG5cdFx0aW YgKCFPYmpl Y3QuYXNzaW duKSB7XG5c dFx0XHRyZX R1cm4gZmFs c2U7XG5cdF x0fVxuXG5c dFx0Ly8gRG V0ZWN0IGJ1 Z2d5IHByb3 BlcnR5IGVu dW1lcmF0aW 9uIG9yZGVy IGluIG9sZG VyIFY4IHZl cnNpb25zLl xuXG5cdFx0 Ly8gaHR0cH M6Ly9idWdz LmNocm9taX VtLm9yZy9w L3Y4L2lzc3 Vlcy9kZXRh aWw/aWQ9ND ExOFxuXHRc dHZhciB0ZX N0MSA9IG5l dyBTdHJpbm coJ2FiYycp OyAgLy8gZX NsaW50LWRp c2FibGUtbG luZSBuby1u ZXctd3JhcH BlcnNcblx0 XHR0ZXN0MV s1XSA9ICdk ZSc7XG5cdF x0aWYgKE9i amVjdC5nZX RPd25Qcm9w ZXJ0eU5hbW VzKHRlc3Qx KVswXSA9PT 0gJzUnKSB7 XG5cdFx0XH RyZXR1cm4g ZmFsc2U7XG 5cdFx0fVxu XG5cdFx0Ly 8gaHR0cHM6 Ly9idWdzLm Nocm9taXVt Lm9yZy9wL3 Y4L2lzc3Vl cy9kZXRhaW w/aWQ9MzA1 NlxuXHRcdH ZhciB0ZXN0 MiA9IHt9O1 xuXHRcdGZv ciAodmFyIG kgPSAwOyBp IDwgMTA7IG krKykge1xu XHRcdFx0dG VzdDJbJ18n ICsgU3RyaW 5nLmZyb21D aGFyQ29kZS hpKV0gPSBp O1xuXHRcdH 1cblx0XHR2 YXIgb3JkZX IyID0gT2Jq ZWN0LmdldE 93blByb3Bl cnR5TmFtZX ModGVzdDIp Lm1hcChmdW 5jdGlvbiAo bikge1xuXH RcdFx0cmV0 dXJuIHRlc3 QyW25dO1xu XHRcdH0pO1 xuXHRcdGlm IChvcmRlcj Iuam9pbign JykgIT09IC cwMTIzNDU2 Nzg5Jykge1 xuXHRcdFx0 cmV0dXJuIG ZhbHNlO1xu XHRcdH1cbl xuXHRcdC8v IGh0dHBzOi 8vYnVncy5j aHJvbWl1bS 5vcmcvcC92 OC9pc3N1ZX MvZGV0YWls P2lkPTMwNT Zcblx0XHR2 YXIgdGVzdD MgPSB7fTtc blx0XHQnYW JjZGVmZ2hp amtsbW5vcH Fyc3QnLnNw bGl0KCcnKS 5mb3JFYWNo KGZ1bmN0aW 9uIChsZXR0 ZXIpIHtcbl x0XHRcdHRl c3QzW2xldH Rlcl0gPSBs ZXR0ZXI7XG 5cdFx0fSk7 XG5cdFx0aW YgKE9iamVj dC5rZXlzKE 9iamVjdC5h c3NpZ24oe3 0sIHRlc3Qz KSkuam9pbi gnJykgIT09 XG5cdFx0XH RcdCdhYmNk ZWZnaGlqa2 xtbm9wcXJz dCcpIHtcbl x0XHRcdHJl dHVybiBmYW xzZTtcblx0 XHR9XG5cbl x0XHRyZXR1 cm4gdHJ1ZT tcblx0fSBj YXRjaCAoZX JyKSB7XG5c dFx0Ly8gV2 UgZG9uJ3Qg ZXhwZWN0IG FueSBvZiB0 aGUgYWJvdm UgdG8gdGhy b3csIGJ1dC BiZXR0ZXIg dG8gYmUgc2 FmZS5cblx0 XHRyZXR1cm 4gZmFsc2U7 XG5cdH1cbn 1cblxubW9k dWxlLmV4cG 9ydHMgPSBz aG91bGRVc2 VOYXRpdmUo KSA/IE9iam VjdC5hc3Np Z24gOiBmdW 5jdGlvbiAo dGFyZ2V0LC Bzb3VyY2Up IHtcblx0dm FyIGZyb207 XG5cdHZhci B0byA9IHRv T2JqZWN0KH RhcmdldCk7 XG5cdHZhci BzeW1ib2xz O1xuXG5cdG ZvciAodmFy IHMgPSAxOy BzIDwgYXJn dW1lbnRzLm xlbmd0aDsg cysrKSB7XG 5cdFx0ZnJv bSA9IE9iam VjdChhcmd1 bWVudHNbc1 0pO1xuXG5c dFx0Zm9yIC h2YXIga2V5 IGluIGZyb2 0pIHtcblx0 XHRcdGlmIC hoYXNPd25Q cm9wZXJ0eS 5jYWxsKGZy b20sIGtleS kpIHtcblx0 XHRcdFx0dG 9ba2V5XSA9 IGZyb21ba2 V5XTtcblx0 XHRcdH1cbl x0XHR9XG5c blx0XHRpZi AoZ2V0T3du UHJvcGVydH lTeW1ib2xz KSB7XG5cdF x0XHRzeW1i b2xzID0gZ2 V0T3duUHJv cGVydHlTeW 1ib2xzKGZy b20pO1xuXH RcdFx0Zm9y ICh2YXIgaS A9IDA7IGkg PCBzeW1ib2 xzLmxlbmd0 aDsgaSsrKS B7XG5cdFx0 XHRcdGlmIC hwcm9wSXNF bnVtZXJhYm xlLmNhbGwo ZnJvbSwgc3 ltYm9sc1tp XSkpIHtcbl x0XHRcdFx0 XHR0b1tzeW 1ib2xzW2ld XSA9IGZyb2 1bc3ltYm9s c1tpXV07XG 5cdFx0XHRc dH1cblx0XH RcdH1cblx0 XHR9XG5cdH 1cblxuXHRy ZXR1cm4gdG 87XG59O1xu IiwiY29uc3 QgYXNzaWdu ID0gcmVxdW lyZSgnb2Jq ZWN0LWFzc2 lnbicpO1xu Y29uc3QgZG VsZWdhdGUg PSByZXF1aX JlKCcuLi9k ZWxlZ2F0ZS cpO1xuY29u c3QgZGVsZW dhdGVBbGwg PSByZXF1aX JlKCcuLi9k ZWxlZ2F0ZU FsbCcpO1xu XG5jb25zdC BERUxFR0FU RV9QQVRURV JOID0gL14o LispOmRlbG VnYXRlXFwo KC4rKVxcKS QvO1xuY29u c3QgU1BBQ0 UgPSAnICc7 XG5cbmNvbn N0IGdldExp c3RlbmVycy A9IGZ1bmN0 aW9uKHR5cG UsIGhhbmRs ZXIpIHtcbi AgdmFyIG1h dGNoID0gdH lwZS5tYXRj aChERUxFR0 FURV9QQVRU RVJOKTtcbi AgdmFyIHNl bGVjdG9yO1 xuICBpZiAo bWF0Y2gpIH tcbiAgICB0 eXBlID0gbW F0Y2hbMV07 XG4gICAgc2 VsZWN0b3Ig PSBtYXRjaF syXTtcbiAg fVxuXG4gIH ZhciBvcHRp b25zO1xuIC BpZiAodHlw ZW9mIGhhbm RsZXIgPT09 ICdvYmplY3 QnKSB7XG4g ICAgb3B0aW 9ucyA9IHtc biAgICAgIG NhcHR1cmU6 IHBvcEtleS hoYW5kbGVy LCAnY2FwdH VyZScpLFxu ICAgICAgcG Fzc2l2ZTog cG9wS2V5KG hhbmRsZXIs ICdwYXNzaX ZlJylcbiAg ICB9O1xuIC B9XG5cbiAg dmFyIGxpc3 RlbmVyID0g e1xuICAgIH NlbGVjdG9y OiBzZWxlY3 RvcixcbiAg ICBkZWxlZ2 F0ZTogKHR5 cGVvZiBoYW 5kbGVyID09 PSAnb2JqZW N0JylcbiAg ICAgID8gZG VsZWdhdGVB bGwoaGFuZG xlcilcbiAg ICAgIDogc2 VsZWN0b3Jc biAgICAgIC AgPyBkZWxl Z2F0ZShzZW xlY3Rvciwg aGFuZGxlci lcbiAgICAg ICAgOiBoYW 5kbGVyLFxu ICAgIG9wdG lvbnM6IG9w dGlvbnNcbi AgfTtcblxu ICBpZiAodH lwZS5pbmRl eE9mKFNQQU NFKSA+IC0x KSB7XG4gIC AgcmV0dXJu IHR5cGUuc3 BsaXQoU1BB Q0UpLm1hcC hmdW5jdGlv bihfdHlwZS kge1xuICAg ICAgcmV0dX JuIGFzc2ln bih7dHlwZT ogX3R5cGV9 LCBsaXN0ZW 5lcik7XG4g ICAgfSk7XG 4gIH0gZWxz ZSB7XG4gIC AgbGlzdGVu ZXIudHlwZS A9IHR5cGU7 XG4gICAgcm V0dXJuIFts aXN0ZW5lcl 07XG4gIH1c bn07XG5cbn ZhciBwb3BL ZXkgPSBmdW 5jdGlvbihv YmosIGtleS kge1xuICB2 YXIgdmFsdW UgPSBvYmpb a2V5XTtcbi AgZGVsZXRl IG9ialtrZX ldO1xuICBy ZXR1cm4gdm FsdWU7XG59 O1xuXG5tb2 R1bGUuZXhw b3J0cyA9IG Z1bmN0aW9u IGJlaGF2aW 9yKGV2ZW50 cywgcHJvcH MpIHtcbiAg Y29uc3QgbG lzdGVuZXJz ID0gT2JqZW N0LmtleXMo ZXZlbnRzKV xuICAgIC5y ZWR1Y2UoZn VuY3Rpb24o bWVtbywgdH lwZSkge1xu ICAgICAgdm FyIGxpc3Rl bmVycyA9IG dldExpc3Rl bmVycyh0eX BlLCBldmVu dHNbdHlwZV 0pO1xuICAg ICAgcmV0dX JuIG1lbW8u Y29uY2F0KG xpc3RlbmVy cyk7XG4gIC AgfSwgW10p O1xuXG4gIH JldHVybiBh c3NpZ24oe1 xuICAgIGFk ZDogZnVuY3 Rpb24gYWRk QmVoYXZpb3 IoZWxlbWVu dCkge1xuIC AgICAgbGlz dGVuZXJzLm ZvckVhY2go ZnVuY3Rpb2 4obGlzdGVu ZXIpIHtcbi AgICAgICAg ZWxlbWVudC 5hZGRFdmVu dExpc3Rlbm VyKFxuICAg ICAgICAgIG xpc3RlbmVy LnR5cGUsXG 4gICAgICAg ICAgbGlzdG VuZXIuZGVs ZWdhdGUsXG 4gICAgICAg ICAgbGlzdG VuZXIub3B0 aW9uc1xuIC AgICAgICAp O1xuICAgIC AgfSk7XG4g ICAgfSxcbi AgICByZW1v dmU6IGZ1bm N0aW9uIHJl bW92ZUJlaG F2aW9yKGVs ZW1lbnQpIH tcbiAgICAg IGxpc3Rlbm Vycy5mb3JF YWNoKGZ1bm N0aW9uKGxp c3RlbmVyKS B7XG4gICAg ICAgIGVsZW 1lbnQucmVt b3ZlRXZlbn RMaXN0ZW5l cihcbiAgIC AgICAgICBs aXN0ZW5lci 50eXBlLFxu ICAgICAgIC AgIGxpc3Rl bmVyLmRlbG VnYXRlLFxu ICAgICAgIC AgIGxpc3Rl bmVyLm9wdG lvbnNcbiAg ICAgICAgKT tcbiAgICAg IH0pO1xuIC AgIH1cbiAg fSwgcHJvcH MpO1xufTtc biIsIm1vZH VsZS5leHBv cnRzID0gZn VuY3Rpb24g Y29tcG9zZS hmdW5jdGlv bnMpIHtcbi AgcmV0dXJu IGZ1bmN0aW 9uKGUpIHtc biAgICByZX R1cm4gZnVu Y3Rpb25zLn NvbWUoZnVu Y3Rpb24oZm 4pIHtcbiAg ICAgIHJldH VybiBmbi5j YWxsKHRoaX MsIGUpID09 PSBmYWxzZT tcbiAgICB9 LCB0aGlzKT tcbiAgfTtc bn07XG4iLC IvLyBwb2x5 ZmlsbCBFbG VtZW50LnBy b3RvdHlwZS 5jbG9zZXN0 XG5yZXF1aX JlKCdlbGVt ZW50LWNsb3 Nlc3QnKTtc blxubW9kdW xlLmV4cG9y dHMgPSBmdW 5jdGlvbiBk ZWxlZ2F0ZS hzZWxlY3Rv ciwgZm4pIH tcbiAgcmV0 dXJuIGZ1bm N0aW9uIGRl bGVnYXRpb2 4oZXZlbnQp IHtcbiAgIC B2YXIgdGFy Z2V0ID0gZX ZlbnQudGFy Z2V0LmNsb3 Nlc3Qoc2Vs ZWN0b3IpO1 xuICAgIGlm ICh0YXJnZX QpIHtcbiAg ICAgIHJldH VybiBmbi5j YWxsKHRhcm dldCwgZXZl bnQpO1xuIC AgIH1cbiAg fVxufTtcbi IsImNvbnN0 IGRlbGVnYX RlID0gcmVx dWlyZSgnLi 4vZGVsZWdh dGUnKTtcbm NvbnN0IGNv bXBvc2UgPS ByZXF1aXJl KCcuLi9jb2 1wb3NlJyk7 XG5cbmNvbn N0IFNQTEFU ID0gJyonO1 xuXG5tb2R1 bGUuZXhwb3 J0cyA9IGZ1 bmN0aW9uIG RlbGVnYXRl QWxsKHNlbG VjdG9ycykg e1xuICBjb2 5zdCBrZXlz ID0gT2JqZW N0LmtleXMo c2VsZWN0b3 JzKVxuXG4g IC8vIFhYWC BvcHRpbWl6 YXRpb246IG lmIHRoZXJl IGlzIG9ubH kgb25lIGhh bmRsZXIgYW 5kIGl0IGFw cGxpZXMgdG 9cbiAgLy8g YWxsIGVsZW 1lbnRzICh0 aGUgXCIqXC IgQ1NTIHNl bGVjdG9yKS wgdGhlbiBq dXN0IHJldH VybiB0aGF0 XG4gIC8vIG hhbmRsZXJc biAgaWYgKG tleXMubGVu Z3RoID09PS AxICYmIGtl eXNbMF0gPT 09IFNQTEFU KSB7XG4gIC AgcmV0dXJu IHNlbGVjdG 9yc1tTUExB VF07XG4gIH 1cblxuICBj b25zdCBkZW xlZ2F0ZXMg PSBrZXlzLn JlZHVjZShm dW5jdGlvbi htZW1vLCBz ZWxlY3Rvci kge1xuICAg IG1lbW8ucH VzaChkZWxl Z2F0ZShzZW xlY3Rvciwg c2VsZWN0b3 JzW3NlbGVj dG9yXSkpO1 xuICAgIHJl dHVybiBtZW 1vO1xuICB9 LCBbXSk7XG 4gIHJldHVy biBjb21wb3 NlKGRlbGVn YXRlcyk7XG 59O1xuIiwi bW9kdWxlLm V4cG9ydHMg PSBmdW5jdG lvbiBpZ25v cmUoZWxlbW VudCwgZm4p IHtcbiAgcm V0dXJuIGZ1 bmN0aW9uIG lnbm9yYW5j ZShlKSB7XG 4gICAgaWYg KGVsZW1lbn QgIT09IGUu dGFyZ2V0IC YmICFlbGVt ZW50LmNvbn RhaW5zKGUu dGFyZ2V0KS kge1xuICAg ICAgcmV0dX JuIGZuLmNh bGwodGhpcy wgZSk7XG4g ICAgfVxuIC B9O1xufTtc biIsIm1vZH VsZS5leHBv cnRzID0gZn VuY3Rpb24g b25jZShsaX N0ZW5lciwg b3B0aW9ucy kge1xuICB2 YXIgd3JhcH BlZCA9IGZ1 bmN0aW9uIH dyYXBwZWRP bmNlKGUpIH tcbiAgICBl LmN1cnJlbn RUYXJnZXQu cmVtb3ZlRX ZlbnRMaXN0 ZW5lcihlLn R5cGUsIHdy YXBwZWQsIG 9wdGlvbnMp O1xuICAgIH JldHVybiBs aXN0ZW5lci 5jYWxsKHRo aXMsIGUpO1 xuICB9O1xu ICByZXR1cm 4gd3JhcHBl ZDtcbn07XG 5cbiIsIid1 c2Ugc3RyaW N0Jztcblxu dmFyIFJFX1 RSSU0gPSAv KF5cXHMrKX woXFxzKyQp L2c7XG52YX IgUkVfU1BM SVQgPSAvXF xzKy87XG5c bnZhciB0cm ltID0gU3Ry aW5nLnByb3 RvdHlwZS50 cmltXG4gID 8gZnVuY3Rp b24oc3RyKS B7IHJldHVy biBzdHIudH JpbSgpOyB9 XG4gIDogZn VuY3Rpb24o c3RyKSB7IH JldHVybiBz dHIucmVwbG FjZShSRV9U UklNLCAnJy k7IH07XG5c bnZhciBxdW VyeUJ5SWQg PSBmdW5jdG lvbihpZCkg e1xuICByZX R1cm4gdGhp cy5xdWVyeV NlbGVjdG9y KCdbaWQ9XC InICsgaWQu cmVwbGFjZS gvXCIvZywg J1xcXFxcIi cpICsgJ1wi XScpO1xufT tcblxubW9k dWxlLmV4cG 9ydHMgPSBm dW5jdGlvbi ByZXNvbHZl SWRzKGlkcy wgZG9jKSB7 XG4gIGlmIC h0eXBlb2Yg aWRzICE9PS Anc3RyaW5n Jykge1xuIC AgIHRocm93 IG5ldyBFcn JvcignRXhw ZWN0ZWQgYS BzdHJpbmcg YnV0IGdvdC AnICsgKHR5 cGVvZiBpZH MpKTtcbiAg fVxuXG4gIG lmICghZG9j KSB7XG4gIC AgZG9jID0g d2luZG93Lm RvY3VtZW50 O1xuICB9XG 5cbiAgdmFy IGdldEVsZW 1lbnRCeUlk ID0gZG9jLm dldEVsZW1l bnRCeUlkXG 4gICAgPyBk b2MuZ2V0RW xlbWVudEJ5 SWQuYmluZC hkb2MpXG4g ICAgOiBxdW VyeUJ5SWQu YmluZChkb2 MpO1xuXG4g IGlkcyA9IH RyaW0oaWRz KS5zcGxpdC hSRV9TUExJ VCk7XG5cbi AgLy8gWFhY IHdlIGNhbi BzaG9ydC1j aXJjdWl0IG hlcmUgYmVj YXVzZSB0cm ltbWluZyBh bmQgc3BsaX R0aW5nIGFc biAgLy8gc3 RyaW5nIG9m IGp1c3Qgd2 hpdGVzcGFj ZSBwcm9kdW NlcyBhbiBh cnJheSBjb2 50YWluaW5n IGEgc2luZ2 xlLFxuICAv LyBlbXB0eS BzdHJpbmdc biAgaWYgKG lkcy5sZW5n dGggPT09ID EgJiYgaWRz WzBdID09PS AnJykge1xu ICAgIHJldH VybiBbXTtc biAgfVxuXG 4gIHJldHVy biBpZHNcbi AgICAubWFw KGZ1bmN0aW 9uKGlkKSB7 XG4gICAgIC B2YXIgZWwg PSBnZXRFbG VtZW50QnlJ ZChpZCk7XG 4gICAgICBp ZiAoIWVsKS B7XG4gICAg ICAgIHRocm 93IG5ldyBF cnJvcignbm 8gZWxlbWVu dCB3aXRoIG lkOiBcIicg KyBpZCArIC dcIicpO1xu ICAgICAgfV xuICAgICAg cmV0dXJuIG VsO1xuICAg IH0pO1xufT tcbiIsIid1 c2Ugc3RyaW N0JztcbmNv bnN0IGJlaG F2aW9yID0g cmVxdWlyZS gnLi4vdXRp bHMvYmVoYX Zpb3InKTtc bmNvbnN0IG ZpbHRlciA9 IHJlcXVpcm UoJ2FycmF5 LWZpbHRlci cpO1xuY29u c3QgZm9yRW FjaCA9IHJl cXVpcmUoJ2 FycmF5LWZv cmVhY2gnKT tcbmNvbnN0 IHRvZ2dsZS A9IHJlcXVp cmUoJy4uL3 V0aWxzL3Rv Z2dsZScpO1 xuY29uc3Qg aXNFbGVtZW 50SW5WaWV3 cG9ydCA9IH JlcXVpcmUo Jy4uL3V0aW xzL2lzLWlu LXZpZXdwb3 J0Jyk7XG5c bmNvbnN0IE NMSUNLID0g cmVxdWlyZS gnLi4vZXZl bnRzJykuQ0 xJQ0s7XG5j b25zdCBQUk VGSVggPSBy ZXF1aXJlKC cuLi9jb25m aWcnKS5wcm VmaXg7XG5c bi8vIFhYWC BtYXRjaCAu dXNhLWFjY2 9yZGlvbiBh bmQgLnVzYS 1hY2NvcmRp b24tYm9yZG VyZWRcbmNv bnN0IEFDQ0 9SRElPTiA9 IGAuJHtQUk VGSVh9LWFj Y29yZGlvbi wgLiR7UFJF RklYfS1hY2 NvcmRpb24t Ym9yZGVyZW RgO1xuY29u c3QgQlVUVE 9OID0gYC4k e1BSRUZJWH 0tYWNjb3Jk aW9uLWJ1dH Rvblthcmlh LWNvbnRyb2 xzXWA7XG5j b25zdCBFWF BBTkRFRCA9 ICdhcmlhLW V4cGFuZGVk JztcbmNvbn N0IE1VTFRJ U0VMRUNUQU JMRSA9ICdh cmlhLW11bH Rpc2VsZWN0 YWJsZSc7XG 5cbi8qKlxu ICogVG9nZ2 xlIGEgYnV0 dG9uJ3MgXC JwcmVzc2Vk XCIgc3RhdG UsIG9wdGlv bmFsbHkgcH JvdmlkaW5n IGEgdGFyZ2 V0XG4gKiBz dGF0ZS5cbi AqXG4gKiBA cGFyYW0ge0 hUTUxCdXR0 b25FbGVtZW 50fSBidXR0 b25cbiAqIE BwYXJhbSB7 Ym9vbGVhbj 99IGV4cGFu ZGVkIElmIG 5vIHN0YXRl IGlzIHByb3 ZpZGVkLCB0 aGUgY3Vycm VudFxuICog c3RhdGUgd2 lsbCBiZSB0 b2dnbGVkIC hmcm9tIGZh bHNlIHRvIH RydWUsIGFu ZCB2aWNlLX ZlcnNhKS5c biAqIEByZX R1cm4ge2Jv b2xlYW59IH RoZSByZXN1 bHRpbmcgc3 RhdGVcbiAq L1xuY29uc3 QgdG9nZ2xl QnV0dG9uID 0gKGJ1dHRv biwgZXhwYW 5kZWQpID0+ IHtcbiAgdm FyIGFjY29y ZGlvbiA9IG J1dHRvbi5j bG9zZXN0KE FDQ09SRElP Tik7XG4gIG lmICghYWNj b3JkaW9uKS B7XG4gICAg dGhyb3cgbm V3IEVycm9y KGAke0JVVF RPTn0gaXMg bWlzc2luZy BvdXRlciAk e0FDQ09SRE lPTn1gKTtc biAgfVxuXG 4gIGV4cGFu ZGVkID0gdG 9nZ2xlKGJ1 dHRvbiwgZX hwYW5kZWQp O1xuICAvLy BYWFggbXVs dGlzZWxlY3 RhYmxlIGlz IG9wdC1pbi wgdG8gcHJl c2VydmUgbG VnYWN5IGJl aGF2aW9yXG 4gIGNvbnN0 IG11bHRpc2 VsZWN0YWJs ZSA9IGFjY2 9yZGlvbi5n ZXRBdHRyaW J1dGUoTVVM VElTRUxFQ1 RBQkxFKSA9 PT0gJ3RydW UnO1xuXG4g IGlmIChleH BhbmRlZCAm JiAhbXVsdG lzZWxlY3Rh YmxlKSB7XG 4gICAgZm9y RWFjaChnZX RBY2NvcmRp b25CdXR0b2 5zKGFjY29y ZGlvbiksIG 90aGVyID0+ IHtcbiAgIC AgIGlmIChv dGhlciAhPT 0gYnV0dG9u KSB7XG4gIC AgICAgIHRv Z2dsZShvdG hlciwgZmFs c2UpO1xuIC AgICAgfVxu ICAgIH0pO1 xuICB9XG59 O1xuXG4vKi pcbiAqIEBw YXJhbSB7SF RNTEJ1dHRv bkVsZW1lbn R9IGJ1dHRv blxuICogQH JldHVybiB7 Ym9vbGVhbn 0gdHJ1ZVxu ICovXG5jb2 5zdCBzaG93 QnV0dG9uID 0gYnV0dG9u ID0+IHRvZ2 dsZUJ1dHRv bihidXR0b2 4sIHRydWUp O1xuXG4vKi pcbiAqIEBw YXJhbSB7SF RNTEJ1dHRv bkVsZW1lbn R9IGJ1dHRv blxuICogQH JldHVybiB7 Ym9vbGVhbn 0gZmFsc2Vc biAqL1xuY2 9uc3QgaGlk ZUJ1dHRvbi A9IGJ1dHRv biA9PiB0b2 dnbGVCdXR0 b24oYnV0dG 9uLCBmYWxz ZSk7XG5cbi 8qKlxuICog R2V0IGFuIE FycmF5IG9m IGJ1dHRvbi BlbGVtZW50 cyBiZWxvbm dpbmcgZGly ZWN0bHkgdG 8gdGhlIGdp dmVuXG4gKi BhY2NvcmRp b24gZWxlbW VudC5cbiAq IEBwYXJhbS B7SFRNTEVs ZW1lbnR9IG FjY29yZGlv blxuICogQH JldHVybiB7 YXJyYXk8SF RNTEJ1dHRv bkVsZW1lbn Q+fVxuICov XG5jb25zdC BnZXRBY2Nv cmRpb25CdX R0b25zID0g YWNjb3JkaW 9uID0+IHtc biAgcmV0dX JuIGZpbHRl cihhY2Nvcm Rpb24ucXVl cnlTZWxlY3 RvckFsbChC VVRUT04pLC BidXR0b24g PT4ge1xuIC AgIHJldHVy biBidXR0b2 4uY2xvc2Vz dChBQ0NPUk RJT04pID09 PSBhY2Nvcm Rpb247XG4g IH0pO1xufT tcblxuY29u c3QgYWNjb3 JkaW9uID0g YmVoYXZpb3 Ioe1xuICBb IENMSUNLIF 06IHtcbiAg ICBbIEJVVF RPTiBdOiBm dW5jdGlvbi AoZXZlbnQp IHtcbiAgIC AgIGV2ZW50 LnByZXZlbn REZWZhdWx0 KCk7XG4gIC AgICB0b2dn bGVCdXR0b2 4odGhpcyk7 XG5cbiAgIC AgIGlmICh0 aGlzLmdldE F0dHJpYnV0 ZShFWFBBTk RFRCkgPT09 ICd0cnVlJy kge1xuICAg ICAgICAvLy BXZSB3ZXJl IGp1c3QgZX hwYW5kZWQs IGJ1dCBpZi Bhbm90aGVy IGFjY29yZG lvbiB3YXMg YWxzbyBqdX N0XG4gICAg ICAgIC8vIG NvbGxhcHNl ZCwgd2UgbW F5IG5vIGxv bmdlciBiZS BpbiB0aGUg dmlld3Bvcn QuIFRoaXMg ZW5zdXJlc1 xuICAgICAg ICAvLyB0aG F0IHdlIGFy ZSBzdGlsbC B2aXNpYmxl LCBzbyB0aG UgdXNlciBp c24ndCBjb2 5mdXNlZC5c biAgICAgIC AgaWYgKCFp c0VsZW1lbn RJblZpZXdw b3J0KHRoaX MpKSB0aGlz LnNjcm9sbE ludG9WaWV3 KCk7XG4gIC AgICB9XG4g ICAgfSxcbi AgfSxcbn0s IHtcbiAgaW 5pdDogcm9v dCA9PiB7XG 4gICAgZm9y RWFjaChyb2 90LnF1ZXJ5 U2VsZWN0b3 JBbGwoQlVU VE9OKSwgYn V0dG9uID0+ IHtcbiAgIC AgIGNvbnN0 IGV4cGFuZG VkID0gYnV0 dG9uLmdldE F0dHJpYnV0 ZShFWFBBTk RFRCkgPT09 ICd0cnVlJz tcbiAgICAg IHRvZ2dsZU J1dHRvbihi dXR0b24sIG V4cGFuZGVk KTtcbiAgIC B9KTtcbiAg fSxcbiAgQU NDT1JESU9O LFxuICBCVV RUT04sXG4g IHNob3c6IH Nob3dCdXR0 b24sXG4gIG hpZGU6IGhp ZGVCdXR0b2 4sXG4gIHRv Z2dsZTogdG 9nZ2xlQnV0 dG9uLFxuIC BnZXRCdXR0 b25zOiBnZX RBY2NvcmRp b25CdXR0b2 5zLFxufSk7 XG5cbi8qKl xuICogVE9E TzogZm9yID IuMCwgcmVt b3ZlIGV2ZX J5dGhpbmcg YmVsb3cgdG hpcyBjb21t ZW50IGFuZC BleHBvcnQg dGhlXG4gKi BiZWhhdmlv ciBkaXJlY3 RseTpcbiAq XG4gKiBtb2 R1bGUuZXhw b3J0cyA9IG JlaGF2aW9y KHsuLi59KT tcbiAqL1xu Y29uc3QgQW Njb3JkaW9u ID0gZnVuY3 Rpb24gKHJv b3QpIHtcbi AgdGhpcy5y b290ID0gcm 9vdDtcbiAg YWNjb3JkaW 9uLm9uKHRo aXMucm9vdC k7XG59O1xu XG4vLyBjb3 B5IGFsbCBv ZiB0aGUgYm VoYXZpb3Ig bWV0aG9kcy BhbmQgcHJv cHMgdG8gQW Njb3JkaW9u XG5jb25zdC Bhc3NpZ24g PSByZXF1aX JlKCdvYmpl Y3QtYXNzaW duJyk7XG5h c3NpZ24oQW Njb3JkaW9u LCBhY2Nvcm Rpb24pO1xu XG5BY2Nvcm Rpb24ucHJv dG90eXBlLn Nob3cgPSBz aG93QnV0dG 9uO1xuQWNj b3JkaW9uLn Byb3RvdHlw ZS5oaWRlID 0gaGlkZUJ1 dHRvbjtcbl xuQWNjb3Jk aW9uLnByb3 RvdHlwZS5y ZW1vdmUgPS BmdW5jdGlv biAoKSB7XG 4gIGFjY29y ZGlvbi5vZm YodGhpcy5y b290KTtcbn 07XG5cbm1v ZHVsZS5leH BvcnRzID0g QWNjb3JkaW 9uO1xuIiwi J3VzZSBzdH JpY3QnO1xu Y29uc3QgYm VoYXZpb3Ig PSByZXF1aX JlKCcuLi91 dGlscy9iZW hhdmlvcicp O1xuY29uc3 QgdG9nZ2xl ID0gcmVxdW lyZSgnLi4v dXRpbHMvdG 9nZ2xlJyk7 XG5cbmNvbn N0IENMSUNL ID0gcmVxdW lyZSgnLi4v ZXZlbnRzJy kuQ0xJQ0s7 XG5jb25zdC BQUkVGSVgg PSByZXF1aX JlKCcuLi9j b25maWcnKS 5wcmVmaXg7 XG5cbmNvbn N0IEhFQURF UiA9IGAuJH tQUkVGSVh9 LWJhbm5lci 1oZWFkZXJg O1xuY29uc3 QgRVhQQU5E RURfQ0xBU1 MgPSBgJHtQ UkVGSVh9LW Jhbm5lci1o ZWFkZXItZX hwYW5kZWRg O1xuXG5jb2 5zdCB0b2dn bGVCYW5uZX IgPSBmdW5j dGlvbiAoZX ZlbnQpIHtc biAgZXZlbn QucHJldmVu dERlZmF1bH QoKTtcbiAg dGhpcy5jbG 9zZXN0KEhF QURFUikuY2 xhc3NMaXN0 LnRvZ2dsZS hFWFBBTkRF RF9DTEFTUy k7XG4gIHJl dHVybiBmYW xzZTtcbn07 XG5cbm1vZH VsZS5leHBv cnRzID0gYm VoYXZpb3Io e1xuICBbIE NMSUNLIF06 IHtcbiAgIC BbIGAke0hF QURFUn0gW2 FyaWEtY29u dHJvbHNdYC BdOiB0b2dn bGVCYW5uZX IsXG4gIH0s XG59KTtcbi IsIid1c2Ug c3RyaWN0Jz tcbmNvbnN0 IGFjY29yZG lvbiA9IHJl cXVpcmUoJy 4vYWNjb3Jk aW9uJyk7XG 5jb25zdCBi ZWhhdmlvci A9IHJlcXVp cmUoJy4uL3 V0aWxzL2Jl aGF2aW9yJy k7XG5jb25z dCBkZWJvdW 5jZSA9IHJl cXVpcmUoJ2 xvZGFzaC5k ZWJvdW5jZS cpO1xuY29u c3QgZm9yRW FjaCA9IHJl cXVpcmUoJ2 FycmF5LWZv cmVhY2gnKT tcbmNvbnN0 IHNlbGVjdC A9IHJlcXVp cmUoJy4uL3 V0aWxzL3Nl bGVjdCcpO1 xuXG5jb25z dCBDTElDSy A9IHJlcXVp cmUoJy4uL2 V2ZW50cycp LkNMSUNLO1 xuY29uc3Qg UFJFRklYID 0gcmVxdWly ZSgnLi4vY2 9uZmlnJyku cHJlZml4O1 xuXG5jb25z dCBISURERU 4gPSAnaGlk ZGVuJztcbm NvbnN0IFND T1BFID0gYC 4ke1BSRUZJ WH0tZm9vdG VyLWJpZ2A7 XG5jb25zdC BOQVYgPSBg JHtTQ09QRX 0gbmF2YDtc bmNvbnN0IE JVVFRPTiA9 IGAke05BVn 0gLiR7UFJF RklYfS1mb2 90ZXItcHJp bWFyeS1saW 5rYDtcbmNv bnN0IExJU1 QgPSBgJHtO QVZ9IHVsYD tcblxuY29u c3QgSElERV 9NQVhfV0lE VEggPSA2MD A7XG5jb25z dCBERUJPVU 5DRV9SQVRF ID0gMTgwO1 xuXG5jb25z dCBzaG93UG FuZWwgPSBm dW5jdGlvbi AoKSB7XG4g IGNvbnN0IG xpc3QgPSB0 aGlzLmNsb3 Nlc3QoTElT VCk7XG4gIG xpc3QuY2xh c3NMaXN0Ln JlbW92ZShI SURERU4pO1 xuXG4gIC8v IE5COiB0aG lzICpzaG91 bGQqIGFsd2 F5cyBzdWNj ZWVkIGJlY2 F1c2UgdGhl IGJ1dHRvbl xuICAvLyBz ZWxlY3Rvci BpcyBzY29w ZWQgdG8gXC Iue3ByZWZp eH0tZm9vdG VyLWJpZyBu YXZcIlxuIC Bjb25zdCBs aXN0cyA9IG xpc3QuY2xv c2VzdChOQV YpXG4gICAg LnF1ZXJ5U2 VsZWN0b3JB bGwoJ3VsJy k7XG5cbiAg Zm9yRWFjaC hsaXN0cywg ZWwgPT4ge1 xuICAgIGlm IChlbCAhPT 0gbGlzdCkg e1xuICAgIC AgZWwuY2xh c3NMaXN0Lm FkZChISURE RU4pO1xuIC AgIH1cbiAg fSk7XG59O1 xuXG5jb25z dCByZXNpem UgPSBkZWJv dW5jZSgoKS A9PiB7XG4g IGNvbnN0IG hpZGRlbiA9 IHdpbmRvdy 5pbm5lcldp ZHRoIDwgSE lERV9NQVhf V0lEVEg7XG 4gIGZvckVh Y2goc2VsZW N0KExJU1Qp LCBsaXN0ID 0+IHtcbiAg ICBsaXN0Lm NsYXNzTGlz dC50b2dnbG UoSElEREVO LCBoaWRkZW 4pO1xuICB9 KTtcbn0sIE RFQk9VTkNF X1JBVEUpO1 xuXG5tb2R1 bGUuZXhwb3 J0cyA9IGJl aGF2aW9yKH tcbiAgWyBD TElDSyBdOi B7XG4gICAg WyBCVVRUT0 4gXTogc2hv d1BhbmVsLF xuICB9LFxu fSwge1xuIC AvLyBleHBv cnQgZm9yIH VzZSBlbHNl d2hlcmVcbi AgSElERV9N QVhfV0lEVE gsXG4gIERF Qk9VTkNFX1 JBVEUsXG5c biAgaW5pdD ogdGFyZ2V0 ID0+IHtcbi AgICByZXNp emUoKTtcbi AgICB3aW5k b3cuYWRkRX ZlbnRMaXN0 ZW5lcigncm VzaXplJywg cmVzaXplKT tcbiAgfSxc blxuICB0ZW FyZG93bjog dGFyZ2V0ID 0+IHtcbiAg ICB3aW5kb3 cucmVtb3Zl RXZlbnRMaX N0ZW5lcign cmVzaXplJy wgcmVzaXpl KTtcbiAgfS xcbn0pO1xu IiwibW9kdW xlLmV4cG9y dHMgPSB7XG 4gIGFjY29y ZGlvbjogIH JlcXVpcmUo Jy4vYWNjb3 JkaW9uJyks XG4gIGJhbm 5lcjogICAg IHJlcXVpcm UoJy4vYmFu bmVyJyksXG 4gIGZvb3Rl cjogICAgIH JlcXVpcmUo Jy4vZm9vdG VyJyksXG4g IG5hdmlnYX Rpb246IHJl cXVpcmUoJy 4vbmF2aWdh dGlvbicpLF xuICBwYXNz d29yZDogIC ByZXF1aXJl KCcuL3Bhc3 N3b3JkJyks XG4gIHNlYX JjaDogICAg IHJlcXVpcm UoJy4vc2Vh cmNoJyksXG 4gIHNraXBu YXY6ICAgIH JlcXVpcmUo Jy4vc2tpcG 5hdicpLFxu ICB2YWxpZG F0b3I6ICBy ZXF1aXJlKC cuL3ZhbGlk YXRvcicpLF xufTtcblxu IiwiJ3VzZS BzdHJpY3Qn O1xuY29uc3 QgYmVoYXZp b3IgPSByZX F1aXJlKCcu Li91dGlscy 9iZWhhdmlv cicpO1xuY2 9uc3QgZm9y RWFjaCA9IH JlcXVpcmUo J2FycmF5LW ZvcmVhY2gn KTtcbmNvbn N0IHNlbGVj dCA9IHJlcX VpcmUoJy4u L3V0aWxzL3 NlbGVjdCcp O1xuY29uc3 QgYWNjb3Jk aW9uID0gcm VxdWlyZSgn Li9hY2Nvcm Rpb24nKTtc blxuY29uc3 QgQ0xJQ0sg PSByZXF1aX JlKCcuLi9l dmVudHMnKS 5DTElDSztc bmNvbnN0IF BSRUZJWCA9 IHJlcXVpcm UoJy4uL2Nv bmZpZycpLn ByZWZpeDtc blxuY29uc3 QgTkFWID0g YC4ke1BSRU ZJWH0tbmF2 YDtcbmNvbn N0IE5BVl9M SU5LUyA9IG Ake05BVn0g YWA7XG5jb2 5zdCBPUEVO RVJTID0gYC 4ke1BSRUZJ WH0tbWVudS 1idG5gO1xu Y29uc3QgQ0 xPU0VfQlVU VE9OID0gYC 4ke1BSRUZJ WH0tbmF2LW Nsb3NlYDtc bmNvbnN0IE 9WRVJMQVkg PSBgLiR7UF JFRklYfS1v dmVybGF5YD tcbmNvbnN0 IENMT1NFUl MgPSBgJHtD TE9TRV9CVV RUT059LCAu JHtQUkVGSV h9LW92ZXJs YXlgO1xuY2 9uc3QgVE9H R0xFUyA9IF sgTkFWLCBP VkVSTEFZIF 0uam9pbign LCAnKTtcbl xuY29uc3Qg QUNUSVZFX0 NMQVNTID0g J3VzYS1tb2 JpbGVfbmF2 LWFjdGl2ZS c7XG5jb25z dCBWSVNJQk xFX0NMQVNT ID0gJ2lzLX Zpc2libGUn O1xuXG5jb2 5zdCBpc0Fj dGl2ZSA9IC gpID0+IGRv Y3VtZW50Lm JvZHkuY2xh c3NMaXN0Lm NvbnRhaW5z KEFDVElWRV 9DTEFTUyk7 XG5cbmNvbn N0IHRvZ2ds ZU5hdiA9IG Z1bmN0aW9u IChhY3Rpdm UpIHtcbiAg Y29uc3QgYm 9keSA9IGRv Y3VtZW50Lm JvZHk7XG4g IGlmICh0eX Blb2YgYWN0 aXZlICE9PS AnYm9vbGVh bicpIHtcbi AgICBhY3Rp dmUgPSAhaX NBY3RpdmUo KTtcbiAgfV xuICBib2R5 LmNsYXNzTG lzdC50b2dn bGUoQUNUSV ZFX0NMQVNT LCBhY3Rpdm UpO1xuXG4g IGZvckVhY2 goc2VsZWN0 KFRPR0dMRV MpLCBlbCA9 PiB7XG4gIC AgZWwuY2xh c3NMaXN0Ln RvZ2dsZShW SVNJQkxFX0 NMQVNTLCBh Y3RpdmUpO1 xuICB9KTtc blxuICBjb2 5zdCBjbG9z ZUJ1dHRvbi A9IGJvZHku cXVlcnlTZW xlY3RvcihD TE9TRV9CVV RUT04pO1xu ICBjb25zdC BtZW51QnV0 dG9uID0gYm 9keS5xdWVy eVNlbGVjdG 9yKE9QRU5F UlMpO1xuXG 4gIGlmIChh Y3RpdmUgJi YgY2xvc2VC dXR0b24pIH tcbiAgICAv LyBUaGUgbW 9iaWxlIG5h diB3YXMgan VzdCBhY3Rp dmF0ZWQsIH NvIGZvY3Vz IG9uIHRoZS BjbG9zZSBi dXR0b24sXG 4gICAgLy8g d2hpY2ggaX MganVzdCBi ZWZvcmUgYW xsIHRoZSBu YXYgZWxlbW VudHMgaW4g dGhlIHRhYi BvcmRlci5c biAgICBjbG 9zZUJ1dHRv bi5mb2N1cy gpO1xuICB9 IGVsc2UgaW YgKCFhY3Rp dmUgJiYgZG 9jdW1lbnQu YWN0aXZlRW xlbWVudCA9 PT0gY2xvc2 VCdXR0b24g JiZcbiAgIC AgICAgICAg ICBtZW51Qn V0dG9uKSB7 XG4gICAgLy 8gVGhlIG1v YmlsZSBuYX Ygd2FzIGp1 c3QgZGVhY3 RpdmF0ZWQs IGFuZCBmb2 N1cyB3YXMg b24gdGhlIG Nsb3NlXG4g ICAgLy8gYn V0dG9uLCB3 aGljaCBpcy BubyBsb25n ZXIgdmlzaW JsZS4gV2Ug ZG9uJ3Qgd2 FudCB0aGUg Zm9jdXMgdG 9cbiAgICAv LyBkaXNhcH BlYXIgaW50 byB0aGUgdm 9pZCwgc28g Zm9jdXMgb2 4gdGhlIG1l bnUgYnV0dG 9uIGlmIGl0 J3NcbiAgIC AvLyB2aXNp YmxlICh0aG lzIG1heSBo YXZlIGJlZW 4gd2hhdCB0 aGUgdXNlci B3YXMganVz dCBmb2N1c2 VkIG9uLFxu ICAgIC8vIG lmIHRoZXkg dHJpZ2dlcm VkIHRoZSBt b2JpbGUgbm F2IGJ5IG1p c3Rha2UpLl xuICAgIG1l bnVCdXR0b2 4uZm9jdXMo KTtcbiAgfV xuXG4gIHJl dHVybiBhY3 RpdmU7XG59 O1xuXG5jb2 5zdCByZXNp emUgPSAoKS A9PiB7XG4g IGNvbnN0IG Nsb3NlciA9 IGRvY3VtZW 50LmJvZHku cXVlcnlTZW xlY3RvcihD TE9TRV9CVV RUT04pO1xu XG4gIGlmIC hpc0FjdGl2 ZSgpICYmIG Nsb3NlciAm JiBjbG9zZX IuZ2V0Qm91 bmRpbmdDbG llbnRSZWN0 KCkud2lkdG ggPT09IDAp IHtcbiAgIC AvLyBUaGUg bW9iaWxlIG 5hdiBpcyBh Y3RpdmUsIG J1dCB0aGUg Y2xvc2UgYm 94IGlzbid0 IHZpc2libG UsIHdoaWNo XG4gICAgLy 8gbWVhbnMg dGhlIHVzZX IncyB2aWV3 cG9ydCBoYX MgYmVlbiBy ZXNpemVkIH NvIHRoYXQg aXQgaXMgbm 8gbG9uZ2Vy XG4gICAgLy 8gaW4gbW9i aWxlIG1vZG UuIExldCdz IG1ha2UgdG hlIHBhZ2Ug c3RhdGUgY2 9uc2lzdGVu dCBieVxuIC AgIC8vIGRl YWN0aXZhdG luZyB0aGUg bW9iaWxlIG 5hdi5cbiAg ICB0b2dnbG VOYXYuY2Fs bChjbG9zZX IsIGZhbHNl KTtcbiAgfV xufTtcblxu Y29uc3Qgbm F2aWdhdGlv biA9IGJlaG F2aW9yKHtc biAgWyBDTE lDSyBdOiB7 XG4gICAgWy BPUEVORVJT IF06IHRvZ2 dsZU5hdixc biAgICBbIE NMT1NFUlMg XTogdG9nZ2 xlTmF2LFxu ICAgIFsgTk FWX0xJTktT IF06IGZ1bm N0aW9uICgp IHtcbiAgIC AgIC8vIEEg bmF2aWdhdG lvbiBsaW5r IGhhcyBiZW VuIGNsaWNr ZWQhIFdlIH dhbnQgdG8g Y29sbGFwc2 UgYW55XG4g ICAgICAvLy BoaWVyYXJj aGljYWwgbm F2aWdhdGlv biBVSSBpdC dzIGEgcGFy dCBvZiwgc2 8gdGhhdCB0 aGUgdXNlcl xuICAgICAg Ly8gY2FuIG ZvY3VzIG9u IHdoYXRldm VyIHRoZXkn dmUganVzdC BzZWxlY3Rl ZC5cblxuIC AgICAgLy8g U29tZSBuYX ZpZ2F0aW9u IGxpbmtzIG FyZSBpbnNp ZGUgYWNjb3 JkaW9uczsg d2hlbiB0aG V5J3JlXG4g ICAgICAvLy BjbGlja2Vk LCB3ZSB3YW 50IHRvIGNv bGxhcHNlIH Rob3NlIGFj Y29yZGlvbn MuXG4gICAg ICBjb25zdC BhY2MgPSB0 aGlzLmNsb3 Nlc3QoYWNj b3JkaW9uLk FDQ09SRElP Tik7XG4gIC AgICBpZiAo YWNjKSB7XG 4gICAgICAg IGFjY29yZG lvbi5nZXRC dXR0b25zKG FjYykuZm9y RWFjaChidG 4gPT4gYWNj b3JkaW9uLm hpZGUoYnRu KSk7XG4gIC AgICB9XG5c biAgICAgIC 8vIElmIHRo ZSBtb2JpbG UgbmF2aWdh dGlvbiBtZW 51IGlzIGFj dGl2ZSwgd2 Ugd2FudCB0 byBoaWRlIG l0LlxuICAg ICAgaWYgKG lzQWN0aXZl KCkpIHtcbi AgICAgICAg dG9nZ2xlTm F2LmNhbGwo dGhpcywgZm Fsc2UpO1xu ICAgICAgfV xuICAgIH0s XG4gIH0sXG 59LCB7XG4g IGluaXQgKC kge1xuICAg IHJlc2l6ZS gpO1xuICAg IHdpbmRvdy 5hZGRFdmVu dExpc3Rlbm VyKCdyZXNp emUnLCByZX NpemUsIGZh bHNlKTtcbi AgfSxcbiAg dGVhcmRvd2 4gKCkge1xu ICAgIHdpbm Rvdy5yZW1v dmVFdmVudE xpc3RlbmVy KCdyZXNpem UnLCByZXNp emUsIGZhbH NlKTtcbiAg fSxcbn0pO1 xuXG4vKipc biAqIFRPRE 8gZm9yIDIu MCwgcmVtb3 ZlIHRoaXMg c3RhdGVtZW 50IGFuZCBl eHBvcnQgYG 5hdmlnYXRp b25gIGRpcm VjdGx5Olxu ICpcbiAqIG 1vZHVsZS5l eHBvcnRzID 0gYmVoYXZp b3Ioey4uLn 0pO1xuICov XG5jb25zdC Bhc3NpZ24g PSByZXF1aX JlKCdvYmpl Y3QtYXNzaW duJyk7XG5t b2R1bGUuZX hwb3J0cyA9 IGFzc2lnbi hcbiAgZWwg PT4gbmF2aW dhdGlvbi5v bihlbCksXG 4gIG5hdmln YXRpb25cbi k7XG4iLCIn dXNlIHN0cm ljdCc7XG5j b25zdCBiZW hhdmlvciA9 IHJlcXVpcm UoJy4uL3V0 aWxzL2JlaG F2aW9yJyk7 XG5jb25zdC B0b2dnbGVG b3JtSW5wdX QgPSByZXF1 aXJlKCcuLi 91dGlscy90 b2dnbGUtZm 9ybS1pbnB1 dCcpO1xuXG 5jb25zdCBD TElDSyA9IH JlcXVpcmUo Jy4uL2V2ZW 50cycpLkNM SUNLO1xuY2 9uc3QgUFJF RklYID0gcm VxdWlyZSgn Li4vY29uZm lnJykucHJl Zml4O1xuXG 5jb25zdCBM SU5LID0gYC 4ke1BSRUZJ WH0tc2hvd1 9wYXNzd29y ZCwgLiR7UF JFRklYfS1z aG93X211bH RpcGFzc3dv cmRgO1xuXG 5jb25zdCB0 b2dnbGUgPS BmdW5jdGlv biAoZXZlbn QpIHtcbiAg ZXZlbnQucH JldmVudERl ZmF1bHQoKT tcbiAgdG9n Z2xlRm9ybU lucHV0KHRo aXMpO1xufT tcblxubW9k dWxlLmV4cG 9ydHMgPSBi ZWhhdmlvci h7XG4gIFsg Q0xJQ0sgXT oge1xuICAg IFsgTElOSy BdOiB0b2dn bGUsXG4gIH 0sXG59KTtc biIsIid1c2 Ugc3RyaWN0 JztcbmNvbn N0IGJlaGF2 aW9yID0gcm VxdWlyZSgn Li4vdXRpbH MvYmVoYXZp b3InKTtcbm NvbnN0IGZv ckVhY2ggPS ByZXF1aXJl KCdhcnJheS 1mb3JlYWNo Jyk7XG5jb2 5zdCBpZ25v cmUgPSByZX F1aXJlKCdy ZWNlcHRvci 9pZ25vcmUn KTtcbmNvbn N0IHNlbGVj dCA9IHJlcX VpcmUoJy4u L3V0aWxzL3 NlbGVjdCcp O1xuXG5jb2 5zdCBDTElD SyA9IHJlcX VpcmUoJy4u L2V2ZW50cy cpLkNMSUNL O1xuY29uc3 QgUFJFRklY ID0gcmVxdW lyZSgnLi4v Y29uZmlnJy kucHJlZml4 O1xuXG5jb2 5zdCBCVVRU T04gPSAnLm pzLXNlYXJj aC1idXR0b2 4nO1xuY29u c3QgRk9STS A9ICcuanMt c2VhcmNoLW Zvcm0nO1xu Y29uc3QgSU 5QVVQgPSAn W3R5cGU9c2 VhcmNoXSc7 XG5jb25zdC BDT05URVhU ID0gJ2hlYW Rlcic7IC8v IFhYWFxuY2 9uc3QgVklT VUFMTFlfSE lEREVOID0g YCR7UFJFRk lYfS1zci1v bmx5YDtcbl xubGV0IGxh c3RCdXR0b2 47XG5cbmNv bnN0IHNob3 dTZWFyY2gg PSBmdW5jdG lvbiAoZXZl bnQpIHtcbi AgdG9nZ2xl U2VhcmNoKH RoaXMsIHRy dWUpO1xuIC BsYXN0QnV0 dG9uID0gdG hpcztcbn07 XG5cbmNvbn N0IGhpZGVT ZWFyY2ggPS BmdW5jdGlv biAoZXZlbn QpIHtcbiAg dG9nZ2xlU2 VhcmNoKHRo aXMsIGZhbH NlKTtcbiAg bGFzdEJ1dH RvbiA9IHVu ZGVmaW5lZD tcbn07XG5c bmNvbnN0IG dldEZvcm0g PSBidXR0b2 4gPT4ge1xu ICBjb25zdC Bjb250ZXh0 ID0gYnV0dG 9uLmNsb3Nl c3QoQ09OVE VYVCk7XG4g IHJldHVybi Bjb250ZXh0 XG4gICAgPy Bjb250ZXh0 LnF1ZXJ5U2 VsZWN0b3Io Rk9STSlcbi AgICA6IGRv Y3VtZW50Ln F1ZXJ5U2Vs ZWN0b3IoRk 9STSk7XG59 O1xuXG5jb2 5zdCB0b2dn bGVTZWFyY2 ggPSAoYnV0 dG9uLCBhY3 RpdmUpID0+ IHtcbiAgY2 9uc3QgZm9y bSA9IGdldE Zvcm0oYnV0 dG9uKTtcbi AgaWYgKCFm b3JtKSB7XG 4gICAgdGhy b3cgbmV3IE Vycm9yKGBO byAke0ZPUk 19IGZvdW5k IGZvciBzZW FyY2ggdG9n Z2xlIGluIC R7Q09OVEVY VH0hYCk7XG 4gIH1cblxu ICBidXR0b2 4uaGlkZGVu ID0gYWN0aX ZlO1xuICBm b3JtLmNsYX NzTGlzdC50 b2dnbGUoVk lTVUFMTFlf SElEREVOLC AhYWN0aXZl KTtcblxuIC BpZiAoYWN0 aXZlKSB7XG 4gICAgY29u c3QgaW5wdX QgPSBmb3Jt LnF1ZXJ5U2 VsZWN0b3Io SU5QVVQpO1 xuICAgIGlm IChpbnB1dC kge1xuICAg ICAgaW5wdX QuZm9jdXMo KTtcbiAgIC B9XG4gICAg Ly8gd2hlbi B0aGUgdXNl ciBjbGlja3 MgX291dHNp ZGVfIG9mIH RoZSBmb3Jt IHcvaWdub3 JlKCk6IGhp ZGUgdGhlXG 4gICAgLy8g c2VhcmNoLC B0aGVuIHJl bW92ZSB0aG UgbGlzdGVu ZXJcbiAgIC Bjb25zdCBs aXN0ZW5lci A9IGlnbm9y ZShmb3JtLC BlID0+IHtc biAgICAgIG lmIChsYXN0 QnV0dG9uKS B7XG4gICAg ICAgIGhpZG VTZWFyY2gu Y2FsbChsYX N0QnV0dG9u KTtcbiAgIC AgIH1cbiAg ICAgIGRvY3 VtZW50LmJv ZHkucmVtb3 ZlRXZlbnRM aXN0ZW5lci hDTElDSywg bGlzdGVuZX IpO1xuICAg IH0pO1xuXG 4gICAgLy8g Tm9ybWFsbH kgd2Ugd291 bGQganVzdC BydW4gdGhp cyBjb2RlIH dpdGhvdXQg YSB0aW1lb3 V0LCBidXRc biAgICAvLy BJRTExIGFu ZCBFZGdlIH dpbGwgYWN0 dWFsbHkgY2 FsbCB0aGUg bGlzdGVuZX IgKmltbWVk aWF0ZWx5Ki BiZWNhdXNl XG4gICAgLy 8gdGhleSBh cmUgY3Vycm VudGx5IGhh bmRsaW5nIH RoaXMgZXhh Y3QgdHlwZS BvZiBldmVu dCwgc28gd2 UnbGxcbiAg ICAvLyBtYW tlIHN1cmUg dGhlIGJyb3 dzZXIgaXMg ZG9uZSBoYW 5kbGluZyB0 aGUgY3Vycm VudCBjbGlj ayBldmVudC xcbiAgICAv LyBpZiBhbn ksIGJlZm9y ZSB3ZSBhdH RhY2ggdGhl IGxpc3Rlbm VyLlxuICAg IHNldFRpbW VvdXQoKCkg PT4ge1xuIC AgICAgZG9j dW1lbnQuYm 9keS5hZGRF dmVudExpc3 RlbmVyKENM SUNLLCBsaX N0ZW5lcik7 XG4gICAgfS wgMCk7XG4g IH1cbn07XG 5cbmNvbnN0 IHNlYXJjaC A9IGJlaGF2 aW9yKHtcbi AgWyBDTElD SyBdOiB7XG 4gICAgWyBC VVRUT04gXT ogc2hvd1Nl YXJjaCxcbi AgfSxcbn0s IHtcbiAgaW 5pdDogKHRh cmdldCkgPT 4ge1xuICAg IGZvckVhY2 goc2VsZWN0 KEJVVFRPTi wgdGFyZ2V0 KSwgYnV0dG 9uID0+IHtc biAgICAgIH RvZ2dsZVNl YXJjaChidX R0b24sIGZh bHNlKTtcbi AgICB9KTtc biAgfSxcbi AgdGVhcmRv d246ICh0YX JnZXQpID0+ IHtcbiAgIC AvLyBmb3Jn ZXQgdGhlIG xhc3QgYnV0 dG9uIGNsaW NrZWRcbiAg ICBsYXN0Qn V0dG9uID0g dW5kZWZpbm VkO1xuICB9 LFxufSk7XG 5cbi8qKlxu ICogVE9ETy Bmb3IgMi4w LCByZW1vdm UgdGhpcyBz dGF0ZW1lbn QgYW5kIGV4 cG9ydCBgbm F2aWdhdGlv bmAgZGlyZW N0bHk6XG4g KlxuICogbW 9kdWxlLmV4 cG9ydHMgPS BiZWhhdmlv cih7Li4ufS k7XG4gKi9c bmNvbnN0IG Fzc2lnbiA9 IHJlcXVpcm UoJ29iamVj dC1hc3NpZ2 4nKTtcbm1v ZHVsZS5leH BvcnRzID0g YXNzaWduKF xuICBlbCA9 PiBzZWFyY2 gub24oZWwp LFxuICBzZW FyY2hcbik7 XG4iLCIndX NlIHN0cmlj dCc7XG5jb2 5zdCBiZWhh dmlvciA9IH JlcXVpcmUo Jy4uL3V0aW xzL2JlaGF2 aW9yJyk7XG 5jb25zdCBv bmNlID0gcm VxdWlyZSgn cmVjZXB0b3 Ivb25jZScp O1xuXG5jb2 5zdCBDTElD SyA9IHJlcX VpcmUoJy4u L2V2ZW50cy cpLkNMSUNL O1xuY29uc3 QgUFJFRklY ID0gcmVxdW lyZSgnLi4v Y29uZmlnJy kucHJlZml4 O1xuY29uc3 QgTElOSyA9 IGAuJHtQUk VGSVh9LXNr aXBuYXZbaH JlZl49XCIj XCJdYDtcbl xuY29uc3Qg c2V0VGFiaW 5kZXggPSBm dW5jdGlvbi AoZXZlbnQp IHtcbiAgLy 8gTkI6IHdl IGtub3cgYm VjYXVzZSBv ZiB0aGUgc2 VsZWN0b3Ig d2UncmUgZG VsZWdhdGlu ZyB0byBiZW xvdyB0aGF0 IHRoZVxuIC AvLyBocmVm IGFscmVhZH kgYmVnaW5z IHdpdGggJy MnXG4gIGNv bnN0IGlkID 0gdGhpcy5n ZXRBdHRyaW J1dGUoJ2hy ZWYnKS5zbG ljZSgxKTtc biAgY29uc3 QgdGFyZ2V0 ID0gZG9jdW 1lbnQuZ2V0 RWxlbWVudE J5SWQoaWQp O1xuICBpZi AodGFyZ2V0 KSB7XG4gIC AgdGFyZ2V0 LnNldEF0dH JpYnV0ZSgn dGFiaW5kZX gnLCAwKTtc biAgICB0YX JnZXQuYWRk RXZlbnRMaX N0ZW5lcign Ymx1cicsIG 9uY2UoZXZl bnQgPT4ge1 xuICAgICAg dGFyZ2V0Ln NldEF0dHJp YnV0ZSgndG FiaW5kZXgn LCAtMSk7XG 4gICAgfSkp O1xuICB9IG Vsc2Uge1xu ICAgIC8vIH Rocm93IGFu IGVycm9yP1 xuICB9XG59 O1xuXG5tb2 R1bGUuZXhw b3J0cyA9IG JlaGF2aW9y KHtcbiAgWy BDTElDSyBd OiB7XG4gIC AgWyBMSU5L IF06IHNldF RhYmluZGV4 LFxuICB9LF xufSk7XG4i LCIndXNlIH N0cmljdCc7 XG5jb25zdC BiZWhhdmlv ciA9IHJlcX VpcmUoJy4u L3V0aWxzL2 JlaGF2aW9y Jyk7XG5jb2 5zdCB2YWxp ZGF0ZSA9IH JlcXVpcmUo Jy4uL3V0aW xzL3ZhbGlk YXRlLWlucH V0Jyk7XG5j b25zdCBkZW JvdW5jZSA9 IHJlcXVpcm UoJ2xvZGFz aC5kZWJvdW 5jZScpO1xu XG5jb25zdC BjaGFuZ2Ug PSBmdW5jdG lvbiAoZXZl bnQpIHtcbi AgcmV0dXJu IHZhbGlkYX RlKHRoaXMp O1xufTtcbl xuY29uc3Qg dmFsaWRhdG 9yID0gYmVo YXZpb3Ioe1 xuICAna2V5 dXAgY2hhbm dlJzoge1xu ICAgICdpbn B1dFtkYXRh LXZhbGlkYX Rpb24tZWxl bWVudF0nOi BjaGFuZ2Us XG4gIH0sXG 59KTtcblxu LyoqXG4gKi BUT0RPIGZv ciAyLjAsIH JlbW92ZSB0 aGlzIHN0YX RlbWVudCBh bmQgZXhwb3 J0IGBuYXZp Z2F0aW9uYC BkaXJlY3Rs eTpcbiAqXG 4gKiBtb2R1 bGUuZXhwb3 J0cyA9IGJl aGF2aW9yKH suLi59KTtc biAqL1xuY2 9uc3QgYXNz aWduID0gcm VxdWlyZSgn b2JqZWN0LW Fzc2lnbicp O1xubW9kdW xlLmV4cG9y dHMgPSBhc3 NpZ24oXG4g IGVsID0+IH ZhbGlkYXRv ci5vbihlbC ksXG4gIHZh bGlkYXRvcl xuKTtcbiIs Im1vZHVsZS 5leHBvcnRz ID0ge1xuIC BwcmVmaXg6 ICd1c2EnLF xufTtcbiIs Im1vZHVsZS 5leHBvcnRz ID0ge1xuIC AvLyBUaGlz IHVzZWQgdG 8gYmUgY29u ZGl0aW9uYW xseSBkZXBl bmRlbnQgb2 4gd2hldGhl ciB0aGVcbi AgLy8gYnJv d3NlciBzdX Bwb3J0ZWQg dG91Y2ggZX ZlbnRzOyBp ZiBpdCBkaW QsIGBDTElD S2Agd2FzIH NldCB0b1xu ICAvLyBgdG 91Y2hzdGFy dGAuICBIb3 dldmVyLCB0 aGlzIGhhZC Bkb3duc2lk ZXM6XG4gIC 8vXG4gIC8v ICogSXQgcH JlLWVtcHRl ZCBtb2JpbG UgYnJvd3Nl cnMnIGRlZm F1bHQgYmVo YXZpb3Igb2 YgZGV0ZWN0 aW5nXG4gIC 8vICAgd2hl dGhlciBhIH RvdWNoIHR1 cm5lZCBpbn RvIGEgc2Ny b2xsLCB0aG VyZWJ5IHBy ZXZlbnRpbm dcbiAgLy8g ICB1c2Vycy Bmcm9tIHVz aW5nIHNvbW Ugb2Ygb3Vy IGNvbXBvbm VudHMgYXMg c2Nyb2xsIH N1cmZhY2Vz LlxuICAvL1 xuICAvLyAq IFNvbWUgZG V2aWNlcywg c3VjaCBhcy B0aGUgTWlj cm9zb2Z0IF N1cmZhY2Ug UHJvLCBzdX Bwb3J0ICpi b3RoKlxuIC AvLyAgIHRv dWNoIGFuZC BjbGlja3Mu IFRoaXMgbW VhbnQgdGhl IGNvbmRpdG lvbmFsIGVm ZmVjdGl2ZW x5IGRyb3Bw ZWRcbiAgLy 8gICBzdXBw b3J0IGZvci B0aGUgdXNl cidzIG1vdX NlLCBmcnVz dHJhdGluZy B1c2VycyB3 aG8gcHJlZm VycmVkXG4g IC8vICAgaX Qgb24gdGhv c2Ugc3lzdG Vtcy5cbiAg Q0xJQ0s6IC djbGljaycs XG59O1xuIi wiJ3VzZSBz dHJpY3QnO1 xuY29uc3Qg ZWxwcm90by A9IHdpbmRv dy5IVE1MRW xlbWVudC5w cm90b3R5cG U7XG5jb25z dCBISURERU 4gPSAnaGlk ZGVuJztcbl xuaWYgKCEo SElEREVOIG luIGVscHJv dG8pKSB7XG 4gIE9iamVj dC5kZWZpbm VQcm9wZXJ0 eShlbHByb3 RvLCBISURE RU4sIHtcbi AgICBnZXQ6 IGZ1bmN0aW 9uICgpIHtc biAgICAgIH JldHVybiB0 aGlzLmhhc0 F0dHJpYnV0 ZShISURERU 4pO1xuICAg IH0sXG4gIC Agc2V0OiBm dW5jdGlvbi AodmFsdWUp IHtcbiAgIC AgIGlmICh2 YWx1ZSkge1 xuICAgICAg ICB0aGlzLn NldEF0dHJp YnV0ZShISU RERU4sICcn KTtcbiAgIC AgIH0gZWxz ZSB7XG4gIC AgICAgIHRo aXMucmVtb3 ZlQXR0cmli dXRlKEhJRE RFTik7XG4g ICAgICB9XG 4gICAgfSxc biAgfSk7XG 59XG4iLCIn dXNlIHN0cm ljdCc7XG4v LyBwb2x5Zm lsbHMgSFRN TEVsZW1lbn QucHJvdG90 eXBlLmNsYX NzTGlzdCBh bmQgRE9NVG 9rZW5MaXN0 XG5yZXF1aX JlKCdjbGFz c2xpc3QtcG 9seWZpbGwn KTtcbi8vIH BvbHlmaWxs cyBIVE1MRW xlbWVudC5w cm90b3R5cG UuaGlkZGVu XG5yZXF1aX JlKCcuL2Vs ZW1lbnQtaG lkZGVuJyk7 XG4iLCIndX NlIHN0cmlj dCc7XG5jb2 5zdCBkb21y ZWFkeSA9IH JlcXVpcmUo J2RvbXJlYW R5Jyk7XG5c bi8qKlxuIC ogVGhlICdw b2x5ZmlsbH MnIGRlZmlu ZSBrZXkgRU NNQVNjcmlw dCA1IG1ldG hvZHMgdGhh dCBtYXkgYm UgbWlzc2lu ZyBmcm9tXG 4gKiBvbGRl ciBicm93c2 Vycywgc28g bXVzdCBiZS Bsb2FkZWQg Zmlyc3QuXG 4gKi9cbnJl cXVpcmUoJy 4vcG9seWZp bGxzJyk7XG 5cbmNvbnN0 IHVzd2RzID 0gcmVxdWly ZSgnLi9jb2 5maWcnKTtc blxuY29uc3 QgY29tcG9u ZW50cyA9IH JlcXVpcmUo Jy4vY29tcG 9uZW50cycp O1xudXN3ZH MuY29tcG9u ZW50cyA9IG NvbXBvbmVu dHM7XG5cbm RvbXJlYWR5 KCgpID0+IH tcbiAgY29u c3QgdGFyZ2 V0ID0gZG9j dW1lbnQuYm 9keTtcbiAg Zm9yIChsZX QgbmFtZSBp biBjb21wb2 5lbnRzKSB7 XG4gICAgY2 9uc3QgYmVo YXZpb3IgPS Bjb21wb25l bnRzWyBuYW 1lIF07XG4g ICAgYmVoYX Zpb3Iub24o dGFyZ2V0KT tcbiAgfVxu fSk7XG5cbm 1vZHVsZS5l eHBvcnRzID 0gdXN3ZHM7 XG4iLCIndX NlIHN0cmlj dCc7XG5jb2 5zdCBhc3Np Z24gPSByZX F1aXJlKCdv YmplY3QtYX NzaWduJyk7 XG5jb25zdC Bmb3JFYWNo ID0gcmVxdW lyZSgnYXJy YXktZm9yZW FjaCcpO1xu Y29uc3QgQm VoYXZpb3Ig PSByZXF1aX JlKCdyZWNl cHRvci9iZW hhdmlvcicp O1xuXG5jb2 5zdCBzZXF1 ZW5jZSA9IG Z1bmN0aW9u ICgpIHtcbi AgY29uc3Qg c2VxID0gW1 0uc2xpY2Uu Y2FsbChhcm d1bWVudHMp O1xuICByZX R1cm4gZnVu Y3Rpb24gKH RhcmdldCkg e1xuICAgIG lmICghdGFy Z2V0KSB7XG 4gICAgICB0 YXJnZXQgPS Bkb2N1bWVu dC5ib2R5O1 xuICAgIH1c biAgICBmb3 JFYWNoKHNl cSwgbWV0aG 9kID0+IHtc biAgICAgIG lmICh0eXBl b2YgdGhpc1 sgbWV0aG9k IF0gPT09IC dmdW5jdGlv bicpIHtcbi AgICAgICAg dGhpc1sgbW V0aG9kIF0u Y2FsbCh0aG lzLCB0YXJn ZXQpO1xuIC AgICAgfVxu ICAgIH0pO1 xuICB9O1xu fTtcblxuLy oqXG4gKiBA bmFtZSBiZW hhdmlvclxu ICogQHBhcm FtIHtvYmpl Y3R9IGV2ZW 50c1xuICog QHBhcmFtIH tvYmplY3Q/ fSBwcm9wc1 xuICogQHJl dHVybiB7cm VjZXB0b3Iu YmVoYXZpb3 J9XG4gKi9c bm1vZHVsZS 5leHBvcnRz ID0gKGV2ZW 50cywgcHJv cHMpID0+IH tcbiAgcmV0 dXJuIEJlaG F2aW9yKGV2 ZW50cywgYX NzaWduKHtc biAgICBvbj ogICBzZXF1 ZW5jZSgnaW 5pdCcsICdh ZGQnKSxcbi AgICBvZmY6 ICBzZXF1ZW 5jZSgndGVh cmRvd24nLC AncmVtb3Zl JyksXG4gIH 0sIHByb3Bz KSk7XG59O1 xuIiwiLy8g aHR0cHM6Ly 9zdGFja292 ZXJmbG93Lm NvbS9hLzc1 NTc0MzNcbm Z1bmN0aW9u IGlzRWxlbW VudEluVmll d3BvcnQgKG VsLCB3aW49 d2luZG93LF xuICAgICAg ICAgICAgIC AgICAgICAg ICAgICAgIC AgZG9jRWw9 ZG9jdW1lbn QuZG9jdW1l bnRFbGVtZW 50KSB7XG4g IHZhciByZW N0ID0gZWwu Z2V0Qm91bm RpbmdDbGll bnRSZWN0KC k7XG5cbiAg cmV0dXJuIC hcbiAgICBy ZWN0LnRvcC A+PSAwICYm XG4gICAgcm VjdC5sZWZ0 ID49IDAgJi ZcbiAgICBy ZWN0LmJvdH RvbSA8PSAo d2luLmlubm VySGVpZ2h0 IHx8IGRvY0 VsLmNsaWVu dEhlaWdodC kgJiZcbiAg ICByZWN0Ln JpZ2h0IDw9 ICh3aW4uaW 5uZXJXaWR0 aCB8fCBkb2 NFbC5jbGll bnRXaWR0aC lcbiAgKTtc bn1cblxubW 9kdWxlLmV4 cG9ydHMgPS Bpc0VsZW1l bnRJblZpZX dwb3J0O1xu IiwiJ3VzZS BzdHJpY3Qn O1xuXG4vKi pcbiAqIEBu YW1lIGlzRW xlbWVudFxu ICogQGRlc2 MgcmV0dXJu cyB3aGV0aG VyIG9yIG5v dCB0aGUgZ2 l2ZW4gYXJn dW1lbnQgaX MgYSBET00g ZWxlbWVudC 5cbiAqIEBw YXJhbSB7YW 55fSB2YWx1 ZVxuICogQH JldHVybiB7 Ym9vbGVhbn 1cbiAqL1xu Y29uc3QgaX NFbGVtZW50 ID0gdmFsdW UgPT4ge1xu ICByZXR1cm 4gdmFsdWUg JiYgdHlwZW 9mIHZhbHVl ID09PSAnb2 JqZWN0JyAm JiB2YWx1ZS 5ub2RlVHlw ZSA9PT0gMT tcbn07XG5c bi8qKlxuIC ogQG5hbWUg c2VsZWN0XG 4gKiBAZGVz YyBzZWxlY3 RzIGVsZW1l bnRzIGZyb2 0gdGhlIERP TSBieSBjbG FzcyBzZWxl Y3RvciBvci BJRCBzZWxl Y3Rvci5cbi AqIEBwYXJh bSB7c3RyaW 5nfSBzZWxl Y3RvciAtIF RoZSBzZWxl Y3RvciB0by B0cmF2ZXJz ZSB0aGUgRE 9NIHdpdGgu XG4gKiBAcG FyYW0ge0Rv Y3VtZW50fE hUTUxFbGVt ZW50P30gY2 9udGV4dCAt IFRoZSBjb2 50ZXh0IHRv IHRyYXZlcn NlIHRoZSBE T01cbiAqIC AgaW4uIElm IG5vdCBwcm 92aWRlZCwg aXQgZGVmYX VsdHMgdG8g dGhlIGRvY3 VtZW50Llxu ICogQHJldH VybiB7SFRN TEVsZW1lbn RbXX0gLSBB biBhcnJheS BvZiBET00g bm9kZXMgb3 IgYW4gZW1w dHkgYXJyYX kuXG4gKi9c bm1vZHVsZS 5leHBvcnRz ID0gZnVuY3 Rpb24gc2Vs ZWN0IChzZW xlY3Rvciwg Y29udGV4dC kge1xuXG4g IGlmICh0eX Blb2Ygc2Vs ZWN0b3IgIT 09ICdzdHJp bmcnKSB7XG 4gICAgcmV0 dXJuIFtdO1 xuICB9XG5c biAgaWYgKC Fjb250ZXh0 IHx8ICFpc0 VsZW1lbnQo Y29udGV4dC kpIHtcbiAg ICBjb250ZX h0ID0gd2lu ZG93LmRvY3 VtZW50O1xu ICB9XG5cbi AgY29uc3Qg c2VsZWN0aW 9uID0gY29u dGV4dC5xdW VyeVNlbGVj dG9yQWxsKH NlbGVjdG9y KTtcbiAgcm V0dXJuIEFy cmF5LnByb3 RvdHlwZS5z bGljZS5jYW xsKHNlbGVj dGlvbik7XG 59O1xuIiwi LyoqXG4gKi BGbGlwcyBn aXZlbiBJTl BVVCBlbGVt ZW50cyBiZX R3ZWVuIG1h c2tlZCAoaG lkaW5nIHRo ZSBmaWVsZC B2YWx1ZSkg YW5kIHVubW Fza2VkXG4g KiBAcGFyYW 0ge0FycmF5 LkhUTUxFbG VtZW50fSBm aWVsZHMgLS BBbiBhcnJh eSBvZiBJTl BVVCBlbGVt ZW50c1xuIC ogQHBhcmFt IHtCb29sZW FufSBtYXNr IC0gV2hldG hlciB0aGUg bWFzayBzaG 91bGQgYmUg YXBwbGllZC wgaGlkaW5n IHRoZSBmaW VsZCB2YWx1 ZVxuICovXG 5tb2R1bGUu ZXhwb3J0cy A9IChmaWVs ZCwgbWFzay kgPT4ge1xu ICBmaWVsZC 5zZXRBdHRy aWJ1dGUoJ2 F1dG9jYXBp dGFsaXplJy wgJ29mZicp O1xuICBmaW VsZC5zZXRB dHRyaWJ1dG UoJ2F1dG9j b3JyZWN0Jy wgJ29mZicp O1xuICBmaW VsZC5zZXRB dHRyaWJ1dG UoJ3R5cGUn LCBtYXNrID 8gJ3Bhc3N3 b3JkJyA6IC d0ZXh0Jyk7 XG59O1xuIi wiJ3VzZSBz dHJpY3QnO1 xuY29uc3Qg Zm9yRWFjaC A9IHJlcXVp cmUoJ2Fycm F5LWZvcmVh Y2gnKTtcbm NvbnN0IHJl c29sdmVJZF JlZnMgPSBy ZXF1aXJlKC dyZXNvbHZl LWlkLXJlZn MnKTtcbmNv bnN0IHNlbG VjdCA9IHJl cXVpcmUoJy 4vc2VsZWN0 Jyk7XG5jb2 5zdCB0b2dn bGVGaWVsZE 1hc2sgPSBy ZXF1aXJlKC cuL3RvZ2ds ZS1maWVsZC 1tYXNrJyk7 XG5cbmNvbn N0IENPTlRS T0xTID0gJ2 FyaWEtY29u dHJvbHMnO1 xuY29uc3Qg UFJFU1NFRC A9ICdhcmlh LXByZXNzZW QnO1xuY29u c3QgU0hPV1 9BVFRSID0g J2RhdGEtc2 hvdy10ZXh0 JztcbmNvbn N0IEhJREVf QVRUUiA9IC dkYXRhLWhp ZGUtdGV4dC c7XG5cbi8q KlxuICogUm VwbGFjZSB0 aGUgd29yZC BcIlNob3dc IiAob3IgXC JzaG93XCIp IHdpdGggXC JIaWRlXCIg KG9yIFwiaG lkZVwiKSBp biBhIHN0cm luZy5cbiAq IEBwYXJhbS B7c3RyaW5n fSBzaG93VG V4dFxuICog QHJldHVybi B7c3Ryb25n fSBoaWRlVG V4dFxuICov XG5jb25zdC BnZXRIaWRl VGV4dCA9IH Nob3dUZXh0 ID0+IHtcbi AgcmV0dXJu IHNob3dUZX h0LnJlcGxh Y2UoL1xcYl Nob3dcXGIv aSwgc2hvdy A9PiB7XG4g ICAgcmV0dX JuICgnUycg PT09IHNob3 dbIDAgXSA/ ICdIJyA6IC doJykgKyAn aWRlJztcbi AgfSk7XG59 O1xuXG4vKi pcbiAqIENv bXBvbmVudC B0aGF0IGRl Y29yYXRlcy BhbiBIVE1M IGVsZW1lbn Qgd2l0aCB0 aGUgYWJpbG l0eSB0byB0 b2dnbGUgdG hlXG4gKiBt YXNrZWQgc3 RhdGUgb2Yg YW4gaW5wdX QgZmllbGQg KGxpa2UgYS BwYXNzd29y ZCkgd2hlbi BjbGlja2Vk LlxuICogVG hlIGlkcyBv ZiB0aGUgZm llbGRzIHRv IGJlIG1hc2 tlZCB3aWxs IGJlIHB1bG xlZCBkaXJl Y3RseSBmcm 9tIHRoZSBi dXR0b24nc1 xuICogYGFy aWEtY29udH JvbHNgIGF0 dHJpYnV0ZS 5cbiAqXG4g KiBAcGFyYW 0gIHtIVE1M RWxlbWVudH 0gZWwgICAg UGFyZW50IG VsZW1lbnQg Y29udGFpbm luZyB0aGUg ZmllbGRzIH RvIGJlIG1h c2tlZFxuIC ogQHJldHVy biB7Ym9vbG Vhbn1cbiAq L1xubW9kdW xlLmV4cG9y dHMgPSBlbC A9PiB7XG4g IC8vIHRoaX MgaXMgdGhl ICp0YXJnZX QqIHN0YXRl OlxuICAvLy AqIGlmIHRo ZSBlbGVtZW 50IGhhcyB0 aGUgYXR0ci BhbmQgaXQn cyAhPT0gXC J0cnVlXCIs IHByZXNzZW QgaXMgdHJ1 ZVxuICAvLy AqIG90aGVy d2lzZSwgcH Jlc3NlZCBp cyBmYWxzZV xuICBjb25z dCBwcmVzc2 VkID0gZWwu aGFzQXR0cm lidXRlKFBS RVNTRUQpXG 4gICAgJiYg ZWwuZ2V0QX R0cmlidXRl KFBSRVNTRU QpICE9PSAn dHJ1ZSc7XG 5cbiAgY29u c3QgZmllbG RzID0gcmVz b2x2ZUlkUm VmcyhlbC5n ZXRBdHRyaW J1dGUoQ09O VFJPTFMpKT tcbiAgZm9y RWFjaChmaW VsZHMsIGZp ZWxkID0+IH RvZ2dsZUZp ZWxkTWFzay hmaWVsZCwg cHJlc3NlZC kpO1xuXG4g IGlmICghZW wuaGFzQXR0 cmlidXRlKF NIT1dfQVRU UikpIHtcbi AgICBlbC5z ZXRBdHRyaW J1dGUoU0hP V19BVFRSLC BlbC50ZXh0 Q29udGVudC k7XG4gIH1c blxuICBjb2 5zdCBzaG93 VGV4dCA9IG VsLmdldEF0 dHJpYnV0ZS hTSE9XX0FU VFIpO1xuIC Bjb25zdCBo aWRlVGV4dC A9IGVsLmdl dEF0dHJpYn V0ZShISURF X0FUVFIpIH x8IGdldEhp ZGVUZXh0KH Nob3dUZXh0 KTtcblxuIC BlbC50ZXh0 Q29udGVudC A9IHByZXNz ZWQgPyBzaG 93VGV4dCA6 IGhpZGVUZX h0O1xuICBl bC5zZXRBdH RyaWJ1dGUo UFJFU1NFRC wgcHJlc3Nl ZCk7XG4gIH JldHVybiBw cmVzc2VkO1 xufTtcbiIs Iid1c2Ugc3 RyaWN0Jztc bmNvbnN0IE VYUEFOREVE ID0gJ2FyaW EtZXhwYW5k ZWQnO1xuY2 9uc3QgQ09O VFJPTFMgPS AnYXJpYS1j b250cm9scy c7XG5jb25z dCBISURERU 4gPSAnYXJp YS1oaWRkZW 4nO1xuXG5t b2R1bGUuZX hwb3J0cyA9 IChidXR0b2 4sIGV4cGFu ZGVkKSA9Pi B7XG5cbiAg aWYgKHR5cG VvZiBleHBh bmRlZCAhPT 0gJ2Jvb2xl YW4nKSB7XG 4gICAgZXhw YW5kZWQgPS BidXR0b24u Z2V0QXR0cm lidXRlKEVY UEFOREVEKS A9PT0gJ2Zh bHNlJztcbi AgfVxuICBi dXR0b24uc2 V0QXR0cmli dXRlKEVYUE FOREVELCBl eHBhbmRlZC k7XG5cbiAg Y29uc3QgaW QgPSBidXR0 b24uZ2V0QX R0cmlidXRl KENPTlRST0 xTKTtcbiAg Y29uc3QgY2 9udHJvbHMg PSBkb2N1bW VudC5nZXRF bGVtZW50Qn lJZChpZCk7 XG4gIGlmIC ghY29udHJv bHMpIHtcbi AgICB0aHJv dyBuZXcgRX Jyb3IoXG4g ICAgICAnTm 8gdG9nZ2xl IHRhcmdldC Bmb3VuZCB3 aXRoIGlkOi BcIicgKyBp ZCArICdcIi dcbiAgICAp O1xuICB9XG 5cbiAgY29u dHJvbHMuc2 V0QXR0cmli dXRlKEhJRE RFTiwgIWV4 cGFuZGVkKT tcbiAgcmV0 dXJuIGV4cG FuZGVkO1xu fTtcbiIsIi d1c2Ugc3Ry aWN0Jztcbm NvbnN0IGRh dGFzZXQgPS ByZXF1aXJl KCdlbGVtLW RhdGFzZXQn KTtcblxuY2 9uc3QgUFJF RklYID0gcm VxdWlyZSgn Li4vY29uZm lnJykucHJl Zml4O1xuY2 9uc3QgQ0hF Q0tFRCA9IC dhcmlhLWNo ZWNrZWQnO1 xuY29uc3Qg Q0hFQ0tFRF 9DTEFTUyA9 IGAke1BSRU ZJWH0tY2hl Y2tsaXN0LW NoZWNrZWRg O1xuXG5tb2 R1bGUuZXhw b3J0cyA9IG Z1bmN0aW9u IHZhbGlkYX RlIChlbCkg e1xuICBjb2 5zdCBkYXRh ID0gZGF0YX NldChlbCk7 XG4gIGNvbn N0IGlkID0g ZGF0YS52YW xpZGF0aW9u RWxlbWVudD tcbiAgY29u c3QgY2hlY2 tMaXN0ID0g aWQuY2hhck F0KDApID09 PSAnIydcbi AgICA/IGRv Y3VtZW50Ln F1ZXJ5U2Vs ZWN0b3IoaW QpXG4gICAg OiBkb2N1bW VudC5nZXRF bGVtZW50Qn lJZChpZCk7 XG5cbiAgaW YgKCFjaGVj a0xpc3QpIH tcbiAgICB0 aHJvdyBuZX cgRXJyb3Io XG4gICAgIC BgTm8gdmFs aWRhdGlvbi BlbGVtZW50 IGZvdW5kIH dpdGggaWQ6 IFwiJHtpZH 1cImBcbiAg ICApO1xuIC B9XG5cbiAg Zm9yIChjb2 5zdCBrZXkg aW4gZGF0YS kge1xuICAg IGlmIChrZX kuc3RhcnRz V2l0aCgndm FsaWRhdGUn KSkge1xuIC AgICAgY29u c3QgdmFsaW RhdG9yTmFt ZSA9IGtleS 5zdWJzdHIo J3ZhbGlkYX RlJy5sZW5n dGgpLnRvTG 93ZXJDYXNl KCk7XG4gIC AgICBjb25z dCB2YWxpZG F0b3JQYXR0 ZXJuID0gbm V3IFJlZ0V4 cChkYXRhWy BrZXkgXSk7 XG4gICAgIC Bjb25zdCB2 YWxpZGF0b3 JTZWxlY3Rv ciA9IGBbZG F0YS12YWxp ZGF0b3I9XC Ike3ZhbGlk YXRvck5hbW V9XCJdYDtc biAgICAgIG NvbnN0IHZh bGlkYXRvck NoZWNrYm94 ID0gY2hlY2 tMaXN0LnF1 ZXJ5U2VsZW N0b3IodmFs aWRhdG9yU2 VsZWN0b3Ip O1xuICAgIC AgaWYgKCF2 YWxpZGF0b3 JDaGVja2Jv eCkge1xuIC AgICAgICB0 aHJvdyBuZX cgRXJyb3Io XG4gICAgIC AgICAgYE5v IHZhbGlkYX RvciBjaGVj a2JveCBmb3 VuZCBmb3I6 IFwiJHt2YW xpZGF0b3JO YW1lfVwiYF xuICAgICAg ICApO1xuIC AgICAgfVxu XG4gICAgIC Bjb25zdCBj aGVja2VkID 0gdmFsaWRh dG9yUGF0dG Vybi50ZXN0 KGVsLnZhbH VlKTtcbiAg ICAgIHZhbG lkYXRvckNo ZWNrYm94Lm NsYXNzTGlz dC50b2dnbG UoQ0hFQ0tF RF9DTEFTUy wgY2hlY2tl ZCk7XG4gIC AgICB2YWxp ZGF0b3JDaG Vja2JveC5z ZXRBdHRyaW J1dGUoQ0hF Q0tFRCwgY2 hlY2tlZCk7 XG4gICAgfV xuICB9XG59 O1xuIl19 |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.