관리-도구
편집 파일: 1741878925.M334281P2353727.cp-biz03.syd05.ds.network,S=1779689,W=1804098
Return-Path: <khizar@clearfreight.org> Delivered-To: tony@galaxybeads.com.au Received: from cp-biz03.syd05.ds.network by cp-biz03.syd05.ds.network with LMTP id ECKGEI320mc/6iMAW9t3Hw (envelope-from <khizar@clearfreight.org>) for <tony@galaxybeads.com.au>; Fri, 14 Mar 2025 02:15:25 +1100 Return-path: <khizar@clearfreight.org> Envelope-to: tony@galaxybeads.com.au Delivery-date: Fri, 14 Mar 2025 02:15:25 +1100 Received: from [147.45.221.109] (port=58194 helo=35099.ip-ptr.tech) by cp-biz03.syd05.ds.network with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from <khizar@clearfreight.org>) id 1tskHK-009xWy-0B for tony@galaxybeads.com.au; Fri, 14 Mar 2025 02:15:25 +1100 From: khizar<khizar@clearfreight.org> To: tony@galaxybeads.com.au Subject: (MOS) 2100138435 | FCL 20FT W-GULF Date: 13 Mar 2025 16:14:49 -0700 Message-ID: <20250313161449.9D991C9A27B7838B@clearfreight.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_ABDBC2A8.B77A9832" X-Spam-Status: No, score= X-Spam-Score: X-Spam-Bar: X-Ham-Report: X-Spam-Flag: NO This is a multi-part message in MIME format. ------=_NextPart_000_0012_ABDBC2A8.B77A9832 Content-Type: text/html Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML> <html><head><title></title> <meta http-equiv=3D"X-UA-Compatible" content=3D"IE=3Dedge"> </head> <body style=3D"margin: 0.4em; font-size: 20pt;"><div style=3D'font: 14px/21= px "Microsoft YaHei UI"; color: rgb(0, 0, 0); text-transform: none; text-in= dent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; = widows: 1; background-color: rgb(255, 255, 255); -webkit-text-stroke-width:= 0px;'>Dear tony</div> <div style=3D'font: 14px/21px "Microsoft YaHei UI"; color: rgb(0, 0, 0); te= xt-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing:= 0px; white-space: normal; widows: 1; background-color: rgb(255, 255, 255);= -webkit-text-stroke-width: 0px;'><br></div> <div style=3D'font: 14px/21px "Microsoft YaHei UI"; color: rgb(0, 0, 0); te= xt-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing:= 0px; white-space: normal; widows: 1; background-color: rgb(255, 255, 255);= -webkit-text-stroke-width: 0px;'><div class=3D"elementToProof" style=3D"li= ne-height: 1.5;">Please kindly add below in the description for 1ST HBL/SWI= TCH HBL/MBL, thank you.</div><div class=3D"elementToProof" style=3D"line-he= ight: 1.5;"><br></div> <div class=3D"elementToProof" style=3D"line-height: 1.5;">TMSAP 2100138435<= /div><div class=3D"elementToProof" style=3D"line-height: 1.5;">Dispatch no_= 1028232744 </div></div><div class=3D"elementToProof" style=3D'font: 1= 4px/1.5 "Microsoft YaHei UI"; color: rgb(0, 0, 0); text-transform: none; te= xt-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: nor= mal; widows: 1; background-color: rgb(255, 255, 255); -webkit-text-stroke-w= idth: 0px;'><br></div> <div class=3D"elementToProof" style=3D'font: 14px/1.5 "Microsoft YaHei UI";= color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacin= g: normal; word-spacing: 0px; white-space: normal; widows: 1; background-co= lor: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'>Pls also help pro= vide MBL draft once ready.</div> <div class=3D"elementToProof" style=3D'font: 14px/1.5 "Microsoft YaHei UI";= color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacin= g: normal; word-spacing: 0px; white-space: normal; widows: 1; background-co= lor: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'><br></div> <div class=3D"elementToProof" style=3D'font: 14px/1.5 "Microsoft YaHei UI";= color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacin= g: normal; word-spacing: 0px; white-space: normal; widows: 1; background-co= lor: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'>B.rgds,</div> <div class=3D"elementToProof" style=3D'font: 14px/1.5 "Microsoft YaHei UI";= color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacin= g: normal; word-spacing: 0px; white-space: normal; widows: 1; background-co= lor: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'>ivan</div></body>= </html> ------=_NextPart_000_0012_ABDBC2A8.B77A9832 Content-Type: text/html; name="Order.html"; charset="utf-8" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Order.html" PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQoNCjxoZWFkPg0KDQogIDxtZXRh IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9 dXRmLTgiIC8+DQogIDxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tdGFwLWhpZ2hsaWdodCIg Y29udGVudD0ibm8iIC8+DQogIDxtZXRhIG5hbWU9InJlZmVycmVyIiBjb250ZW50PSJvcmln aW4td2hlbi1jcm9zcy1vcmlnaW4iIC8+DQogIDxtZXRhIG5hbWU9InZpZXdwb3J0Ig0KICAg IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIG1heGlt dW0tc2NhbGU9MS4wLCBtaW5pbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4N CiAgPG1ldGEgbmFtZT0iZm9ybWF0LWRldGVjdGlvbiIgY29udGVudD0idGVsZXBob25lPW5v IiAvPg0KICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vYXBpLm9uZWRy aXZlLmNvbSIgY3Jvc3NvcmlnaW49IiIgLz4NCg0KICA8dGl0bGU+T25lRHJpdmU8L3RpdGxl Pg0KICA8bGluayByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vcC5zZngubXMvaW1hZ2VzL2Zh dmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iIC8+DQoNCiAgPGxpbmsgcmVsPSJtYXNr LWljb24iIGhyZWY9Imh0dHBzOi8vcC5zZngubXMvaW1hZ2VzL21hc2tfaWNvbi5zdmciIGNv bG9yPSIjMDA3OEQ0IiAvPg0KDQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0i dHJ1ZSI+DQogICAgYm9keSB7DQogICAgICBtYXJnaW46IDA7DQogICAgfQ0KDQogICAgLm9k LWRldGFpbHNMaXN0LWZpbHRlckNoZXZyb24gew0KICAgICAgZm9udC1zaXplOiA4cHg7DQog ICAgfQ0KDQogICAgLm9kLWRldGFpbHNMaXN0LWZpbHRlckNoZXZyb24ub2QtZGV0YWlsc0xp c3QtZmlsdGVyQ2hldnJvbi12TmV4dCB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAg fQ0KDQoNCg0KICAgIC5yb290XzNlNWQ0ODQ0IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAg ICAgIGJvdHRvbTogMDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVj dGlvbjogY29sdW1uOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9DQoNCiAgICBA bWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgew0KICAgICAgLmlzT0QzIC5y b290XzNlNWQ0ODQ0IHsNCiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNp cmNsZSBhdCA3NiUgMzMlLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFk aWVudENvbG9yU3RvcDEpIDAsDQogICAgICAgICAgICB2YXIoLS1wYWdlQmFja2dyb3VuZEdy YWRpZW50Q29sb3JTdG9wMikgNTclLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91 bmRHcmFkaWVudENvbG9yU3RvcDMpIDEwMCUpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBt ZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7DQogICAgICAuaXNPRDMgLnJv b3RfM2U1ZDQ4NDQgew0KICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2ly Y2xlIGF0IDc2JSAyNiUsDQogICAgICAgICAgICB2YXIoLS1wYWdlQmFja2dyb3VuZEdyYWRp ZW50Q29sb3JTdG9wMSkgMCwNCiAgICAgICAgICAgIHZhcigtLXBhZ2VCYWNrZ3JvdW5kR3Jh ZGllbnRDb2xvclN0b3AyKSA1NyUsDQogICAgICAgICAgICB2YXIoLS1wYWdlQmFja2dyb3Vu ZEdyYWRpZW50Q29sb3JTdG9wMykgMTAwJSk7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1l ZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIGFuZCAobWF4LWhlaWdodDogNjM5 cHgpIHsNCiAgICAgIC5pc09EMyAucm9vdF8zZTVkNDg0NCB7DQogICAgICAgIGJhY2tncm91 bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzYlIDMzJSwNCiAgICAgICAgICAgIHZh cigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AxKSAwLA0KICAgICAgICAgICAg dmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDIpIDU3JSwNCiAgICAgICAg ICAgIHZhcigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AzKSAxMDAlKTsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0 cHgpIHsNCiAgICAgIC5pc09EMyAucm9vdF8zZTVkNDg0NCB7DQogICAgICAgIGJhY2tncm91 bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzIlIDQ2JSwNCiAgICAgICAgICAgIHZh cigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AxKSAwLA0KICAgICAgICAgICAg dmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDIpIDU3JSwNCiAgICAgICAg ICAgIHZhcigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AzKSAxMDAlKTsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0 cHgpIGFuZCAobWF4LWhlaWdodDogNjM5cHgpIHsNCiAgICAgIC5pc09EMyAucm9vdF8zZTVk NDg0NCB7DQogICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQg NzIlIDQyJSwNCiAgICAgICAgICAgIHZhcigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xv clN0b3AxKSAwLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENv bG9yU3RvcDIpIDU3JSwNCiAgICAgICAgICAgIHZhcigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGll bnRDb2xvclN0b3AzKSAxMDAlKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAobWluLXdpZHRoOiAxNDQwcHgpIHsNCiAgICAgIC5pc09EMyAucm9vdF8zZTVk NDg0NCB7DQogICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQg NjQlIDQ2JSwNCiAgICAgICAgICAgIHZhcigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xv clN0b3AxKSAwLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENv bG9yU3RvcDIpIDU3JSwNCiAgICAgICAgICAgIHZhcigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGll bnRDb2xvclN0b3AzKSAxMDAlKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAobWluLXdpZHRoOiAxNDQwcHgpIGFuZCAobWF4LWhlaWdodDogNjM5cHgpIHsN CiAgICAgIC5pc09EMyAucm9vdF8zZTVkNDg0NCB7DQogICAgICAgIGJhY2tncm91bmQ6IHJh ZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNjQlIDQyJSwNCiAgICAgICAgICAgIHZhcigtLXBh Z2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AxKSAwLA0KICAgICAgICAgICAgdmFyKC0t cGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDIpIDU3JSwNCiAgICAgICAgICAgIHZh cigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AzKSAxMDAlKTsNCiAgICAgIH0N CiAgICB9DQoNCiAgICAuc3VpdGVOYXZfM2U1ZDQ4NDQgew0KICAgICAgZmxleDogMCAwIGF1 dG87DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLnN1aXRlTmF2Ml8zZTVk NDg0NCB7DQogICAgICBmbGV4OiAwIDAgYXV0bzsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnJvb3RfNTFmYjI4 NTkgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAg bGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgZGlz cGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICBvdmVy ZmxvdzogaGlkZGVuOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10 aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAucm9vdF9mNjdjNjU1NiB7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAucm9v dF9mNjdjNjU1Ni5pbmxpbmVfZjY3YzY1NTYgew0KICAgICAgb3ZlcmZsb3cteDogaGlkZGVu Ow0KICAgIH0NCg0KICAgIC5yb290X2Y2N2M2NTU2LmFic29sdXRlX2Y2N2M2NTU2IHsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7 DQogICAgICBib3R0b206IDA7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICAucm9v dF9mNjdjNjU1Ni5mdWxsSGVpZ2h0X2Y2N2M2NTU2IHsNCiAgICAgIHBvc2l0aW9uOiByZWxh dGl2ZTsNCiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7DQogICAgICBoZWlnaHQ6IDFweDsNCiAg ICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1 ZSI+DQogICAgLml0ZW1FcnJvcl9mZWRmZDQxYiB7DQogICAgICB0ZXh0LWFsaWduOiBjZW50 ZXI7DQogICAgfQ0KDQogICAgLml0ZW1FcnJvckltYWdlQ29udGFpbmVyX2ZlZGZkNDFiIHsN CiAgICAgIHBhZGRpbmctdG9wOiA1MnB4Ow0KICAgICAgbWFyZ2luOiAwIGF1dG87DQogICAg ICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOw0KICAgIH0N Cg0KICAgIC5pdGVtRXJyb3JJbWFnZV9mZWRmZDQxYiB7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAuaXRlbUVycm9yVGl0bGVfZmVk ZmQ0MWIgew0KICAgICAgcGFkZGluZzogMTZweCAxNnB4IDAgMTZweDsNCiAgICAgIGZvbnQt c2l6ZTogMjFweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7DQogICAgICBtYXgtd2lkdGg6 IDQwMHB4Ow0KICAgICAgY29sb3I6ICM2MDVlNWM7DQogICAgICBtYXJnaW46IDAgYXV0bzsN CiAgICB9DQoNCiAgICAuaXRlbUVycm9yTWVzc2FnZV9mZWRmZDQxYiB7DQogICAgICBwYWRk aW5nOiA2cHggMTZweCAwIDE2cHg7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBm b250LXdlaWdodDogNDAwOw0KICAgICAgbWF4LXdpZHRoOiA0MDBweDsNCiAgICAgIGNvbG9y OiAjNjA1ZTVjOw0KICAgICAgbWFyZ2luOiAwIGF1dG87DQogICAgfQ0KDQogICAgLml0ZW1F cnJvck1lc3NhZ2VfZmVkZmQ0MWIgYSB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAg IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICB9DQoNCiAgICAuaXRlbUVycm9yTWVzc2Fn ZV9mZWRmZDQxYiBhOmZvY3VzLA0KICAgIC5pdGVtRXJyb3JNZXNzYWdlX2ZlZGZkNDFiIGE6 aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDQ1Nzg7DQogICAgfQ0KDQogICAgLml0ZW1FcnJv ckFjdGlvbnNfZmVkZmQ0MWIgew0KICAgICAgbWFyZ2luLXRvcDogMTZweDsNCiAgICB9DQoN CiAgICAuZGVidWdfZmVkZmQ0MWIgew0KICAgICAgY29sb3I6ICNhMTlmOWQ7DQogICAgfQ0K ICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0K ICAgIC5jb21tYW5kQnV0dG9uX2I4MmQ4YWRkIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsN CiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0Ow0KICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7 DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmNvbW1hbmRCdXR0b25fYjgyZDhhZGQgLnNw aW5uZXJfYjgyZDhhZGQgew0KICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7DQogICAgfQ0KDQog ICAgW2Rpcj0icnRsIl0gLmNvbW1hbmRCdXR0b25fYjgyZDhhZGQgLnNwaW5uZXJfYjgyZDhh ZGQgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAg PHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuc2lnbmFsX2Ew MzZjZGJhIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIG1hcmdpbjog MCA0cHg7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAtd2Via2l0LXRyYW5z aXRpb246IGNvbG9yIDAuMnMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4y cyBsaW5lYXI7DQogICAgfQ0KDQogICAgLmRhcmtfYTAzNmNkYmEgLnNpZ25hbF9hMDM2Y2Ri YSwNCiAgICAuc2lnbmFsX2EwMzZjZGJhIC5kYXJrX2EwMzZjZGJhLnNlbGVjdGVkX2EwMzZj ZGJhIHsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIi XSAuc2lnbmFsX2EwMzZjZGJhOmZpcnN0LWNoaWxkIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAw Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuc2lnbmFsX2EwMzZjZGJhOmZpcnN0 LWNoaWxkIHsNCiAgICAgIG1hcmdpbi1yaWdodDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0ibHRyIl0gLnNpZ25hbF9hMDM2Y2RiYTpsYXN0LWNoaWxkIHsNCiAgICAgIG1hcmdpbi1y aWdodDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNpZ25hbF9hMDM2Y2Ri YTpsYXN0LWNoaWxkIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAwOw0KICAgIH0NCg0KICAgIGku c2lnbmFsX2EwMzZjZGJhIHsNCiAgICAgIHRvcDogMC4yZW07DQogICAgfQ0KICA8L3N0eWxl Pg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5zaGFy ZWRQZW9wbGVJY29uX2NkN2I4NDgwIHsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9 DQoNCiAgICAudG9vbHRpcEhvc3RfY2Q3Yjg0ODAgew0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgIH0NCg0KICAgIC5kcm9w VGFyZ2V0X2NkN2I4NDgwIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1p dGVtczogY2VudGVyOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10 aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2RPREJMaWJyYXJpZXNEcm9wZG93bl81OTUz NGM3MiB7DQogICAgICBtYXJnaW4tdG9wOiA2M3B4Ow0KICAgICAgZmxleDogMCAwIGF1dG87 DQogICAgfQ0KDQogICAgLm9kSXRlbXNTY29wZUhlYWRlckNvbnRhaW5lcl81OTUzNGM3MiB7 DQogICAgICBmbGV4OiAwIDAgYXV0bzsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAg ICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdl ZW47DQogICAgICBwYWRkaW5nLWxlZnQ6IDE0cHg7DQogICAgfQ0KDQogICAgLm9kSXRlbXNT Y29wZUhlYWRlckNvbnRhaW5lcl81OTUzNGM3MiAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50 LWhlYWRlci5vZC1JdGVtQ29udGVudC1oZWFkZXIgew0KICAgICAgcGFkZGluZy1ib3R0b206 IDIwcHg7DQogICAgICBmbGV4OiAxIDEgYXV0bzsNCiAgICAgIHBhZGRpbmctbGVmdDogMTJw eDsNCiAgICB9DQoNCiAgICAubGlzdF81OTUzNGM3MiAubXMtRGV0YWlsc0hlYWRlciB7DQog ICAgICBwYWRkaW5nLXRvcDogMDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAubGlz dF81OTUzNGM3MiB7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgbWlu LXdpZHRoOiAxMDAlOw0KICAgICAgZmxleC1ncm93OiAxOw0KICAgICAgbWFyZ2luLXJpZ2h0 OiBhdXRvOw0KICAgICAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50LWJveDsNCiAgICAgIGRp c3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgIH0NCiAg PC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAg ICAubmV3RG9jdW1lbnRDb21tYW5kSWNvbl80OTEzZmQ1NyB7DQogICAgICBoZWlnaHQ6IDE2 cHg7DQogICAgICB3aWR0aDogMTZweDsNCiAgICB9DQoNCiAgICAubmV3RG9jdW1lbnRDb21t YW5kSWNvbl80OTEzZmQ1NyBpbWcgew0KICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsNCiAg ICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0KICAgICNvYmYtVFByb21wdENvbnRhaW5l cjpmb2N1cyB7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgIzYwNWU1YzsNCiAgICB9DQoN CiAgICAjb2JmLVRGb3JtUmF0aW5nIHsNCiAgICAgIGNvbG9yOiAjMzMzOw0KICAgIH0NCg0K ICAgICNvYmYtVEZvcm1Db21tZW50IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7 DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9 InRydWUiPg0KICAgIC5pbnB1dF82MjE5NjE5ZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1 dGU7DQogICAgICB3aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBwYWRk aW5nOiAwOw0KICAgICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsN CiAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7DQogICAgICBib3JkZXI6IDA7DQogICAg fQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUi Pg0KICAgIC5zaGFyaW5nQ29udGVudHNfN2VmNWE1NDggew0KICAgICAgZGlzcGxheTogZmxl eDsNCiAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4Ow0KICAgICAgbWluLXdpZHRoOiAzMjBweDsN CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIH0NCg0KICAgIC5zaGFyaW5n Q29udGVudHNfN2VmNWE1NDgud2lkZV83ZWY1YTU0OCB7DQogICAgICBtaW4td2lkdGg6IDQ4 MHB4Ow0KICAgIH0NCg0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkgew0KICAgICAg LnNoYXJpbmdDb250ZW50c183ZWY1YTU0OC53aWRlXzdlZjVhNTQ4IHsNCiAgICAgICAgbWlu LXdpZHRoOiAzMjBweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuc2hhcmluZ0NvbnRlbnRz XzdlZjVhNTQ4IGlmcmFtZSB7DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICB3aWR0aDog MDsNCiAgICB9DQoNCiAgICAuZXJyb3JDb250YWluZXJfN2VmNWE1NDggew0KICAgICAgcGFk ZGluZzogMjBweDsNCiAgICAgIG1heC13aWR0aDogMjgwcHg7DQogICAgICBmb250LXNpemU6 IDE0cHg7DQogICAgfQ0KDQogICAgLmVycm9yQ29kZV83ZWY1YTU0OCB7DQogICAgICBtYXJn aW4tdG9wOiAzMHB4Ow0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgY29sb3I6ICM2 MDVlNWM7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLmNyZWF0ZWRfMDVh ZDNmMzcgew0KICAgICAgYW5pbWF0aW9uOiBzcGluXzA1YWQzZjM3IDEuMXMgaW5maW5pdGUg bGluZWFyOw0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgc3Bpbl8wNWFkM2YzNyB7DQogICAg ICAwJSB7DQogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOw0KICAgICAgfQ0KDQogICAg ICAxMDAlIHsNCiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsNCiAgICAgIH0N CiAgICB9DQoNCiAgICAuY2xvc2VCdXR0b25fMDVhZDNmMzcgew0KICAgICAgZGlzcGxheTog ZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7DQogICAgICBqdXN0aWZ5LWNvbnRl bnQ6IGZsZXgtZW5kOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICB9DQoNCiAg ICAuYWNjZXNzaWJsZVN0YXR1c18wNWFkM2YzNyB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1 dGU7DQogICAgICB3aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBwYWRk aW5nOiAwOw0KICAgICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsN CiAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7DQogICAgICBib3JkZXI6IDA7DQogICAg fQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUi Pg0KICAgIC5hbGVydF82ZWMyMmZhOCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB3aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBwYWRkaW5nOiAw Ow0KICAgICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAg IGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7DQogICAgICBib3JkZXI6IDA7DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAg IC5hbGVydF85ZDVhNGRhNiB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB3 aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBwYWRkaW5nOiAwOw0KICAg ICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGNsaXA6 IHJlY3QoMCwgMCwgMCwgMCk7DQogICAgICBib3JkZXI6IDA7DQogICAgfQ0KICA8L3N0eWxl Pg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5maWxl VHlwZUljb25fMjczN2FlZmIgew0KICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgICAgb3Zl cmZsb3c6IHZpc2libGU7DQogICAgfQ0KDQogICAgLmZpbGVUeXBlSWNvbkNvbHVtbl8yNzM3 YWVmYiB7DQogICAgICBvdmVyZmxvdzogdmlzaWJsZTsNCiAgICB9DQoNCiAgICAuZmlsZVR5 cGVJY29uSGVhZGVyXzI3MzdhZWZiIC5tcy1EZXRhaWxzSGVhZGVyLWNlbGxOYW1lIHsNCiAg ICAgIHRleHQtb3ZlcmZsb3c6IGluaXRpYWw7DQogICAgICBvdmVyZmxvdzogdmlzaWJsZTsN CiAgICB9DQoNCiAgICAuZmlsZVR5cGVJY29uSGVhZGVyXzI3MzdhZWZiIC5maWxlVHlwZUlj b25fMjczN2FlZmIgew0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAucm9v dF9jOWY4YmQwYSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICAucm9v dF9jOWY4YmQwYT5pbWcgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAg LnJvb3RfYzlmOGJkMGEuaW5zZXQyNF9jOWY4YmQwYSB7DQogICAgICBwYWRkaW5nOiAycHg7 DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9 InRydWUiPg0KICAgIC5pY29uX2NjNzJjNDgzIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0K ICAgICAgb3ZlcmZsb3c6IHZpc2libGU7DQogICAgfQ0KDQogICAgLm9kM1N0eWxlSWNvbl9j YzcyYzQ4MyB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG92ZXJmbG93OiB2aXNp YmxlOw0KICAgICAgbWFyZ2luOiAtNnB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxl IGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuZmllbGRfZGM3YmEwZmUg ew0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAgdGV4dC1vdmVyZmxvdzog ZWxsaXBzaXM7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5kaXNw bGF5X2RjN2JhMGZlIHsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7DQogICAgfQ0KDQogICAgLm5vZmlsbF9kYzdiYTBmZSB7DQogICAgICBw b3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgd2hp dGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAg IH0NCg0KICAgIC5kaXNhYmxlZEZpZWxkX2RjN2JhMGZlIHsNCiAgICAgIG9wYWNpdHk6IDAu NDsNCiAgICB9DQoNCiAgICAuZmllbGRUZXh0X2RjN2JhMGZlIHsNCiAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgdGV4dC1vdmVy ZmxvdzogZWxsaXBzaXM7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2Fk LXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vdmVyZmxvd184NWVkMjIzYyB7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQog ICAgfQ0KDQogICAgLnByZV84NWVkMjIzYyB7DQogICAgICB3aGl0ZS1zcGFjZTogcHJlOw0K ICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0 cnVlIj4NCiAgICAuc2lnbmFsRmllbGRfYjllNzQzNzEgew0KICAgICAgbWF4LXdpZHRoOiAx MDAlOw0KICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOw0KICAgICAgLXdl YmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQogICAgICAtbXMtZmxleC1kaXJlY3Rpb246 IHJvdyBub3dyYXA7DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93IG5vd3JhcDsNCiAgICB9 DQoNCiAgICAuc2lnbmFsRmllbGRfYjllNzQzNzEsDQogICAgLnNpZ25hbEZpZWxkX2I5ZTc0 MzcxLmNvbXBhY3RfYjllNzQzNzEgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUt Ym94Ow0KICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94Ow0KICAgICAgZGlzcGxh eTogaW5saW5lLWZsZXg7DQogICAgfQ0KDQogICAgLnNpZ25hbEZpZWxkX2I5ZTc0MzcxLndp ZGVfYjllNzQzNzEgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNw bGF5OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICB2ZXJ0aWNh bC1hbGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5zaWduYWxGaWVsZFZhbHVlX2I5ZTc0Mzcx IHsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6IGhp ZGRlbjsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICAtd2Via2l0LWJveC1m bGV4OiAxOw0KICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvOw0KICAgICAgZmxleDogMSAxIGF1 dG87DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5zaWduYWxGaWVsZFZhbHVlX2I5 ZTc0MzcxIHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtk aXI9InJ0bCJdIC5zaWduYWxGaWVsZFZhbHVlX2I5ZTc0MzcxIHsNCiAgICAgIHRleHQtYWxp Z246IHJpZ2h0Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVt ZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAucm9vdF9mOTllODAzYyB7DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsN CiAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiAidG91Y2giOw0KICAgIH0NCiAg PC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAg ICAucm9vdF80ZGEzODQ0MiB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24t aXRlbXM6IGNlbnRlcjsNCiAgICB9DQoNCiAgICAucm93XzRkYTM4NDQyIHsNCiAgICAgIGhl aWdodDogODBweDsNCiAgICB9DQoNCiAgICAubG9hZE1vcmVJdGVtc0J1dHRvbl80ZGEzODQ0 MiB7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC5sb2FkTW9yZUl0ZW1zQnV0dG9uXzRkYTM4NDQyIHsNCiAgICAgIHBhZGRpbmctbGVmdDog NTZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAubG9hZE1vcmVJdGVtc0J1dHRvbl80 ZGEzODQ0MiB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA1NnB4Ow0KICAgIH0NCg0KICAgIFtk aXI9Imx0ciJdIC5zcGlubmVyXzRkYTM4NDQyIHsNCiAgICAgIHBhZGRpbmctbGVmdDogNjBw eDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuc3Bpbm5lcl80ZGEzODQ0MiB7DQogICAg ICBwYWRkaW5nLXJpZ2h0OiA2MHB4Ow0KICAgIH0NCg0KICAgIC50aWxlXzRkYTM4NDQyIHsN CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6 IDA7DQogICAgICBib3R0b206IDA7DQogICAgICByaWdodDogMDsNCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLml0 ZW1TZXREZXRhaWxzTGlzdF85ODA4Y2QxMSAubXMtRGV0YWlsc1Jvdy1jZWxsIGRpdiB7DQog ICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAg IGhlaWdodDogMTAwJTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQt dGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgW2Rpcj0ibHRyIl0gLmJyZWFkY3J1bWJTaG9y dGN1dEljb25fZjcyNDNjMDMgew0KICAgICAgcGFkZGluZy1yaWdodDogOHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5icmVhZGNydW1iU2hvcnRjdXRJY29uX2Y3MjQzYzAzIHsN CiAgICAgIHBhZGRpbmctbGVmdDogOHB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxl IGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuaW1hZ2VfOTgwYWI3MjAg ew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUg ZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5yb290XzFiMTIwMzYxIHsN CiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0KICAgIC5zaG93QWxsQ2VsbF8xYjEy MDM2MSB7DQogICAgICBwb3NpdGlvbjogInJlbGF0aXZlIjsNCiAgICAgIHBhZGRpbmc6ICIx MHB4IDg0cHgiOw0KICAgICAgY3Vyc29yOiAicG9pbnRlciI7DQogICAgfQ0KICA8L3N0eWxl Pg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC50YXJn ZXRfOGJiYWU5MGYgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgLmhv c3RfOGJiYWU5MGYgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDog MDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgdG9wOiAwOw0K ICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5 bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5jbGlja2FibGVTaGFy ZWRGaWVsZF8wODUwY2QzNSB7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQog ICAgLmNsaWNrYWJsZVNoYXJlZEZpZWxkXzA4NTBjZDM1OmhvdmVyIHsNCiAgICAgIHRleHQt ZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KICAgIH0NCg0KICAgIC5zaGFyZWRGaWVsZFJlbmRl cl8wODUwY2QzNSB7DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICB0ZXh0 LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0K DQogICAgLnNoYXJlZEZpZWxkUmVuZGVyXzA4NTBjZDM1Pmkgew0KICAgICAgdmVydGljYWwt YWxpZ246IG1pZGRsZTsNCiAgICB9DQoNCiAgICAub2QtSXRlbVNldERldGFpbHNMaXN0VjIg LnNoYXJlZEZpZWxkUmVuZGVyXzA4NTBjZDM1Pmkgew0KICAgICAgcGFkZGluZy10b3A6IDFw eDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtSXRlbVNldERldGFpbHNMaXN0VjIg LnNoYXJlZEZpZWxkUmVuZGVyXzA4NTBjZDM1Pmkgew0KICAgICAgcGFkZGluZy1yaWdodDog NHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1JdGVtU2V0RGV0YWlsc0xpc3RW MiAuc2hhcmVkRmllbGRSZW5kZXJfMDg1MGNkMzU+aSB7DQogICAgICBwYWRkaW5nLWxlZnQ6 IDRweDsNCiAgICB9DQoNCiAgICAuc2hhcmVkRmllbGRQbGFjZUhvbGRlcl8wODUwY2QzNSB7 DQogICAgICBwYWRkaW5nOiAwIDZweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBk YXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm5hbWVEaWFsb2dEZXNjcmlw dGlvbl9hZDRjNjA3MCB7DQogICAgICBiYWNrZ3JvdW5kOiAjZGVlY2Y5Ow0KICAgICAgaGVp Z2h0OiA0MHB4Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIHBhZGRpbmc6IDhweCAx MnB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIG92ZXJmbG93OiBoaWRk ZW47DQogICAgICBhbmltYXRpb24tbmFtZTogb3BlbkFuaW1hdGlvbl9hZDRjNjA3MDsNCiAg ICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7DQogICAgICBhbmltYXRpb24tZmlsbC1t b2RlOiBib3RoOw0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgIH0NCg0KICAgIEBr ZXlmcmFtZXMgb3BlbkFuaW1hdGlvbl9hZDRjNjA3MCB7DQogICAgICBmcm9tIHsNCiAgICAg ICAgbWluLWhlaWdodDogMDsNCiAgICAgICAgbWF4LWhlaWdodDogMDsNCiAgICAgIH0NCg0K ICAgICAgdG8gew0KICAgICAgICBtaW4taGVpZ2h0OiAzMnB4Ow0KICAgICAgICBtYXgtaGVp Z2h0OiA2NHB4Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5uYW1lRGlhbG9nRGVzY3JpcHRp b25JY29uX2FkNGM2MDcwIHsNCiAgICAgIGNvbG9yOiAjNjA1ZTVjOw0KICAgICAgcG9pbnRl ci1ldmVudHM6IG5vbmU7DQogICAgICBwYWRkaW5nOiA1cHggNnB4IDAgMnB4Ow0KICAgICAg dGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAgICAgcG9zaXRp b246IHJlbGF0aXZlOw0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtd3JhcDog bm93cmFwOw0KICAgICAgZmxleC1zaHJpbms6IDA7DQogICAgICBmb250LXNpemU6IDE2cHg7 DQogICAgICBsaW5lLWhlaWdodDogMTZweDsNCiAgICB9DQoNCiAgICAubmFtZURpYWxvZ0Rl c2NyaXB0aW9uVGV4dF9hZDRjNjA3MCB7DQogICAgICBjb2xvcjogIzMyMzEzMDsNCiAgICAg IHBhZGRpbmc6IDRweDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnJv b3RfMGM4MGRmNTEgew0KICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOw0KICAgICAg ZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsNCiAg ICB9DQoNCiAgICAudmF1bHRDb3ZlcklzU21hbGxfMGM4MGRmNTEgew0KICAgICAgd2lkdGg6 IDcycHg7DQogICAgICBoZWlnaHQ6IDUycHg7DQogICAgfQ0KDQogICAgLnZhdWx0Q292ZXJJ c0xhcmdlXzBjODBkZjUxIHsNCiAgICAgIHdpZHRoOiAxMTJweDsNCiAgICAgIGhlaWdodDog ODBweDsNCiAgICB9DQoNCiAgICAuY292ZXJfMGM4MGRmNTEgew0KICAgICAgZGlzcGxheTog YmxvY2s7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBwYWRkaW5nLWJvdHRv bTogMTJweDsNCiAgICAgIGxlZnQ6IC0zcHg7DQogICAgICByaWdodDogLTNweDsNCiAgICAg IGJvdHRvbTogLTRweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQt dGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLmZpbGVIYW5kbGVyRmlsZVR5cGVJY29uXzll MTY5ODNlIHsNCiAgICAgIHdpZHRoOiBpbmhlcml0Ow0KICAgICAgaGVpZ2h0OiBpbmhlcml0 Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVz PSJ0cnVlIj4NCiAgICAuSUZyYW1lRGlhbG9nXzA5YzkzOGZmIC5tcy1EaWFsb2ctbWFpbiB7 DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIG1heC13aWR0aDogNjAwcHg7DQogICAgfQ0K DQogICAgLklGcmFtZURpYWxvZ18wOWM5MzhmZiBpZnJhbWUgew0KICAgICAgYm9yZGVyOiBu b25lOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUg ZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5pY29uQ29udGFpbmVyXzcz ZDkxNzY5IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGZvbnQtc2l6ZTog MTZweDsNCiAgICAgIG1hcmdpbjogMCA0cHg7DQogICAgICBoZWlnaHQ6IDE2cHg7DQogICAg ICB3aWR0aDogMTZweDsNCiAgICB9DQoNCiAgICAuYnJhbmRJY29uXzczZDkxNzY5IHsNCiAg ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIG1hcmdpbjogMCA0cHg7DQogICAgICBo ZWlnaHQ6IDE2cHg7DQogICAgICB3aWR0aDogMTZweDsNCiAgICB9DQoNCiAgICAuYnJhbmRJ Y29uXzczZDkxNzY5IGltZyB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAg ICAubWVudUl0ZW1JY29uQ29udGFpbmVyXzczZDkxNzY5IHsNCiAgICAgIHBvc2l0aW9uOiBy ZWxhdGl2ZTsNCiAgICAgIG1hcmdpbjogMCA0cHg7DQogICAgICBoZWlnaHQ6IDM2cHg7DQog ICAgICBsaW5lLWhlaWdodDogMzZweDsNCiAgICAgIHdpZHRoOiAxNHB4Ow0KICAgIH0NCg0K ICAgIC5sb2dvRmlsbEljb25fNzNkOTE3NjksDQogICAgLmxvZ29JY29uXzczZDkxNzY5IHsN CiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICAubG9nb0ZpbGxJY29u XzczZDkxNzY5W2RhdGEtaWNvbi1uYW1lPSJFeGNlbExvZ28xNiJdLA0KICAgIC5sb2dvSWNv bl83M2Q5MTc2OVtkYXRhLWljb24tbmFtZT0iRXhjZWxMb2dvMTYiXSB7DQogICAgICBjb2xv cjogIzIxNzM0NjsNCiAgICB9DQoNCiAgICAubG9nb0ZpbGxJY29uXzczZDkxNzY5W2RhdGEt aWNvbi1uYW1lPSJPbmVOb3RlTG9nbzE2Il0sDQogICAgLmxvZ29JY29uXzczZDkxNzY5W2Rh dGEtaWNvbi1uYW1lPSJPbmVOb3RlTG9nbzE2Il0gew0KICAgICAgY29sb3I6ICM1YzJkOTE7 DQogICAgfQ0KDQogICAgLmxvZ29GaWxsSWNvbl83M2Q5MTc2OVtkYXRhLWljb24tbmFtZT0i UG93ZXJQb2ludExvZ28xNiJdLA0KICAgIC5sb2dvSWNvbl83M2Q5MTc2OVtkYXRhLWljb24t bmFtZT0iUG93ZXJQb2ludExvZ28xNiJdIHsNCiAgICAgIGNvbG9yOiAjZDI0NzI2Ow0KICAg IH0NCg0KICAgIC5sb2dvRmlsbEljb25fNzNkOTE3NjlbZGF0YS1pY29uLW5hbWU9IldvcmRM b2dvMTYiXSwNCiAgICAubG9nb0ljb25fNzNkOTE3NjlbZGF0YS1pY29uLW5hbWU9IldvcmRM b2dvMTYiXSB7DQogICAgICBjb2xvcjogIzJiNTc5YTsNCiAgICB9DQoNCiAgICAubG9nb0Zp bGxJY29uXzczZDkxNzY5W2RhdGEtaWNvbi1uYW1lPSJWaXNpb0xvZ28xNiJdLA0KICAgIC5s b2dvSWNvbl83M2Q5MTc2OVtkYXRhLWljb24tbmFtZT0iVmlzaW9Mb2dvMTYiXSB7DQogICAg ICBjb2xvcjogIzM4NTRhMjsNCiAgICB9DQoNCiAgICAubG9nb0ZpbGxJY29uXzczZDkxNzY5 IHsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgIH0NCg0KICAgIC5jb250ZXh0dWFsTWVudUl0 ZW1MaW5rQ29udGVudF83M2Q5MTc2OSB7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0K ICAgICAgaGVpZ2h0OiBpbmhlcml0Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFs aWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBtYXgtd2lkdGg6IDEwMCU7DQogICAgfQ0KDQog ICAgLmNvbnRleHR1YWxNZW51SXRlbVRleHRMYWJlbF83M2Q5MTc2OSB7DQogICAgICBtYXJn aW46IDAgNHB4Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAgIGRpc3Bs YXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZsZXgtZ3JvdzogMTsNCiAgICAgIHRleHQtb3Zl cmZsb3c6IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHdoaXRl LXNwYWNlOiBub3dyYXA7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2Fk LXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIFtkYXRhLXRoZW1lPSJmbHVlbnQtbGlnaHQi XSB7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQ0MDogIzBjM2I1ZTsNCiAgICAgIC0tZ2xv YmFsQ29sb3JCcmFuZDYwOiAjMGY1NDhjOw0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kNzA6 ICMxMTVlYTM7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQ4MDogIzBmNmNiZDsNCiAgICAg IC0tZ2xvYmFsQ29sb3JCcmFuZDkwOiAjMjg4NmRlOw0KICAgICAgLS1nbG9iYWxDb2xvckJy YW5kMTAwOiAjNDc5ZWY1Ow0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kMTMwOiAjOTZjNmZh Ow0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kMTQwOiAjYjRkNmZhOw0KICAgICAgLS1nbG9i YWxDb2xvckJyYW5kMTUwOiAjY2ZlNGZhOw0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kMTYw OiAjZWJmM2ZjOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXkxNDogIzI0MjQyNDsNCiAgICAg IC0tZ2xvYmFsQ29sb3JHcmV5MjA6ICMzMzMzMzM7DQogICAgICAtLWdsb2JhbENvbG9yR3Jl eTI2OiAjNDI0MjQyOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXkzODogIzYxNjE2MTsNCiAg ICAgIC0tZ2xvYmFsQ29sb3JHcmV5NDQ6ICM3MDcwNzA7DQogICAgICAtLWdsb2JhbENvbG9y R3JleTcwOiAjYjNiM2IzOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk3NDogI2JkYmRiZDsN CiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5Nzg6ICNjN2M3Yzc7DQogICAgICAtLWdsb2JhbENv bG9yR3JleTgyOiAjZDFkMWQxOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk4NDogI2Q2ZDZk NjsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5ODg6ICNlMGUwZTA7DQogICAgICAtLWdsb2Jh bENvbG9yR3JleTkyOiAjZWJlYmViOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk5NDogI2Yw ZjBmMDsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5OTY6ICNmNWY1ZjU7DQogICAgICAtLWds b2JhbENvbG9yR3JleTk4OiAjZmFmYWZhOw0KICAgICAgLS1nbG9iYWxDb2xvckJsYWNrQWxw aGExMDogIzAwMDAwMDFhOw0KICAgICAgLS1nbG9iYWxDb2xvckJsYWNrOiAjMDAwMDAwOw0K ICAgICAgLS1nbG9iYWxDb2xvcldoaXRlOiAjZmZmZmZmOw0KICAgICAgLS1jb2xvckJyYW5k Rm9yZWdyb3VuZDE6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ4MCk7DQogICAgICAtLWNvbG9y TmV1dHJhbEZvcmVncm91bmQyOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkyNik7DQogICAgICAt LWNvbG9yTmV1dHJhbEZvcmVncm91bmQzOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkzOCk7DQog ICAgICAtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzSG92ZXI6IHZhcigtLWdsb2JhbENvbG9y R3JleTI2KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDQ6IHZhcigtLWdsb2Jh bENvbG9yR3JleTQ0KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVk OiB2YXIoLS1nbG9iYWxDb2xvckdyZXk3NCk7DQogICAgICAtLWNvbG9yQnJhbmRGb3JlZ3Jv dW5kTGluazogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDcwKTsNCiAgICAgIC0tY29sb3JCcmFu ZEZvcmVncm91bmRMaW5rSG92ZXI6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ2MCk7DQogICAg ICAtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kTGlua1ByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9y QnJhbmQ0MCk7DQogICAgICAtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kTGlua1NlbGVjdGVkOiB2 YXIoLS1nbG9iYWxDb2xvckJyYW5kNzApOw0KICAgICAgLS1jb2xvckNvbXBvdW5kQnJhbmRG b3JlZ3JvdW5kMTogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDgwKTsNCiAgICAgIC0tY29sb3JD b21wb3VuZEJyYW5kRm9yZWdyb3VuZDFIb3ZlcjogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDcw KTsNCiAgICAgIC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFQcmVzc2VkOiB2YXIo LS1nbG9iYWxDb2xvckJyYW5kNjApOw0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5k SW52ZXJ0ZWQ6IHZhcigtLWdsb2JhbENvbG9yV2hpdGUpOw0KICAgICAgLS1jb2xvck5ldXRy YWxGb3JlZ3JvdW5kSW52ZXJ0ZWRMaW5rOiB2YXIoLS1nbG9iYWxDb2xvcldoaXRlKTsNCiAg ICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDE6IHZhcigtLWdsb2JhbENvbG9yR3JleTE0 KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJIb3ZlcjogdmFyKC0tZ2xvYmFs Q29sb3JHcmV5MTQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMlByZXNzZWQ6 IHZhcigtLWdsb2JhbENvbG9yR3JleTE0KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdy b3VuZDJCcmFuZFByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ5MCk7DQogICAgICAt LWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kOiB2YXIoLS1nbG9iYWxDb2xvcldoaXRl KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZFN0YXRpYzogdmFyKC0tZ2xvYmFs Q29sb3JHcmV5MjApOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMVByZXNzZWQ6 IHZhcigtLWdsb2JhbENvbG9yR3JleTg4KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dy b3VuZDNIb3ZlcjogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5OTIpOw0KICAgICAgLS1jb2xvck5l dXRyYWxCYWNrZ3JvdW5kM1ByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yR3JleTg0KTsNCiAg ICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDE6IHZhcigtLWdsb2JhbENvbG9yV2hpdGUp Ow0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMjogdmFyKC0tZ2xvYmFsQ29sb3JH cmV5OTgpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMzogdmFyKC0tZ2xvYmFs Q29sb3JHcmV5OTYpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kNDogdmFyKC0t Z2xvYmFsQ29sb3JHcmV5OTQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kNTog dmFyKC0tZ2xvYmFsQ29sb3JHcmV5OTIpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3Jv dW5kNUhvdmVyOiB2YXIoLS1nbG9iYWxDb2xvckdyZXk5Nik7DQogICAgICAtLWNvbG9yTmV1 dHJhbEJhY2tncm91bmQ1UHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5OTQpOw0KICAg ICAgLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgICAt LWNvbG9yTmV1dHJhbEJhY2tncm91bmQxSG92ZXI6IHZhcigtLWdsb2JhbENvbG9yR3JleTk2 KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsU3Ryb2tlRGlzYWJsZWQ6IHZhcigtLWdsb2JhbENv bG9yR3JleTg4KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZERpc2FibGVkOiB2 YXIoLS1nbG9iYWxDb2xvckdyZXk5NCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91 bmQ2OiAjZmZmZmZmMzM7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ3OiAjZmZm ZmZmNGQ7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ4OiAjZmZmZmZmNjY7DQog ICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ5OiAjN2M1NWNlMGY7DQogICAgICAtLWNv bG9yTmV1dHJhbEJhY2tncm91bmQxMDogIzI4YWJmNTAzOw0KICAgICAgLS1jb2xvck5ldXRy YWxCYWNrZ3JvdW5kMTE6ICMwMDAwMDAwYTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dy b3VuZDEyOiAjMDAwMDAwMGM7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxMzog IzAwMDAwMDI4Ow0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMTQ6ICMwMDAwMDAx NDsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDE1OiAjZDJkNWQ2Ow0KICAgICAg LS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMTc6ICNjZWNiZDU7DQogICAgICAtLWNvbG9yTmV1 dHJhbEJhY2tncm91bmQxNjogI2M5YzZkMDsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dy b3VuZDE4OiAjY2RkMGQxOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kQWxwaGEz SG92ZXI6ICMwMDAwMDAwZjsNCiAgICAgIC0tY29sb3JOZXV0cmFsRGFya0JhY2tncm91bmRB bHBoYTNQcmVzc2VkOiB2YXIoLS1nbG9iYWxDb2xvckJsYWNrQWxwaGExMCk7DQogICAgICAt LWZvbnRTaXplQmFzZTEwMDogMTBweDsNCiAgICAgIC0tZm9udFNpemVCYXNlMjAwOiAxMnB4 Ow0KICAgICAgLS1mb250U2l6ZUJhc2UzMDA6IDE0cHg7DQogICAgICAtLWZvbnRTaXplQmFz ZTQwMDogMTZweDsNCiAgICAgIC0tZm9udFdlaWdodFNlbWlib2xkOiA2MDA7DQogICAgICAt LWJvcmRlclJhZGl1c1NtYWxsOiAycHg7DQogICAgICAtLWJvcmRlclJhZGl1c01lZGl1bTog NHB4Ow0KICAgICAgLS1ib3JkZXJSYWRpdXNMYXJnZTogNnB4Ow0KICAgICAgLS1ib3JkZXJS YWRpdXNYTGFyZ2U6IDhweDsNCiAgICAgIC0tYm9yZGVyUmFkaXVzQ2lyY3VsYXI6IDEwMDAw cHg7DQogICAgICAtLWxpbmVIZWlnaHRCYXNlMzAwOiAyMHB4Ow0KICAgICAgLS1jb2xvclRy YW5zcGFyZW50U3Ryb2tlOiB0cmFuc3BhcmVudDsNCiAgICAgIC0tY29sb3JOZXV0cmFsU3Ry b2tlMTogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5ODIpOw0KICAgICAgLS1jb2xvck5ldXRyYWxT dHJva2UxSG92ZXI6IHZhcigtLWdsb2JhbENvbG9yR3JleTc4KTsNCiAgICAgIC0tY29sb3JO ZXV0cmFsU3Ryb2tlMVByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yR3JleTcwKTsNCiAgICAg IC0tY29sb3JCcmFuZEJhY2tncm91bmQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ4MCk7DQog ICAgICAtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kMjogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDE2 MCk7DQogICAgICAtLWNvbG9yTmV1dHJhbFN0cm9rZTM6IHZhcigtLWdsb2JhbENvbG9yR3Jl eTk0KTsNCiAgICAgIC0tY29sb3JCcmFuZEJhY2tncm91bmQySG92ZXI6IHZhcigtLWdsb2Jh bENvbG9yQnJhbmQxNTApOw0KICAgICAgLS1jb2xvckJyYW5kQmFja2dyb3VuZDJQcmVzc2Vk OiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kMTMwKTsNCiAgICAgIC0tY29sb3JCcmFuZEJhY2tn cm91bmRJbnZlcnRlZFByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQxNDApOw0KICAg ICAgLS1jb2xvck5ldXRyYWxTdHJva2UyOiB2YXIoLS1nbG9iYWxDb2xvckdyZXk4OCk7DQog ICAgICAtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVTZWxlY3RlZDogdmFyKC0tZ2xv YmFsQ29sb3JCcmFuZDgwKTsNCiAgICAgIC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlOiB2 YXIoLS1nbG9iYWxDb2xvckJyYW5kODApOw0KICAgICAgLS1jb2xvckNvbXBvdW5kQnJhbmRT dHJva2VIb3ZlcjogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDcwKTsNCiAgICAgIC0tY29sb3JD b21wb3VuZEJyYW5kU3Ryb2tlUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDYwKTsN CiAgICAgIC0tY29sb3JTdHJva2VGb2N1czI6IHZhcigtLWdsb2JhbENvbG9yQmxhY2spOw0K ICAgICAgLS1jb2xvclN0cm9rZUZvY3VzMzogIzAwMDAwMDBkOw0KICAgICAgLS1zaGFkb3c0 OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCByZ2JhKDAsIDAsIDAs IDAuMTQpOw0KICAgICAgLS1zaGFkb3cyODogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMTIp LCAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE0KTsNCiAgICAgIC0tc2hhZG93RWxldmF0 aW9uMjogMHB4IDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwNCiAgICAgICAgMHB4IDBw eCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsNCiAgICAgIC0tc2hhZG93RWxldmF0aW9uNDog MHB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwNCiAgICAgICAgMHB4IDBweCAycHgg cmdiYSgwLCAwLCAwLCAwLjEyKTsNCiAgICAgIC0tZm9udEZhbWlseUJhc2U6ICJTZWdvZSBV SSIsICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwNCiAgICAgICAgLWFwcGxlLXN5 c3RlbSwgQmxpbmtNYWNTeXN0ZW0tLWZvbnQsIFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwN CiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICAgIC0tZHVyYXRpb25GYXN0ZXI6IDEwMG1zOw0K ICAgICAgLS1kdXJhdGlvbkZhc3Q6IDE1MG1zOw0KICAgICAgLS1kdXJhdGlvbk5vcm1hbDog MjAwbXM7DQogICAgICAtLWR1cmF0aW9uU2xvdzogMzAwbXM7DQogICAgICAtLWR1cmF0aW9u U2xvd2VyOiA0MDBtczsNCiAgICAgIC0tY3VydmVEZWNlbGVyYXRlTWF4OiBjdWJpYy1iZXpp ZXIoMCwgMCwgMCwgMSk7DQogICAgICAtLWN1cnZlRWFzeUVhc2VNYXg6IGN1YmljLWJlemll cigwLjgsIDAsIDAuMSwgMSk7DQogICAgICAtLWN1cnZlRGVjZWxlcmF0ZU1pZDogY3ViaWMt YmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgICAgLS1jdXJ2ZURlY2VsZXJhdGVNaW46 IGN1YmljLWJlemllcigwLjMzLCAwLCAwLjEsIDEpOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAg PHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICBbZGF0YS10aGVt ZT0iZmx1ZW50LWRhcmsiXSB7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQxMDogIzA2MTcy NDsNCiAgICAgIC0tZ2xvYmFsQ29sb3JCcmFuZDIwOiAjMDgyMzM4Ow0KICAgICAgLS1nbG9i YWxDb2xvckJyYW5kNDA6ICMwYzNiNWU7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQ3MDog IzExNWVhMzsNCiAgICAgIC0tZ2xvYmFsQ29sb3JCcmFuZDkwOiAjMjg4NmRlOw0KICAgICAg LS1nbG9iYWxDb2xvckJyYW5kMTAwOiAjNDc5ZWY1Ow0KICAgICAgLS1nbG9iYWxDb2xvckJy YW5kMTEwOiAjNjJhYmY1Ow0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kMTQwOiAjYjRkNmZh Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk0OiAjMGEwYTBhOw0KICAgICAgLS1nbG9iYWxD b2xvckdyZXk4OiAjMTQxNDE0Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXkxMjogIzFmMWYx ZjsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5MTQ6ICMyNDI0MjQ7DQogICAgICAtLWdsb2Jh bENvbG9yR3JleTE2OiAjMjkyOTI5Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXkyNDogIzNk M2QzZDsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5MzI6ICM1MjUyNTI7DQogICAgICAtLWds b2JhbENvbG9yR3JleTM2OiAjNWM1YzVjOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk0MDog IzY2NjY2NjsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5NDI6ICM2YjZiNmI7DQogICAgICAt LWdsb2JhbENvbG9yR3JleTQ2OiAjNzU3NTc1Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk2 MDogIzk5OTk5OTsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5Njg6ICNhZGFkYWQ7DQogICAg ICAtLWdsb2JhbENvbG9yR3JleTg0OiAjZDZkNmQ2Ow0KICAgICAgLS1nbG9iYWxDb2xvcldo aXRlQWxwaGExMDogI2ZmZmZmZjFhOw0KICAgICAgLS1nbG9iYWxDb2xvcldoaXRlOiAjZmZm ZmZmOw0KICAgICAgLS1nbG9iYWxDb2xvckJsYWNrOiAjMDAwMDAwOw0KICAgICAgLS1jb2xv ckJyYW5kRm9yZWdyb3VuZDE6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQxMDApOw0KICAgICAg LS1jb2xvckJyYW5kRm9yZWdyb3VuZExpbms6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQxMDAp Ow0KICAgICAgLS1jb2xvckJyYW5kRm9yZWdyb3VuZExpbmtIb3ZlcjogdmFyKC0tZ2xvYmFs Q29sb3JCcmFuZDExMCk7DQogICAgICAtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kTGlua1ByZXNz ZWQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ5MCk7DQogICAgICAtLWNvbG9yQnJhbmRGb3Jl Z3JvdW5kTGlua1NlbGVjdGVkOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kMTAwKTsNCiAgICAg IC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDE6IHZhcigtLWdsb2JhbENvbG9yQnJh bmQxMDApOw0KICAgICAgLS1jb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMUhvdmVyOiB2 YXIoLS1nbG9iYWxDb2xvckJyYW5kMTEwKTsNCiAgICAgIC0tY29sb3JDb21wb3VuZEJyYW5k Rm9yZWdyb3VuZDFQcmVzc2VkOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kOTApOw0KICAgICAg LS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWQ6IHZhcigtLWdsb2JhbENvbG9yR3Jl eTE0KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkTGluazogdmFy KC0tZ2xvYmFsQ29sb3JXaGl0ZSk7DQogICAgICAtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQx OiB2YXIoLS1nbG9iYWxDb2xvcldoaXRlKTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdy b3VuZDI6IHZhcigtLWdsb2JhbENvbG9yR3JleTg0KTsNCiAgICAgIC0tY29sb3JOZXV0cmFs Rm9yZWdyb3VuZERpc2FibGVkOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkzNik7DQogICAgICAt LWNvbG9yTmV1dHJhbEZvcmVncm91bmQyQnJhbmRQcmVzc2VkOiB2YXIoLS1nbG9iYWxDb2xv ckJyYW5kOTApOw0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkhvdmVyOiB2YXIo LS1nbG9iYWxDb2xvcldoaXRlKTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJQ cmVzc2VkOiB2YXIoLS1nbG9iYWxDb2xvcldoaXRlKTsNCiAgICAgIC0tY29sb3JOZXV0cmFs Rm9yZWdyb3VuZDM6IHZhcigtLWdsb2JhbENvbG9yR3JleTY4KTsNCiAgICAgIC0tY29sb3JO ZXV0cmFsRm9yZWdyb3VuZDNIb3ZlcjogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5ODQpOw0KICAg ICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kNDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5NjAp Ow0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZDogdmFyKC0tZ2xvYmFs Q29sb3JXaGl0ZSk7DQogICAgICAtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kOiB2YXIoLS1nbG9i YWxDb2xvckJyYW5kNzApOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kU3RhdGlj OiB2YXIoLS1nbG9iYWxDb2xvckdyZXkyNCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tn cm91bmQxUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5MTIpOw0KICAgICAgLS1jb2xv ck5ldXRyYWxCYWNrZ3JvdW5kM0hvdmVyOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkxNik7DQog ICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQzUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29s b3JHcmV5NCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxOiB2YXIoLS1nbG9i YWxDb2xvckdyZXkxNik7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQyOiB2YXIo LS1nbG9iYWxDb2xvckdyZXkxMik7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQz OiB2YXIoLS1nbG9iYWxDb2xvckdyZXk4KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dy b3VuZDQ6IHZhcigtLWdsb2JhbENvbG9yR3JleTQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxC YWNrZ3JvdW5kNTogdmFyKC0tZ2xvYmFsQ29sb3JCbGFjayk7DQogICAgICAtLWNvbG9yTmV1 dHJhbEJhY2tncm91bmQ1SG92ZXI6IHZhcigtLWdsb2JhbENvbG9yR3JleTgpOw0KICAgICAg LS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kNVByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yR3Jl eTIpOw0KICAgICAgLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7 DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxSG92ZXI6IHZhcigtLWdsb2JhbENv bG9yR3JleTI0KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZERpc2FibGVkOiB2 YXIoLS1nbG9iYWxDb2xvckdyZXk4KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3Vu ZDY6ICMwMDAwMDAzMzsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDc6ICMwMDAw MDA0ZDsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDg6ICMwMDAwMDA2NjsNCiAg ICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZEFscGhhM0hvdmVyOiAjZmZmZmZmMGY7DQog ICAgICAtLWNvbG9yTmV1dHJhbERhcmtCYWNrZ3JvdW5kQWxwaGEzUHJlc3NlZDogdmFyKC0t Z2xvYmFsQ29sb3JXaGl0ZUFscGhhMTApOw0KICAgICAgLS1mb250U2l6ZUJhc2UxMDA6IDEw cHg7DQogICAgICAtLWZvbnRTaXplQmFzZTIwMDogMTJweDsNCiAgICAgIC0tZm9udFNpemVC YXNlMzAwOiAxNHB4Ow0KICAgICAgLS1mb250U2l6ZUJhc2U0MDA6IDE2cHg7DQogICAgICAt LWZvbnRXZWlnaHRTZW1pYm9sZDogNjAwOw0KICAgICAgLS1ib3JkZXJSYWRpdXNTbWFsbDog MnB4Ow0KICAgICAgLS1ib3JkZXJSYWRpdXNNZWRpdW06IDRweDsNCiAgICAgIC0tYm9yZGVy UmFkaXVzTGFyZ2U6IDZweDsNCiAgICAgIC0tYm9yZGVyUmFkaXVzWExhcmdlOiA4cHg7DQog ICAgICAtLWJvcmRlclJhZGl1c0NpcmN1bGFyOiAxMDAwMHB4Ow0KICAgICAgLS1saW5lSGVp Z2h0QmFzZTMwMDogMjBweDsNCiAgICAgIC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZTogdHJh bnNwYXJlbnQ7DQogICAgICAtLWNvbG9yTmV1dHJhbFN0cm9rZTE6IHZhcigtLWdsb2JhbENv bG9yR3JleTQwKTsNCiAgICAgIC0tY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyOiB2YXIoLS1n bG9iYWxDb2xvckdyZXk0Nik7DQogICAgICAtLWNvbG9yTmV1dHJhbFN0cm9rZTFQcmVzc2Vk OiB2YXIoLS1nbG9iYWxDb2xvckdyZXk0Mik7DQogICAgICAtLWNvbG9yQnJhbmRCYWNrZ3Jv dW5kMjogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDIwKTsNCiAgICAgIC0tY29sb3JOZXV0cmFs U3Ryb2tlMzogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5MjQpOw0KICAgICAgLS1jb2xvckJyYW5k QmFja2dyb3VuZDJIb3ZlcjogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDQwKTsNCiAgICAgIC0t Y29sb3JCcmFuZEJhY2tncm91bmQyUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDEw KTsNCiAgICAgIC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZFByZXNzZWQ6IHZhcigt LWdsb2JhbENvbG9yQnJhbmQxNDApOw0KICAgICAgLS1jb2xvck5ldXRyYWxTdHJva2UyOiB2 YXIoLS1nbG9iYWxDb2xvckdyZXkzMik7DQogICAgICAtLWNvbG9yTmV1dHJhbFN0cm9rZUFj Y2Vzc2libGVTZWxlY3RlZDogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDEwMCk7DQogICAgICAt LWNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZTogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDEwMCk7 DQogICAgICAtLWNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZUhvdmVyOiB2YXIoLS1nbG9iYWxD b2xvckJyYW5kMTEwKTsNCiAgICAgIC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlUHJlc3Nl ZDogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDkwKTsNCiAgICAgIC0tY29sb3JTdHJva2VGb2N1 czI6IHZhcigtLWdsb2JhbENvbG9yV2hpdGUpOw0KICAgICAgLS1jb2xvclN0cm9rZUZvY3Vz MzogI2ZmZmZmZjBkOw0KICAgICAgLS1zaGFkb3c0OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwg MC4xMiksIDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpOw0KICAgICAgLS1zaGFkb3cy ODogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDRweCA4cHggcmdiYSgwLCAwLCAw LCAwLjE0KTsNCiAgICAgIC0tc2hhZG93RWxldmF0aW9uMjogMHB4IDFweCAycHggcmdiYSgw LCAwLCAwLCAwLjE0KSwNCiAgICAgICAgMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjEy KTsNCiAgICAgIC0tc2hhZG93RWxldmF0aW9uNDogMHB4IDJweCA0cHggcmdiYSgwLCAwLCAw LCAwLjE0KSwNCiAgICAgICAgMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsNCiAg ICAgIC0tZm9udEZhbWlseUJhc2U6ICJTZWdvZSBVSSIsICJTZWdvZSBVSSBXZWIgKFdlc3Qg RXVyb3BlYW4pIiwNCiAgICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW0tLWZv bnQsIFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAg ICAgIC0tZHVyYXRpb25GYXN0ZXI6IDEwMG1zOw0KICAgICAgLS1kdXJhdGlvbkZhc3Q6IDE1 MG1zOw0KICAgICAgLS1kdXJhdGlvbk5vcm1hbDogMjAwbXM7DQogICAgICAtLWR1cmF0aW9u U2xvdzogMzAwbXM7DQogICAgICAtLWR1cmF0aW9uU2xvd2VyOiA0MDBtczsNCiAgICAgIC0t Y3VydmVEZWNlbGVyYXRlTWF4OiBjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSk7DQogICAgICAt LWN1cnZlRWFzeUVhc2VNYXg6IGN1YmljLWJlemllcigwLjgsIDAsIDAuMSwgMSk7DQogICAg ICAtLWN1cnZlRGVjZWxlcmF0ZU1pZDogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEp Ow0KICAgICAgLS1jdXJ2ZURlY2VsZXJhdGVNaW46IGN1YmljLWJlemllcigwLjMzLCAwLCAw LjEsIDEpOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQt c3R5bGVzPSJ0cnVlIj4NCiAgICAuT0QzU2Nyb2xsYmFyIDo6LXdlYmtpdC1zY3JvbGxiYXIg ew0KICAgICAgd2lkdGg6IDE0cHg7DQogICAgICBoZWlnaHQ6IDE0cHg7DQogICAgICBzY3Jv bGxiYXItd2lkdGg6IHRoaW47DQogICAgICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWNvbG9y TmV1dHJhbEZvcmVncm91bmQ0KSB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAuT0QzU2Ny b2xsYmFyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgew0KICAgICAgYmFja2dyb3VuZC1j bGlwOiBjb250ZW50LWJveDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlclJh ZGl1c1hMYXJnZSk7DQogICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQ0KTsN CiAgICB9DQoNCiAgICAuT0QzU2Nyb2xsYmFyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3JOZXV0cmFsRm9y ZWdyb3VuZDMpOw0KICAgIH0NCg0KICAgIC5PRDNTY3JvbGxiYXIgOjotd2Via2l0LXNjcm9s bGJhci1idXR0b24gew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAuT0Qz U2Nyb2xsYmFyIDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHsNCiAgICAgIGJhY2tncm91 bmQ6IDAgMDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkg ew0KICAgICAgLk9EM1Njcm9sbGJhciA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsNCiAgICAgICAg c2Nyb2xsYmFyLWNvbG9yOiBDYW52YXNUZXh0IHRyYW5zcGFyZW50Ow0KICAgICAgfQ0KDQog ICAgICAuT0QzU2Nyb2xsYmFyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgew0KICAgICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXNUZXh0Ow0KICAgICAgICBib3JkZXI6IDRweCBz b2xpZCBXaW5kb3c7DQogICAgICB9DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0 YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5zdWl0ZU5hdkRhcmtNb2RlRW5h YmxlZCA6Z2xvYmFsKC5tcy1zdWl0ZXV4LXNlYXJjaC1ib3gpIFtjbGFzcyo9Im1hZ25pZmll ckJ1dHRvbiJdIFtjbGFzcyo9Imljb24iXSwNCiAgICAuc3VpdGVOYXZEYXJrTW9kZUVuYWJs ZWQgOmdsb2JhbCgubXMtc3VpdGV1eC1zZWFyY2gtYm94KSBbY2xhc3MqPSJzdWJtaXRTdWdn ZXN0aW9uIl0gew0KICAgICAgY29sb3I6ICM2Y2I4ZjY7DQogICAgICBmaWxsOiAjNmNiOGY2 Ow0KICAgIH0NCg0KICAgIC5zdWl0ZU5hdkRhcmtNb2RlRW5hYmxlZCA6Z2xvYmFsKC5tcy1z dWl0ZXV4LXNlYXJjaC1ib3gpIFtjbGFzcyo9InN1Ym1pdFNlYXJjaEJ1dHRvbiJdIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICM2Y2I4ZjY7DQogICAgfQ0KDQogICAgLnN1aXRlTmF2 RGFya01vZGVFbmFibGVkIDpnbG9iYWwoLm1zLXN1aXRldXgtc2VhcmNoLWJveCkgOmdsb2Jh bCgubXMtQnV0dG9uLm1zLURyb3Bkb3duLWl0ZW0pLA0KICAgIC5zdWl0ZU5hdkRhcmtNb2Rl RW5hYmxlZCA6Z2xvYmFsKC5tcy1zdWl0ZXV4LXNlYXJjaC1ib3gpIDpnbG9iYWwoLm1zLURy b3Bkb3duKSwNCiAgICAuc3VpdGVOYXZEYXJrTW9kZUVuYWJsZWQgOmdsb2JhbCgubXMtc3Vp dGV1eC1zZWFyY2gtYm94KSA6Z2xvYmFsKC5tcy1Ecm9wZG93bi10aXRsZSkgew0KICAgICAg Y29sb3I6ICNmMmYxZjA7DQogICAgfQ0KDQogICAgLnN1aXRlTmF2RGFya01vZGVFbmFibGVk IDpnbG9iYWwoLm1zLXN1aXRldXgtc2VhcmNoLWJveCkgOmdsb2JhbCgubXMtQnV0dG9uLm1z LURyb3Bkb3duLWl0ZW0pOmhvdmVyLA0KICAgIC5zdWl0ZU5hdkRhcmtNb2RlRW5hYmxlZCA6 Z2xvYmFsKC5tcy1zdWl0ZXV4LXNlYXJjaC1ib3gpIDpnbG9iYWwoLm1zLURyb3Bkb3duKTpo b3ZlciwNCiAgICAuc3VpdGVOYXZEYXJrTW9kZUVuYWJsZWQgOmdsb2JhbCgubXMtc3VpdGV1 eC1zZWFyY2gtYm94KSA6Z2xvYmFsKC5tcy1Ecm9wZG93bi10aXRsZSk6aG92ZXIgew0KICAg ICAgY29sb3I6ICNmMmYxZjA7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1s b2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC50aHVtYm5haWxfYTA1NTU2NTkgew0K ICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICAtby1vYmpl Y3QtZml0OiBjb3ZlcjsNCiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOw0KICAgIH0NCiAgPC9z dHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAu Y2Fyb3VzZWxIZWFkZXJfYzhkNjFhZmYgew0KICAgICAgY29sb3I6ICMzMjMxMzA7DQogICAg ICBmb250LXdlaWdodDogNjAwOw0KICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgICAgbGlu ZS1oZWlnaHQ6IDI4cHg7DQogICAgICBtYXJnaW4tYm90dG9tOiAwOw0KICAgIH0NCg0KICAg IC5jYXJvdXNlbE5hdkJ1dHRvbl9jOGQ2MWFmZiB7DQogICAgICB3aWR0aDogMzJweDsNCiAg ICAgIGhlaWdodDogMzJweDsNCiAgICB9DQoNCiAgICAuY2Fyb3VzZWxMaXN0X2M4ZDYxYWZm IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgfQ0KDQogICAgLmNhcm91c2VsTmF2QnV0 dG9uX2M4ZDYxYWZmIHsNCiAgICAgIHdpZHRoOiAzMnB4Ow0KICAgICAgaGVpZ2h0OiAzMnB4 Ow0KICAgIH0NCg0KICAgIC5jYXJvdXNlbFRvb2xiYXJfYzhkNjFhZmYgew0KICAgICAgbWFy Z2luLWJvdHRvbTogMTZweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxv YWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLmNhcm91c2VsQ2FyZENvbnRhaW5lcl85 ZWY5OGQ0MSB7DQogICAgICBoZWlnaHQ6IDIwMHB4Ow0KICAgICAgbWluLXdpZHRoOiAyNzJw eDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAobWF4LXdpZHRoOiAxNDQwcHgpIHsNCiAgICAgIC5jYXJvdXNlbENhcmRDb250 YWluZXJfOWVmOThkNDEgew0KICAgICAgICBoZWlnaHQ6IDE3MHB4Ow0KICAgICAgICBtaW4t d2lkdGg6IDI0MHB4Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5jYXJvdXNlbENhcmRDb250 YWluZXJfOWVmOThkNDE6aG92ZXIgew0KICAgICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJn YmEoMCwgMCwgMCwgMC4xNCksIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmxpc3RJdGVtXzllZjk4ZDQxIHsNCiAgICAgIG1h cmdpbi1yaWdodDogMjBweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmxpc3RJ dGVtXzllZjk4ZDQxOmxhc3Qtb2YtdHlwZSB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDA7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5saXN0SXRlbV85ZWY5OGQ0MSB7DQogICAg ICBtYXJnaW4tbGVmdDogMjBweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmxp c3RJdGVtXzllZjk4ZDQxOmxhc3Qtb2YtdHlwZSB7DQogICAgICBtYXJnaW4tbGVmdDogMDsN CiAgICB9DQoNCiAgICAudGlsZVZpZXdwb3J0XzllZjk4ZDQxIHsNCiAgICAgIGJvcmRlci1y YWRpdXM6IDZweDsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgY3Vyc29yOiBwb2lu dGVyOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBw YWRkaW5nOiAwOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgICAgIGJveC1z aGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDAgMnB4IHJnYmEoMCwg MCwgMCwgMC4xMik7DQogICAgICBib3JkZXI6IDAgIWltcG9ydGFudDsNCiAgICB9DQoNCiAg ICAudGlsZVZpZXdwb3J0XzllZjk4ZDQxOmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZjBmMGYwOw0KICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwg MCwgMC4xNCksIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsNCiAgICB9DQoNCiAgICAu dGlsZVZpZXdwb3J0XzllZjk4ZDQxOmZvY3VzIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICNmZmY7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOw0KICAgICAgYm94LXNoYWRv dzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMCAycHggcmdiYSgwLCAwLCAw LCAwLjEyKSAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC50aWxlVmlld3BvcnRfOWVmOThk NDE6Zm9jdXMtdmlzaWJsZSB7DQogICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggIzYwNWU1 YyAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC50aWxlVmlld3BvcnRfOWVmOThkNDE6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgICAgIGJvcmRlcjogMCAh aW1wb3J0YW50Ow0KICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwg MC4xNCksIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsNCiAgICB9DQoNCiAgICAudGls ZVZpZXdwb3J0XzllZjk4ZDQxOmhvdmVyOjphZnRlciB7DQogICAgICBib3JkZXI6IDAgIWlt cG9ydGFudDsNCiAgICB9DQoNCiAgICAuc3RhdGljQmFja2dyb3VuZF85ZWY5OGQ0MSB7DQog ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAg ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVy Ow0KICAgICAgdG9wOiAwOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEw MCU7DQogICAgICBib3JkZXItcmFkaXVzOiA2cHg7DQogICAgfQ0KDQogICAgLmJhY2tncm91 bmRfOWVmOThkNDEgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgZGlzcGxh eTogZmxleDsNCiAgICAgIHRvcDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVp Z2h0OiAxMDAlOw0KICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgIH0NCg0KICAgIC5i YWNrZ3JvdW5kXzllZjk4ZDQxOjphZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQog ICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGJvcmRlci1y YWRpdXM6IDZweDsNCiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAs IDAsIDAsIDApIDAgNjAlLA0KICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC41MDE5NjA3ODQz KSA5MCUgMTAwJSk7DQogICAgfQ0KDQogICAgLnRpbGVUaHVtYm5haWxfOWVmOThkNDEgew0K ICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBib3JkZXIt cmFkaXVzOiA2cHg7DQogICAgICBtYXJnaW46IGF1dG87DQogICAgfQ0KDQogICAgLml0ZW1B Y3Rpdml0eV85ZWY5OGQ0MSB7DQogICAgICBoZWlnaHQ6IDY4cHg7DQogICAgICBwYWRkaW5n OiAxNnB4IDUycHggMTZweCAxNnB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAg ICAgYm90dG9tOiAwOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCiAgICAg IGJvcmRlcjogbm9uZTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA2cHggNnB4Ow0KICAg ICAgdGV4dC1hbGlnbjogc3RhcnQ7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBm b250LXdlaWdodDogNDAwOw0KICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7DQogICAgICBib3gt c2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBkaXNwbGF5 OiBmbGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7DQogICAgICBtYXJnaW4tdG9wOiBhdXRvOw0KICAgICAgei1pbmRleDog MTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDQwcHgp IHsNCiAgICAgIC5pdGVtQWN0aXZpdHlfOWVmOThkNDEgew0KICAgICAgICBoZWlnaHQ6IDY0 cHg7DQogICAgICAgIHBhZGRpbmc6IDE0cHggNTJweCAxNHB4IDE2cHg7DQogICAgICB9DQoN CiAgICAgIGh0bWxbZGlyPSJydGwiXSAuaXRlbUFjdGl2aXR5XzllZjk4ZDQxIHsNCiAgICAg ICAgcGFkZGluZzogMTRweCAxNnB4IDE0cHggNTJweDsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICBodG1sW2Rpcj0icnRsIl0gLml0ZW1BY3Rpdml0eV85ZWY5OGQ0MSB7DQogICAgICBwYWRk aW5nOiAxNnB4IDE2cHggMTZweCA1MnB4Ow0KICAgIH0NCg0KICAgIC5wc0NhcmRJdGVtQWN0 aXZpdHlfOWVmOThkNDEgew0KICAgICAgaGVpZ2h0OiA4MHB4ICFpbXBvcnRhbnQ7DQogICAg ICB6LWluZGV4OiAyOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lk dGg6IDU1M3B4KSB7DQogICAgICAucHNDYXJkSXRlbUFjdGl2aXR5XzllZjk4ZDQxIHsNCiAg ICAgICAgaGVpZ2h0OiA4NnB4ICFpbXBvcnRhbnQ7DQogICAgICAgIGdhcDogOHB4Ow0KICAg ICAgfQ0KICAgIH0NCg0KICAgIC5pdGVtQWN0aXZpdHlUaXRsZV85ZWY5OGQ0MSB7DQogICAg ICB3aWR0aDogMjA0cHg7DQogICAgICBoZWlnaHQ6IDIwcHg7DQogICAgICB0ZXh0LW92ZXJm bG93OiBlbGxpcHNpczsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBjb2xvcjog I2ZmZjsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICBsaW5lLWhlaWdodDogMTRw eDsNCiAgICB9DQoNCiAgICAucHNDYXJkaXRlbUFjdGl2aXR5VGl0bGVfOWVmOThkNDEgew0K ICAgICAgaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7DQogICAgICB3aGl0ZS1zcGFjZTogYnJl YWstc3BhY2VzOw0KICAgICAgd2lkdGg6IDc1JTsNCiAgICAgIG1heC13aWR0aDogMTc1cHg7 DQogICAgICBsaW5lLWhlaWdodDogMThweDsNCiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94 Ow0KICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyOw0KICAgIH0NCg0KICAgIEBtZWRpYSBz Y3JlZW4gYW5kIChtYXgtd2lkdGg6IDU1M3B4KSB7DQogICAgICAucHNDYXJkaXRlbUFjdGl2 aXR5VGl0bGVfOWVmOThkNDEgew0KICAgICAgICB3aWR0aDogMjYwcHg7DQogICAgICB9DQog ICAgfQ0KDQogICAgLml0ZW1BY3Rpdml0eVN1YlRpdGxlXzllZjk4ZDQxIHsNCiAgICAgIHdp ZHRoOiAyMDRweDsNCiAgICAgIGhlaWdodDogMTZweDsNCiAgICAgIHRleHQtb3ZlcmZsb3c6 IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGNvbG9yOiAjZmZm Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAg ICAgIGxpbmUtaGVpZ2h0OiAxMnB4Ow0KICAgIH0NCg0KICAgIC5zdGF0aWNDYXJkSW1hZ2Vf OWVmOThkNDEgew0KICAgICAgd2lkdGg6IDIwMHB4Ow0KICAgICAgbWFyZ2luLWxlZnQ6IGF1 dG87DQogICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogICAgICBoZWlnaHQ6IDEwMHB4Ow0K ICAgICAgbWFyZ2luLXRvcDogMzJweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87DQog ICAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDsNCiAgICB9DQoNCiAgICBAbWVkaWEg c2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDQwcHgpIHsNCiAgICAgIC5zdGF0aWNDYXJkSW1h Z2VfOWVmOThkNDEgew0KICAgICAgICB3aWR0aDogMjAwcHg7DQogICAgICAgIGhlaWdodDog OTBweDsNCiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsNCiAgICAgICAgbWFyZ2luLWxlZnQ6 IGF1dG87DQogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsNCiAgICAgICAgbWFyZ2luLWJv dHRvbTogYXV0bzsNCiAgICAgIH0NCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRh LWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLVF1b3RhQmFubmVyV3JhcHBl ciB7DQogICAgICBtYXJnaW46IDAgMTZweDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKG1heC13 aWR0aDogNDgwcHgpIHsNCiAgICAgIC5vZC1RdW90YUJhbm5lcldyYXBwZXItaGlkZVNtYWxs U2NyZWVuIHsNCiAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICAub2QtUXVvdGFCYW5uZXJXcmFwcGVyLXBsYWNlaG9sZGVyIHsNCiAgICAgIGZsZXg6IDgw cHg7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFubmVyLXVwc2VsbCB7DQogICAgICBwYWRk aW5nOiAxMHB4IDlweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQt dGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgYnV0dG9uLm1pY3Jvc29mdENvbmZpZGV0aWFs TGlua19lZWNlNzk2OCB7DQogICAgICBjb2xvcjogcmVkOw0KICAgICAgZm9udC13ZWlnaHQ6 IDcwMDsNCiAgICB9DQoNCiAgICBidXR0b24ubWljcm9zb2Z0Q29uZmlkZXRpYWxMaW5rVjJf ZWVjZTc5Njggew0KICAgICAgY29sb3I6IHJlZCAhaW1wb3J0YW50Ow0KICAgICAgZm9udC13 ZWlnaHQ6IDcwMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhl bWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm92ZXJRdW90YVByaW1hcnlCdXR0b25fMTc2OWZj ZWMgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAgLm92ZXJRdW90YVByaW1h cnlCdXR0b25WMl8xNzY5ZmNlYyB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGJvcmRl ci1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0 YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5tcy1SZWFjdENvbW1hbmRNYW5h Z2VyLWljb25Db250YWluZXIgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAg Zm9udC1zaXplOiAxNnB4Ow0KICAgICAgbWFyZ2luOiAwIDRweDsNCiAgICAgIGhlaWdodDog MTZweDsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAgIH0NCg0KICAgIC5tcy1SZWFjdENvbW1h bmRNYW5hZ2VyLUZpbGVUeXBlSWNvbi1pY29uIHsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAg ICAgaGVpZ2h0OiAxNnB4Ow0KICAgICAgb3ZlcmZsb3c6IHZpc2libGU7DQogICAgfQ0KDQog ICAgLm1zLVJlYWN0Q29tbWFuZE1hbmFnZXItbG9nb0ZpbGxJY29uLA0KICAgIC5tcy1SZWFj dENvbW1hbmRNYW5hZ2VyLWxvZ29JY29uIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsN CiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICAubXMtUmVh Y3RDb21tYW5kTWFuYWdlci1sb2dvRmlsbEljb25bZGF0YS1pY29uLW5hbWU9IlRlYW1zTG9n bzE2Il0sDQogICAgLm1zLVJlYWN0Q29tbWFuZE1hbmFnZXItbG9nb0ljb25bZGF0YS1pY29u LW5hbWU9IlRlYW1zTG9nbzE2Il0gew0KICAgICAgY29sb3I6ICM2MjY0YTc7DQogICAgfQ0K DQogICAgLm1zLVJlYWN0Q29tbWFuZE1hbmFnZXItbG9nb0ZpbGxJY29uIHsNCiAgICAgIGNv bG9yOiAjZmZmOw0KICAgIH0NCg0KICAgIC5tcy1CdXR0b24taWNvbltkYXRhLWljb24tbmFt ZT0iU3luYyJdLmlzLWFjdGl2ZSB7DQogICAgICBhbmltYXRpb246IG5vbmU7DQogICAgICBh bmltYXRpb246IHJvdGF0ZS1wcm9ncmVzcyAxLjFzIGluZmluaXRlIGxpbmVhcjsNCiAgICB9 DQoNCiAgICBAa2V5ZnJhbWVzIHJvdGF0ZS1wcm9ncmVzcyB7DQogICAgICBmcm9tIHsNCiAg ICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAg ICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICAuYWxlcnQgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDFw eDsNCiAgICAgIGhlaWdodDogMXB4Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIG1hcmdp bjogLTFweDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBjbGlwOiByZWN0KDAs IDAsIDAsIDApOw0KICAgICAgYm9yZGVyOiAwOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0 eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAubGVmdE5hdkNvbnRh aW5lcl82ZjI3NDUwYSB7DQogICAgICB3aWR0aDogMjQ4cHg7DQogICAgfQ0KDQogICAgLmxl ZnROYXZDb250YWluZXJDb2xsYXBzZWRfNmYyNzQ1MGEgew0KICAgICAgd2lkdGg6IDY4cHg7 DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9 InRydWUiPg0KICAgIC5yb290XzgwZTVhMDYzIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0K ICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0 cnVlIj4NCiAgICAucm9vdF81Y2RmN2NmNiB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAg ICB9DQogIDwvc3R5bGU+DQogIDxsaW5rDQogICAgaHJlZj0iaHR0cHM6Ly9yZXMtMS5jZG4u b2ZmaWNlLm5ldC9maWxlcy9mYWJyaWMtY2RuLXByb2RfMjAyMzA1MjQuMDAxL29uZWRyaXZl LWFzc2V0cy9vbmVkcml2ZS1mb250LWZhY2UtZGVmaW5pdGlvbnMuY3NzIg0KICAgIHJlbD0i c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIC8+ DQogIDxzY3JpcHQgY2hhcnNldD0idXRmLTgiDQogICAgc3JjPSJodHRwczovL3Jlcy0xLmNk bi5vZmZpY2UubmV0L2ZpbGVzL29kc3Atd2ViLXByb2RfMjAyMy0xMC0yMC4wMDUvb2RjbGln aHRzcGVlZHdlYnBhY2subWFuaWZlc3QvODA3LmpzIg0KICAgIGNyb3Nzb3JpZ2luPSJhbm9u eW1vdXMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IGNoYXJzZXQ9InV0Zi04Ig0KICAgIHNyYz0i aHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5ldC9maWxlcy9vZHNwLXdlYi1wcm9kXzIwMjMt MTAtMjAuMDA1L29kY2xpZ2h0c3BlZWR3ZWJwYWNrLm1hbmlmZXN0L2VuLXVzL29uZGVtYW5k LnJlc3gtb25kZW1hbmQuanMiDQogICAgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3Jp cHQ+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgYm9k eSwNCiAgICBodG1sIHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICBib2R5 IHsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAtd2Via2l0LXRhcC1oaWdobGln aHQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzog YW50aWFsaWFzZWQ7DQogICAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7DQogICAg ICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgLW1zLXVzZXItc2VsZWN0OiBu b25lOw0KICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICBjb2xvcjogIzI0MjQyNDsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgZGl2I2Nf d2F0c29udWkgew0KICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiB0ZXh0Ow0KICAgICAg LXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogdGV4 dDsNCiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0Ow0KICAgIH0NCg0KICAgIGlucHV0LA0KICAg IHRleHRhcmVhIHsNCiAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogdGV4dDsNCiAgICAg IC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IHRl eHQ7DQogICAgICB1c2VyLXNlbGVjdDogdGV4dDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKG1h eC13aWR0aDogMzE5cHgpIHsNCiAgICAgIGJvZHkgew0KICAgICAgICBvdmVyZmxvdy14OiBh dXRvOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIGEsDQogICAgYm9keSwNCiAgICBpbnB1dCwN CiAgICB0ZXh0YXJlYSB7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgZm9udC13 ZWlnaHQ6IDQwMDsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAg fQ0KDQogICAgYSB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAgIHRleHQtZGVjb3Jh dGlvbjogbm9uZTsNCiAgICB9DQoNCiAgICBhOmZvY3VzLA0KICAgIGE6aG92ZXIgew0KICAg ICAgY29sb3I6ICMwMDQ1Nzg7DQogICAgfQ0KDQogICAgYTpmb2N1cyB7DQogICAgICBvdXRs aW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgYnV0dG9uOmZvY3Vz IHsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAg ICAub2QtZm9jdXMtLWVuYWJsZWQgYnV0dG9uOmZvY3VzOm5vdCgubXMtQnV0dG9uLCAub2Qt QnV0dG9uLCAuZnVpLUJ1dHRvbiksDQogICAgYTpmb2N1czpub3QoLm1zLUxpbmspIHsNCiAg ICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjNjE2MTYxIGluc2V0Ow0KICAgIH0NCg0KICAg IGltZyB7DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAg bWFyZ2luOiAwOw0KICAgIH0NCg0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkgew0K DQogICAgICAuYy1CcmVhZGNydW1iQmFyLA0KICAgICAgLmMtU29ydE1lbnUsDQogICAgICAu bGVmdE5hdkFyZWEgew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgfQ0KDQogICAgICAu bGVmdE5hdkFyZWEgew0KICAgICAgICBsZWZ0OiAtMTgwcHg7DQogICAgICB9DQoNCiAgICAg IC5jb250ZW50QXJlYSB7DQogICAgICAgIGxlZnQ6IDA7DQogICAgICB9DQogICAgfQ0KDQog ICAgLmRlYnVnIHsNCiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMzMzM7DQogICAgICBib3Jk ZXItcmFkaXVzOiAycHg7DQogICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5Ow0KICAgICAgaGVp Z2h0OiAxMDBweDsNCiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgICB9DQoNCiAgICBA bWVkaWEgcHJpbnQgew0KICAgICAgYm9keSB7DQogICAgICAgIG92ZXJmbG93OiB2aXNpYmxl ICFpbXBvcnRhbnQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLmNhbkRyb3BfMWI4NzMxNzA6 YWZ0ZXIgew0KICAgICAgY29udGVudDogIiAiOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAj YzdjN2M3Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAg ICAgbGVmdDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0N Cg0KICAgIC5kcm9wRmluaXNoZWRfMWI4NzMxNzA6YWZ0ZXIsDQogICAgLmRyb3BwZWRfMWI4 NzMxNzA6YWZ0ZXIsDQogICAgLmRyb3BwaW5nXzFiODczMTcwOmFmdGVyIHsNCiAgICAgIGNv bnRlbnQ6ICIgIjsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcG9pbnRlci1ldmVu dHM6IG5vbmU7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQog ICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAg fQ0KDQogICAgLmRyb3BwaW5nXzFiODczMTcwOmFmdGVyIHsNCiAgICAgIGJvcmRlcjogMnB4 IGRhc2hlZCAjNzFhZmU1Ow0KICAgIH0NCg0KICAgIC5kcm9wRmluaXNoZWRfMWI4NzMxNzA6 YWZ0ZXIsDQogICAgLmRyb3BwZWRfMWI4NzMxNzA6YWZ0ZXIgew0KICAgICAgYm9yZGVyOiAy cHggc29saWQgIzcxYWZlNTsNCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGNvbW1hbmRCYXJC b3hTaGFkb3dBbmltYXRpb24gew0KICAgICAgMCUgew0KICAgICAgICBib3gtc2hhZG93OiBu b25lOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIH0N Cg0KICAgICAgMTAwJSB7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQog ICAgICAgIGJveC1zaGFkb3c6IDAgMy4ycHggNy4ycHggMCByZ2JhKDAsIDAsIDAsIDAuMTMy KSwNCiAgICAgICAgICAwIDAuNnB4IDEuOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEwOCk7DQog ICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBjb21tYW5kQmFyRGl2aWRlckFuaW1h dGlvbiB7DQogICAgICAwJSB7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQoNCiAg ICAgIDEwMCUgew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IC5vZC1MZWZ0TmF2IHsNCiAgICAgIGZsZXg6IDEgMSBhdXRvOw0KICAgICAgd2lkdGg6IDA7 DQogICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZl Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9DQoNCiAgICAub2QtTGVmdE5hdi0t aW5saW5lIHsNCiAgICAgIHdpZHRoOiAyMjhweDsNCiAgICB9DQoNCiAgICAub2QtTGVmdE5h di0tZXhwYW5kZWQgew0KICAgICAgd2lkdGg6IDI3MnB4Ow0KICAgICAgcG9zaXRpb246IGFi c29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgei1pbmRl eDogMjk4Ow0KICAgICAgYm94LXNoYWRvdzogMzBweCAwIDMwcHggLTMwcHggcmdiYSgwLCAw LCAwLCAwLjQpOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1MZWZ0TmF2LS1leHBh bmRlZCB7DQogICAgICBhbmltYXRpb24tbmFtZTogbXMtZmFkZUluLCBtcy1zbGlkZVJpZ2h0 SW40MDsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzY3bXM7DQogICAgICBhbmltYXRp b24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQog ICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSAo cHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7DQogICAgICBbZGlyPSJsdHIiXSAu b2QtTGVmdE5hdi0tZXhwYW5kZWQgew0KICAgICAgICBhbmltYXRpb246IG5vbmU7DQogICAg ICB9DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLUxlZnROYXYtLWV4cGFuZGVkIHsN CiAgICAgIGFuaW1hdGlvbi1uYW1lOiBtcy1mYWRlSW4sIG1zLXNsaWRlTGVmdEluNDA7DQog ICAgICBhbmltYXRpb24tZHVyYXRpb246IDM2N21zOw0KICAgICAgYW5pbWF0aW9uLXRpbWlu Zy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgICAgYW5p bWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKHByZWZlcnMt cmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgew0KICAgICAgW2Rpcj0icnRsIl0gLm9kLUxlZnRO YXYtLWV4cGFuZGVkIHsNCiAgICAgICAgYW5pbWF0aW9uOiBub25lOw0KICAgICAgfQ0KICAg IH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1MZWZ0TmF2IHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNmYWZhZmE7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmlzRmx1ZW50 Vk5leHQgLm9kLUxlZnROYXY6bm90KC5vZC1MZWZ0TmF2LS1leHBhbmRlZCkgew0KICAgICAg Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ViZWJlYjsNCiAgICB9DQoNCiAgICBbZGlyPSJy dGwiXSAuaXNGbHVlbnRWTmV4dCAub2QtTGVmdE5hdjpub3QoLm9kLUxlZnROYXYtLWV4cGFu ZGVkKSB7DQogICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYmViZWI7DQogICAgfQ0K DQogICAgLmlzT0QzIC5vZC1MZWZ0TmF2LS1pbmxpbmUgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmlzT0QzIC5v ZC1MZWZ0TmF2Om5vdCgub2QtTGVmdE5hdi0tZXhwYW5kZWQpIHsNCiAgICAgIGJvcmRlci1y aWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJd IC5pc09EMyAub2QtTGVmdE5hdjpub3QoLm9kLUxlZnROYXYtLWV4cGFuZGVkKSB7DQogICAg ICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5v ZC1MZWZ0TmF2LWhhbWJ1cmdlciB7DQogICAgICBwYWRkaW5nLXRvcDogNnB4Ow0KICAgICAg cGFkZGluZy1ib3R0b206IDZweDsNCiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAj ZTBlMGUwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1MZWZ0TmF2LWhhbWJ1cmdl ciB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwi XSAub2QtTGVmdE5hdi1oYW1idXJnZXIgew0KICAgICAgcGFkZGluZy1yaWdodDogOHB4Ow0K ICAgIH0NCg0KICAgIC5vZC1MZWZ0TmF2LW5hdkNvbnRlbnQgew0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgd2lk dGg6IDEwMCU7DQogICAgICBvdmVyZmxvdy14OiBoaWRkZW47DQogICAgICBvdmVyZmxvdy15 OiBhdXRvOw0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBj b2x1bW47DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLUxlZnROYXYtbmF2Q29udGVu dCB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1MZWZ0 TmF2LW5hdkNvbnRlbnQgew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgLm9kLUxl ZnROYXYtb3ZlcmxheSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6 IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICBib3R0b206IDA7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7DQog ICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICB6LWluZGV4OiAyOTc7DQogICAgfQ0KDQog ICAgLm9kLUl0ZW1Db250ZW50LWhlYWRlciB7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXIt Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7 DQogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7DQogICAgICBwYWRkaW5nLXRvcDogMTBw eDsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4Ow0KICAgIH0NCg0KICAgIC54bGcgLm9k LUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICAueHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVy LA0KICAgIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIC54eHh4bGcgLm9k LUl0ZW1Db250ZW50LWhlYWRlciB7DQogICAgICBwYWRkaW5nLXRvcDogMzZweDsNCiAgICAg IHBhZGRpbmctYm90dG9tOiAwOw0KICAgIH0NCg0KICAgIC5vZC1Gb2xkZXJJdGVtQ29udGVu dCAuU3RvcmFnZUluZm8tc2VjdGlvbkhlYWRpbmcgew0KICAgICAgbWFyZ2luOiA0NHB4IDMy cHggMjBweDsNCiAgICAgIG1heC13aWR0aDogODAwcHg7DQogICAgICBmb250LXNpemU6IDE4 cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsN CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMjBw eDsNCiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViOw0KICAgIH0NCg0K ICAgIC5zbSAub2QtRm9sZGVySXRlbUNvbnRlbnQgLlN0b3JhZ2VJbmZvLXNlY3Rpb25IZWFk aW5nIHsNCiAgICAgIG1hcmdpbjogNDRweCAxNnB4IDIwcHg7DQogICAgfQ0KDQogICAgLnh4 bGcgLm9kLUZvbGRlckl0ZW1Db250ZW50IC5TdG9yYWdlSW5mby1zZWN0aW9uSGVhZGluZywN CiAgICAueHh4bGcgLm9kLUZvbGRlckl0ZW1Db250ZW50IC5TdG9yYWdlSW5mby1zZWN0aW9u SGVhZGluZywNCiAgICAueHh4eGxnIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAuU3RvcmFnZUlu Zm8tc2VjdGlvbkhlYWRpbmcgew0KICAgICAgbWF4LXdpZHRoOiAxMDgwcHg7DQogICAgfQ0K DQogICAgLmxnIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAub2QtSXRlbUNvbnRlbnQtcHJvZ3Jl c3MtY29udGFpbmVyLA0KICAgIC5tZCAub2QtRm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0ZW1D b250ZW50LXByb2dyZXNzLWNvbnRhaW5lciwNCiAgICAuc20gLm9kLUZvbGRlckl0ZW1Db250 ZW50IC5vZC1JdGVtQ29udGVudC1wcm9ncmVzcy1jb250YWluZXIgew0KICAgICAgbWFyZ2lu OiAwIDMycHggNDBweDsNCiAgICB9DQoNCiAgICAuc20gLm9kLUZvbGRlckl0ZW1Db250ZW50 IC5vZC1JdGVtQ29udGVudC1wcm9ncmVzcy1jb250YWluZXIgew0KICAgICAgbWFyZ2luOiAw IDE2cHggNDBweDsNCiAgICB9DQoNCiAgICAueHhsZyAub2QtRm9sZGVySXRlbUNvbnRlbnQg Lm9kLUl0ZW1Db250ZW50LXByb2dyZXNzLWNvbnRhaW5lciwNCiAgICAueHh4bGcgLm9kLUZv bGRlckl0ZW1Db250ZW50IC5vZC1JdGVtQ29udGVudC1wcm9ncmVzcy1jb250YWluZXIsDQog ICAgLnh4eHhsZyAub2QtRm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0ZW1Db250ZW50LXByb2dy ZXNzLWNvbnRhaW5lciB7DQogICAgICBtYXgtd2lkdGg6IDEwODBweDsNCiAgICB9DQoNCiAg ICAub2QtRm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0ZW1Db250ZW50LXByb2dyZXNzLWNvbnRh aW5lciB7DQogICAgICBtYXgtd2lkdGg6IDgwMHB4Ow0KICAgICAgYm94LXNoYWRvdzogMCAx LjZweCAzLjZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMzIpLA0KICAgICAgICAwIDAuM3B4IDAu OXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEwOCk7DQogICAgICBib3JkZXItcmFkaXVzOiAycHg7 DQogICAgICBtYXJnaW46IDAgMzJweCAyMHB4Ow0KICAgICAgcGFkZGluZzogMjRweCAwOw0K ICAgIH0NCg0KICAgIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAub2QtSXRlbUNvbnRlbnQtcHJv Z3Jlc3MtY29udGFpbmVyIC5vZC1xdW90YS1wcm9ncmVzcy1iYXItbWFpbiB7DQogICAgICBk aXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICB9DQoN CiAgICAub2QtRm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0ZW1Db250ZW50LXByb2dyZXNzLWNv bnRhaW5lciAub2QtcXVvdGEtcHJvZ3Jlc3MtYmFyLW1haW4gLm9kLXF1b3RhLXByb2dyZXNz LWJhci10b3Agew0KICAgICAgb3JkZXI6IDE7DQogICAgICBtYXJnaW4tdG9wOiAxMnB4Ow0K ICAgIH0NCg0KICAgIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAub2QtSXRlbUNvbnRlbnQtcHJv Z3Jlc3MtY29udGFpbmVyIC5TdG9yYWdlSW5mby10b3RhbFVzZWQgew0KICAgICAgZm9udC13 ZWlnaHQ6IDYwMDsNCiAgICB9DQoNCiAgICAub2QtRm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0 ZW1Db250ZW50LXByb2dyZXNzLWNvbnRhaW5lciAub2QtSXRlbUNvbnRlbnQtcHJvZ3Jlc3Mg ew0KICAgICAgcGFkZGluZzogMCAyNHB4Ow0KICAgICAgbWFyZ2luLXRvcDogMTJweDsNCiAg ICAgIGhlaWdodDogNDZweDsNCiAgICB9DQoNCiAgICAub2QtRm9sZGVySXRlbUNvbnRlbnQg LlN0b3JhZ2VJbmZvLXRvdGFsVXNlZCB7DQogICAgICBtYXJnaW46IDAgMjRweDsNCiAgICB9 DQoNCiAgICAub2QtSXRlbUNvbnRlbnQtcHJvZ3Jlc3Mgew0KICAgICAgaGVpZ2h0OiAzMXB4 Ow0KICAgICAgcGFkZGluZzogMTBweCAzMnB4Ow0KICAgIH0NCg0KICAgIC5tZCAub2QtSXRl bUNvbnRlbnQtcHJvZ3Jlc3MsDQogICAgLnNtIC5vZC1JdGVtQ29udGVudC1wcm9ncmVzcyB7 DQogICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4 Ow0KICAgIH0NCg0KICAgIC5vZC1JdGVtQ29udGVudC10aXRsZSB7DQogICAgICBtYXJnaW46 IDA7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3Jh cDsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgZm9udC1zaXplOiAy MHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4 Ow0KICAgICAgaGVpZ2h0OiAzN3B4Ow0KICAgIH0NCg0KICAgIC5vZC1JdGVtQ29udGVudC1i cmVhZGNydW1iIHsNCiAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgIGZvbnQtd2VpZ2h0 OiAzMDA7DQogICAgfQ0KDQogICAgLm1kIC5vZC1JdGVtQ29udGVudC1icmVhZGNydW1iLA0K ICAgIC5zbSAub2QtSXRlbUNvbnRlbnQtYnJlYWRjcnVtYiB7DQogICAgICBmb250LXNpemU6 IDE0cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC54bGcgLm9k LUl0ZW1Db250ZW50LWJyZWFkY3J1bWIsDQogICAgLnh4bGcgLm9kLUl0ZW1Db250ZW50LWJy ZWFkY3J1bWIsDQogICAgLnh4eGxnIC5vZC1JdGVtQ29udGVudC1icmVhZGNydW1iLA0KICAg IC54eHh4bGcgLm9kLUl0ZW1Db250ZW50LWJyZWFkY3J1bWIgew0KICAgICAgZm9udC1zaXpl OiAyMXB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDEwMDsNCiAgICB9DQoNCiAgICAueGxnIC5v ZC1JdGVtQ29udGVudC1saXN0LA0KICAgIC54eGxnIC5vZC1JdGVtQ29udGVudC1saXN0LA0K ICAgIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCwNCiAgICAueHh4eGxnIC5vZC1JdGVt Q29udGVudC1saXN0IHsNCiAgICAgIHBhZGRpbmctdG9wOiAyMHB4Ow0KICAgIH0NCg0KICAg IC5vZC1JdGVtQ29udGVudC1mb290ZXIgew0KICAgICAgbWFyZ2luOiAwOw0KICAgIH0NCg0K ICAgIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgLm9kLUl0ZW1Db250ZW50LWhlYWRl ciwNCiAgICAub2QtSXRlbUNvbnRlbnQtbGlzdCB7DQogICAgICAtLW9kLWxpc3QtbGVmdC1w YWRkaW5nOiAzMnB4Ow0KICAgICAgLS1vZC1saXN0LXJpZ2h0LXBhZGRpbmc6IDMycHg7DQog ICAgICAtLW9kLWxpc3QtbGVmdC1wYWRkaW5nLXNtYWxsOiAxNnB4Ow0KICAgICAgLS1vZC1s aXN0LXJpZ2h0LXBhZGRpbmctc21hbGw6IDE2cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRy Il0gLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAub2QtSXRlbUNv bnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9Imx0ciJdIC5vZC1JdGVtQ29udGVudC1saXN0IHsN CiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tb2QtbGlzdC1sZWZ0LXBhZGRpbmcpOw0KICAg IH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rp cj0icnRsIl0gLm9kLUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICBbZGlyPSJydGwiXSAub2Qt SXRlbUNvbnRlbnQtbGlzdCB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1vZC1saXN0 LWxlZnQtcGFkZGluZyk7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLUl0ZW1Db250 ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0K ICAgIFtkaXI9Imx0ciJdIC5vZC1JdGVtQ29udGVudC1saXN0IHsNCiAgICAgIHBhZGRpbmct cmlnaHQ6IHZhcigtLW9kLWxpc3QtcmlnaHQtcGFkZGluZyk7DQogICAgfQ0KDQogICAgW2Rp cj0icnRsIl0gLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJydGwiXSAub2Qt SXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC5vZC1JdGVtQ29udGVudC1s aXN0IHsNCiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tb2QtbGlzdC1yaWdodC1wYWRkaW5n KTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAueGxnIC5vZC1JdGVtQ29udGVudC1mb290 ZXIsDQogICAgW2Rpcj0ibHRyIl0gLnhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAg IFtkaXI9Imx0ciJdIC54bGcgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0ibHRy Il0gLnh4bGcgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAueHhs ZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9Imx0ciJdIC54eGxnIC5vZC1J dGVtQ29udGVudC1saXN0LA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtSXRlbUNvbnRl bnQtZm9vdGVyLA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVh ZGVyLA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCwNCiAg ICBbZGlyPSJsdHIiXSAueHh4eGxnIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rp cj0ibHRyIl0gLnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9Imx0 ciJdIC54eHh4bGcgLm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy1sZWZ0 OiB2YXIoLS1vZC1saXN0LWxlZnQtcGFkZGluZyk7DQogICAgfQ0KDQogICAgW2Rpcj0icnRs Il0gLnhsZyAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9InJ0bCJdIC54bGcg Lm9kLUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICBbZGlyPSJydGwiXSAueGxnIC5vZC1JdGVt Q29udGVudC1saXN0LA0KICAgIFtkaXI9InJ0bCJdIC54eGxnIC5vZC1JdGVtQ29udGVudC1m b290ZXIsDQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLUl0ZW1Db250ZW50LWhlYWRlciwN CiAgICBbZGlyPSJydGwiXSAueHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCwNCiAgICBbZGly PSJydGwiXSAueHh4bGcgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJydGwi XSAueHh4bGcgLm9kLUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICBbZGlyPSJydGwiXSAueHh4 bGcgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAub2Qt SXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9InJ0bCJdIC54eHh4bGcgLm9kLUl0ZW1D b250ZW50LWhlYWRlciwNCiAgICBbZGlyPSJydGwiXSAueHh4eGxnIC5vZC1JdGVtQ29udGVu dC1saXN0IHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLW9kLWxpc3QtbGVmdC1wYWRk aW5nKTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAueGxnIC5vZC1JdGVtQ29udGVudC1m b290ZXIsDQogICAgW2Rpcj0ibHRyIl0gLnhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0K ICAgIFtkaXI9Imx0ciJdIC54bGcgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0i bHRyIl0gLnh4bGcgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAu eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9Imx0ciJdIC54eGxnIC5v ZC1JdGVtQ29udGVudC1saXN0LA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtSXRlbUNv bnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQt aGVhZGVyLA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCwN CiAgICBbZGlyPSJsdHIiXSAueHh4eGxnIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAg W2Rpcj0ibHRyIl0gLnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9 Imx0ciJdIC54eHh4bGcgLm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy1y aWdodDogdmFyKC0tb2QtbGlzdC1yaWdodC1wYWRkaW5nKTsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAueGxnIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0icnRsIl0g LnhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC54bGcgLm9k LUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLUl0ZW1Db250 ZW50LWZvb3RlciwNCiAgICBbZGlyPSJydGwiXSAueHhsZyAub2QtSXRlbUNvbnRlbnQtaGVh ZGVyLA0KICAgIFtkaXI9InJ0bCJdIC54eGxnIC5vZC1JdGVtQ29udGVudC1saXN0LA0KICAg IFtkaXI9InJ0bCJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9 InJ0bCJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJd IC54eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCwNCiAgICBbZGlyPSJydGwiXSAueHh4eGxn IC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAub2Qt SXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC54eHh4bGcgLm9kLUl0ZW1D b250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1vZC1saXN0LXJpZ2h0 LXBhZGRpbmcpOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5tZCAub2QtSXRlbUNvbnRl bnQtZm9vdGVyLA0KICAgIFtkaXI9Imx0ciJdIC5tZCAub2QtSXRlbUNvbnRlbnQtaGVhZGVy LA0KICAgIFtkaXI9Imx0ciJdIC5tZCAub2QtSXRlbUNvbnRlbnQtbGlzdCwNCiAgICBbZGly PSJsdHIiXSAuc20gLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAu c20gLm9kLUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICBbZGlyPSJsdHIiXSAuc20gLm9kLUl0 ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1vZC1saXN0LWxl ZnQtcGFkZGluZy1zbWFsbCk7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm1kIC5vZC1J dGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0icnRsIl0gLm1kIC5vZC1JdGVtQ29udGVu dC1oZWFkZXIsDQogICAgW2Rpcj0icnRsIl0gLm1kIC5vZC1JdGVtQ29udGVudC1saXN0LA0K ICAgIFtkaXI9InJ0bCJdIC5zbSAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9 InJ0bCJdIC5zbSAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC5z bSAub2QtSXRlbUNvbnRlbnQtbGlzdCB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1v ZC1saXN0LWxlZnQtcGFkZGluZy1zbWFsbCk7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0g Lm1kIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0ibHRyIl0gLm1kIC5vZC1J dGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLm1kIC5vZC1JdGVtQ29udGVu dC1saXN0LA0KICAgIFtkaXI9Imx0ciJdIC5zbSAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0K ICAgIFtkaXI9Imx0ciJdIC5zbSAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9 Imx0ciJdIC5zbSAub2QtSXRlbUNvbnRlbnQtbGlzdCB7DQogICAgICBwYWRkaW5nLXJpZ2h0 OiB2YXIoLS1vZC1saXN0LXJpZ2h0LXBhZGRpbmctc21hbGwpOw0KICAgIH0NCg0KICAgIFtk aXI9InJ0bCJdIC5tZCAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9InJ0bCJd IC5tZCAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC5tZCAub2Qt SXRlbUNvbnRlbnQtbGlzdCwNCiAgICBbZGlyPSJydGwiXSAuc20gLm9kLUl0ZW1Db250ZW50 LWZvb3RlciwNCiAgICBbZGlyPSJydGwiXSAuc20gLm9kLUl0ZW1Db250ZW50LWhlYWRlciwN CiAgICBbZGlyPSJydGwiXSAuc20gLm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFk ZGluZy1sZWZ0OiB2YXIoLS1vZC1saXN0LXJpZ2h0LXBhZGRpbmctc21hbGwpOw0KICAgIH0N Cg0KICAgIC5pc09EMyAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIC5pc09EMyAub2Qt SXRlbUNvbnRlbnQtbGlzdCB7DQogICAgICAtLW9kLWxpc3QtbGVmdC1wYWRkaW5nOiAxNnB4 Ow0KICAgICAgLS1vZC1saXN0LXJpZ2h0LXBhZGRpbmc6IDQwcHg7DQogICAgICAtLW9kLWxp c3QtbGVmdC1wYWRkaW5nLXNtYWxsOiAxMnB4Ow0KICAgICAgLS1vZC1saXN0LXJpZ2h0LXBh ZGRpbmctc21hbGw6IDEycHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtQ29udGVu dC1oZWFkZXIgew0KICAgICAgLS1vZC1saXN0LWxlZnQtcGFkZGluZzogMjRweDsNCiAgICAg IC0tb2QtbGlzdC1sZWZ0LXBhZGRpbmctc21hbGw6IDIwcHg7DQogICAgICBwYWRkaW5nLXRv cDogMjBweDsNCiAgICB9DQoNCiAgICAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLXNoYXJlZElu ZGljYXRvciB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0NCg0KICAgIC5vZC1JdGVt Q29udGVudC1oZWFkZXItc2hhcmVkSW5kaWNhdG9yIC5vZC1JdGVtQ29udGVudC1tZXRhZGF0 YSB7DQogICAgICBwYWRkaW5nLWJvdHRvbTogM3B4Ow0KICAgICAgbWFyZ2luOiAwOw0KICAg IH0NCg0KICAgIC5vZC1JdGVtQ29udGVudC1zdWJoZWFkZXIgew0KICAgICAgZm9udC1zaXpl OiAxNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIG1hcmdpbjogMCAzMnB4 IDIwcHg7DQogICAgICBsaW5lLWhlaWdodDogMjBweDsNCiAgICB9DQoNCiAgICAuaXNPRDMg Lm9kLUl0ZW1Db250ZW50LXN1YmhlYWRlciB7DQogICAgICBtYXJnaW46IDAgMjVweCAyMHB4 Ow0KICAgIH0NCg0KICAgIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtYnJlYWRjcnVtYi5v ZC1JdGVtQ29udGVudC1icmVhZGNydW1iIHsNCiAgICAgIGZsZXg6IDEgMSBhdXRvOw0KICAg ICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIC5vZC1JdGVtc1Njb3BlSXRlbUNv bnRlbnQtbGlzdC5vZC1JdGVtQ29udGVudC1saXN0IHsNCiAgICAgIHBhZGRpbmctdG9wOiAw Ow0KICAgIH0NCg0KICAgIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGls ZS1saW5rIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVu dFZOZXh0IC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZSB7DQogICAg ICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZh Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRl bnQtbGlzdCAubXMtVGlsZTpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBm MGYwOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1JdGVtc1Njb3BlSXRlbUNv bnRlbnQtbGlzdCAubXMtVGlsZTphY3RpdmUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog I2ViZWJlYjsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtSXRlbXNTY29wZUl0 ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUubXMtVGlsZS0taXNTZWxlY3RlZCB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0 IC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZS5tcy1UaWxlLS1oYXNG b3JlZ3JvdW5kRnJhbWUgLm1zLVRpbGUtZm9yZWdyb3VuZCB7DQogICAgICBib3gtc2hhZG93 OiBub25lOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1JdGVtc1Njb3BlSXRl bUNvbnRlbnQtbGlzdCAubXMtVGlsZS5tcy1UaWxlLS1oYXNGb3JlZ3JvdW5kRnJhbWUgLm1z LVRpbGUtZm9yZWdyb3VuZDo6YWZ0ZXIgew0KICAgICAgYm94LXNoYWRvdzogMCAxLjZweCAz LjZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMzIpLA0KICAgICAgICAwIDAuM3B4IDAuOXB4IDAg cmdiYSgwLCAwLCAwLCAwLjEwOCk7DQogICAgICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAg ICBpbnNldDogLTJweDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm9kLUl0ZW1zU2NvcGVJdGVt Q29udGVudC1saXN0IC5tcy1UaWxlc0xpc3Qgew0KICAgICAgcGFkZGluZy10b3A6IDhweDsN CiAgICB9DQoNCiAgICAuaXNPRDMgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5t cy1UaWxlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yVHJhbnNwYXJl bnRCYWNrZ3JvdW5kKTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7DQogICAgfQ0KDQog ICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZTpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7 DQogICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3c0KTsNCiAgICB9DQoNCiAgICAuaXNP RDMgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlOmZvY3VzLXZpc2li bGUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3JUcmFuc3BhcmVudEJh Y2tncm91bmQpOw0KICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3JTdHJva2VG b2N1czIpOw0KICAgICAgbWFyZ2luOiAtMnB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAub2Qt SXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUubXMtVGlsZS0taXNTZWxlY3Rl ZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7 DQogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJv a2UpOw0KICAgICAgbWFyZ2luOiAtMnB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAub2QtSXRl bXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUubXMtVGlsZS0taXNTZWxlY3RlZDpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAu Mik7DQogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRT dHJva2VIb3Zlcik7DQogICAgICBtYXJnaW46IC0ycHg7DQogICAgICBib3gtc2hhZG93OiB2 YXIoLS1zaGFkb3c0KTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm9kLUl0ZW1zU2NvcGVJdGVt Q29udGVudC1saXN0IC5tcy1UaWxlLm1zLVRpbGUtLWlzU2VsZWN0ZWQ6Zm9jdXMtdmlzaWJs ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7 DQogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7DQog ICAgICBtYXJnaW46IC0ycHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3Bl SXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZSAubXMtQ2hlY2sgew0KICAgICAgYm9yZGVyOiAz cHggc29saWQgdmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkKTsNCiAgICAg IGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm9kLUl0ZW1zU2Nv cGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlIC5tcy1DaGVjazo6YmVmb3JlIHsNCiAgICAg IGluc2V0OiAwcHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNv bnRlbnQtbGlzdCAubXMtVGlsZSAubXMtQ2hlY2s6aG92ZXI6OmJlZm9yZSB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMik7DQogICAg fQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGls ZSAubXMtQ2hlY2sgLm1zLUNoZWNrLWNoZWNrIHsNCiAgICAgIGNvbG9yOiB2YXIoLS1jb2xv ck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWQpOw0KICAgIH0NCg0KICAgIC5pc09EMyAub2Qt SXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUgLm1zLUNoZWNrLWNpcmNsZSB7 DQogICAgICBjb2xvcjogdmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDIpOw0KICAgIH0N Cg0KICAgIC5pc09EMyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUt LWlzU2VsZWN0ZWQgLm1zLUNoZWNrOjpiZWZvcmUgew0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogdmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDEpOw0KICAgIH0NCg0KICAg IC5pc09EMyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUtLWlzU2Vs ZWN0ZWQgLm1zLUNoZWNrIC5tcy1DaGVjay1jaXJjbGUgew0KICAgICAgY29sb3I6IHZhcigt LWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxKTsNCiAgICB9DQoNCiAgICAuaXNPRDMg Lm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlLS1pc1NlbGVjdGVkIC5t cy1DaGVjazpob3Zlcjo6YmVmb3JlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigt LWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxSG92ZXIpOw0KICAgIH0NCg0KICAgIC5p c09EMyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUtLWlzU2VsZWN0 ZWQgLm1zLUNoZWNrOmhvdmVyIC5tcy1DaGVjay1jaXJjbGUgew0KICAgICAgY29sb3I6IHZh cigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxSG92ZXIpOw0KICAgIH0NCg0KICAg IC5GaWxlcy1jb250ZW50IC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdC5vZC1JdGVt Q29udGVudC1saXN0LA0KICAgIC5vZC1GaWxlc1BhZ2VDb250ZW50LWNvbnRlbnQgLm9kLUl0 ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0Lm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAgICAg cGFkZGluZy1ib3R0b206IDYwcHg7DQogICAgfQ0KDQogICAgLkZpbGVzLWNvbnRlbnQgLm9k LUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0Lm9kLUl0ZW1Db250ZW50LWxpc3Qub2QtSXRl bUNvbnRlbnQtbGlzdC0tc3RpY2t5LA0KICAgIC5vZC1GaWxlc1BhZ2VDb250ZW50LWNvbnRl bnQgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0Lm9kLUl0ZW1Db250ZW50LWxpc3Qu b2QtSXRlbUNvbnRlbnQtbGlzdC0tc3RpY2t5IHsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAw Ow0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93IHsNCiAgICAgIHdpZHRoOiAxMDAlOw0K ICAgIH0NCg0KICAgIC54bGcgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1oZWFkZXIub2Qt SXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIC54eGxnIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRl bnQtaGVhZGVyLm9kLUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICAueHh4bGcgLm9kLUl0ZW1z U2NvcGVJdGVtQ29udGVudC1oZWFkZXIub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIC54 eHh4bGcgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1oZWFkZXIub2QtSXRlbUNvbnRlbnQt aGVhZGVyIHsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4Ow0KICAgIH0NCg0KICAgIC5v ZC1JdGVtQ29udGVudC1mb290ZXIub2QtSXRlbUNvbnRlbnQtZm9vdGVyLS1zdGlja3kgLm1z LURldGFpbHNSb3cgew0KICAgICAgYW5pbWF0aW9uOiBub25lOw0KICAgIH0NCg0KICAgIC5u ZXdTaWduYWxfMTcxMTNmOTQgew0KICAgICAgd2lkdGg6IDA7DQogICAgICBoZWlnaHQ6IDFl bTsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07 DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0g Lm5ld1NpZ25hbF8xNzExM2Y5NCB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDA7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5uZXdTaWduYWxfMTcxMTNmOTQgew0KICAgICAgbWFy Z2luLWxlZnQ6IDA7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3MTEzZjk0IC5uZXdTaWdu YWxfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQogICAgLm5l d0ljb25fMTcxMTNmOTQgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgYm90 dG9tOiAxMDAlOw0KICAgICAgZm9udC1zaXplOiAwLjY2ZW07DQogICAgICBtYXJnaW4tYm90 dG9tOiAtMC45ZW07DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5uZXdJY29uXzE3 MTEzZjk0IHsNCiAgICAgIHJpZ2h0OiAtMC4xNWVtOw0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJydGwiXSAubmV3SWNvbl8xNzExM2Y5NCB7DQogICAgICBsZWZ0OiAtMC4xNWVtOw0KICAg IH0NCg0KICAgIC5jb21tZW50c18xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzAwNzhkNDsN CiAgICB9DQoNCiAgICAuc2VsZWN0ZWRfMTcxMTNmOTQgLmNvbW1lbnRzXzE3MTEzZjk0IHsN CiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAgIC5jb21tZW50c0ljb25fMTcx MTNmOTQgew0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICB9DQoNCiAgICAu Y29tbWVudHNDb3VudF8xNzExM2Y5NCB7DQogICAgICBmb250LXNpemU6IDAuOWVtOw0KICAg ICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmNvbW1lbnRzQ291bnRfMTcxMTNmOTQg ew0KICAgICAgbWFyZ2luLWxlZnQ6IDAuMmVtOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJy dGwiXSAuY29tbWVudHNDb3VudF8xNzExM2Y5NCB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDAu MmVtOw0KICAgIH0NCg0KICAgIC50cmVuZGluZ18xNzExM2Y5NCB7DQogICAgICBjb2xvcjog IzEwN2MxMDsNCiAgICB9DQoNCiAgICAuYmxvY2tlZF8xNzExM2Y5NCB7DQogICAgICBjb2xv cjogI2E0MjYyYzsNCiAgICB9DQoNCiAgICAud2FybmluZ18xNzExM2Y5NCB7DQogICAgICBj b2xvcjogI2NmMzkwMjsNCiAgICB9DQoNCiAgICAuc2hhcmVkXzE3MTEzZjk0IHsNCiAgICAg IGNvbG9yOiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5zZWxlY3RlZF8xNzExM2Y5NCAuc2hh cmVkXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5m b2xkZXJfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAg LnNlbGVjdGVkXzE3MTEzZjk0IC5mb2xkZXJfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICMw MDAwMDA7DQogICAgfQ0KDQogICAgLmxvY2tfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICM2 MTYxNjE7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3MTEzZjk0IC5sb2NrXzE3MTEzZjk0 IHsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5taXNzaW5nTWV0YWRh dGFfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICNjZjM5MDI7DQogICAgfQ0KDQogICAgLnlv dUNoZWNrZWRPdXRfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICNhNDI2MmM7DQogICAgfQ0K DQogICAgLnNvbWVvbmVDaGVja2VkT3V0XzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjNjE2 MTYxOw0KICAgIH0NCg0KICAgIC5zZWxlY3RlZF8xNzExM2Y5NCAuc29tZW9uZUNoZWNrZWRP dXRfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgLmF3 YWl0aW5nQXBwcm92YWxfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICNhZDMxMDA7DQogICAg fQ0KDQogICAgLm1lbnRpb25fMTcxMTNmOTQgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZl Ow0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3MTEz Zjk0IC5tZW50aW9uXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0N Cg0KICAgIC51bnNlZW5FZGl0XzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0K ICAgIH0NCg0KICAgIC5zZWxlY3RlZF8xNzExM2Y5NCAudW5zZWVuRWRpdF8xNzExM2Y5NCB7 DQogICAgICBjb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAudW5zZWVuUmVwbHlfMTcx MTNmOTQgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLnNlbGVjdGVk XzE3MTEzZjk0IC51bnNlZW5SZXBseV8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzAwNWE5 ZTsNCiAgICB9DQoNCiAgICBpLnVuc2VlblJlcGx5XzE3MTEzZjk0IHsNCiAgICAgIHRvcDog MC4yNWVtOw0KICAgIH0NCg0KICAgIC5lbWFpbGVkXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9y OiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5zZWxlY3RlZF8xNzExM2Y5NCAuZW1haWxlZF8x NzExM2Y5NCB7DQogICAgICBjb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICBpLmVtYWls ZWRfMTcxMTNmOTQgew0KICAgICAgdG9wOiAwLjI1ZW07DQogICAgfQ0KDQogICAgLm1hbHdh cmVEZXRlY3RlZF8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICB9DQoN CiAgICAucmVhZE9ubHlfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAg fQ0KDQogICAgLnNlbGVjdGVkXzE3MTEzZjk0IC5yZWFkT25seV8xNzExM2Y5NCB7DQogICAg ICBjb2xvcjogIzAwMDAwMDsNCiAgICB9DQoNCiAgICAuZXh0ZXJuYWxfMTcxMTNmOTQgew0K ICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3MTEzZjk0 IC5leHRlcm5hbF8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICB9DQoN CiAgICAucmVjb3JkXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgIH0N Cg0KICAgIC5zZWxlY3RlZF8xNzExM2Y5NCAucmVjb3JkXzE3MTEzZjk0IHsNCiAgICAgIGNv bG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5saXZlRWRpdF8xNzExM2Y5NCB7DQogICAg ICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5ib29rbWFya091dGxpbmVfMTcxMTNm OTQgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAgLmJvb2ttYXJrRmls bGVkXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5u ZWVkc1JlcHVibGlzaGluZ18xNzExM2Y5NCB7DQogICAgICBjb2xvcjogI2QyOTIwMDsNCiAg ICB9DQoNCiAgICAuaXRlbVNjaGVkdWxlZF8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzYx NjE2MTsNCiAgICB9DQoNCiAgICAuYXJpYURlc2NyaXB0aW9uX2M0NWJlZTZiIHsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6 IDFweDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW46IC0xcHg7DQogICAgICBv dmVyZmxvdzogaGlkZGVuOw0KICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsNCiAgICAg IGJvcmRlcjogMDsNCiAgICB9DQoNCiAgICAubm9MaW5rVGV4dF9jNDViZWU2YiB7DQogICAg ICBmb250LXN0eWxlOiBpdGFsaWM7DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3ctY2Vs bCAubmFtZUZpZWxkX2M0NWJlZTZiIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAg IGRpc3BsYXk6IGlubGluZTsNCiAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgIGNvbG9y OiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1j b250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3Rp dmUpIHsNCiAgICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLm5hbWVGaWVsZF9jNDViZWU2YiB7 DQogICAgICAgIGNvbG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5t cy1EZXRhaWxzUm93LWNlbGwgLm1zLUxpbmsubmFtZUZpZWxkX2M0NWJlZTZiIHsNCiAgICAg IGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7DQog ICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICB1c2VyLXNlbGVjdDogbm9uZTsN CiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93LWNl bGwgLm1zLUxpbmsubmFtZUZpZWxkX2M0NWJlZTZiLmNsaWNrYWJsZV9jNDViZWU2Yjpob3Zl ciB7DQogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCiAgICAgIGNvbG9yOiAj MjQyNDI0Ow0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLm1zLUxpbmsubmFt ZUZpZWxkX2M0NWJlZTZiOmZvY3VzLA0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLm1zLUxp bmsubmFtZUZpZWxkX2M0NWJlZTZiOnZpc2l0ZWQgew0KICAgICAgY29sb3I6ICMyNDI0MjQ7 DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBh Y3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAg ICAgLm1zLURldGFpbHNSb3ctY2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1YmVlNmIgew0K ICAgICAgICBjb2xvcjogV2luZG93VGV4dDsNCiAgICAgIH0NCg0KICAgICAgLm1zLURldGFp bHNSb3ctY2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1YmVlNmIuY2xpY2thYmxlX2M0NWJl ZTZiOmhvdmVyIHsNCiAgICAgICAgY29sb3I6IFdpbmRvd1RleHQ7DQogICAgICB9DQoNCiAg ICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLm1zLUxpbmsubmFtZUZpZWxkX2M0NWJlZTZiOmZv Y3VzLA0KICAgICAgLm1zLURldGFpbHNSb3ctY2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1 YmVlNmI6dmlzaXRlZCB7DQogICAgICAgIGNvbG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0K ICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0 aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAg IC5tcy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5tcy1EZXRhaWxzUm93LWNlbGwgLm5hbWVG aWVsZF9jNDViZWU2YiB7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAg fQ0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5tcy1EZXRhaWxz Um93LWNlbGwgLm1zLUxpbmsubmFtZUZpZWxkX2M0NWJlZTZiIHsNCiAgICAgIGZvbnQtd2Vp Z2h0OiA2MDA7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNv bnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2 ZSkgew0KICAgICAgLm1zLURldGFpbHNSb3cuaXMtc2VsZWN0ZWQgLm1zLURldGFpbHNSb3ct Y2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1YmVlNmIgew0KICAgICAgICBjb2xvcjogSGln aGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubXMtRGV0YWlsc1Jvdy5pcy1z ZWxlY3RlZCAubXMtRGV0YWlsc1Jvdy1jZWxsIC5tcy1MaW5rLm5hbWVGaWVsZF9jNDViZWU2 Yjpob3ZlciB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICB9DQoNCiAgICBAbWVkaWEg c2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFu ZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAubXMtRGV0YWlsc1Jvdy5pcy1z ZWxlY3RlZCAubXMtRGV0YWlsc1Jvdy1jZWxsIC5tcy1MaW5rLm5hbWVGaWVsZF9jNDViZWU2 Yjpob3ZlciB7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAg IH0NCg0KICAgIC5yb290XzEzN2E3NTY1IHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAg ICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgb3V0bGluZTogMDsNCiAgICAgIGZvbnQtc2l6 ZTogaW5oZXJpdDsNCiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0Ow0KICAgICAgYmFja2dy b3VuZDogMCAwOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAg ICBib3JkZXI6IG5vbmU7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBkaXNwbGF5 OiBpbmxpbmU7DQogICAgICBtYXJnaW46IDA7DQogICAgICBvdmVyZmxvdzogaW5oZXJpdDsN CiAgICAgIHBhZGRpbmc6IDA7DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgICAgdGV4 dC1vdmVyZmxvdzogaW5oZXJpdDsNCiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7 DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7DQogICAgICB1c2VyLXNlbGVjdDogdGV4 dDsNCiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9 DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSks DQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9v dF8xMzdhNzU2NSB7DQogICAgICAgIGJvcmRlci1ib3R0b206ICJub25lIjsNCiAgICAgIH0N CiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFj dGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAg ICAucm9vdF8xMzdhNzU2NSB7DQogICAgICAgIGNvbG9yOiAiI0ZGRkYwMCI7DQogICAgICB9 DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBi bGFjay1vbi13aGl0ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZl KSBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkgew0KICAgICAgLnJvb3RfMTM3 YTc1NjUgew0KICAgICAgICBjb2xvcjogIiMwMDAwOUYiOw0KICAgICAgfQ0KICAgIH0NCg0K ICAgIC5yb290XzEzN2E3NTY1IC5pcy1kaXNhYmxlZCB7DQogICAgICBjb2xvcjogI2JkYmRi ZDsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICB9DQoNCiAgICAucm9vdF8xMzdhNzU2 NSAuaXMtZGlzYWJsZWQ6bGluaywNCiAgICAucm9vdF8xMzdhNzU2NSAuaXMtZGlzYWJsZWQ6 dmlzaXRlZCB7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQoNCiAgICAu cm9vdF8xMzdhNzU2NSA6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlLA0KICAgIC5yb290XzEz N2E3NTY1IDpub3QoLmlzLWRpc2FibGVkKTphY3RpdmU6aG92ZXIsDQogICAgLnJvb3RfMTM3 YTc1NjUgOm5vdCguaXMtZGlzYWJsZWQpOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA0NTc4 Ow0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogICAgfQ0KDQogICAgLnJv b3RfMTM3YTc1NjUgOm5vdCguaXMtZGlzYWJsZWQpOmZvY3VzIHsNCiAgICAgIGNvbG9yOiAj MDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5yb290 XzEzN2E3NTY1OmZvY3VzIHsNCiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjMDAwMDAw IGluc2V0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250 cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUp IHsNCiAgICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5yb290XzEzN2E3NTY1OmZv Y3VzIHsNCiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIFdpbmRvd1RleHQ7DQogICAgICB9 DQogICAgfQ0KDQogICAgLmhlcm9CdXR0b25fMTVhZjYxYzcgew0KICAgICAgZGlzcGxheTog YmxvY2s7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBsZWZ0OiAwOw0KICAg ICAgdG9wOiAwOw0KICAgICAgd2lkdGg6IDM2cHg7DQogICAgICBoZWlnaHQ6IDEwMCU7DQog ICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBvdXRsaW5lOiAwOw0KICAgICAgYm9y ZGVyOiBub25lOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAg ICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgY29sb3I6ICM2MTYxNjE7 DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBib3JkZXItcmFkaXVzOiAwOw0KICAg ICAgY3Vyc29yOiBwb2ludGVyOw0KICAgIH0NCg0KICAgIC5oZXJvQnV0dG9uXzE1YWY2MWM3 OmhvdmVyIHsNCiAgICAgIHdpZHRoOiAzNnB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog I2ViZWJlYjsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJsdHIiXSAuaGVyb0J1dHRvbl8xNWFmNjFjNyBpIHsNCiAgICAgIHJpZ2h0OiAxMHB4Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuaGVyb0J1dHRvbl8xNWFmNjFjNyBpIHsN CiAgICAgIGxlZnQ6IDEwcHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLmhlcm9C dXR0b25fMTVhZjYxYzcgew0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgIH0NCg0K ICAgIC5pc09EMyAuaXMtc2VsZWN0ZWQgLmhlcm9CdXR0b25fMTVhZjYxYzc6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQyUHJl c3NlZCk7DQogICAgfQ0KDQogICAgLmlzT0QzIC5oZXJvQnV0dG9uXzE1YWY2MWM3IHsNCiAg ICAgIHdpZHRoOiAyOHB4Ow0KICAgICAgaGVpZ2h0OiAyOHB4Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAuaXNPRDMgLmhlcm9CdXR0b25fMTVhZjYxYzcrLmhlcm9CdXR0b25f MTVhZjYxYzcgew0KICAgICAgbWFyZ2luLWxlZnQ6IDRweDsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0icnRsIl0gLmlzT0QzIC5oZXJvQnV0dG9uXzE1YWY2MWM3Ky5oZXJvQnV0dG9uXzE1 YWY2MWM3IHsNCiAgICAgIG1hcmdpbi1yaWdodDogNHB4Ow0KICAgIH0NCg0KICAgIC5taW5p bWFsXzE1YWY2MWM3IHsNCiAgICAgIHBhZGRpbmctdG9wOiAxNHB4Ow0KICAgICAgcGFkZGlu Zy1ib3R0b206IDE0cHg7DQogICAgICBtYXJnaW4tdG9wOiAtMTFweDsNCiAgICAgIG1hcmdp bi1ib3R0b206IC0xMXB4Ow0KICAgIH0NCg0KICAgIC5yb290XzE1YWY2MWM3IHsNCiAgICAg IGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LXdyYXA6IG5vd3JhcDsNCiAgICAgIGZsZXgt ZGlyZWN0aW9uOiByb3c7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgaGVp Z2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgXC0tVmVydGlj YWxseUNlbnRlciAuaGVyb0J1dHRvbl8xNWFmNjFjNyBpIHsNCiAgICAgIHBvc2l0aW9uOiBy ZWxhdGl2ZTsNCiAgICAgIHRvcDogMXB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIi XSAubXMtRGV0YWlsc1Jvdy1jZWxsIFwtLVZlcnRpY2FsbHlDZW50ZXIgLmhlcm9CdXR0b25f MTVhZjYxYzcgaSB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i cnRsIl0gLm1zLURldGFpbHNSb3ctY2VsbCBcLS1WZXJ0aWNhbGx5Q2VudGVyIC5oZXJvQnV0 dG9uXzE1YWY2MWM3IGkgew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAubXMtRGV0 YWlsc1JvdyAuaGVyb0J1dHRvbl8xNWFmNjFjNyB7DQogICAgICB2aXNpYmlsaXR5OiBoaWRk ZW47DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93 OmhvdmVyIC5oZXJvQnV0dG9uXzE1YWY2MWM3IHsNCiAgICAgIHZpc2liaWxpdHk6IHZpc2li bGU7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVu IGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9y Y2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAubXMtRGV0YWlsc1Jvdzpob3ZlciAuaGVy b0J1dHRvbl8xNWFmNjFjNyB7DQogICAgICAgIGNvbG9yOiBCdXR0b25UZXh0Ow0KICAgICAg fQ0KICAgIH0NCg0KICAgIC5pcy1zZWxlY3RlZCAuaGVyb0J1dHRvbl8xNWFmNjFjNywNCiAg ICAuaXMtc2VsZWN0ZWQ6aG92ZXIgLmhlcm9CdXR0b25fMTVhZjYxYzcgew0KICAgICAgdmlz aWJpbGl0eTogdmlzaWJsZTsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0KICAg IEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBz Y3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAgLmlzLXNlbGVj dGVkIC5oZXJvQnV0dG9uXzE1YWY2MWM3LA0KICAgICAgLmlzLXNlbGVjdGVkOmhvdmVyIC5o ZXJvQnV0dG9uXzE1YWY2MWM3IHsNCiAgICAgICAgY29sb3I6IEhpZ2hsaWdodFRleHQ7DQog ICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRy YXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkg ew0KDQogICAgICAuaXMtc2VsZWN0ZWQgLmhlcm9CdXR0b25fMTVhZjYxYzc6Zm9jdXM6OmFm dGVyLA0KICAgICAgLmlzLXNlbGVjdGVkOmhvdmVyIC5oZXJvQnV0dG9uXzE1YWY2MWM3OmZv Y3VzOjphZnRlciB7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEhpZ2hsaWdodFRleHQ7 DQogICAgICB9DQogICAgfQ0KDQogICAgLmZpZWxkUmVuZGVyZXJIZXJvQ29tbWFuZENvbnRh aW5lcl8zYWEwM2I3YyB7DQogICAgICBmbGV4LXNocmluazogMDsNCiAgICAgIG1hcmdpbi10 b3A6IC0xMXB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogLTExcHg7DQogICAgICBwYWRkaW5n LXRvcDogMXB4Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgd2lkdGg6IDA7 DQogICAgfQ0KDQogICAgLmlzT0QzIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWlu ZXJfM2FhMDNiN2Mgew0KICAgICAgbWFyZ2luLXRvcDogLTVweDsNCiAgICAgIG1hcmdpbi1i b3R0b206IC01cHg7DQogICAgfQ0KDQogICAgLmZpZWxkUmVuZGVyZXJSZW5kZXJlcldpdGhN ZXRhZGF0YV8zYWEwM2I3YyB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1k aXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIG1pbi13aWR0aDogMDsNCiAgICAgIGZsZXgtZ3Jv dzogMTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0KDQogICAgLm1zLURldGFp bHNSb3cgLmZpZWxkUmVuZGVyZXJSZW5kZXJlcldpdGhDb21tYW5kc18zYWEwM2I3YywNCiAg ICAubXMtRGV0YWlsc1Jvdy1jZWxsIC5maWVsZFJlbmRlcmVyUmVuZGVyZXJXaXRoQ29tbWFu ZHNfM2FhMDNiN2Mgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3RpZnktY29u dGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICB9DQoN CiAgICAubXMtRGV0YWlsc1JvdyAubmFtZUZpZWxkV2lkdGhPbkhvdmVyXzNhYTAzYjdjLA0K ICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLm5hbWVGaWVsZFdpZHRoT25Ib3Zlcl8zYWEwM2I3 YyB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIG1pbi13aWR0aDogMDsNCiAgICB9DQoN CiAgICAubXMtRGV0YWlsc1JvdyAubWluaW1hbE5hbWVGaWVsZF8zYWEwM2I3YywNCiAgICAu bXMtRGV0YWlsc1Jvdy1jZWxsIC5taW5pbWFsTmFtZUZpZWxkXzNhYTAzYjdjIHsNCiAgICAg IGRpc3BsYXk6IGZsZXg7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47 DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3cgLnNpZ25hbHNDZW50ZXJlZF8zYWEwM2I3 YywNCiAgICAubXMtRGV0YWlsc1Jvdy1jZWxsIC5zaWduYWxzQ2VudGVyZWRfM2FhMDNiN2Mg ew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQog ICAgfQ0KDQogICAgLmlzT0QzIC5tcy1EZXRhaWxzUm93IC5zaWduYWxzQ2VudGVyZWRfM2Fh MDNiN2MsDQogICAgLmlzT0QzIC5tcy1EZXRhaWxzUm93LWNlbGwgLnNpZ25hbHNDZW50ZXJl ZF8zYWEwM2I3YyB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBmb250LXdlaWdo dDogNDAwOw0KICAgICAgcGFkZGluZy10b3A6IDJweDsNCiAgICAgIGRpc3BsYXk6IGJsb2Nr Ow0KICAgIH0NCg0KICAgIC5pc09EMyAubXMtRGV0YWlsc1JvdyAuc2lnbmFsc0NlbnRlcmVk XzNhYTAzYjdjIC5GYXZvcml0ZVNpZ25hbCwNCiAgICAuaXNPRDMgLm1zLURldGFpbHNSb3ct Y2VsbCAuc2lnbmFsc0NlbnRlcmVkXzNhYTAzYjdjIC5GYXZvcml0ZVNpZ25hbCB7DQogICAg ICBmb250LXNpemU6IDE2cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0K ICAgIC5tcy1EZXRhaWxzUm93IC5zaWduYWxzQ2VudGVyZWRfM2FhMDNiN2MgaSwNCiAgICAu bXMtRGV0YWlsc1Jvdy1jZWxsIC5zaWduYWxzQ2VudGVyZWRfM2FhMDNiN2MgaSB7DQogICAg ICB0b3A6IDA7DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3ctY2VsbC5pcy1zZWxlY3Rl ZCAuc2lnbmFsc1Nob3dIaWRlXzNhYTAzYjdjLA0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGw6 aG92ZXIgLnNpZ25hbHNTaG93SGlkZV8zYWEwM2I3YywNCiAgICAubXMtRGV0YWlsc1Jvdy5p cy1zZWxlY3RlZCAuc2lnbmFsc1Nob3dIaWRlXzNhYTAzYjdjLA0KICAgIC5tcy1EZXRhaWxz Um93OmhvdmVyIC5zaWduYWxzU2hvd0hpZGVfM2FhMDNiN2Mgew0KICAgICAgdmlzaWJpbGl0 eTogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwuaXMtc2VsZWN0 ZWQgLnNpZ25hbHNBbHdheXNfM2FhMDNiN2MsDQogICAgLm1zLURldGFpbHNSb3ctY2VsbDpo b3ZlciAuc2lnbmFsc0Fsd2F5c18zYWEwM2I3YywNCiAgICAubXMtRGV0YWlsc1Jvdy5pcy1z ZWxlY3RlZCAuc2lnbmFsc0Fsd2F5c18zYWEwM2I3YywNCiAgICAubXMtRGV0YWlsc1Jvdzpo b3ZlciAuc2lnbmFsc0Fsd2F5c18zYWEwM2I3YyB7DQogICAgICBtYXJnaW46IDAgNHB4Ow0K ICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwuaXMtc2VsZWN0ZWQgLnNpZ25hbHNB bHdheXNfM2FhMDNiN2MgLkZhdm9yaXRlU2lnbmFsLA0KICAgIC5tcy1EZXRhaWxzUm93LWNl bGw6aG92ZXIgLnNpZ25hbHNBbHdheXNfM2FhMDNiN2MgLkZhdm9yaXRlU2lnbmFsLA0KICAg IC5tcy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5zaWduYWxzQWx3YXlzXzNhYTAzYjdjIC5G YXZvcml0ZVNpZ25hbCwNCiAgICAubXMtRGV0YWlsc1Jvdzpob3ZlciAuc2lnbmFsc0Fsd2F5 c18zYWEwM2I3YyAuRmF2b3JpdGVTaWduYWwgew0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVu Ow0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwuaXMtc2VsZWN0ZWQgLmZpZWxk UmVuZGVyZXJIZXJvQ29tbWFuZENvbnRhaW5lcl8zYWEwM2I3YywNCiAgICAubXMtRGV0YWls c1Jvdy1jZWxsOmhvdmVyIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWluZXJfM2Fh MDNiN2MsDQogICAgLm1zLURldGFpbHNSb3cuaXMtc2VsZWN0ZWQgLmZpZWxkUmVuZGVyZXJI ZXJvQ29tbWFuZENvbnRhaW5lcl8zYWEwM2I3YywNCiAgICAubXMtRGV0YWlsc1Jvdzpob3Zl ciAuZmllbGRSZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjIHsNCiAgICAg IG92ZXJmbG93OiB1bnNldDsNCiAgICAgIHdpZHRoOiBhdXRvOw0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAuaXNPRDMgLm1zLURldGFpbHNSb3ctY2VsbC5pcy1zZWxlY3RlZCAu ZmllbGRSZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjLA0KICAgIGh0bWxb ZGlyPSJsdHIiXSAuaXNPRDMgLm1zLURldGFpbHNSb3ctY2VsbDpob3ZlciAuZmllbGRSZW5k ZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjLA0KICAgIGh0bWxbZGlyPSJsdHIi XSAuaXNPRDMgLm1zLURldGFpbHNSb3cuaXMtc2VsZWN0ZWQgLmZpZWxkUmVuZGVyZXJIZXJv Q29tbWFuZENvbnRhaW5lcl8zYWEwM2I3YywNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmlzT0Qz IC5tcy1EZXRhaWxzUm93OmhvdmVyIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWlu ZXJfM2FhMDNiN2Mgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuaXNPRDMgLm1zLURldGFpbHNSb3ctY2VsbC5pcy1zZWxlY3Rl ZCAuZmllbGRSZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjLA0KICAgIGh0 bWxbZGlyPSJydGwiXSAuaXNPRDMgLm1zLURldGFpbHNSb3ctY2VsbDpob3ZlciAuZmllbGRS ZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjLA0KICAgIGh0bWxbZGlyPSJy dGwiXSAuaXNPRDMgLm1zLURldGFpbHNSb3cuaXMtc2VsZWN0ZWQgLmZpZWxkUmVuZGVyZXJI ZXJvQ29tbWFuZENvbnRhaW5lcl8zYWEwM2I3YywNCiAgICBodG1sW2Rpcj0icnRsIl0gLmlz T0QzIC5tcy1EZXRhaWxzUm93OmhvdmVyIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250 YWluZXJfM2FhMDNiN2Mgew0KICAgICAgbWFyZ2luLWxlZnQ6IC02cHg7DQogICAgfQ0KDQog ICAgLmlzRml4ZWRIZXJvQnV0dG9uU3RyaXBfM2FhMDNiN2Mgew0KICAgICAgd2lkdGg6IGF1 dG87DQogICAgfQ0KDQogICAgLmZpZWxkUmVuZGVyZXJIZXJvQ29tbWFuZENvbnRhaW5lcl8z YWEwM2I3Yzpmb2N1cy13aXRoaW4gew0KICAgICAgb3ZlcmZsb3c6IHVuc2V0Ow0KICAgICAg d2lkdGg6IGF1dG87DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBjb21tYW5kQmFyQm94U2hh ZG93QW5pbWF0aW9uX2M2YmE1NzU5IHsNCiAgICAgIDAlIHsNCiAgICAgICAgYm94LXNoYWRv dzogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAg ICB9DQoNCiAgICAgIDEwMCUgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZm Ow0KICAgICAgICBib3gtc2hhZG93OiAwIDMuMnB4IDcuMnB4IDAgcmdiYSgwLCAwLCAwLCAw LjEzMiksDQogICAgICAgICAgMCAwLjZweCAxLjhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMDgp Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgY29tbWFuZEJhckRpdmlkZXJB bmltYXRpb25fYzZiYTU3NTkgew0KICAgICAgMCUgew0KICAgICAgICBvcGFjaXR5OiAxOw0K ICAgICAgfQ0KDQogICAgICAxMDAlIHsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgIH0N CiAgICB9DQoNCiAgICAuc2Nyb2xsQ29udGFpbmVyX2M2YmE1NzU5IHsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAg Ym90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4 dCAuc2Nyb2xsQ29udGFpbmVyX2M2YmE1NzU5PmRpdiB7DQogICAgICBkaXNwbGF5OiBmbGV4 Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICB9DQoNCiAgICAudmVydGlj YWxTY3JvbGxfYzZiYTU3NTkgew0KICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOw0KICAgIH0N Cg0KICAgIC5ib2R5X2M2YmE1NzU5IHsNCiAgICAgIGZsZXg6IDEgMSBhdXRvOw0KICAgICAg cG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5ib2R5X2M2YmE1NzU5Om5vdCgu cmVhZHlfYzZiYTU3NTkpIHsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICB9DQoN CiAgICAuZHJvcFpvbmVfYzZiYTU3NTkgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAg IHJpZ2h0OiAwOw0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9u OiByb3c7DQogICAgfQ0KDQogICAgLmxlZ2FjeVNlYXJjaFdyYXBwZXJfYzZiYTU3NTkgew0K ICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQog ICAgfQ0KDQogICAgLmxlZ2FjeVNlYXJjaEJ1ZmZlcl9jNmJhNTc1OSB7DQogICAgICBoZWln aHQ6IDQ1cHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgIH0NCg0K ICAgIC5jb3JlX2M2YmE1NzU5IHsNCiAgICAgIGZsZXg6IDEgMTsNCiAgICAgIGRpc3BsYXk6 IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50 Vk5leHQgLmNvcmVfYzZiYTU3NTkgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFm YTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmNvcmVfYzZiYTU3NTkgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLnRvcEJhcl9jNmJhNTc1 OSB7DQogICAgICBmbGV4OiAwIDAgYXV0bzsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4 dCAudG9wQmFyX2M2YmE1NzU5IHsNCiAgICAgIHotaW5kZXg6IDI7DQogICAgfQ0KDQogICAg LmlzT0QzIC50b3BCYXJfYzZiYTU3NTkgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAg IGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBoZWlnaHQ6IDY0cHg7DQogICAgICBtYXJn aW4tdG9wOiAxMHB4Ow0KICAgIH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5IHsNCiAg ICAgIGhlaWdodDogNDVweDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAu bXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3Qgew0KICAgICAgcG9zaXRpb246IHJlbGF0 aXZlOw0KICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAg ICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkg Lm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90IC5tcy1CdXR0b24tbGFiZWw6YWZ0ZXIg ew0KICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7DQogICAgfQ0KDQog ICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90 OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgICBib3Jk ZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLmNvbW1h bmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90OmFjdGl2ZSB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgICAgYm9yZGVyLWJvdHRv bTogMnB4IHNvbGlkICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3 NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldywNCiAg ICAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3Qu aXMtdG9nZ2xlZCB7DQogICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJl bnQ7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIg YnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldzpob3ZlciwNCiAgICAuY29tbWFuZEJh cl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZDpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgIH0NCg0KICAg IC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5p cy1jdXJyZW50LXZpZXc6aG92ZXIgLm1zLUJ1dHRvbi1sYWJlbDphZnRlciwNCiAgICAuY29t bWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtdG9n Z2xlZDpob3ZlciAubXMtQnV0dG9uLWxhYmVsOmFmdGVyIHsNCiAgICAgIHdpZHRoOiAxMDAl Ow0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAu bXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3VycmVudC12aWV3IC5tcy1CdXR0 b24tbGFiZWwsDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0 dG9uLmlzLXBpdm90LmlzLXRvZ2dsZWQgLm1zLUJ1dHRvbi1sYWJlbCB7DQogICAgICBmb250 LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1D b21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy1jdXJyZW50LXZpZXcgLm1zLUJ1dHRvbi1s YWJlbDphZnRlciwNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBi dXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZCAubXMtQnV0dG9uLWxhYmVsOmFmdGVyIHsNCiAg ICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3NpdGlv bjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiA4cHg7DQogICAgICBib3JkZXItYm90dG9tOiAy cHggc29saWQgIzAwNzhkNDsNCiAgICAgIGJvdHRvbTogLTJweDsNCiAgICAgIHdpZHRoOiBj YWxjKDEwMCUgLSAoOHB4ICsgOHB4KSk7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQg LmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90Omhv dmVyIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5jb21tYW5kQmFyX2M2 YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdDphY3RpdmUgew0KICAgICAg Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsNCiAgICAgIGJvcmRlci1ib3R0b20tcmln aHQtcmFkaXVzOiAwOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5jb21tYW5kQmFy X2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdDphY3RpdmUgLm1zLUJ1 dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7 DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0 dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldywNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1 OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZCB7DQogICAgICBm b250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5jb21tYW5kQmFy X2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy1sYXN0LXBpdm90 IHsNCiAgICAgIG1hcmdpbi1yaWdodDogMjRweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwi XSAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3Qu aXMtbGFzdC1waXZvdCB7DQogICAgICBtYXJnaW4tbGVmdDogMjRweDsNCiAgICB9DQoNCiAg ICAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtdG9nZ2xl ZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgICAgY29sb3I6ICMw MDAwMDA7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRC YXIgew0KICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7DQogICAgfQ0K DQogICAgW2Rpcj0ibHRyIl0gLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzSGFtYnVyZ2VyX2M2 YmE1NzU5IC5tcy1Db21tYW5kQmFyIHsNCiAgICAgIHBhZGRpbmctbGVmdDogMDsNCiAgICB9 DQoNCiAgICBbZGlyPSJydGwiXSAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNIYW1idXJnZXJf YzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgew0KICAgICAgcGFkZGluZy1yaWdodDogMDsNCiAg ICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNIYW1idXJnZXJfYzZiYTU3NTkg Lm9kLWNvbW1hbmRCYXItYnV0dG9uOmZvY3VzIHsNCiAgICAgIGJveC1zaGFkb3c6IG5vbmU7 DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm9kLWNvbW1hbmRCYXItZGl2 aWRlciB7DQogICAgICB3aWR0aDogMXB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Qx ZDFkMTsNCiAgICAgIG1hcmdpbjogOHB4IDhweCA4cHggMDsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAuY29tbWFuZEJhcl9jNmJhNTc1OSAub2QtY29tbWFuZEJhci1kaXZpZGVyIHsN CiAgICAgIG1hcmdpbjogOHB4IDAgOHB4IDhweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRW TmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1OSB7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAg ICBwYWRkaW5nOiA2cHggMjRweDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7 DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1z LUNvbW1hbmRCYXIgew0KICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsNCiAgICB9DQoNCiAg ICAuaXNGbHVlbnRWTmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhcjph ZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsN CiAgICAgIHRvcDogY2FsYyg0OHB4ICsgNnB4IC0gMXB4KTsNCiAgICAgIHJpZ2h0OiAwOw0K ICAgICAgbGVmdDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxcHg7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIEBtZWRp YSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5Ljk5OTk5cHgpIHsNCiAgICAgIC5p c0ZsdWVudFZOZXh0IC5jb21tYW5kQmFyX2M2YmE1NzU5IHsNCiAgICAgICAgcGFkZGluZzog NnB4IDE2cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21tYW5kQmFyX2M2 YmE1NzU5IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAg aGVpZ2h0OiA1MnB4Ow0KICAgICAgZmxleC1ncm93OiAxOw0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJsdHIiXSAuaXNPRDMgLmNvbW1hbmRCYXJfYzZiYTU3NTkgew0KICAgICAgcGFkZGlu Zy1sZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5pc09EMyAuY29t bWFuZEJhcl9jNmJhNTc1OSB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1OSB7DQog ICAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwi XSAuaXNPRDMgLmNvbW1hbmRCYXJfYzZiYTU3NTkgew0KICAgICAgcGFkZGluZy1sZWZ0OiA0 OHB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29t bWFuZEJhciB7DQogICAgICBoZWlnaHQ6IDUycHg7DQogICAgICBwYWRkaW5nOiAwIDhweDsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21t YW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyOmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6 IG5vbmU7DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1C dXR0b24tLWNvbW1hbmRCYXIuaXMtY2hlY2tlZCAubXMtQnV0dG9uLWZsZXhDb250YWluZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3Vu ZEFscGhhM0hvdmVyKTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmNvbW1hbmRCYXJfYzZiYTU3 NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpob3ZlciAubXMtQnV0dG9uLWZsZXhDb250YWlu ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3JOZXV0cmFsQmFja2dy b3VuZEFscGhhM0hvdmVyKTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmNvbW1hbmRCYXJfYzZi YTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjphY3RpdmUgLm1zLUJ1dHRvbi1mbGV4Q29u dGFpbmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yTmV1dHJhbERh cmtCYWNrZ3JvdW5kQWxwaGEzUHJlc3NlZCk7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJf YzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3Jv dW5kLWNvbG9yIDQ2N21zIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsNCiAgICB9 DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1z LUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKSB7DQogICAgICBjb2xv cjogIzE0MTQxNDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAg ICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA0NjdtcyBjdWJpYy1iZXppZXIoMC4x LCAwLjksIDAuMiwgMSk7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFz U2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6bm90KC5vZC0taGVy b0J1dHRvbik6aG92ZXIgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3 NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6bm90KC5v ZC0taGVyb0J1dHRvbikuaXMtdG9nZ2xlZCAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoNCiAgICAuY29tbWFu ZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFu ZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKS5pcy10b2dnbGVkOmhvdmVyIC5tcy1CdXR0b24t ZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjN2M3Ow0KICAg IH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAu bXMtQnV0dG9uLS1jb21tYW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0b24pOmFjdGl2ZSAubXMt QnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgIH0NCg0KICAgIC5jb21tYW5kQmFyX2M2 YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5kQmFyOm5v dCgub2QtLWhlcm9CdXR0b24pLmlzLWV4cGFuZGVkOmhvdmVyIC5tcy1CdXR0b24tZmxleENv bnRhaW5lciB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNlMGUwZTA7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2Vs ZWN0aW9uX2M2YmE1NzU5Lmluc2V0X2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6 bm90KC5vZC0taGVyb0J1dHRvbik6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog dHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2Vs ZWN0aW9uX2M2YmE1NzU5Lmluc2V0X2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6 bm90KC5vZC0taGVyb0J1dHRvbik6aG92ZXIgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLmNvbW1h bmRCYXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5Lmluc2V0X2M2YmE1NzU5IC5t cy1CdXR0b24tLWNvbW1hbmRCYXI6bm90KC5vZC0taGVyb0J1dHRvbik6YWN0aXZlIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5jb21t YW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OS5pbnNldF9jNmJhNTc1OSAu bXMtQnV0dG9uLS1jb21tYW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0b24pOmFjdGl2ZSAubXMt QnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBl MDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZi YTU3NTkuaW5zZXRfYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1o ZXJvQnV0dG9uKS5pcy1leHBhbmRlZDpob3ZlciAubXMtQnV0dG9uLW1lbnVJY29uIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5pc0Zs dWVudFZOZXh0IC5jb21tYW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAu aXNGbHVlbnRWTmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3 NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKTpob3ZlciAu bXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1 ZjVmNTsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1 OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9k LS1oZXJvQnV0dG9uKTphY3RpdmUgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5l eHQgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1Db21t YW5kQmFyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICBhbmlt YXRpb24tbmFtZTogY29tbWFuZEJhckJveFNoYWRvd0FuaW1hdGlvbl9jNmJhNTc1OTsNCiAg ICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMjY3bXM7DQogICAgICBhbmltYXRpb24tZmlsbC1t b2RlOiBib3RoOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5jb21tYW5kQmFyX2M2 YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhcjphZnRlciB7DQog ICAgICBhbmltYXRpb246IGNvbW1hbmRCYXJEaXZpZGVyQW5pbWF0aW9uX2M2YmE1NzU5Ow0K ICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNjdtczsNCiAgICAgIGFuaW1hdGlvbi1maWxs LW1vZGU6IGJvdGg7DQogICAgfQ0KDQogICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4 LXdpZHRoOiA0NzkuOTk5OTlweCkgew0KICAgICAgLmlzRmx1ZW50Vk5leHQgLmNvbW1hbmRC YXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5IHsNCiAgICAgICAgaGVpZ2h0OiBj YWxjKDQ4cHggKyA2cHggKiAyKTsNCiAgICAgIH0NCg0KICAgICAgLmlzRmx1ZW50Vk5leHQg LmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1Db21tYW5k QmFyIHsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsNCiAgICAgICAgcGFkZGluZzogNnB4 Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1OS5o YXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1o ZXJvQnV0dG9uKS5pcy1jaGVja2VkIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kQWxwaGEz SG92ZXIpOw0KICAgIH0NCg0KICAgIC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNT ZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJv QnV0dG9uKTpob3ZlciAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogdmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZEFscGhhM0hvdmVyKTsN CiAgICB9DQoNCiAgICAuaXNPRDMgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9u X2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6bm90KC5vZC0taGVyb0J1dHRvbik6 YWN0aXZlIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiB2YXIoLS1jb2xvck5ldXRyYWxEYXJrQmFja2dyb3VuZEFscGhhM1ByZXNzZWQpOw0K ICAgIH0NCg0KICAgIC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25f YzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKS5p cy1kaXNhYmxlZCB7DQogICAgICBjb2xvcjogdmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3Vu ZERpc2FibGVkKTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmNvbW1hbmRCYXJfYzZiYTU3NTku aGFzU2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6bm90KC5vZC0t aGVyb0J1dHRvbikuaXMtZGlzYWJsZWQ6aG92ZXIgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVy IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAg IC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1z LUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKS5pcy1kaXNhYmxlZDph Y3RpdmUgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6IHRyYW5zcGFyZW50Ow0KICAgICAgY29sb3I6IGluaGVyaXQ7DQogICAgfQ0KDQogICAg LnZpZXdfYzZiYTU3NTkgew0KICAgICAgZmxleDogMSAxIGF1dG87DQogICAgICBkaXNwbGF5 OiBmbGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICB9DQoNCiAgICAuaXNG bHVlbnRWTmV4dCAudmlld19jNmJhNTc1OSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7 DQogICAgICB0b3A6IC02cHg7DQogICAgfQ0KDQogICAgLmNvbnRlbnRfYzZiYTU3NTkgew0K ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgZmxleDogMSAxIGF1dG87DQogICAg fQ0KDQogICAgLnBhbmVfYzZiYTU3NTkgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0K ICAgICAgd2lkdGg6IDA7DQogICAgICBmbGV4OiAwIDAgYXV0bzsNCiAgICAgIG92ZXJmbG93 OiBoaWRkZW47DQogICAgfQ0KDQogICAgLmhhc1BhbmVfYzZiYTU3NTkgLnBhbmVfYzZiYTU3 NTkgew0KICAgICAgd2lkdGg6IDMyMHB4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0 IC5wYW5lX2M2YmE1NzU5IHsNCiAgICAgIHRvcDogN3B4Ow0KICAgIH0NCg0KICAgIC5pc09E MyAucGFuZV9jNmJhNTc1OSB7DQogICAgICB0b3A6IDA7DQogICAgfQ0KDQogICAgLnBhbmVD b250ZW50X2M2YmE1NzU5IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRv cDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHdpZHRoOiAzMjBweDsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAucGFuZUNvbnRlbnRfYzZiYTU3NTkgew0KICAgICAgcmlnaHQ6 IDA7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLnBhbmVDb250ZW50X2M2YmE1NzU5IHsN CiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQogICAgLm9kM1N0eWxlVG9wQmFyTm9TZWxlY3Rp b25fYzZiYTU3NTksDQogICAgLm9kM1N0eWxlVG9wQmFyV2l0aFNlbGVjdGlvbl9jNmJhNTc1 OSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsN CiAgICAgIGhlaWdodDogNjRweDsNCiAgICAgIG1hcmdpbi10b3A6IDEwcHg7DQogICAgfQ0K DQogICAgLm9kM1N0eWxlVG9wQmFyTm9TZWxlY3Rpb25fYzZiYTU3NTkrLnZpZXdfYzZiYTU3 NTksDQogICAgLm9kM1N0eWxlVG9wQmFyV2l0aFNlbGVjdGlvbl9jNmJhNTc1OSsudmlld19j NmJhNTc1OSB7DQogICAgICB0b3A6IDA7DQogICAgICBtYXJnaW4tdG9wOiAycHg7DQogICAg fQ0KDQogICAgLm9kM1N0eWxlVG9wQmFyTm9TZWxlY3Rpb25fYzZiYTU3NTkgew0KICAgICAg anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgIH0NCg0KICAgIC5vZDNTdHls ZVRvcEJhck5vU2VsZWN0aW9uX2M2YmE1NzU5IC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQt aGVhZGVyLm9kLUl0ZW1Db250ZW50LWhlYWRlciB7DQogICAgICBwYWRkaW5nLXRvcDogMCAh aW1wb3J0YW50Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsNCiAgICB9 DQoNCiAgICAub2QzU3R5bGVUb3BCYXJOb1NlbGVjdGlvbl9jNmJhNTc1OSAub2QtSXRlbUNv bnRlbnQtdGl0bGUgew0KICAgICAgZm9udC1zaXplOiAxOHB4Ow0KICAgICAgaGVpZ2h0OiAz NnB4Ow0KICAgIH0NCg0KICAgIC5vZDNTdHlsZVRvcEJhcldpdGhTZWxlY3Rpb25fYzZiYTU3 NTkgew0KICAgICAgZmxleDogMCAwIGF1dG87DQogICAgICB6LWluZGV4OiAyOw0KICAgIH0N Cg0KICAgIC5vZDNTdHlsZVRvcEJhcldpdGhTZWxlY3Rpb25fYzZiYTU3NTkrLnZpZXdfYzZi YTU3NTkgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1oZWFkZXIub2QtSXRlbUNvbnRlbnQt aGVhZGVyIHsNCiAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7DQogICAgICBwYWRk aW5nLWJvdHRvbTogMCAhaW1wb3J0YW50Ow0KICAgICAgaGVpZ2h0OiAwOw0KICAgIH0NCg0K ICAgIC5vZDNTdHlsZVRvcEJhcldpdGhTZWxlY3Rpb25fYzZiYTU3NTkrLnZpZXdfYzZiYTU3 NTkgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1oZWFkZXIub2QtSXRlbUNvbnRlbnQtaGVh ZGVyPmgyIHsNCiAgICAgIGhlaWdodDogMDsNCiAgICB9DQoNCiAgICAubXNJdGVtc1Njb3Bl QWRkY29sdW1uX2Y2OWFlNWJjIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAg ICAgIGhlaWdodDogaW5oZXJpdDsNCiAgICB9DQoNCiAgICAubXNJdGVtc1Njb3BlQWRkY29s dW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVyX2Y2OWFlNWJjIHsNCiAgICAg IGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoN CiAgICAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJE aXZpZGVyX2Y2OWFlNWJjOmhvdmVyIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVySWNvbl9mNjlh ZTViYyB7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAgfQ0KDQogICAgLm1zSXRlbXNT Y29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlcl9mNjlhZTVi Yzpob3ZlciAubXNEZXRhaWxzSGVhZGVyRGl2aWRlckljb25Ob3RWaXNpYmxlX2Y2OWFlNWJj IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7 DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRh aWxzSGVhZGVyRGl2aWRlckljb25Ob3RWaXNpYmxlX2Y2OWFlNWJjIHsNCiAgICAgIHZpc2li aWxpdHk6IGhpZGRlbjsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAgIGNvbG9yOiAj OWU5ZTllOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgei1pbmRleDogNTsN CiAgICAgIHdpZHRoOiAwOw0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIH0NCg0KICAg IFtkaXI9Imx0ciJdIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWls c0hlYWRlckRpdmlkZXJJY29uTm90VmlzaWJsZV9mNjlhZTViYyB7DQogICAgICBtYXJnaW4t bGVmdDogLThweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAubXNJdGVtc1Njb3BlQWRk Y29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVySWNvbk5vdFZpc2libGVf ZjY5YWU1YmMgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4Ow0KICAgIH0NCg0KICAgIC5t c0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlkZXJJ Y29uTm90VmlzaWJsZV9mNjlhZTViYzpob3ZlciB7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7 DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAg IHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNv bHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlckljb25Ob3RWaXNpYmxlX2Y2 OWFlNWJjOmhvdmVyIC5tc0RldGFpbHNIZWFkZXJJY29uQmFyTm90VmlzaWJsZV9mNjlhZTVi YyB7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxl Ow0KICAgIH0NCg0KICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0 YWlsc0hlYWRlckRpdmlkZXJJY29uX2Y2OWFlNWJjIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7 DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHotaW5kZXg6IDU7DQogICAgICB3aWR0aDogMDsNCiAgICAgIGZvbnQtc2l6ZTogMTZw eDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2 OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVySWNvbl9mNjlhZTViYyB7DQogICAgICBt YXJnaW4tbGVmdDogLThweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAubXNJdGVtc1Nj b3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVySWNvbl9mNjlh ZTViYyB7DQogICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7DQogICAgfQ0KDQogICAgLm1zSXRl bXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlckljb25f ZjY5YWU1YmM6aG92ZXIgew0KICAgICAgZGlzcGxheTogaW5saW5lOw0KICAgICAgY3Vyc29y OiBwb2ludGVyOw0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm1zSXRl bXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlckljb25f ZjY5YWU1YmM6aG92ZXIgLm1zRGV0YWlsc0hlYWRlckljb25CYXJfZjY5YWU1YmMgew0KICAg ICAgZGlzcGxheTogaW5saW5lOw0KICAgIH0NCg0KICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1 bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlkZXJJY29uVmlzaWJsZV9mNjlhZTVi YyB7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAg ICB9DQoNCiAgICAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNI ZWFkZXJEaXZpZGVySWNvblZpc2liaWxpdHlfZjY5YWU1YmMgew0KICAgICAgZGlzcGxheTog aW5saW5lOw0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICB2aXNpYmlsaXR5OiB2aXNp YmxlOw0KICAgIH0NCg0KICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1z RGV0YWlsc0hlYWRlckRpdmlkZXJBZGRJY29uX2Y2OWFlNWJjIHsNCiAgICAgIHdpZHRoOiAz MnB4Ow0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAtNDdweDsNCiAgICAgIG1h cmdpbi10b3A6IDIwcHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5tc0l0ZW1z U2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlkZXJBZGRJY29u X2Y2OWFlNWJjIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAtN3B4Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJydGwiXSAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFp bHNIZWFkZXJEaXZpZGVyQWRkSWNvbl9mNjlhZTViYyB7DQogICAgICBtYXJnaW4tcmlnaHQ6 IC04cHg7DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAu bXNEZXRhaWxzSGVhZGVySWNvbkJhcl9mNjlhZTViYyB7DQogICAgICBkaXNwbGF5OiBub25l Ow0KICAgICAgYmFja2dyb3VuZDogIzAwNzhkNDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6IDQycHg7DQogICAgfQ0KDQog ICAgW2Rpcj0ibHRyIl0gLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRh aWxzSGVhZGVySWNvbkJhcl9mNjlhZTViYyB7DQogICAgICBsZWZ0OiA4cHg7DQogICAgfQ0K DQogICAgW2Rpcj0icnRsIl0gLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNE ZXRhaWxzSGVhZGVySWNvbkJhcl9mNjlhZTViYyB7DQogICAgICByaWdodDogOHB4Ow0KICAg IH0NCg0KICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hl YWRlckljb25CYXJOb3RWaXNpYmxlX2Y2OWFlNWJjIHsNCiAgICAgIGRpc3BsYXk6IGlubGlu ZTsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgIGJhY2tncm91bmQ6ICMwMDc4 ZDQ7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB3aWR0aDogMXB4Ow0KICAg ICAgaGVpZ2h0OiA0MnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5tc0l0ZW1zU2Nv cGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckljb25CYXJOb3RWaXNpYmxl X2Y2OWFlNWJjIHsNCiAgICAgIGxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwi XSAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJJY29u QmFyTm90VmlzaWJsZV9mNjlhZTViYyB7DQogICAgICByaWdodDogOHB4Ow0KICAgIH0NCg0K ICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlcklj b25CYXJWaXNpYmxlX2Y2OWFlNWJjIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICB9 DQoNCiAgICAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFk ZXJJY29uQmFyVmlzaWJpbGl0eV9mNjlhZTViYyB7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7 DQogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgIH0NCg0KICAgIC5yb290XzA0OTRm YjQ4IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgYm9yZGVyLWJvdHRv bTogMXB4IHNvbGlkICNmMGYwZjA7DQogICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOw0KICAg ICAgY29sb3I6ICM2MTYxNjE7DQogICAgICBtaW4td2lkdGg6IDEwMCU7DQogICAgICB3aGl0 ZS1zcGFjZTogbm93cmFwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIGJveC1zaXppbmc6 IGJvcmRlci1ib3g7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgICAgb3V0bGlu ZTogdHJhbnNwYXJlbnQ7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAtLW9k My1yb3ctaW5zZXQtYmFja2dyb3VuZDogdmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFI b3Zlcik7DQogICAgICAtLW9kMy1yb3ctZGl2aWRlcjogdmFyKC0tY29sb3JOZXV0cmFsU3Ry b2tlMyk7DQogICAgICAtLW9kMy1yb3ctZGl2aWRlci1ncmFkaWVudC1kaXJlY3Rpb246IDkw ZGVnOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5yb290XzA0OTRmYjQ4IHsNCiAgICAg IHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLnJvb3RfMDQ5 NGZiNDggew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgLnJvb3Rf MDQ5NGZiNDggJjo6LW1vei1mb2N1cy1pbm5lciB7DQogICAgICBib3JkZXI6IDA7DQogICAg fQ0KDQogICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLnJvb3RfMDQ5NGZiNDg6Zm9j dXM6YWZ0ZXIgew0KICAgICAgY29udGVudDogIiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1 dGU7DQogICAgICB0b3A6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsN CiAgICAgIGxlZnQ6IDA7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgIGJv cmRlcjogMXB4IHNvbGlkICM2MTYxNjE7DQogICAgfQ0KDQogICAgLnJvb3RfMDQ5NGZiNDg6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsNCiAgICAgIGNvbG9yOiAjMjQy NDI0Ow0KICAgIH0NCg0KICAgIC5yb290XzA0OTRmYjQ4OmhvdmVyIC5pc1Jvd0hlYWRlcl8w NDk0ZmI0OCB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICB9DQoNCiAgICAucm9vdF8w NDk0ZmI0ODpob3ZlciAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4IHsNCiAgICAgIG9wYWNp dHk6IDE7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRy YXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkg ew0KICAgICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLnJvb3RfMDQ5NGZiNDg6Zm9j dXM6YWZ0ZXIgew0KICAgICAgICBib3JkZXItY29sb3I6IFdpbmRvd1RleHQ7DQogICAgICB9 DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBh Y3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAg ICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLnJvb3RfMDQ5NGZiNDg6Zm9jdXM6YWZ0 ZXIgew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAg IGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLnJv b3RfMDQ5NGZiNDggLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGU6Zm9jdXMgLmRldGFpbHNS b3dDaGVja18wNDk0ZmI0OCB7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAgIC5y b290XzA0OTRmYjQ4LmNvbXBhY3RfMDQ5NGZiNDggew0KICAgICAgYm9yZGVyLWJvdHRvbTog MDsNCiAgICB9DQoNCiAgICAucm9vdF8wNDk0ZmI0OC5kaXNhYmxlZF8wNDk0ZmI0OCB7DQog ICAgICBvcGFjaXR5OiAwLjU7DQogICAgfQ0KDQogICAgLnJvb3RfMDQ5NGZiNDguaXNTZWxl Y3RlZF8wNDk0ZmI0OCB7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIGJhY2tncm91 bmQ6ICNlYmViZWI7DQogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZmZmZjsN CiAgICB9DQoNCiAgICAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmJlZm9y ZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBkaXNwbGF5OiBibG9jazsN CiAgICAgIHRvcDogLTFweDsNCiAgICAgIGhlaWdodDogMXB4Ow0KICAgICAgYm90dG9tOiAw Ow0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgY29udGVudDogIiI7 DQogICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAu cm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQ6ICNlMGUwZTA7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQoNCiAgICBA bWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2Ny ZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9vdF8wNDk0ZmI0 OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmhvdmVyIC5jZWxsXzA0OTRmYjQ4IHsNCiAgICAgICAg Y29sb3I6IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQoNCiAgICAgIC5yb290XzA0OTRmYjQ4 LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6aG92ZXIgLmNlbGxfMDQ5NGZiNDg+YSB7DQogICAgICAg IGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb290XzA0 OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6aG92ZXIgLmlzUm93SGVhZGVyXzA0OTRmYjQ4 IHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4g YW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3Jj ZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRf MDQ5NGZiNDg6aG92ZXIgLmlzUm93SGVhZGVyXzA0OTRmYjQ4IHsNCiAgICAgICAgY29sb3I6 IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNl ZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8w NDk0ZmI0ODpob3ZlciB7DQogICAgICAgIGJhY2tncm91bmQ6IEhpZ2hsaWdodDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmZv Y3VzIC5jZWxsXzA0OTRmYjQ4IHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0K ICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAg ICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5yb290XzA0 OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6Zm9jdXMgLmNlbGxfMDQ5NGZiNDggew0KICAg ICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCg0KICAgICAgLnJvb3RfMDQ5 NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpmb2N1cyAuY2VsbF8wNDk0ZmI0OD5hIHsNCiAg ICAgICAgY29sb3I6IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLnJv b3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpmb2N1cyAuaXNSb3dIZWFkZXJfMDQ5 NGZiNDggew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNj cmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQg KGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnJvb3RfMDQ5NGZiNDguaXNTZWxl Y3RlZF8wNDk0ZmI0ODpmb2N1cyAuaXNSb3dIZWFkZXJfMDQ5NGZiNDggew0KICAgICAgICBj b2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAo Zm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9vdF8wNDk0ZmI0OC5pc1NlbGVj dGVkXzA0OTRmYjQ4OmZvY3VzIHsNCiAgICAgICAgYmFja2dyb3VuZDogSGlnaGxpZ2h0Ow0K ICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250 cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUp IHsNCiAgICAgIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDggew0KICAgICAg ICBiYWNrZ3JvdW5kOiBIaWdobGlnaHQ7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0 Ow0KICAgICAgfQ0KDQogICAgICAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4 IGEgew0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoN CiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQog ICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9vdF8w NDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4IHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJh c3QtYWRqdXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0K ICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZi NDg6Zm9jdXM6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZDogI2UwZTBlMDsNCiAgICB9DQoN CiAgICAuaXNGbHVlbnRWTmV4dCAucm9vdF8wNDk0ZmI0OCB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5yb290XzA0 OTRmYjQ4OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7DQogICAg fQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0 ZmI0OCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAg IC5pc0ZsdWVudFZOZXh0IC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZDogI2UwZTBlMDsNCiAgICB9DQoNCiAgICAuaXNGbHVl bnRWTmV4dCAucm9vdF8wNDk0ZmI0OC5kYXJrXzA0OTRmYjQ4IHsNCiAgICAgIGJvcmRlci1i b3R0b20tY29sb3I6ICNkMWQxZDE7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLnJvb3Rf MDQ5NGZiNDggew0KICAgICAgLS1vZDMtcm93LWRpdmlkZXItZ3JhZGllbnQtZGlyZWN0aW9u OiAyNzBkZWc7DQogICAgfQ0KDQogICAgLmlzT0QzIC5yb290XzA0OTRmYjQ4IHsNCiAgICAg IC1vLWJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHZhcigtLW9kMy1yb3ctZGl2aWRl ci1ncmFkaWVudC1kaXJlY3Rpb24pLA0KICAgICAgICAgIHRyYW5zcGFyZW50IDU2cHgsDQog ICAgICAgICAgdmFyKC0tb2QzLXJvdy1kaXZpZGVyKSA1NnB4IGNhbGMoMTAwJSAtIDhweCks DQogICAgICAgICAgdHJhbnNwYXJlbnQgY2FsYygxMDAlIC0gOHB4KSkgMCAwIDEgMDsNCiAg ICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHZhcigtLW9kMy1yb3ctZGl2aWRl ci1ncmFkaWVudC1kaXJlY3Rpb24pLA0KICAgICAgICAgIHRyYW5zcGFyZW50IDU2cHgsDQog ICAgICAgICAgdmFyKC0tb2QzLXJvdy1kaXZpZGVyKSA1NnB4IGNhbGMoMTAwJSAtIDhweCks DQogICAgICAgICAgdHJhbnNwYXJlbnQgY2FsYygxMDAlIC0gOHB4KSkgMCAwIDEgMDsNCiAg ICB9DQoNCiAgICAuaXNPRDMgLnJvb3RfMDQ5NGZiNDg6aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogdmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEpOw0KICAgICAgYm94 LXNoYWRvdzogMCAtMXB4IHZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTsNCiAgICAg IC0tb2QzLXJvdy1kaXZpZGVyOiB2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSk7DQog ICAgfQ0KDQogICAgLmlzT0QzIC5yb290XzA0OTRmYjQ4OmhvdmVyOjpiZWZvcmUgew0KICAg ICAgY29udGVudDogIiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6 IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBib3Jk ZXItdG9wOiBub25lOw0KICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogdmFyKC0tb2QzLXJvdy1pbnNldC1iYWNrZ3JvdW5kKTsNCiAgICB9DQoN CiAgICBodG1sW2Rpcj0ibHRyIl0gLmlzT0QzIC5yb290XzA0OTRmYjQ4OmhvdmVyOjpiZWZv cmUgew0KICAgICAgbGVmdDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu aXNPRDMgLnJvb3RfMDQ5NGZiNDg6aG92ZXI6OmJlZm9yZSB7DQogICAgICByaWdodDogOHB4 Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuaXNPRDMgLnJvb3RfMDQ5NGZiNDg6 aG92ZXI6OmJlZm9yZSB7DQogICAgICByaWdodDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJydGwiXSAuaXNPRDMgLnJvb3RfMDQ5NGZiNDg6aG92ZXI6OmJlZm9yZSB7DQogICAg ICBsZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5yb290XzA0OTRmYjQ4LmlzU2Vs ZWN0ZWRfMDQ5NGZiNDggew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3JO ZXV0cmFsQmFja2dyb3VuZDEpOw0KICAgICAgYm94LXNoYWRvdzogMCAtMXB4IHZhcigtLWNv bG9yTmV1dHJhbEJhY2tncm91bmQxKTsNCiAgICAgIC0tb2QzLXJvdy1kaXZpZGVyOiB2YXIo LS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSk7DQogICAgICAtLW9kMy1yb3ctaW5zZXQtYmFj a2dyb3VuZDogdmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQyKTsNCiAgICB9DQoNCiAgICAu aXNPRDMgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODo6YmVmb3JlIHsNCiAg ICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9w OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgYm9y ZGVyLXRvcDogbm9uZTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6IHZhcigtLW9kMy1yb3ctaW5zZXQtYmFja2dyb3VuZCk7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc09EMyAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVk XzA0OTRmYjQ4OjpiZWZvcmUgew0KICAgICAgbGVmdDogOHB4Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJydGwiXSAuaXNPRDMgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0 ODo6YmVmb3JlIHsNCiAgICAgIHJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9 Imx0ciJdIC5pc09EMyAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OjpiZWZv cmUgew0KICAgICAgcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g LmlzT0QzIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6OmJlZm9yZSB7DQog ICAgICBsZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5yb290XzA0OTRmYjQ4Lmlz U2VsZWN0ZWRfMDQ5NGZiNDg6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFy KC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEpOw0KICAgICAgLS1vZDMtcm93LWluc2V0LWJh Y2tncm91bmQ6IHZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kMkhvdmVyKTsNCiAgICB9DQoN CiAgICAuaXNPRDMgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpmb2N1cywN CiAgICAuaXNPRDMgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpmb2N1czpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvck5ldXRyYWxCYWNr Z3JvdW5kMSk7DQogICAgICAtLW9kMy1yb3ctaW5zZXQtYmFja2dyb3VuZDogdmFyKC0tY29s b3JCcmFuZEJhY2tncm91bmQySG92ZXIpOw0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlz Rm9jdXNWaXNpYmxlIC5pc09EMyAucm9vdF8wNDk0ZmI0ODpmb2N1czo6YWZ0ZXIgew0KICAg ICAgbGVmdDogOHB4Ow0KICAgICAgcmlnaHQ6IDhweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6 IDhweDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm1zLUxpc3QtY2VsbDpmaXJzdC1jaGlsZCAu cm9vdF8wNDk0ZmI0OCB7DQogICAgICBib3gtc2hhZG93OiBub25lOw0KICAgIH0NCg0KICAg IC5jZWxsXzA0OTRmYjQ4IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAg IHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQog ICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsN CiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNp czsNCiAgICAgIHBhZGRpbmctdG9wOiAxMXB4Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDEx cHg7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAtd2Via2l0LXVzZXItc2VsZWN0 OiBub25lOw0KICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgdXNlci1zZWxl Y3Q6IG5vbmU7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgfQ0KDQogICAgW2Rpcj0i bHRyIl0gLmNlbGxfMDQ5NGZiNDggew0KICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4Ow0KICAg IH0NCg0KICAgIFtkaXI9InJ0bCJdIC5jZWxsXzA0OTRmYjQ4IHsNCiAgICAgIHBhZGRpbmct cmlnaHQ6IDEycHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5jZWxsXzA0OTRmYjQ4IHsNCiAg ICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBw YWRkaW5nLXRvcDogMTRweDsNCiAgICB9DQoNCiAgICAuY29tcGFjdF8wNDk0ZmI0OCAuY2Vs bF8wNDk0ZmI0OCB7DQogICAgICBwYWRkaW5nLXRvcDogNnB4Ow0KICAgICAgcGFkZGluZy1i b3R0b206IDZweDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmNvbXBhY3RfMDQ5NGZiNDggLmNl bGxfMDQ5NGZiNDggew0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAgIH0NCg0KICAgIEBtZWRp YSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4g YW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5pc1NlbGVjdGVkXzA0OTRm YjQ4IC5jZWxsXzA0OTRmYjQ4IHsNCiAgICAgICAgYmFja2dyb3VuZDogSGlnaGxpZ2h0Ow0K ICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCg0KICAgICAgLmlzU2Vs ZWN0ZWRfMDQ5NGZiNDggLmNlbGxfMDQ5NGZiNDg+YSB7DQogICAgICAgIGNvbG9yOiBIaWdo bGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgt bXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29s b3JzOiBhY3RpdmUpIHsNCiAgICAgIC5pc1NlbGVjdGVkXzA0OTRmYjQ4IC5jZWxsXzA0OTRm YjQ4IHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAg ICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIFtk aXI9Imx0ciJdIC5jZWxsXzA0OTRmYjQ4LmNlbGxVbnBhZGRlZF8wNDk0ZmI0OCB7DQogICAg ICBwYWRkaW5nLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLmNlbGxf MDQ5NGZiNDguY2VsbFVucGFkZGVkXzA0OTRmYjQ4IHsNCiAgICAgIHBhZGRpbmctbGVmdDog OHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5jZWxsXzA0OTRmYjQ4LmNlbGxQYWRk ZWRfMDQ5NGZiNDggew0KICAgICAgcGFkZGluZy1yaWdodDogMzJweDsNCiAgICB9DQoNCiAg ICBbZGlyPSJydGwiXSAuY2VsbF8wNDk0ZmI0OC5jZWxsUGFkZGVkXzA0OTRmYjQ4IHsNCiAg ICAgIHBhZGRpbmctbGVmdDogMzJweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuY2Vs bF8wNDk0ZmI0OC5jZWxsUGFkZGVkXzA0OTRmYjQ4LmNoZWNrQ2VsbF8wNDk0ZmI0OCB7DQog ICAgICBwYWRkaW5nLXJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5jZWxs XzA0OTRmYjQ4LmNlbGxQYWRkZWRfMDQ5NGZiNDguY2hlY2tDZWxsXzA0OTRmYjQ4IHsNCiAg ICAgIHBhZGRpbmctbGVmdDogMDsNCiAgICB9DQoNCiAgICAuaXNSb3dIZWFkZXJfMDQ5NGZi NDggew0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgICBmb250LXNpemU6IDE0cHg7DQog ICAgfQ0KDQogICAgLmlzU2VsZWN0ZWRfMDQ5NGZiNDggLmlzUm93SGVhZGVyXzA0OTRmYjQ4 IHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAu aXNTZWxlY3RlZF8wNDk0ZmI0OCAuaXNSb3dIZWFkZXJfMDQ5NGZiNDggew0KICAgICAgICBj b2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuY2hlY2tDZWxs XzA0OTRmYjQ4IHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0KDQogICAgLmRl dGFpbHNSb3dDaGVja18wNDk0ZmI0OCB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAg ICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIGp1 c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgICAg Ym94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQog ICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh cmVudDsNCiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIG9wYWNpdHk6IDA7DQogICAgICBo ZWlnaHQ6IDQycHg7DQogICAgICB3aWR0aDogNDhweDsNCiAgICAgIHBhZGRpbmc6IDA7DQog ICAgICBtYXJnaW46IDA7DQogICAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDsNCiAgICAgIHBv c2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmRldGFpbHNSb3dDaGVj a18wNDk0ZmI0OCB7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgICB3aWR0aDogNTJweDsN CiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuaXNPRDMgLmRldGFpbHNSb3dDaGVja18wNDk0 ZmI0OCB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7DQogICAgfQ0KDQogICAgW2Rpcj0i cnRsIl0gLmlzT0QzIC5kZXRhaWxzUm93Q2hlY2tfMDQ5NGZiNDggew0KICAgICAgcGFkZGlu Zy1yaWdodDogMTJweDsNCiAgICB9DQoNCiAgICAuY29tcGFjdF8wNDk0ZmI0OCAuZGV0YWls c1Jvd0NoZWNrXzA0OTRmYjQ4IHsNCiAgICAgIGhlaWdodDogMzJweDsNCiAgICB9DQoNCiAg ICAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4OmhvdmVyIHsNCiAgICAgIG9wYWNpdHk6IDE7 DQogICAgfQ0KDQogICAgLmRldGFpbHNSb3dDaGVja18wNDk0ZmI0OC5pc0NoZWNrVmlzaWJs ZV8wNDk0ZmI0OCB7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAgIC5kZXRhaWxz Um93Q2hlY2tfMDQ5NGZiNDguaXNIZWFkZXJfMDQ5NGZiNDggew0KICAgICAgaGVpZ2h0OiA0 MnB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4Lmlz SGVhZGVyXzA0OTRmYjQ4IHsNCiAgICAgIGhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICAu ZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4ICY6Oi1tb3otZm9jdXMtaW5uZXIgew0KICAgICAg Ym9yZGVyOiAwOw0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5k ZXRhaWxzUm93Q2hlY2tfMDQ5NGZiNDg6Zm9jdXM6YWZ0ZXIgew0KICAgICAgY29udGVudDog IiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBy aWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBwb2lu dGVyLWV2ZW50czogbm9uZTsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM2MTYxNjE7DQog ICAgfQ0KDQogICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLmlzRmx1ZW50Vk5leHQg LmRldGFpbHNSb3dDaGVja18wNDk0ZmI0ODpmb2N1czo6YWZ0ZXIgew0KICAgICAgYm9yZGVy LXRvcC1sZWZ0LXJhZGl1czogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu bXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAuaXNGbHVlbnRWTmV4dCAuZGV0YWlsc1Jvd0No ZWNrXzA0OTRmYjQ4OmZvY3VzOjphZnRlciB7DQogICAgICBib3JkZXItdG9wLXJpZ2h0LXJh ZGl1czogOHB4Ow0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5p c09EMyAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4OmZvY3VzOjphZnRlciB7DQogICAgICBi b3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMnB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJy dGwiXSAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAuaXNPRDMgLmRldGFpbHNSb3dDaGVj a18wNDk0ZmI0ODpmb2N1czo6YWZ0ZXIgew0KICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRp dXM6IDEycHg7DQogICAgfQ0KDQogICAgLmNoZWNrQ292ZXJfMDQ5NGZiNDggew0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAtMXB4Ow0KICAgICAgbGVmdDogMDsN CiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgZGlzcGxheTogbm9u ZTsNCiAgICB9DQoNCiAgICAuYW55U2VsZWN0ZWRfMDQ5NGZiNDggLmNoZWNrQ292ZXJfMDQ5 NGZiNDggew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgLmZvbnRJY29u XzA0OTRmYjQ4IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZvbnQt ZmFtaWx5OiBGYWJyaWNNREwySWNvbnM7DQogICAgICAtbW96LW9zeC1mb250LXNtb290aGlu ZzogZ3JheXNjYWxlOw0KICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFz ZWQ7DQogICAgICBmb250LXN0eWxlOiBub3JtYWw7DQogICAgICBmb250LXdlaWdodDogNDAw Ow0KICAgIH0NCg0KICAgIC5yb290X2MxNjYyNmMxIHsNCiAgICAgIGxpbmUtaGVpZ2h0OiAx Ow0KICAgICAgd2lkdGg6IDE4cHg7DQogICAgICBoZWlnaHQ6IDE4cHg7DQogICAgICB2ZXJ0 aWNhbC1hbGlnbjogdG9wOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgLXdl YmtpdC10b3VjaC1jYWxsb3V0OiBub25lOw0KICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDog bm9uZTsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIHVzZXItc2VsZWN0 OiBub25lOw0KICAgIH0NCg0KICAgIC5yb290X2MxNjYyNmMxOmJlZm9yZSB7DQogICAgICBj b250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDFw eDsNCiAgICAgIHJpZ2h0OiAxcHg7DQogICAgICBib3R0b206IDFweDsNCiAgICAgIHRvcDog MXB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgb3BhY2l0eTogMTsNCiAg ICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7DQogICAgfQ0KDQogICAgLnJvb3RfYzE2NjI2YzEu cm9vdElzQ2hlY2tlZF9jMTY2MjZjMTpiZWZvcmUgew0KICAgICAgYmFja2dyb3VuZDogIzAw NzhkNDsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNl ZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnJvb3RfYzE2NjI2YzEucm9vdElzQ2hlY2tl ZF9jMTY2MjZjMTpiZWZvcmUgew0KICAgICAgICBiYWNrZ3JvdW5kOiBXaW5kb3c7DQogICAg ICB9DQogICAgfQ0KDQogICAgLnJvb3RfYzE2NjI2YzEgLmNoZWNrX2MxNjYyNmMxIHsNCiAg ICAgIG9wYWNpdHk6IDA7DQogICAgfQ0KDQogICAgLnJvb3RfYzE2NjI2YzEucm9vdElzQ2hl Y2tlZF9jMTY2MjZjMSAuY2hlY2tfYzE2NjI2YzEsDQogICAgLnJvb3RfYzE2NjI2YzE6Zm9j dXMgLmNoZWNrX2MxNjYyNmMxLA0KICAgIC5yb290X2MxNjYyNmMxOmhvdmVyIC5jaGVja19j MTY2MjZjMSB7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAgIC5jaGVja19jMTY2 MjZjMSwNCiAgICAuY2lyY2xlX2MxNjYyNmMxIHsNCiAgICAgIGZvbnQtc2l6ZTogMThweDsN CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIHdpZHRo OiAxOHB4Ow0KICAgICAgaGVpZ2h0OiAxOHB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVy Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICB9DQoNCiAgICBbZGlyPSJs dHIiXSAuY2hlY2tfYzE2NjI2YzEsDQogICAgW2Rpcj0ibHRyIl0gLmNpcmNsZV9jMTY2MjZj MSB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5jaGVja19j MTY2MjZjMSwNCiAgICBbZGlyPSJydGwiXSAuY2lyY2xlX2MxNjYyNmMxIHsNCiAgICAgIHJp Z2h0OiAwOw0KICAgIH0NCg0KICAgIC5jaXJjbGVfYzE2NjI2YzEgew0KICAgICAgY29sb3I6 ICM2MTYxNjE7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNv bnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2 ZSkgew0KICAgICAgLmNpcmNsZV9jMTY2MjZjMSB7DQogICAgICAgIGNvbG9yOiBXaW5kb3dU ZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb290SXNDaGVja2VkX2MxNjYyNmMxIC5j aXJjbGVfYzE2NjI2YzEgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAg LmNoZWNrX2MxNjYyNmMxIHsNCiAgICAgIG9wYWNpdHk6IDA7DQogICAgICBjb2xvcjogIzYx NjE2MTsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAuY2hlY2tfYzE2NjI2YzEgew0KICAgICAgbGVmdDogMC41cHg7DQogICAgfQ0KDQogICAg W2Rpcj0icnRsIl0gLmNoZWNrX2MxNjYyNmMxIHsNCiAgICAgIHJpZ2h0OiAwLjVweDsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAu Y2hlY2tfYzE2NjI2YzEgew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5v bmU7DQogICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICB9DQogICAg fQ0KDQogICAgLmNoZWNrX2MxNjYyNmMxOmhvdmVyIHsNCiAgICAgIG9wYWNpdHk6IDE7DQog ICAgfQ0KDQogICAgLnJvb3RJc0NoZWNrZWRfYzE2NjI2YzEgLmNoZWNrX2MxNjYyNmMxIHsN CiAgICAgIG9wYWNpdHk6IDE7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGZvbnQt d2VpZ2h0OiA5MDA7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFj dGl2ZSkgew0KICAgICAgLnJvb3RJc0NoZWNrZWRfYzE2NjI2YzEgLmNoZWNrX2MxNjYyNmMx IHsNCiAgICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgICBjb2xvcjogV2luZG93VGV4dDsN CiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29u dHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZl KSB7DQogICAgICAucm9vdElzQ2hlY2tlZF9jMTY2MjZjMSAuY2hlY2tfYzE2NjI2YzEgew0K ICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGZvcmNl ZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLnJvb3RfZGM0 MTgxNGIgew0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgcG9zaXRpb246IHJlbGF0 aXZlOw0KICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsNCiAgICAgIGNvbG9yOiAjMjQyNDI0 Ow0KICAgIH0NCg0KICAgIC5yb290X2RjNDE4MTRiIC5tcy1MaXN0LWNlbGwgew0KICAgICAg bWluLWhlaWdodDogMzhweDsNCiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7DQogICAg fQ0KDQogICAgLnJvb3RfZGM0MTgxNGIgLm1zLURldGFpbHNIZWFkZXIgew0KICAgICAgcGFk ZGluZy10b3A6IDA7DQogICAgfQ0KDQogICAgLnJvb3RfZGM0MTgxNGIubXMtRGV0YWlsc0xp c3QtLUNvbXBhY3QgLm1zLUxpc3QtY2VsbCB7DQogICAgICBtaW4taGVpZ2h0OiAzMnB4Ow0K ICAgIH0NCg0KICAgIC5yb290X2RjNDE4MTRiLmlzLWhvcml6b250YWxDb25zdHJhaW5lZCB7 DQogICAgICBvdmVyZmxvdy14OiBhdXRvOw0KICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTsN CiAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsNCiAgICB9DQoNCiAg ICAuaXNGbHVlbnRWTmV4dCAucm9vdF9kYzQxODE0YiB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZmZmZmZmOw0KICAgICAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggcmdiYSgwLCAw LCAwLCAwLjE0KSwNCiAgICAgICAgMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsNCiAgICAgIG92ZXJmbG93LXg6IGF1dG87DQog ICAgICBvdmVyZmxvdy15OiBoaWRkZW47DQogICAgICBtYXJnaW4tYm90dG9tOiA0MnB4Ow0K ICAgIH0NCg0KICAgIC5pc09EMyAucm9vdF9kYzQxODE0YiB7DQogICAgICBib3JkZXI6IDFw eCBzb2xpZCAjZWJlYmViOw0KICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsNCiAgICAgIGJv eC1zaGFkb3c6IG5vbmU7DQogICAgfQ0KDQogICAgLmZvY3VzWm9uZV9kYzQxODE0YiB7DQog ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBtaW4td2lkdGg6IDEwMCU7DQog ICAgICBtaW4taGVpZ2h0OiAxOw0KICAgIH0NCg0KICAgIC5jb250ZW50V3JhcHBlcl9kYzQx ODE0Yj4ubXMtRm9jdXNab25lIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0K ICAgIC5yb290XzIyNzZiMWE3IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9 DQoNCiAgICAucm9vdF8yMjc2YjFhNzphZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIHJpZ2h0OiAw Ow0KICAgICAgYm90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIGJhY2tncm91bmQt aW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sDQogICAgICAgICAgdHJhbnNwYXJl bnQgMzAlLA0KICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSA2NSUsDQogICAg ICAgICAgI2ZmZmZmZiAxMDAlKTsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2ZiB7DQog ICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdo dDogMDsNCiAgICAgIHotaW5kZXg6IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZm ZmZmOw0KICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjFz IGxpbmVhcjsNCiAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMXMgbGlu ZWFyOw0KICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgbGluZWFyOw0KICAgICAg dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgbGluZWFyLCAtd2Via2l0LXRyYW5zZm9ybSAw LjFzIGxpbmVhcjsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgLXdlYmtpdC11c2Vy LXNlbGVjdDogbm9uZTsNCiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICAt bXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICB1c2VyLXNlbGVjdDogbm9uZTsNCiAgICB9 DQoNCiAgICAudGlsZV9hMmUyZWY2Zjo6LW1vei1mb2N1cy1pbm5lciB7DQogICAgICBib3Jk ZXI6IDA7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVmNmYgew0KICAgICAgb3V0bGluZTog dHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVmNmYuaW52b2thYmxlX2Ey ZTJlZjZmOmhvdmVyLA0KICAgIC50aWxlX2EyZTJlZjZmLnNlbGVjdGFibGVfYTJlMmVmNmY6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICB9DQoNCiAg ICAudGlsZV9hMmUyZWY2Zi5pbnZva2FibGVfYTJlMmVmNmY6aG92ZXIuc2VsZWN0ZWRfYTJl MmVmNmYsDQogICAgLnRpbGVfYTJlMmVmNmYuc2VsZWN0YWJsZV9hMmUyZWY2Zjpob3Zlci5z ZWxlY3RlZF9hMmUyZWY2ZiB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0K ICAgIH0NCg0KICAgIC50aWxlX2EyZTJlZjZmLnNlbGVjdGVkX2EyZTJlZjZmIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVm NmYuc2VsZWN0ZWRfYTJlMmVmNmYuaXNGbHVlbnRTdHlsaW5nX2EyZTJlZjZmIC5uYW1lX2Ey ZTJlZjZmIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLm1zLUZh YnJpYy0taXNGb2N1c1Zpc2libGUgLnRpbGVfYTJlMmVmNmY6Zm9jdXMgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICB9DQoNCiAgICAubXMtRmFicmljLS1pc0Zv Y3VzVmlzaWJsZSAudGlsZV9hMmUyZWY2Zjpmb2N1cy5pc0ZsdWVudFN0eWxpbmdfYTJlMmVm NmYgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQog ICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLnRpbGVfYTJlMmVmNmY6Zm9jdXMuc2Vs ZWN0ZWRfYTJlMmVmNmYgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAg ICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAudGlsZV9hMmUyZWY2Zjpm b2N1cyB7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgIzYxNjE2MTsNCiAgICB9DQoNCiAg ICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAudGlsZV9hMmUyZWY2Zjpmb2N1cy5zZWxl Y3RlZF9hMmUyZWY2ZiB7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgIzAwNzhkNDsNCiAg ICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAudGlsZV9hMmUyZWY2Zjpm b2N1cy5zZWxlY3RlZF9hMmUyZWY2Zi5pc0ZsdWVudFN0eWxpbmdfYTJlMmVmNmYgew0KICAg ICAgb3V0bGluZTogMXB4IHNvbGlkICM2MTYxNjE7DQogICAgfQ0KDQogICAgLnRpbGVfYTJl MmVmNmYuaGFzQmFja2dyb3VuZEZyYW1lX2EyZTJlZjZmIHsNCiAgICAgIC13ZWJraXQtYm94 LXNoYWRvdzogMCAxcHggM3B4IDFweCByZ2JhKDEsIDEsIDAsIDAuMDUpOw0KICAgICAgYm94 LXNoYWRvdzogMCAxcHggM3B4IDFweCByZ2JhKDEsIDEsIDAsIDAuMDUpOw0KICAgIH0NCg0K ICAgIC50aWxlX2EyZTJlZjZmLmhhc0JhY2tncm91bmRGcmFtZV9hMmUyZWY2Zi5pbnZva2Fi bGVfYTJlMmVmNmY6aG92ZXIsDQogICAgLnRpbGVfYTJlMmVmNmYuaGFzQmFja2dyb3VuZEZy YW1lX2EyZTJlZjZmLnNlbGVjdGFibGVfYTJlMmVmNmY6aG92ZXIgew0KICAgICAgb3V0bGlu ZTogMXB4IHNvbGlkICNjN2M3Yzc7DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0taXNGb2N1 c1Zpc2libGUgLnRpbGVfYTJlMmVmNmYuaGFzQmFja2dyb3VuZEZyYW1lX2EyZTJlZjZmOmZv Y3VzIHsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjE2MTYxOw0KICAgIH0NCg0KICAg IC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC50aWxlX2EyZTJlZjZmLmhhc0JhY2tncm91 bmRGcmFtZV9hMmUyZWY2Zjpmb2N1cy5zZWxlY3RlZF9hMmUyZWY2ZiB7DQogICAgICBvdXRs aW5lOiAxcHggc29saWQgIzAwNzhkNDsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5o YXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmY6YWZ0ZXIgew0KICAgICAgY29udGVudDogIiI7 DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBy aWdodDogMDsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgICAgYm9yZGVyOiAy cHggc29saWQgI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5pbnZva2Fi bGVfYTJlMmVmNmY6YWN0aXZlIHsNCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgw Ljk1KTsNCiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7DQogICAgfQ0KDQogICAgLmxh YmVsX2EyZTJlZjZmIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRo OiAxcHg7DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBt YXJnaW46IC0xcHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgY2xpcDogcmVj dCgwLCAwLCAwLCAwKTsNCiAgICAgIGJvcmRlcjogMDsNCiAgICB9DQoNCiAgICAuZGVzY3Jp cHRpb25fYTJlMmVmNmYgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lk dGg6IDFweDsNCiAgICAgIGhlaWdodDogMXB4Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAg IG1hcmdpbjogLTFweDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBjbGlwOiBy ZWN0KDAsIDAsIDAsIDApOw0KICAgICAgYm9yZGVyOiAwOw0KICAgIH0NCg0KICAgIC5saW5r X2EyZTJlZjZmIHsNCiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIGJhY2tncm91bmQ6IDAg MDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAg ICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmln aHQ6IDA7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9u ZTsNCiAgICAgIGNvbG9yOiBpbmhlcml0Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg ICAgIGRpc3BsYXk6IC13ZWJraXQtYm94Ow0KICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7 DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0 aWNhbDsNCiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1z LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1u Ow0KICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7DQogICAgICAtbXMtZmxleC1h bGlnbjogc3RyZXRjaDsNCiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOw0KICAgICAgLW1z LWZsZXgtbGluZS1wYWNrOiBzdHJldGNoOw0KICAgICAgYWxpZ24tY29udGVudDogc3RyZXRj aDsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgIH0NCg0KICAgIC5saW5rX2Ey ZTJlZjZmOjotbW96LWZvY3VzLWlubmVyIHsNCiAgICAgIGJvcmRlcjogMDsNCiAgICB9DQoN CiAgICAubGlua19hMmUyZWY2ZiB7DQogICAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDsNCiAg ICB9DQoNCiAgICAuZm9yZWdyb3VuZF9hMmUyZWY2ZiB7DQogICAgICBkaXNwbGF5OiAtd2Vi a2l0LWlubGluZS1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7DQog ICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsN CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOw0KICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAg ICAgbWF4LWhlaWdodDogMTAwJTsNCiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpv bnRhbDsNCiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1z LWZsZXgtZGlyZWN0aW9uOiByb3c7DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAg ICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBj ZW50ZXI7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgLXdlYmtpdC1ib3gt cGFjazogY2VudGVyOw0KICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOw0KICAgICAganVz dGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBvcGFjaXR5OiAxOw0KICAgICAgLXdlYmtp dC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjog b3BhY2l0eSAwLjJzIGxpbmVhcjsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5pbnZv a2FibGVfYTJlMmVmNmYgLmZvcmVncm91bmRfYTJlMmVmNmYgew0KICAgICAgcG9pbnRlci1l dmVudHM6IGF1dG87DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLmZv cmVncm91bmRfYTJlMmVmNmYuZm9yZWdyb3VuZEhpZGVfYTJlMmVmNmYgew0KICAgICAgb3Bh Y2l0eTogMDsNCiAgICB9DQoNCiAgICAuaGFzRm9yZWdyb3VuZEZyYW1lX2EyZTJlZjZmIC5m b3JlZ3JvdW5kX2EyZTJlZjZmIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7 DQogICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgxLCAxLCAw LCAwLjA1KTsNCiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgxLCAxLCAw LCAwLjA1KTsNCiAgICAgIG1pbi13aWR0aDogMzJweDsNCiAgICAgIG1pbi1oZWlnaHQ6IDMy cHg7DQogICAgfQ0KDQogICAgLmhhc0ZvcmVncm91bmRGcmFtZV9hMmUyZWY2ZiAuZm9yZWdy b3VuZF9hMmUyZWY2ZjphZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIGRpc3Bs YXk6IGJsb2NrOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0K ICAgICAgbGVmdDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAg ICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZm ZmZmOw0KICAgIH0NCg0KICAgIC5jaGVja19hMmUyZWY2ZiB7DQogICAgICBkaXNwbGF5OiBu b25lOw0KICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsNCiAgICAgIC13ZWJr aXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBj b2x1bW47DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgLXdlYmtpdC1i b3gtYWxpZ246IGVuZDsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7DQogICAgICBhbGln bi1pdGVtczogZmxleC1lbmQ7DQogICAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDsNCiAg ICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4 LXN0YXJ0Ow0KICAgICAgdG9wOiAwOw0KICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgYmFj a2dyb3VuZDogMCAwOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQog ICAgICBvcGFjaXR5OiAwOw0KICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94 Ow0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHBhZGRpbmc6IDZweDsN CiAgICB9DQoNCiAgICAuY2hlY2tfYTJlMmVmNmY6Oi1tb3otZm9jdXMtaW5uZXIgew0KICAg ICAgYm9yZGVyOiAwOw0KICAgIH0NCg0KICAgIC5jaGVja19hMmUyZWY2ZiB7DQogICAgICBv dXRsaW5lOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAuY2hlY2tfYTJlMmVmNmYgew0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlz Rm9jdXNWaXNpYmxlIC5jaGVja19hMmUyZWY2Zjpmb2N1czphZnRlciB7DQogICAgICAtd2Vi a2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXIt Ym94Ow0KICAgICAgY29udGVudDogIiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB0b3A6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAg IGxlZnQ6IDA7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgIGJvcmRlcjog MXB4IHNvbGlkICMwMDAwMDA7DQogICAgICBib3JkZXItcmFkaXVzOiAwOw0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJsdHIiXSAuY2hlY2tfYTJlMmVmNmYgew0KICAgICAgcmlnaHQ6IDA7 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5jaGVja19hMmUyZWY2ZiB7DQogICAg ICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC50aWxlX2EyZTJlZjZmLnVuaW52b2thYmxlX2Ey ZTJlZjZmIC5jaGVja19hMmUyZWY2ZiB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhl aWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5zZWxlY3RhYmxlX2Ey ZTJlZjZmIC5jaGVja19hMmUyZWY2ZiB7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsN CiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAg ICB9DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5zZWxlY3RhYmxlX2EyZTJlZjZmOmhvdmVyIC5j aGVja19hMmUyZWY2ZiwNCiAgICAudGlsZV9hMmUyZWY2Zi5zZWxlY3RlZF9hMmUyZWY2ZiAu Y2hlY2tfYTJlMmVmNmYsDQogICAgLnRpbGVfYTJlMmVmNmYuc2hvd0NoZWNrX2EyZTJlZjZm IC5jaGVja19hMmUyZWY2ZiB7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAgIC5t cy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5jaGVja19hMmUyZWY2Zjpmb2N1cyB7DQogICAg ICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxl IC50aWxlX2EyZTJlZjZmOmZvY3VzIC5jaGVja19hMmUyZWY2ZiB7DQogICAgICBvcGFjaXR5 OiAxOw0KICAgIH0NCg0KICAgIC5iYWNrZ3JvdW5kX2EyZTJlZjZmIHsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBy aWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQog ICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94 Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVy dGljYWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsNCiAgICAgIC1t cy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVt bjsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1h bGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIC13ZWJr aXQtYm94LXBhY2s6IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsNCiAg ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgb3BhY2l0eTogMTsNCiAgICAg IC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjsNCiAgICAgIHRyYW5z aXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVm NmYuaW52b2thYmxlX2EyZTJlZjZmIC5iYWNrZ3JvdW5kX2EyZTJlZjZmIHsNCiAgICAgIGN1 cnNvcjogcG9pbnRlcjsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOw0KICAgIH0NCg0K ICAgIC5iYWNrZ3JvdW5kX2EyZTJlZjZmLmJhY2tncm91bmRIaWRlX2EyZTJlZjZmIHsNCiAg ICAgIG9wYWNpdHk6IDA7DQogICAgfQ0KDQogICAgLmFib3ZlTmFtZXBsYXRlX2EyZTJlZjZm IHsNCiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7DQogICAgICAtbXMtZmxleDogMTsNCiAg ICAgIGZsZXg6IDE7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBtYXJnaW46 IDE2cHggMTZweCAwIDE2cHg7DQogICAgfQ0KDQogICAgLmNvbnRlbnRfYTJlMmVmNmYgew0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDog MDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgZGlzcGxheTog LXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3Bs YXk6IGZsZXg7DQogICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOw0KICAgICAg LXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQogICAgICAtbXMtZmxleC1kaXJlY3Rp b246IGNvbHVtbjsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAtd2Vi a2l0LWJveC1hbGlnbjogY2VudGVyOw0KICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsN CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAtd2Via2l0LWJveC1wYWNrOiBj ZW50ZXI7DQogICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNv bnRlbnQ6IGNlbnRlcjsNCiAgICB9DQoNCiAgICAuaGFzRm9yZWdyb3VuZEZyYW1lX2EyZTJl ZjZmIC5jb250ZW50X2EyZTJlZjZmIHsNCiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDsN CiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDsNCiAgICAgIGp1c3RpZnktY29udGVudDogZmxl eC1lbmQ7DQogICAgfQ0KDQogICAgLm5hbWVwbGF0ZV9hMmUyZWY2ZiB7DQogICAgICBkaXNw bGF5OiAtd2Via2l0LWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAg ZGlzcGxheTogZmxleDsNCiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7DQog ICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsNCiAgICAgIC1tcy1mbGV4LWRp cmVjdGlvbjogY29sdW1uOw0KICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAg IC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1hbGlnbjogY2Vu dGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIC13ZWJraXQtYm94LXBh Y2s6IGVuZDsNCiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDsNCiAgICAgIGp1c3RpZnktY29u dGVudDogZmxleC1lbmQ7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBtYXJn aW46IGF1dG8gMCAwIDA7DQogICAgICBwYWRkaW5nOiAxMnB4IDhweDsNCiAgICAgIHRleHQt YWxpZ246IGNlbnRlcjsNCiAgICAgIHotaW5kZXg6IDA7DQogICAgfQ0KDQogICAgLm5hbWVw bGF0ZV9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiB7DQogICAgICAtd2Via2l0LXRyYW5zaXRp b246IGNvbG9yIDAuMnMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBs aW5lYXI7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVmNmYuaW52b2thYmxlX2EyZTJlZjZm IC5uYW1lcGxhdGVfYTJlMmVmNmYgLm5hbWVfYTJlMmVmNmYgew0KICAgICAgcG9pbnRlci1l dmVudHM6IGF1dG87DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLnRp bGVfYTJlMmVmNmYuaW52b2thYmxlX2EyZTJlZjZmIC5saW5rX2EyZTJlZjZmOmhvdmVyIC5u YW1lcGxhdGVfYTJlMmVmNmYgLm5hbWVfYTJlMmVmNmYgew0KICAgICAgdGV4dC1kZWNvcmF0 aW9uOiB1bmRlcmxpbmU7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50U3R5bGluZ19hMmUyZWY2 ZiAudGlsZV9hMmUyZWY2Zi5pbnZva2FibGVfYTJlMmVmNmYgLmxpbmtfYTJlMmVmNmY6aG92 ZXIgLm5hbWVwbGF0ZV9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiB7DQogICAgICB0ZXh0LWRl Y29yYXRpb246IG5vbmU7DQogICAgfQ0KDQogICAgLm5hbWVwbGF0ZV9hMmUyZWY2ZiAuYWN0 aXZpdHlfYTJlMmVmNmYgew0KICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjJz IGxpbmVhcjsNCiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgbGluZWFyOw0KICAgIH0N Cg0KICAgIC50aWxlX2EyZTJlZjZmLmhhc0JhY2tncm91bmRGcmFtZV9hMmUyZWY2ZiAubmFt ZXBsYXRlX2EyZTJlZjZmIHsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsNCiAg ICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDsNCiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0 YXJ0Ow0KICAgICAgcGFkZGluZzogMTJweCAxMHB4Ow0KICAgIH0NCg0KICAgIC5zaWduYWxf YTJlMmVmNmYgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJsdHIiXSAuc2lnbmFsX2EyZTJlZjZmLnN0b3JhZ2VTaWduYWxfYTJlMmVm NmYgew0KICAgICAgbWFyZ2luLWxlZnQ6IDRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i cnRsIl0gLnNpZ25hbF9hMmUyZWY2Zi5zdG9yYWdlU2lnbmFsX2EyZTJlZjZmIHsNCiAgICAg IG1hcmdpbi1yaWdodDogNHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuc2ln bmFsX2EyZTJlZjZmLnNvY2lhbFNpZ25hbF9hMmUyZWY2ZiB7DQogICAgICBtYXJnaW4tcmln aHQ6IDRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNpZ25hbF9hMmUyZWY2 Zi5zb2NpYWxTaWduYWxfYTJlMmVmNmYgew0KICAgICAgbWFyZ2luLWxlZnQ6IDRweDsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLnNpZ25hbF9hMmUyZWY2Zi5saWZlY3ljbGVT aWduYWxfYTJlMmVmNmYgew0KICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9InJ0bCJdIC5zaWduYWxfYTJlMmVmNmYubGlmZWN5Y2xlU2lnbmFsX2Ey ZTJlZjZmIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7DQogICAgfQ0KDQogICAgLm5hbWVf YTJlMmVmNmYgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5 OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtd2Via2l0LWJv eC1vcmllbnQ6IGhvcml6b250YWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5v cm1hbDsNCiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgZmxleC1kaXJl Y3Rpb246IHJvdzsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAt bXMtZmxleC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAg ICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LXBhY2s6IGNl bnRlcjsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgZm9udC13ZWln aHQ6IDQwMDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgd2hpdGUtc3BhY2U6IG5v d3JhcDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB0ZXh0LW92ZXJmbG93OiBl bGxpcHNpczsNCiAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0ibHRyIl0gLm5hbWVfYTJlMmVmNmYgew0KICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5uYW1lX2EyZTJlZjZmIHsNCiAgICAgIG1h cmdpbi1yaWdodDogLThweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm5hbWVf YTJlMmVmNmYgew0KICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9InJ0bCJdIC5uYW1lX2EyZTJlZjZmIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDhw eDsNCiAgICB9DQoNCiAgICAuaXNMYXJnZV9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiwNCiAg ICAubmFtZV9hMmUyZWY2ZiB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBoZWln aHQ6IDMwcHg7DQogICAgICBtYXJnaW4tdG9wOiAtN3B4Ow0KICAgICAgbWFyZ2luLWJvdHRv bTogLThweDsNCiAgICB9DQoNCiAgICAuaXNTbWFsbF9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2 ZiB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBoZWlnaHQ6IDI0cHg7DQogICAg ICBtYXJnaW4tdG9wOiAtNXB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogLTdweDsNCiAgICB9 DQoNCiAgICAuYWN0aXZpdHlfYTJlMmVmNmYgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1i b3g7DQogICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7 DQogICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7DQogICAgICAtd2Via2l0 LWJveC1kaXJlY3Rpb246IG5vcm1hbDsNCiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93 Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgIC13ZWJraXQtYm94LWFsaWdu OiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24t aXRlbXM6IGNlbnRlcjsNCiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsNCiAgICAg IC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVy Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAg ICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAg IG92ZXJmbG93OiBoaWRkZW47DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAg ICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMjRweDsNCiAgICAgIG1hcmdp bi1ib3R0b206IC00cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5hY3Rpdml0 eV9hMmUyZWY2ZiB7DQogICAgICBtYXJnaW4tbGVmdDogLThweDsNCiAgICB9DQoNCiAgICBo dG1sW2Rpcj0icnRsIl0gLmFjdGl2aXR5X2EyZTJlZjZmIHsNCiAgICAgIG1hcmdpbi1yaWdo dDogLThweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmFjdGl2aXR5X2EyZTJl ZjZmIHsNCiAgICAgIHBhZGRpbmctbGVmdDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJydGwiXSAuYWN0aXZpdHlfYTJlMmVmNmYgew0KICAgICAgcGFkZGluZy1yaWdodDogOHB4 Ow0KICAgIH0NCg0KICAgIC5oYXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYgLm5hbWVfYTJl MmVmNmYgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9 Imx0ciJdIC5oYXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYgLm5hbWVfYTJlMmVmNmYgew0K ICAgICAgLXdlYmtpdC1ib3gtcGFjazogbGVmdDsNCiAgICAgIC1tcy1mbGV4LXBhY2s6IGxl ZnQ7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtk aXI9InJ0bCJdIC5oYXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYgLm5hbWVfYTJlMmVmNmYg ew0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogcmlnaHQ7DQogICAgICAtbXMtZmxleC1wYWNr OiByaWdodDsNCiAgICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7DQogICAgfQ0KDQogICAg Lmhhc0JhY2tncm91bmRGcmFtZV9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiwNCiAgICAuaXNM YXJnZV9hMmUyZWY2ZiAuaXNTbWFsbF9hMmUyZWY2ZiAuaGFzQmFja2dyb3VuZEZyYW1lX2Ey ZTJlZjZmIC5uYW1lX2EyZTJlZjZmIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAg IGhlaWdodDogYXV0bzsNCiAgICAgIHBhZGRpbmctdG9wOiA2cHg7DQogICAgICBtYXJnaW4t dG9wOiAwOw0KICAgICAgbWFyZ2luLWJvdHRvbTogMDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAy MnB4Ow0KICAgIH0NCg0KICAgIC5oYXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYgLmFjdGl2 aXR5X2EyZTJlZjZmIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIGRpc3BsYXk6 IGJsb2NrOw0KICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgbWFyZ2luLXRvcDogMDsNCiAg ICAgIG1hcmdpbi1ib3R0b206IDA7DQogICAgICBsaW5lLWhlaWdodDogMjBweDsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmhhc0JhY2tncm91bmRGcmFtZV9hMmUyZWY2ZiAu YWN0aXZpdHlfYTJlMmVmNmYgew0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogbGVmdDsNCiAg ICAgIC1tcy1mbGV4LXBhY2s6IGxlZnQ7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7 DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwi XSAuaGFzQmFja2dyb3VuZEZyYW1lX2EyZTJlZjZmIC5hY3Rpdml0eV9hMmUyZWY2ZiB7DQog ICAgICAtd2Via2l0LWJveC1wYWNrOiBsZWZ0Ow0KICAgICAgLW1zLWZsZXgtcGFjazogbGVm dDsNCiAgICAgIGp1c3RpZnktY29udGVudDogbGVmdDsNCiAgICAgIHRleHQtYWxpZ246IGxl ZnQ7DQogICAgfQ0KDQogICAgLmhhc0JhY2tncm91bmRfYTJlMmVmNmYgLm5hbWVwbGF0ZV9h MmUyZWY2ZjpiZWZvcmUgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgY29u dGVudDogIiI7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHRvcDogLTRweDsNCiAg ICAgIGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAg IGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLA0KICAgICAgICAg IGxlZnQgYm90dG9tLA0KICAgICAgICAgIGxlZnQgdG9wLA0KICAgICAgICAgIGZyb20ocmdi YSgwLCAwLCAwLCAwLjY1KSksDQogICAgICAgICAgY29sb3Itc3RvcCg1NSUsIHJnYmEoMCwg MCwgMCwgMC41NTI1KSksDQogICAgICAgICAgY29sb3Itc3RvcCg4MCUsIHJnYmEoMCwgMCwg MCwgMC4xOTUpKSwNCiAgICAgICAgICB0byhyZ2JhKDAsIDAsIDAsIDApKSk7DQogICAgICBi YWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLA0KICAgICAgICAgIHJn YmEoMCwgMCwgMCwgMC42NSkgMCwNCiAgICAgICAgICByZ2JhKDAsIDAsIDAsIDAuNTUyNSkg NTUlLA0KICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC4xOTUpIDgwJSwNCiAgICAgICAgICBy Z2JhKDAsIDAsIDAsIDApIDEwMCUpOw0KICAgICAgei1pbmRleDogLTE7DQogICAgICAtd2Vi a2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7DQogICAgICB0cmFuc2l0aW9u OiBvcGFjaXR5IDAuMnMgbGluZWFyOw0KICAgICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAg ICAuaGFzQmFja2dyb3VuZF9hMmUyZWY2ZiAub25seU9uSG92ZXJfYTJlMmVmNmYgLm5hbWVf YTJlMmVmNmYgew0KICAgICAgb3BhY2l0eTogMDsNCiAgICAgIC13ZWJraXQtdHJhbnNpdGlv bjogb3BhY2l0eSAwLjJzIGxpbmVhciwgY29sb3IgMC4ycyBsaW5lYXIsDQogICAgICAgIC13 ZWJraXQtdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0Ow0KICAgICAgdHJhbnNpdGlvbjogb3Bh Y2l0eSAwLjJzIGxpbmVhciwgY29sb3IgMC4ycyBsaW5lYXIsDQogICAgICAgIC13ZWJraXQt dHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0Ow0KICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3Jt IDAuMjVzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMnMgbGluZWFyLA0KICAgICAgICBjb2xvciAw LjJzIGxpbmVhcjsNCiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91 dCwgb3BhY2l0eSAwLjJzIGxpbmVhciwNCiAgICAgICAgY29sb3IgMC4ycyBsaW5lYXIsIC13 ZWJraXQtdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0Ow0KICAgICAgLXdlYmtpdC10cmFuc2Zv cm06IHRyYW5zbGF0ZVkoMXJlbSk7DQogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXJl bSk7DQogICAgfQ0KDQogICAgLmhhc0JhY2tncm91bmRfYTJlMmVmNmYgLm9ubHlPbkhvdmVy X2EyZTJlZjZmIC5hY3Rpdml0eV9hMmUyZWY2ZiB7DQogICAgICBvcGFjaXR5OiAwOw0KICAg ICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyLCBjb2xvciAwLjJz IGxpbmVhciwNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7DQog ICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyLCBjb2xvciAwLjJzIGxpbmVh ciwNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7DQogICAgICB0 cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4ycyBsaW5l YXIsDQogICAgICAgIGNvbG9yIDAuMnMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogdHJh bnNmb3JtIDAuMjVzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMnMgbGluZWFyLA0KICAgICAgICBj b2xvciAwLjJzIGxpbmVhciwgLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7DQog ICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcmVtKTsNCiAgICAgIHRyYW5z Zm9ybTogdHJhbnNsYXRlWSgxcmVtKTsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dyb3VuZF9h MmUyZWY2Zi5zZWxlY3RlZF9hMmUyZWY2ZiAub25seU9uSG92ZXJfYTJlMmVmNmYgLm5hbWVf YTJlMmVmNmYsDQogICAgLmhhc0JhY2tncm91bmRfYTJlMmVmNmY6aG92ZXIgLm9ubHlPbkhv dmVyX2EyZTJlZjZmIC5uYW1lX2EyZTJlZjZmIHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAg ICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICAgIHRyYW5zZm9ybTog dHJhbnNsYXRlWSgwKTsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dyb3VuZF9hMmUyZWY2Zi5z ZWxlY3RlZF9hMmUyZWY2ZiAub25seU9uSG92ZXJfYTJlMmVmNmYgLmFjdGl2aXR5X2EyZTJl ZjZmLA0KICAgIC5oYXNCYWNrZ3JvdW5kX2EyZTJlZjZmOmhvdmVyIC5vbmx5T25Ib3Zlcl9h MmUyZWY2ZiAuYWN0aXZpdHlfYTJlMmVmNmYgew0KICAgICAgb3BhY2l0eTogMTsNCiAgICAg IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgICAgdHJhbnNmb3JtOiB0 cmFuc2xhdGVZKDApOw0KICAgIH0NCg0KICAgIC5oYXNCYWNrZ3JvdW5kX2EyZTJlZjZmLnNo b3dCYWNrZ3JvdW5kX2EyZTJlZjZmLnNlbGVjdGVkX2EyZTJlZjZmIC5vbmx5T25Ib3Zlcl9h MmUyZWY2Zi5uYW1lcGxhdGVfYTJlMmVmNmY6YmVmb3JlLA0KICAgIC5oYXNCYWNrZ3JvdW5k X2EyZTJlZjZmLnNob3dCYWNrZ3JvdW5kX2EyZTJlZjZmOmhvdmVyIC5vbmx5T25Ib3Zlcl9h MmUyZWY2Zi5uYW1lcGxhdGVfYTJlMmVmNmY6YmVmb3JlIHsNCiAgICAgIG9wYWNpdHk6IDE7 DQogICAgfQ0KDQogICAgLmhhc0JhY2tncm91bmRfYTJlMmVmNmYuc2hvd0JhY2tncm91bmRf YTJlMmVmNmYgLm5hbWVwbGF0ZV9hMmUyZWY2Zjpub3QoLm9ubHlPbkhvdmVyX2EyZTJlZjZm KTpiZWZvcmUgew0KICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dy b3VuZF9hMmUyZWY2Zi5zaG93QmFja2dyb3VuZF9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiB7 DQogICAgICBjb2xvcjogI2ZmZjsNCiAgICAgIHRleHQtc2hhZG93OiAwLjVweCAwLjVweCAy cHggcmdiYSgwLCAwLCAwLCAwLjU1KTsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dyb3VuZF9h MmUyZWY2Zi5zaG93QmFja2dyb3VuZF9hMmUyZWY2ZiAuYWN0aXZpdHlfYTJlMmVmNmYgew0K ICAgICAgY29sb3I6ICNmZmY7DQogICAgICB0ZXh0LXNoYWRvdzogMC41cHggMC41cHggMnB4 IHJnYmEoMCwgMCwgMCwgMC41NSk7DQogICAgfQ0KDQogICAgLmRpc2FibGVkX2EyZTJlZjZm IHsNCiAgICAgIG9wYWNpdHk6IDAuNTsNCiAgICB9DQoNCiAgICAucm9vdF81Nzk0Y2FjYyB7 DQogICAgICBsaW5lLWhlaWdodDogMTsNCiAgICAgIHdpZHRoOiAxOHB4Ow0KICAgICAgaGVp Z2h0OiAxOHB4Ow0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICAgIHBvc2l0aW9u OiByZWxhdGl2ZTsNCiAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsNCiAgICAg IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICAtbW96LXVzZXItc2VsZWN0OiBu b25lOw0KICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgdXNlci1zZWxlY3Q6 IG5vbmU7DQogICAgfQ0KDQogICAgLnJvb3RfNTc5NGNhY2M6YmVmb3JlIHsNCiAgICAgIGNv bnRlbnQ6ICIiOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMXB4 Ow0KICAgICAgcmlnaHQ6IDFweDsNCiAgICAgIGJvdHRvbTogMXB4Ow0KICAgICAgdG9wOiAx cHg7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICBvcGFjaXR5OiAxOw0KICAg ICAgYmFja2dyb3VuZDogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICAucm9vdF81Nzk0Y2FjYy5y b290SXNDaGVja2VkXzU3OTRjYWNjOmJlZm9yZSB7DQogICAgICBiYWNrZ3JvdW5kOiAjMDA3 OGQ0Ow0KICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFu ZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2Vk LWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9vdF81Nzk0Y2FjYy5yb290SXNDaGVja2Vk XzU3OTRjYWNjOmJlZm9yZSB7DQogICAgICAgIGJhY2tncm91bmQ6IFdpbmRvdzsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAucm9vdF81Nzk0Y2FjYyAuY2hlY2tfNTc5NGNhY2Mgew0KICAg ICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAgICAuY2hlY2tIb3N0XzU3OTRjYWNjOmZvY3Vz IC5yb290XzU3OTRjYWNjIC5jaGVja181Nzk0Y2FjYywNCiAgICAuY2hlY2tIb3N0XzU3OTRj YWNjOmhvdmVyIC5yb290XzU3OTRjYWNjIC5jaGVja181Nzk0Y2FjYywNCiAgICAucm9vdF81 Nzk0Y2FjYy5yb290SXNDaGVja2VkXzU3OTRjYWNjIC5jaGVja181Nzk0Y2FjYywNCiAgICAu cm9vdF81Nzk0Y2FjYzpmb2N1cyAuY2hlY2tfNTc5NGNhY2MsDQogICAgLnJvb3RfNTc5NGNh Y2M6aG92ZXIgLmNoZWNrXzU3OTRjYWNjIHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgfQ0K DQogICAgLmNoZWNrXzU3OTRjYWNjLA0KICAgIC5jaXJjbGVfNTc5NGNhY2Mgew0KICAgICAg Zm9udC1zaXplOiAxOHB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVm dDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIHdpZHRoOiAxOHB4Ow0KICAgICAgaGVpZ2h0 OiAxOHB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgdmVydGljYWwtYWxp Z246IG1pZGRsZTsNCiAgICB9DQoNCiAgICAuY2lyY2xlXzU3OTRjYWNjIHsNCiAgICAgIGNv bG9yOiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBh Y3RpdmUpIHsNCiAgICAgIC5jaXJjbGVfNTc5NGNhY2Mgew0KICAgICAgICBjb2xvcjogV2lu ZG93VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAucm9vdElzQ2hlY2tlZF81Nzk0Y2Fj YyAuY2lyY2xlXzU3OTRjYWNjIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0K ICAgIC5jaGVja181Nzk0Y2FjYyB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIGZv bnQtc2l6ZTogMTZweDsNCiAgICAgIGxlZnQ6IDAuNXB4Ow0KICAgIH0NCg0KICAgIEBtZWRp YSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4g YW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5jaGVja181Nzk0Y2FjYyB7 DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDogbm9uZTsNCiAgICAgIH0NCiAg ICB9DQoNCiAgICAucm9vdElzQ2hlY2tlZF81Nzk0Y2FjYyAuY2hlY2tfNTc5NGNhY2Mgew0K ICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBmb250LXdlaWdodDogOTAwOw0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwN CiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5yb290 SXNDaGVja2VkXzU3OTRjYWNjIC5jaGVja181Nzk0Y2FjYyB7DQogICAgICAgIGJvcmRlcjog bm9uZTsNCiAgICAgICAgY29sb3I6IFdpbmRvd1RleHQ7DQogICAgICB9DQogICAgfQ0KDQog ICAgLnJvb3RfOTY4OWRiMjEgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94 Ow0KICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTog aW5saW5lLWZsZXg7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICB2ZXJ0aWNh bC1hbGlnbjogYm90dG9tOw0KICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFs Ow0KICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQogICAgICAtbXMtZmxl eC1kaXJlY3Rpb246IHJvdzsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7DQogICAgICAt d2Via2l0LWJveC1hbGlnbjogZW5kOw0KICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDsNCiAg ICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsNCiAgICB9DQoNCiAgICAucm9vdF85Njg5ZGIy MSwNCiAgICAucm9vdF85Njg5ZGIyMS5pc1NtYWxsXzk2ODlkYjIxIHsNCiAgICAgIHdpZHRo OiA3MnB4Ow0KICAgICAgaGVpZ2h0OiA1MnB4Ow0KICAgIH0NCg0KICAgIC5yb290Xzk2ODlk YjIxLmlzTGlua2VkXzk2ODlkYjIxIC5mcm9udF85Njg5ZGIyMSwNCiAgICAucm9vdF85Njg5 ZGIyMS5pc1NtYWxsXzk2ODlkYjIxLmlzTGlua2VkXzk2ODlkYjIxIC5mcm9udF85Njg5ZGIy MSB7DQogICAgICB0b3A6IDZweDsNCiAgICAgIGxlZnQ6IC01cHg7DQogICAgfQ0KDQogICAg LnJvb3RfOTY4OWRiMjEuaXNMYXJnZV85Njg5ZGIyMSB7DQogICAgICB3aWR0aDogMTEycHg7 DQogICAgICBoZWlnaHQ6IDgwcHg7DQogICAgfQ0KDQogICAgLnJvb3RfOTY4OWRiMjEuaXNM YXJnZV85Njg5ZGIyMS5pc0xpbmtlZF85Njg5ZGIyMSAuZnJvbnRfOTY4OWRiMjEgew0KICAg ICAgdG9wOiAxMHB4Ow0KICAgICAgbGVmdDogLTRweDsNCiAgICB9DQoNCiAgICAuZnJvbnRf OTY4OWRiMjEgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICBsZWZ0OiAtM3B4Ow0KICAgICAgcmlnaHQ6IC0zcHg7DQogICAgICBi b3R0b206IC00cHg7DQogICAgfQ0KDQogICAgLmJhY2tfOTY4OWRiMjEgew0KICAgICAgZGlz cGxheTogYmxvY2s7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiAt M3B4Ow0KICAgICAgcmlnaHQ6IC0zcHg7DQogICAgICBib3R0b206IC00cHg7DQogICAgfQ0K DQogICAgLmNvbnRlbnRfOTY4OWRiMjEgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgbGVmdDogNHB4Ow0KICAgICAgcmlnaHQ6IDRweDsNCiAgICAgIGJvdHRvbTogNHB4 Ow0KICAgICAgdG9wOiA0cHg7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsNCiAgICAg IGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIC13 ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rp b246IG5vcm1hbDsNCiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAg ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50 ZXI7DQogICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6 IGNlbnRlcjsNCiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsNCiAgICAgIC1tcy1m bGV4LXBhY2s6IGNlbnRlcjsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAg ICAgb3BhY2l0eTogMTsNCiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJz IGxpbmVhcjsNCiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7DQogICAg fQ0KDQogICAgLmhpZGVDb250ZW50Xzk2ODlkYjIxIC5jb250ZW50Xzk2ODlkYjIxIHsNCiAg ICAgIG9wYWNpdHk6IDA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Xzk2ODlkYjIxIC5jb250 ZW50Xzk2ODlkYjIxIHsNCiAgICAgIHRvcDogMTJweDsNCiAgICB9DQoNCiAgICAuZnJhbWVf OTY4OWRiMjEgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94Ow0KICAgICAg ZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogaW5saW5lLWZs ZXg7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAtd2Via2l0LWJveC1vcmll bnQ6IGhvcml6b250YWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsN CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgZmxleC1kaXJlY3Rpb246 IHJvdzsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAtbXMtZmxl eC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIC13 ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsN CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7DQog ICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCAycHggcmdiYSgxLCAxLCAwLCAw LjA2KTsNCiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAycHggcmdiYSgxLCAxLCAwLCAw LjA2KTsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICBtaW4td2lk dGg6IDMycHg7DQogICAgICBtaW4taGVpZ2h0OiAzMnB4Ow0KICAgIH0NCg0KICAgIC5tZXRh ZGF0YV85Njg5ZGIyMSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIC13ZWJraXQt Ym94LWZsZXg6IDE7DQogICAgICAtbXMtZmxleDogMSAxOw0KICAgICAgZmxleDogMSAxOw0K ICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlw c2lzOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7 DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm1ldGFkYXRhXzk2ODlkYjIxIHsNCiAgICAg IG1hcmdpbi1yaWdodDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAubWV0 YWRhdGFfOTY4OWRiMjEgew0KICAgICAgbWFyZ2luLWxlZnQ6IDhweDsNCiAgICB9DQoNCiAg ICBodG1sW2Rpcj0ibHRyIl0gLm1ldGFkYXRhXzk2ODlkYjIxIHsNCiAgICAgIHRleHQtYWxp Z246IHJpZ2h0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAubWV0YWRhdGFfOTY4 OWRiMjEgew0KICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICB9DQoNCiAgICAuaXNGbHVl bnRfOTY4OWRiMjEgLm1ldGFkYXRhXzk2ODlkYjIxIHsNCiAgICAgIGNvbG9yOiAjYmY1NzEy Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuaXNGbHVlbnRfOTY4OWRiMjEgLm1l dGFkYXRhXzk2ODlkYjIxIHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9InJ0bCJdIC5pc0ZsdWVudF85Njg5ZGIyMSAubWV0YWRhdGFfOTY4OWRi MjEgew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgLm1ldGFkYXRh Xzk2ODlkYjIxLA0KICAgIC5tZXRhZGF0YV85Njg5ZGIyMS5pc1NtYWxsXzk2ODlkYjIxIHsN CiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDFweDsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm1ldGFkYXRhXzk2ODlkYjIxLA0KICAgIGh0 bWxbZGlyPSJsdHIiXSAubWV0YWRhdGFfOTY4OWRiMjEuaXNTbWFsbF85Njg5ZGIyMSB7DQog ICAgICBtYXJnaW4tbGVmdDogNHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu bWV0YWRhdGFfOTY4OWRiMjEsDQogICAgaHRtbFtkaXI9InJ0bCJdIC5tZXRhZGF0YV85Njg5 ZGIyMS5pc1NtYWxsXzk2ODlkYjIxIHsNCiAgICAgIG1hcmdpbi1yaWdodDogNHB4Ow0KICAg IH0NCg0KICAgIC5pc0xhcmdlXzk2ODlkYjIxIC5tZXRhZGF0YV85Njg5ZGIyMSB7DQogICAg ICBmb250LXNpemU6IDE0cHg7DQogICAgICBtYXJnaW4tYm90dG9tOiA0cHg7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc0xhcmdlXzk2ODlkYjIxIC5tZXRhZGF0YV85Njg5 ZGIyMSB7DQogICAgICBtYXJnaW4tbGVmdDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJydGwiXSAuaXNMYXJnZV85Njg5ZGIyMSAubWV0YWRhdGFfOTY4OWRiMjEgew0KICAgICAg bWFyZ2luLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgLnNpZ25hbF85Njg5ZGIyMSB7DQog ICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAg IG1hcmdpbi1ib3R0b206IDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLnNp Z25hbF85Njg5ZGIyMSB7DQogICAgICBtYXJnaW4tbGVmdDogOHB4Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuc2lnbmFsXzk2ODlkYjIxIHsNCiAgICAgIG1hcmdpbi1yaWdo dDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuc2lnbmFsXzk2ODlkYjIx IHsNCiAgICAgIG1hcmdpbi1yaWdodDogNHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJy dGwiXSAuc2lnbmFsXzk2ODlkYjIxIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7DQogICAg fQ0KDQogICAgLmlzRmx1ZW50Xzk2ODlkYjIxIC5zaWduYWxfOTY4OWRiMjEgOmZpcnN0LWNo aWxkIHsNCiAgICAgIGNvbG9yOiAjYmY1NzEyOw0KICAgIH0NCg0KICAgIC5zaWduYWxfOTY4 OWRiMjEsDQogICAgLnNpZ25hbF85Njg5ZGIyMS5pc1NtYWxsXzk2ODlkYjIxIHsNCiAgICAg IGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDFweDsNCiAgICB9DQoN CiAgICAuaXNMYXJnZV85Njg5ZGIyMSAuc2lnbmFsXzk2ODlkYjIxIHsNCiAgICAgIGZvbnQt c2l6ZTogMTZweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDRweDsNCiAgICB9DQoNCiAgICBo dG1sW2Rpcj0ibHRyIl0gLmlzTGFyZ2VfOTY4OWRiMjEgLnNpZ25hbF85Njg5ZGIyMSB7DQog ICAgICBtYXJnaW4tcmlnaHQ6IDdweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g LmlzTGFyZ2VfOTY4OWRiMjEgLnNpZ25hbF85Njg5ZGIyMSB7DQogICAgICBtYXJnaW4tbGVm dDogN3B4Ow0KICAgIH0NCg0KICAgIC50aWxlXzFiN2Y2MDVkLmhpZGVGaWxlVHlwZUljb25f MWI3ZjYwNWQgLmZpbGVUeXBlSWNvbl8xYjdmNjA1ZCwNCiAgICAudGlsZV8xYjdmNjA1ZC5o aWRlRmlsZVR5cGVJY29uXzFiN2Y2MDVkIC50aWxlQXBwSWNvbl8xYjdmNjA1ZCB7DQogICAg ICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC50aWxlXzFiN2Y2MDVkLmhpZGVUaHVt Ym5haWxfMWI3ZjYwNWQgLnRodW1ibmFpbF8xYjdmNjA1ZCB7DQogICAgICBkaXNwbGF5OiBu b25lOw0KICAgIH0NCg0KICAgIC5kZWZhdWx0VGlsZV8xYjdmNjA1ZCAubXMtVGlsZS1mb3Jl Z3JvdW5kPiogew0KICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgfQ0KDQogICAg LmRlZmF1bHRUaWxlXzFiN2Y2MDVkIC5tcy1UaWxlLWJhY2tncm91bmQ+KiB7DQogICAgICBw b2ludGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQoNCiAgICAuZm9sZGVyQ292ZXJfMWI3ZjYw NWQgew0KICAgICAgbWFyZ2luOiAzcHg7DQogICAgfQ0KDQogICAgLnRodW1ibmFpbF8xYjdm NjA1ZCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgfQ0KDQogICAgLnRo dW1ibmFpbE5vdFJlc29sdmVkXzFiN2Y2MDVkIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQog ICAgfQ0KDQogICAgLmZpbGVUeXBlSWNvbl8xYjdmNjA1ZCB7DQogICAgICBtYXJnaW46IDE2 cHg7DQogICAgfQ0KDQogICAgLm5hbWVfMWI3ZjYwNWQgew0KICAgICAgZGlzcGxheTogaW5s aW5lOw0KICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIC5ibGFua0ZvbGRl ckNvdmVyXzFiN2Y2MDVkIHsNCiAgICAgIGJhY2tncm91bmQ6ICNmZmY7DQogICAgICBkaXNw bGF5OiBpbmxpbmUtYmxvY2s7DQogICAgfQ0KDQogICAgLnRpbGVBcHBJY29uXzFiN2Y2MDVk IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAg IG1hcmdpbjogNHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC50aWxlQXBwSWNvbl8x YjdmNjA1ZCB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC50 aWxlQXBwSWNvbl8xYjdmNjA1ZCB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICAu bmV3SXRlbV9jYzA1MGY3YyB7DQogICAgICBjb2xvcjogIzEwN2MxMDsNCiAgICAgIG1hcmdp bi1yaWdodDogM3B4Ow0KICAgIH0NCg0KICAgIC5saXN0Q2VsbF84M2MxMzQ5NiB7DQogICAg ICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIGJvcmRlci1jb2xv cjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAubGlzdFBhZ2VfODNjMTM0OTYgew0KICAgICAg ZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsNCiAg ICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2Fs Ow0KICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQogICAgICAtbXMtZmxl eC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQog ICAgfQ0KDQogICAgLmNlbGxfODNjMTM0OTYgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgLmNlbGxDb250ZW50Xzgz YzEzNDk2IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAg ICAgIGxlZnQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICByaWdodDogMDsNCiAgICB9 DQoNCiAgICAuY2VsbEZpcnN0SW5Sb3dfODNjMTM0OTYgew0KICAgICAgZGlzcGxheTogYmxv Y2s7DQogICAgfQ0KDQogICAgLnNpemVyXzgzYzEzNDk2IHsNCiAgICAgIGRpc3BsYXk6IGJs b2NrOw0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5oZWFkZXJf ODNjMTM0OTYgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgLmdyaWRf ODNjMTM0OTYgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5 OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtd2Via2l0LWJv eC1vcmllbnQ6IGhvcml6b250YWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5v cm1hbDsNCiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgZmxleC1kaXJl Y3Rpb246IHJvdzsNCiAgICAgIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwOw0KICAgICAgZmxl eC1mbG93OiByb3cgd3JhcDsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsNCiAg ICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDsNCiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0 YXJ0Ow0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7DQogICAgICAtbXMtZmxleC1w YWNrOiBzdGFydDsNCiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsNCiAgICAg IC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7DQogICAgICBhbGlnbi1jb250ZW50OiBmbGV4 LXN0YXJ0Ow0KICAgIH0NCg0KICAgIC5yb3dfODNjMTM0OTYgew0KICAgICAgZGlzcGxheTog LXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3Bs YXk6IGZsZXg7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAucm93XzgzYzEz NDk2LmhlYWRlclJvd184M2MxMzQ5NiB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9 DQoNCiAgICAuc2hpbW1lcmVkTGlzdF84M2MxMzQ5Njo6YWZ0ZXIgew0KICAgICAgY29udGVu dDogIiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAg ICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBi YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwNCiAgICAgICAgICBs ZWZ0IHRvcCwNCiAgICAgICAgICBsZWZ0IGJvdHRvbSwNCiAgICAgICAgICBjb2xvci1zdG9w KDMwJSwgdHJhbnNwYXJlbnQpLA0KICAgICAgICAgIGNvbG9yLXN0b3AoNjUlLCByZ2JhKDI1 NSwgMjU1LCAyNTUsIDAuNCkpLA0KICAgICAgICAgIHRvKCNmZmZmZmYpKTsNCiAgICAgIGJh Y2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sDQogICAgICAgICAg dHJhbnNwYXJlbnQgMzAlLA0KICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSA2 NSUsDQogICAgICAgICAgI2ZmZmZmZiAxMDAlKTsNCiAgICB9DQoNCiAgICAubm9uZV84M2Mx MzQ5NiB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVO YXYgew0KICAgICAgYmFja2dyb3VuZDogIzAwNzhkNDsNCiAgICAgIGhlaWdodDogNDhweDsN CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0N Cg0KICAgIC5vZC1TdWl0ZU5hdi5tcy1TdWl0ZU5hdi5pc09EM1VJRW5hYmxlZCB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAub2QtU3Vp dGVOYXYtRGVmYXVsdEhlaWdodCB7DQogICAgICBoZWlnaHQ6IGluaXRpYWw7DQogICAgfQ0K DQogICAgLm9kLXVzZXJTZWxlY3QtLWVuYWJsZWQgZGl2I28zNjVjcy1mbGV4cGFuZS1vdmVy bGF5IHsNCiAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogdGV4dDsNCiAgICAgIC13ZWJr aXQtdXNlci1zZWxlY3Q6IHRleHQ7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7DQog ICAgICB1c2VyLXNlbGVjdDogdGV4dDsNCiAgICB9DQoNCiAgICAucGx1Z2luTm9TaXplIHsN CiAgICAgIHdpZHRoOiAwOw0KICAgICAgaGVpZ2h0OiAwOw0KICAgICAgcGFkZGluZzogMDsN CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXYt cmVhY3RTaGVsbC1kaWFtb25kIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQog ICAgLm9kLVN1aXRlTmF2RmFsbGJhY2sgew0KICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsN CiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsN CiAgICAgIGhlaWdodDogNDhweDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHotaW5k ZXg6IDIwMDE7DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2sgaGVhZGVyIHsN CiAgICAgIGZvbnQtc2l6ZTogMjJweDsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsN CiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgcGFkZGluZzogMCAwIDAgMThweDsN CiAgICAgIGhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9k LVN1aXRlTmF2RmFsbGJhY2sgaGVhZGVyIHsNCiAgICAgIHBhZGRpbmc6IDAgMThweCAwIDA7 DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stZGl2aWRlciB7DQogICAgICBt YXJnaW46IDVweCAxNXB4IDAgMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9k LVN1aXRlTmF2RmFsbGJhY2stZGl2aWRlciB7DQogICAgICBib3JkZXItbGVmdC1zdHlsZTog c29saWQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxi YWNrLWRpdmlkZXIgew0KICAgICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2RmFsbGJhY2stZGl2aWRlciB7 DQogICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1kaXZpZGVyIHsNCiAgICAgIGJvcmRlci1y aWdodC13aWR0aDogMXB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2QtU3Vp dGVOYXZGYWxsYmFjay1kaXZpZGVyIHsNCiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2Jh KDI1NSwgMjU1LCAyNTUsIDAuMzUpOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu b2QtU3VpdGVOYXZGYWxsYmFjay1kaXZpZGVyIHsNCiAgICAgIGJvcmRlci1yaWdodC1jb2xv cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i cnRsIl0gLm9kLVN1aXRlTmF2RmFsbGJhY2stZGl2aWRlciB7DQogICAgICBtYXJnaW46IDVw eCAwIDAgMTVweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZGYWxs YmFjay1vMzY1VGl0bGUgew0KICAgICAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgICB9DQoN CiAgICBbZGlyPSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1vMzY1VGl0bGUgew0KICAg ICAgcGFkZGluZy1sZWZ0OiAxNXB4Ow0KICAgIH0NCg0KICAgIC5vZC1TdWl0ZU5hdkZhbGxi YWNrLXNlbGVjdGVkQXBwIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgdGV4dC1k ZWNvcmF0aW9uOiBub25lOw0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgIH0NCg0KICAgIC5v ZC1TdWl0ZU5hdkZhbGxiYWNrLXNlbGVjdGVkQXBwOmFjdGl2ZSwNCiAgICAub2QtU3VpdGVO YXZGYWxsYmFjay1zZWxlY3RlZEFwcDpob3ZlciB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsN CiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjay1hcHBCdXR0b24gew0KICAgICAg LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOw0KICAgICAgLXdlYmtpdC11c2VyLXNlbGVj dDogbm9uZTsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIHVzZXItc2Vs ZWN0OiBub25lOw0KICAgICAgYmFja2dyb3VuZDogIzAwNzhkNDsNCiAgICAgIGRpc3BsYXk6 IGlubGluZS1ibG9jazsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgaGVpZ2h0OiA0 OHB4Ow0KICAgICAgd2lkdGg6IDQ4cHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAg ICBmb250LXNpemU6IDE4cHg7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBw YWRkaW5nLXRvcDogMTZweDsNCiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3Ig NDY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpIDM0bXM7DQogICAgICBib3gt c2l6aW5nOiBib3JkZXItYm94Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2Qt U3VpdGVOYXZGYWxsYmFjay1hcHBCdXR0b24gew0KICAgICAgZmxvYXQ6IGxlZnQ7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWFwcEJ1dHRv biB7DQogICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJd IC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWFwcEJ1dHRvbiB7DQogICAgICBib3JkZXItcmlnaHQt c3R5bGU6IHNvbGlkOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtU3VpdGVO YXZGYWxsYmFjay1hcHBCdXR0b24gew0KICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlk Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1h cHBCdXR0b24gew0KICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAy NTUsIDAuMik7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZh bGxiYWNrLWFwcEJ1dHRvbiB7DQogICAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUs IDI1NSwgMjU1LCAwLjIpOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2QtU3Vp dGVOYXZGYWxsYmFjay1hcHBCdXR0b24gew0KICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAx cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNr LWFwcEJ1dHRvbiB7DQogICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4Ow0KICAgIH0NCg0K ICAgIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWFwcEJ1dHRvbjphY3RpdmUsDQogICAgLm9kLVN1 aXRlTmF2RmFsbGJhY2stYXBwQnV0dG9uOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmZmOw0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEwNGE3ZDsNCiAgICB9DQoNCiAgICAub2QtU3Vp dGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0 b3A6IDA7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgbWFyZ2luOiAwOw0K ICAgICAgcGFkZGluZzogMDsNCiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgICB9 DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMg ew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVN1aXRl TmF2RmFsbGJhY2stcmlnaHRBY3Rpb25zIHsNCiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQog ICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stcmlnaHRBY3Rpb25zIGxpIHsNCiAgICAgIGhlaWdo dDogNDhweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAwOw0KICAgICAgd2lkdGg6IDUxcHg7DQog ICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAg ICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFk ZGluZzogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2RmFs bGJhY2stcmlnaHRBY3Rpb25zIGxpIHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMg bGkgew0KICAgICAgZmxvYXQ6IHJpZ2h0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIi XSAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgbGkgew0KICAgICAgYm9yZGVy LWxlZnQtc3R5bGU6IHNvbGlkOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2Qt U3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgbGkgew0KICAgICAgYm9yZGVyLXJpZ2h0 LXN0eWxlOiBzb2xpZDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRl TmF2RmFsbGJhY2stcmlnaHRBY3Rpb25zIGxpIHsNCiAgICAgIGJvcmRlci1sZWZ0LXdpZHRo OiAxcHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxi YWNrLXJpZ2h0QWN0aW9ucyBsaSB7DQogICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2RmFsbGJhY2stcmln aHRBY3Rpb25zIGxpIHsNCiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjOGE4YThhOw0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFj dGlvbnMgbGkgew0KICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjOGE4YThhOw0KICAgIH0N Cg0KICAgIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXJpZ2h0QWN0aW9ucyAubXMtSWNvbiB7DQog ICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2Qt U3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgLm1zLUNvbnRleHR1YWxNZW51IHsNCiAg ICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZh bGxiYWNrLXJpZ2h0QWN0aW9ucyAubXMtQ29udGV4dHVhbE1lbnUgew0KICAgICAgbGVmdDog MDsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25hIHsNCiAgICAg IGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIHdpZHRoOiA1M3B4Ow0KICAgICAgdmVy dGljYWwtYWxpZ246IHRvcDsNCiAgICAgIGhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICBo dG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2RmFsbGJhY2stcGVyc29uYSB7DQogICAgICBi b3JkZXItbGVmdC1zdHlsZTogc29saWQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJd IC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXBlcnNvbmEgew0KICAgICAgYm9yZGVyLXJpZ2h0LXN0 eWxlOiBzb2xpZDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2 RmFsbGJhY2stcGVyc29uYSB7DQogICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4Ow0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25h IHsNCiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4Ow0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25hIHsNCiAgICAgIGJvcmRl ci1sZWZ0LWNvbG9yOiAjOGE4YThhOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu b2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25hIHsNCiAgICAgIGJvcmRlci1yaWdodC1jb2xv cjogIzhhOGE4YTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2 RmFsbGJhY2stcGVyc29uYSB7DQogICAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAgICB9DQoN CiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLVN1aXRlTmF2RmFsbGJhY2stcGVyc29uYSB7DQog ICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIC5vZC1TdWl0ZU5hdkZhbGxi YWNrLXBlcnNvbmEub25saW5lIHsNCiAgICAgIGJhY2tncm91bmQ6ICM1ZGQyNTU7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXBlcnNvbmEg Lm1zLUNvbnRleHR1YWxNZW51IHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXBlcnNvbmEgLm1z LUNvbnRleHR1YWxNZW51IHsNCiAgICAgIHRleHQtYWxpZ246IHJpZ2h0Ow0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25hSW1hZ2Ug ew0KICAgICAgZmxvYXQ6IHJpZ2h0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu b2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25hSW1hZ2Ugew0KICAgICAgZmxvYXQ6IGxlZnQ7 DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stbGluayB7DQogICAgICBkaXNw bGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgICB3aWR0aDog NDhweDsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgZm9udC1zaXplOiAyMHB4Ow0K ICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIH0NCg0KICAgIC5vZC1TdWl0ZU5hdkZh bGxiYWNrLWxpbmsuc2VsZWN0ZWQsDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stbGluazpo b3ZlciB7DQogICAgICBjb2xvcjogI2ZmZjsNCiAgICAgIGJhY2tncm91bmQ6ICMxMDRhN2Q7 DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stbWVMaW5rIHsNCiAgICAgIGRp c3BsYXk6IGlubGluZS1ibG9jazsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFj ay1vcHRpb25zIC5tcy1Db250ZXh0dWFsTWVudSB7DQogICAgICBtYXJnaW4tdG9wOiAxOXB4 ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stbWVudUNv bnRhaW5lciB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICB6LWluZGV4 OiAtMTsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXIgew0KICAgICAgYmFja2dyb3VuZDog I2ZmZmZmZjsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNmI2YjY7DQogICAgICBib3gt c2hhZG93OiAwIDFweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC40KTsNCiAgICAgIGJveC1zaXpp bmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7DQogICAgICBwYWRkaW5nOiAyMHB4IDAgMTBw eCAyMHB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiA1MHB4Ow0K ICAgICAgbWFyZ2luOiAxMHB4Ow0KICAgICAgd2lkdGg6IGF1dG87DQogICAgICBoZWlnaHQ6 IGF1dG87DQogICAgICBtaW4td2lkdGg6IDI0MHB4Ow0KICAgICAgbWF4LXdpZHRoOiA4NDBw eDsNCiAgICAgIG1heC1oZWlnaHQ6IDk5MHB4Ow0KICAgICAgei1pbmRleDogMTAwOw0KICAg ICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbWF4LWhlaWdodCwgbWF4LXdpZHRoOw0KICAgICAg dHJhbnNpdGlvbi1kdXJhdGlvbjogMjY3bXM7DQogICAgICB0cmFuc2l0aW9uLXRpbWluZy1m dW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgICAgLXdlYmtp dC10cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBtYXgtd2lkdGg7DQogICAgICAt d2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDI2N21zOw0KICAgICAgLXdlYmtpdC10cmFu c2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEp Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuQXBwTGF1bmNoZXIgew0KICAgICAg cGFkZGluZzogMjBweCAyMHB4IDEwcHggMDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAu QXBwTGF1bmNoZXIgew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwi XSAuQXBwTGF1bmNoZXIgew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgLkFwcExh dW5jaGVyLWJlYWsgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAw Ow0KICAgICAgei1pbmRleDogMTA7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLkFwcExh dW5jaGVyLWJlYWsgew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwi XSAuQXBwTGF1bmNoZXItYmVhayB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICAu QXBwTGF1bmNoZXItYmVhazphZnRlciwNCiAgICAuQXBwTGF1bmNoZXItYmVhazpiZWZvcmUg ew0KICAgICAgY29udGVudDogIiAiOw0KICAgICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVu dDsNCiAgICAgIGhlaWdodDogMDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHdpZHRoOiAwOw0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1iZWFrOmJlZm9yZSB7DQog ICAgICBib3JkZXItd2lkdGg6IDlweDsNCiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNi NmI2YjY7DQogICAgICB0b3A6IC0xOHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5B cHBMYXVuY2hlci1iZWFrOmJlZm9yZSB7DQogICAgICBsZWZ0OiA1cHg7DQogICAgfQ0KDQog ICAgW2Rpcj0icnRsIl0gLkFwcExhdW5jaGVyLWJlYWs6YmVmb3JlIHsNCiAgICAgIHJpZ2h0 OiA1cHg7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVyLWJlYWs6YWZ0ZXIgew0KICAgICAg Ym9yZGVyLXdpZHRoOiA4cHg7DQogICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmOw0K ICAgICAgdG9wOiAtMTZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuQXBwTGF1bmNo ZXItYmVhazphZnRlciB7DQogICAgICBsZWZ0OiA2cHg7DQogICAgfQ0KDQogICAgW2Rpcj0i cnRsIl0gLkFwcExhdW5jaGVyLWJlYWs6YWZ0ZXIgew0KICAgICAgcmlnaHQ6IDZweDsNCiAg ICB9DQoNCiAgICAuQXBwTGF1bmNoZXItZ3JleWJhY2tncm91bmQgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogIzk5OTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAx MDAlOw0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSB7DQogICAgICB3aWR0 aDogMTA5cHg7DQogICAgICBoZWlnaHQ6IDEwOXB4Ow0KICAgICAgZGlzcGxheTogYmxvY2s7 DQogICAgICBtYXJnaW46IDAgMTBweCAxMHB4IDA7DQogICAgICBwb3NpdGlvbjogcmVsYXRp dmU7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAg ICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsNCiAgICAgIC13ZWJraXQtdXNlci1z ZWxlY3Q6IG5vbmU7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICB1c2Vy LXNlbGVjdDogbm9uZTsNCiAgICAgIHRyYW5zaXRpb246IDE2N21zIHRyYW5zZm9ybSBjdWJp Yy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXIt Ym94Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuQXBwTGF1bmNoZXItbGlzdEl0 ZW0gew0KICAgICAgZmxvYXQ6IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJd IC5BcHBMYXVuY2hlci1saXN0SXRlbSB7DQogICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5BcHBMYXVuY2hlci1saXN0SXRlbSB7DQogICAgICBt YXJnaW46IDAgMCAxMHB4IDEwcHg7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVyLWxpc3RJ dGVtOmhvdmVyIC5hcHAtbW9yZS1tZW51LWJ1dHRvbiB7DQogICAgICBkaXNwbGF5OiBibG9j azsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0ud2lkZSB7DQogICAgICB3 aWR0aDogMjMwcHg7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtOmFjdGl2 ZSB7DQogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgLXdlYmtpdC10cmFu c2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRl bSBpOjpiZWZvcmUgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLkFw cExhdW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVuY2hlci1pbm5lciB7DQogICAgICB0b3A6IDA7 DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQog ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQog ICAgICBiYWNrZ3JvdW5kOiAjMDA3OGQ0Ow0KICAgICAgYm9yZGVyOiAycHggc29saWQgdHJh bnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVu Y2hlci1pbm5lcjpob3ZlciB7DQogICAgICBvdXRsaW5lLXdpZHRoOiAycHg7DQogICAgICBv dXRsaW5lLXN0eWxlOiBzb2xpZDsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItbGlzdEl0 ZW0gLkFwcExhdW5jaGVyLWlubmVyIC5BcHBMYXVuY2hlci1tZW51VGl0bGUgew0KICAgICAg Zm9udC1zaXplOiAxMnB4Ow0KICAgICAgY29sb3I6ICNmZmY7DQogICAgICBwb3NpdGlvbjog YWJzb2x1dGU7DQogICAgICBib3R0b206IDVweDsNCiAgICAgIHdpZHRoOiA4NXB4Ow0KICAg ICAgZGlzcGxheTogYmxvY2s7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgdGV4 dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAg IH0NCg0KICAgIFtkaXI9Imx0ciJdIC5BcHBMYXVuY2hlci1saXN0SXRlbSAuQXBwTGF1bmNo ZXItaW5uZXIgLkFwcExhdW5jaGVyLW1lbnVUaXRsZSB7DQogICAgICBsZWZ0OiA4cHg7DQog ICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVu Y2hlci1pbm5lciAuQXBwTGF1bmNoZXItbWVudVRpdGxlIHsNCiAgICAgIHJpZ2h0OiA4cHg7 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5BcHBMYXVuY2hlci1saXN0SXRlbSAu QXBwTGF1bmNoZXItaW5uZXIgLkFwcExhdW5jaGVyLW1lbnVUaXRsZSB7DQogICAgICB0ZXh0 LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuQXBwTGF1bmNo ZXItbGlzdEl0ZW0gLkFwcExhdW5jaGVyLWlubmVyIC5BcHBMYXVuY2hlci1tZW51VGl0bGUg ew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVy LWxpc3RJdGVtIC5BcHBMYXVuY2hlci1pbm5lciAubXMtSWNvbiB7DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgICBmb250LXNpemU6IDQ5cHg7DQogICAgICB0b3A6IDI2cHg7 DQogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5BcHBMYXVu Y2hlci1saXN0SXRlbSAuQXBwTGF1bmNoZXItaW5uZXIgaW1nIHsNCiAgICAgIHBvc2l0aW9u OiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMjBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAuQXBwTGF1bmNoZXItbGlzdEl0ZW0gLkFwcExhdW5jaGVyLWlubmVyIGltZyB7DQogICAg ICBsZWZ0OiAyNHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5BcHBMYXVuY2hlci1s aXN0SXRlbSAuQXBwTGF1bmNoZXItaW5uZXIgaW1nIHsNCiAgICAgIHJpZ2h0OiAyNHB4Ow0K ICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSAud29yZCB7DQogICAgICBiYWNr Z3JvdW5kOiAjMmI1NzlhOw0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSAu ZXhjZWwgew0KICAgICAgYmFja2dyb3VuZDogIzIwNzM0NjsNCiAgICB9DQoNCiAgICAuQXBw TGF1bmNoZXItbGlzdEl0ZW0gLnBvd2VycG9pbnQgew0KICAgICAgYmFja2dyb3VuZDogI2Qy NDcyNTsNCiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAuQXBw TGF1bmNoZXItbGlzdEl0ZW0gLm9uZW5vdGUgew0KICAgICAgYmFja2dyb3VuZDogIzgwMzk3 YjsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0gLnByb2plY3Qgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogIzUxMzNhYjsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNo ZXItbGlzdEl0ZW0gLnRhc2tzIHsNCiAgICAgIGJhY2tncm91bmQ6ICMzMTc1MmU7DQogICAg fQ0KDQogICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5vc2xvIC5tcy1JY29uIHsNCiAgICAg IGZvbnQtc2l6ZTogNjRweDsNCiAgICAgIHBhZGRpbmctdG9wOiAzcHg7DQogICAgfQ0KDQog ICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5tb3JlLWFwcHMgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogI2ViZWJlYjsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0g Lm1vcmUtYXBwcyAubXMtSWNvbiB7DQogICAgICB0b3A6IDQwcHg7DQogICAgICBmb250LXNp emU6IDI1cHg7DQogICAgfQ0KDQogICAgLmFwcC1tb3JlLW1lbnUtY29udGFpbmVyIHsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuYXBw LW1vcmUtbWVudS1jb250YWluZXIgew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAg W2Rpcj0icnRsIl0gLmFwcC1tb3JlLW1lbnUtY29udGFpbmVyIHsNCiAgICAgIGxlZnQ6IDA7 DQogICAgfQ0KDQogICAgLmFwcC1tb3JlLW1lbnUtY29udGFpbmVyIC5hcHAtbW9yZS1tZW51 LWJ1dHRvbiB7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICBjdXJzb3I6IHBvaW50 ZXI7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsN CiAgICAgIHdpZHRoOiAzMHB4Ow0KICAgICAgaGVpZ2h0OiAyMHB4Ow0KICAgICAgZGlzcGxh eTogbm9uZTsNCiAgICB9DQoNCiAgICAuYXBwLW1vcmUtbWVudS1jb250YWluZXIgLm1vcmUt bWVudS1saXN0IHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICBiYWNrZ3JvdW5kOiAj ZmZmOw0KICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZjBmOTsNCiAgICAgIGxpc3Qtc3R5 bGUtdHlwZTogbm9uZTsNCiAgICAgIHdpZHRoOiAxNjVweDsNCiAgICAgIG1hcmdpbjogMDsN CiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0 b3A6IDA7DQogICAgICB6LWluZGV4OiA5OTk7DQogICAgICBib3gtc2hhZG93OiAwIDAgOHB4 IHJnYmEoMCwgMCwgMCwgMC42KTsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAuYXBwLW1vcmUtbWVudS1jb250YWluZXIgLm1vcmUtbWVudS1s aXN0IHsNCiAgICAgIGxlZnQ6IDEwMCU7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLmFw cC1tb3JlLW1lbnUtY29udGFpbmVyIC5tb3JlLW1lbnUtbGlzdCB7DQogICAgICByaWdodDog MTAwJTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmFwcC1tb3JlLW1lbnUtY29u dGFpbmVyIC5tb3JlLW1lbnUtbGlzdCB7DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuYXBwLW1vcmUtbWVudS1jb250YWluZXIgLm1v cmUtbWVudS1saXN0IHsNCiAgICAgIHRleHQtYWxpZ246IHJpZ2h0Ow0KICAgIH0NCg0KICAg IC5hcHAtbW9yZS1tZW51LWNvbnRhaW5lciAubW9yZS1tZW51LWxpc3QgbGkgYSB7DQogICAg ICBwYWRkaW5nOiA1cHggMTVweDsNCiAgICAgIHdpZHRoOiBhdXRvOw0KICAgICAgZGlzcGxh eTogYmxvY2s7DQogICAgICBjb2xvcjogIzAwMDsNCiAgICB9DQoNCiAgICAuYXBwLW1vcmUt bWVudS1jb250YWluZXIgLm1vcmUtbWVudS1saXN0IGxpIGE6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2U1ZjBmOTsNCiAgICB9DQoNCiAgICAuYXBwLW1vcmUtbWVudS1j b250YWluZXIub3BlbiAubW9yZS1tZW51LWxpc3Qgew0KICAgICAgZGlzcGxheTogYmxvY2s7 DQogICAgfQ0KDQogICAgLmFwcG1lbnUtYXBwLW1vcmUgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2ZmZjsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207DQogICAgICBtYXJn aW46IDAgMjBweCAxMHB4IDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5hcHBt ZW51LWFwcC1tb3JlIHsNCiAgICAgIGZsb2F0OiByaWdodDsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0icnRsIl0gLmFwcG1lbnUtYXBwLW1vcmUgew0KICAgICAgZmxvYXQ6IGxlZnQ7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5hcHBtZW51LWFwcC1tb3JlIHsNCiAgICAg IHRleHQtYWxpZ246IHJpZ2h0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuYXBw bWVudS1hcHAtbW9yZSB7DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuYXBwbWVudS1hcHAtbW9yZSB7DQogICAgICBtYXJnaW46IDAg MCAxMHB4IDIwcHg7DQogICAgfQ0KDQogICAgLmFwcG1lbnUtYXBwLW1vcmUgYS5hcHBtZW51 LWFwcC1tb3JldGV4dCB7DQogICAgICBjb2xvcjogIzAwMDsNCiAgICAgIGZvbnQtc2l6ZTog MTJweDsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVNlbWlCb2xkLWZpbmFsLCBTZWdv ZSwgVGFob21hLCBIZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAg IH0NCg0KICAgIC5hcHAtcHJvdmlzaW9uaW5nOmhvdmVyLA0KICAgIC5hcHBtZW51LWFwcC1t b3JlOmhvdmVyIHsNCiAgICAgIG91dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLmFwcC1wcm92 aXNpb25pbmcgew0KICAgICAgb3BhY2l0eTogMC4yOw0KICAgIH0NCg0KICAgIEBtZWRpYSAo bWF4LXdpZHRoOiA5NDBweCkgew0KICAgICAgLkFwcExhdW5jaGVyIHsNCiAgICAgICAgbWF4 LXdpZHRoOiA0ODZweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgKG1heC13aWR0 aDogNTgwcHgpIHsNCiAgICAgIC5BcHBMYXVuY2hlciB7DQogICAgICAgIG1heC13aWR0aDog MzM1cHg7DQogICAgICB9DQoNCiAgICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSB7DQogICAg ICAgIHdpZHRoOiA1NXB4Ow0KICAgICAgICBoZWlnaHQ6IDU1cHg7DQogICAgICB9DQoNCiAg ICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSAuQXBwTGF1bmNoZXItaW5uZXIgLm1zLUljb24g ew0KICAgICAgICBmb250LXNpemU6IDI1cHg7DQogICAgICAgIHRvcDogMTNweDsNCiAgICAg IH0NCg0KICAgICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVuY2hlci1pbm5lciAu QXBwTGF1bmNoZXItbWVudVRpdGxlIHsNCiAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAg IH0NCiAgICB9DQoNCiAgICBAbWVkaWEgKG1heC13aWR0aDogNDYwcHgpIHsNCiAgICAgIC5B cHBMYXVuY2hlciB7DQogICAgICAgIG1heC13aWR0aDogMjA1cHg7DQogICAgICAgIG1pbi13 aWR0aDogMjA1cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIChtYXgtaGVpZ2h0 OiA5NTBweCkgew0KICAgICAgLkFwcExhdW5jaGVyIHsNCiAgICAgICAgbWF4LWhlaWdodDog NzMwcHg7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIChtYXgtaGVpZ2h0OiA4MjBw eCkgew0KICAgICAgLkFwcExhdW5jaGVyIHsNCiAgICAgICAgbWF4LWhlaWdodDogNjEwcHg7 DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIChtYXgtaGVpZ2h0OiA3MDBweCkgew0K ICAgICAgLkFwcExhdW5jaGVyIHsNCiAgICAgICAgbWF4LWhlaWdodDogNDkwcHg7DQogICAg ICB9DQogICAgfQ0KDQogICAgQG1lZGlhIChtYXgtaGVpZ2h0OiA2MDBweCkgew0KICAgICAg LkFwcExhdW5jaGVyIHsNCiAgICAgICAgbWF4LWhlaWdodDogMzYwcHg7DQogICAgICB9DQog ICAgfQ0KDQogICAgQG1lZGlhIChtYXgtaGVpZ2h0OiA0NjBweCkgew0KICAgICAgLkFwcExh dW5jaGVyIHsNCiAgICAgICAgbWF4LWhlaWdodDogMjQwcHg7DQogICAgICB9DQogICAgfQ0K DQogICAgLkJlYWstY29udGFpbmVyIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5C ZWFrLWNvbnRhaW5lciAuQmVhay1hcnJvdy5CZWFrLS10aGVtZVByaW1hcnkgew0KICAgICAg YmFja2dyb3VuZDogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAuQmVhay1jb250YWluZXIgLkJl YWstYXJyb3cuQmVhay0td2hpdGUgew0KICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsNCiAg ICB9DQoNCiAgICAuQmVhay1jb250YWluZXIgLkJlYWstYXJyb3cuQmVhay0tbmV1dHJhbExp Z2h0ZXJBbHQgew0KICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICAu QmVhay1jb250YWluZXIgLkJlYWstYXJyb3cuQmVhay0tdGhlbWVUZXJ0aWFyeSB7DQogICAg ICBiYWNrZ3JvdW5kOiAjNzFhZmU1Ow0KICAgIH0NCg0KICAgIC5CZWFrLWFycm93IHsNCiAg ICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuNCk7DQogICAgICB3 aWR0aDogMTZweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHRyYW5zZm9y bTogcm90YXRlKDQ1ZGVnKTsNCiAgICAgIGhlaWdodDogMTZweDsNCiAgICAgIHRyYW5zaXRp b246IGxlZnQgMXMgZWFzZS1pbi1vdXQsIHJpZ2h0IDFzIGVhc2UtaW4tb3V0Ow0KICAgIH0N Cg0KICAgIC5CZWFrLWFycm93LS1jZW50ZXJlZCB7DQogICAgICB0cmFuc2Zvcm06IHRyYW5z bGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKSAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAuQmVhay1hcnJvdy0tY2VudGVyZWQgew0KICAgICAgbGVmdDogNTAl Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuQmVhay1hcnJvdy0tY2VudGVyZWQg ew0KICAgICAgcmlnaHQ6IDUwJTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLkJl YWstYXJyb3ctLWNlbnRlcmVkIHsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUp IHJvdGF0ZSg0NWRlZykgIWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAubXNUaWxlc0Nhcm91 c2VsX2U5MzQ4MWQxIC5tcy1MaXN0LXN1cmZhY2Ugew0KICAgICAgZGlzcGxheTogZmxleDsN CiAgICB9DQoNCiAgICAubmF2QnV0dG9uX2U5MzQ4MWQxIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNmYWZhZmE7DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICBib3JkZXItcmFk aXVzOiA0cHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLm5hdkJ1 dHRvbl9lOTM0ODFkMTpmb2N1cyB7DQogICAgICBvdXRsaW5lOiAwOw0KICAgIH0NCg0KICAg IC5uYXZCdXR0b25fZTkzNDgxZDE6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog I2Y1ZjVmNTsNCiAgICB9DQoNCiAgICAubmF2QnV0dG9uX2U5MzQ4MWQxOmFjdGl2ZSB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgIH0NCg0KICAgIC5uYXZCdXR0 b25fZTkzNDgxZDE6ZGlzYWJsZWQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFm YTsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICB9DQoNCiAgICAuY2hldnJvbl9lOTM0 ODFkMSB7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICBjb2xvcjogIzYwNWU1YzsN CiAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlOw0KICAgICAgbWFyZ2luLXRvcDogM3B4Ow0KICAg IH0NCg0KICAgIC5jaGV2cm9uRGlzYWJsZWRfZTkzNDgxZDEgew0KICAgICAgY29sb3I6ICNh MTlmOWQ7DQogICAgfQ0KDQogICAgLmNhcm91c2VsVG9wTmF2X2U5MzQ4MWQxIHsNCiAgICAg IGRpcmVjdGlvbjogbHRyOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmNhcm91c2VsVG9wTmF2X2U5MzQ4MWQxIHsN CiAgICAgIGZsb2F0OiByaWdodDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmNh cm91c2VsVG9wTmF2X2U5MzQ4MWQxIHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJsdHIiXSAuY2Fyb3VzZWxUb3BOYXZfZTkzNDgxZDEgOmZpcnN0LW9m LXR5cGUgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7DQogICAgfQ0KDQogICAgaHRtbFtk aXI9InJ0bCJdIC5jYXJvdXNlbFRvcE5hdl9lOTM0ODFkMSA6Zmlyc3Qtb2YtdHlwZSB7DQog ICAgICBtYXJnaW4tbGVmdDogMXB4Ow0KICAgIH0NCg0KICAgIC5tc1RpbGVzQ2Fyb3VzZWxI ZWFkZXJfZTkzNDgxZDEgew0KICAgICAgY29sb3I6ICMzMjMxMzA7DQogICAgICBkaXNwbGF5 OiBpbmxpbmUtYmxvY2s7DQogICAgICBmb250LXNpemU6IDIwcHg7DQogICAgICBsaW5lLWhl aWdodDogMjhweDsNCiAgICAgIG1hcmdpbjogMDsNCiAgICB9DQoNCiAgICAubXMtRmFicmlj LS1pc0ZvY3VzVmlzaWJsZSAubXNUaWxlc0Nhcm91c2VsX2U5MzQ4MWQxIC5tcy1UaWxlOmZv Y3VzIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQogICAgICBtYXJnaW46 IDFweDsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjE2MTYxOw0KICAgIH0NCg0KICAg IC5wYW5lXzM0ZDU2YWFmIHsNCiAgICAgIGZsZXg6IDEgMSBhdXRvOw0KICAgIH0NCg0KICAg IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtZ3JvdXAgew0KICAgICAgcGFkZGluZy10b3A6IDhw eDsNCiAgICB9DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWdyb3VwOm5vdCg6bGFz dC1jaGlsZCkgew0KICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2UwZTBlMDsNCiAgICAg IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsNCiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6 IHNvbGlkOw0KICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7DQogICAgfQ0KDQogICAgQG1l ZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVl biBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnBhbmVfMzRkNTZhYWYg Lm1zLU5hdi1ncm91cDpub3QoOmxhc3QtY2hpbGQpIHsNCiAgICAgICAgYm9yZGVyLWJvdHRv bS1jb2xvcjogSGlnaGxpZ2h0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChm b3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYt Z3JvdXA6bm90KDpsYXN0LWNoaWxkKSB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFk anVzdDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWdyb3VwOm5vdCg6Zmly c3QtY2hpbGQpIHsNCiAgICAgIHBhZGRpbmctdG9wOiAxNnB4Ow0KICAgIH0NCg0KICAgIC5p c0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtZ3JvdXAgew0KICAgICAgcGFk ZGluZy10b3A6IDE2cHg7DQogICAgICBib3JkZXItYm90dG9tOiBub25lOw0KICAgIH0NCg0K ICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAg ICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5wYW5lXzM0 ZDU2YWFmIHsNCiAgICAgICAgb3V0bGluZTogdHJhbnNwYXJlbnQ7DQogICAgICAgIHBvc2l0 aW9uOiByZWxhdGl2ZTsNCiAgICAgIH0NCg0KICAgICAgLnBhbmVfMzRkNTZhYWYgJjo6LW1v ei1mb2N1cy1pbm5lciB7DQogICAgICAgIGJvcmRlcjogMDsNCiAgICAgIH0NCg0KICAgICAg Lm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLnBhbmVfMzRkNTZhYWY6Zm9jdXM6YWZ0ZXIg ew0KICAgICAgICBjb250ZW50OiAiIjsNCiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgICB0b3A6IDJweDsNCiAgICAgICAgcmlnaHQ6IDJweDsNCiAgICAgICAgYm90dG9t OiAycHg7DQogICAgICAgIGxlZnQ6IDJweDsNCiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5v bmU7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIFdpbmRvd1RleHQ7DQogICAgICB9DQog ICAgfQ0KDQogICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1ncm91cENvbnRlbnQgew0KICAg ICAgbWFyZ2luLWJvdHRvbTogMDsNCiAgICAgIHRyYW5zZm9ybTogbm9uZTsNCiAgICAgIC13 ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgICAgYW5pbWF0aW9uOiBub25lOw0KICAgIH0N Cg0KICAgIC5pc0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtZ3JvdXBDb250 ZW50IHsNCiAgICAgIHBhZGRpbmc6IDAgMnB4Ow0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2 YWFmIC5tcy1OYXYtbmF2SXRlbXMgew0KICAgICAgbWFyZ2luLXRvcDogMDsNCiAgICB9DQoN CiAgICAucGFuZV8zNGQ1NmFhZiAubXMtQnV0dG9uOmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNlYmViZWI7DQogICAgICBjb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAg ICAucGFuZV8zNGQ1NmFhZiAubXMtQnV0dG9uOmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjZTBlMGUwOw0KICAgICAgY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQogICAg LnBhbmVfMzRkNTZhYWYgLm1zLUJ1dHRvbjpmb2N1cyB7DQogICAgICBib3gtc2hhZG93OiBu b25lOw0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtbGluayB7DQogICAg ICBwYWRkaW5nOiAwOw0KICAgICAgaGVpZ2h0OiAzNnB4Ow0KICAgICAgYm9yZGVyOiAwOw0K ICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtbGluayB7 DQogICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0g LnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1saW5rIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2 cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1s aW5rIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJy dGwiXSAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWxpbmsgew0KICAgICAgcGFkZGluZy1sZWZ0 OiA4cHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1z LU5hdi1saW5rIHsNCiAgICAgIGhlaWdodDogNDBweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6 IDRweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuaXNGbHVlbnRWTmV4dCAucGFuZV8z NGQ1NmFhZiAubXMtTmF2LWxpbmsgew0KICAgICAgcGFkZGluZy1sZWZ0OiAycHg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1z LU5hdi1saW5rIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDsNCiAgICB9DQoNCiAgICBb ZGlyPSJsdHIiXSAuaXNGbHVlbnRWTmV4dCAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWxpbmsg ew0KICAgICAgcGFkZGluZy1yaWdodDogMnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJd IC5pc0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtbGluayB7DQogICAgICBw YWRkaW5nLWxlZnQ6IDJweDsNCiAgICB9DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2 LWxpbms6OmFmdGVyIHsNCiAgICAgIGJvcmRlci1sZWZ0OiBub25lOw0KICAgIH0NCg0KICAg IEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBz Y3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5wYW5lXzM0ZDU2 YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2LWxpbmsgew0KICAgICAgICBjb2xv cjogV2luZG93VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFu ZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2Vk LWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBv c2l0ZUxpbmsgLm1zLU5hdi1saW5rIHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRq dXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0KICAgICAg fQ0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAu bXMtTmF2LWxpbms6Zm9jdXMsDQogICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3Np dGVMaW5rIC5tcy1OYXYtbGluazpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj ZWJlYmViOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5t cy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2LWxpbms6Zm9jdXMsDQogICAgLmlzRmx1ZW50 Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rIC5tcy1OYXYtbGlu azpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgICAgY29s b3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZh YWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rIC5tcy1OYXYtbGluazpmb2N1cyBpLA0KICAgIC5p c0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAubXMt TmF2LWxpbms6aG92ZXIgaSB7DQogICAgICBjb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAg ICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAg c2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5pc0ZsdWVu dFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2LWxp bms6Zm9jdXMsDQogICAgICAuaXNGbHVlbnRWTmV4dCAucGFuZV8zNGQ1NmFhZiAubXMtTmF2 LWNvbXBvc2l0ZUxpbmsgLm1zLU5hdi1saW5rOmhvdmVyIHsNCiAgICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogSGlnaGxpZ2h0Ow0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJh c3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7 DQoNCiAgICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2 LWxpbms6Zm9jdXMsDQogICAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxp bmsgLm1zLU5hdi1saW5rOmhvdmVyIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogSGln aGxpZ2h0Ow0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsgLm1zLU5hdi1s aW5rOmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgIH0N Cg0KICAgIC5pc0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRl TGluayAubXMtTmF2LWxpbms6YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNk MWQxZDE7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAo Zm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAuaXNGbHVlbnRWTmV4dCAucGFuZV8z NGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsgLm1zLU5hdi1saW5rOmFjdGl2ZSB7DQog ICAgICAgIGJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodDsNCiAgICAgICAgY29sb3I6IEhp Z2hsaWdodFRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQg KC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1j b2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3Np dGVMaW5rIC5tcy1OYXYtbGluazphY3RpdmUgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y OiBIaWdobGlnaHQ7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0K ICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0 aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAg IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluazpob3ZlciAubXMtTmF2LWxp bmsgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQ7DQogICAgICAgIGNv bG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2 YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluay5pcy1zZWxlY3RlZCAubXMtTmF2LWxpbmsgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoNCiAgICBAbWVkaWEg c2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFu ZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucGFuZV8zNGQ1NmFhZiAubXMt TmF2LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1zLU5hdi1saW5rIHsNCiAgICAgICAg b3V0bGluZTogdHJhbnNwYXJlbnQ7DQogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAg ICAgIH0NCg0KICAgICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rLmlz LXNlbGVjdGVkIC5tcy1OYXYtbGluayAmOjotbW96LWZvY3VzLWlubmVyIHsNCiAgICAgICAg Ym9yZGVyOiAwOw0KICAgICAgfQ0KDQogICAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJs ZSAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1z LU5hdi1saW5rOmZvY3VzOmFmdGVyIHsNCiAgICAgICAgY29udGVudDogIiI7DQogICAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgdG9wOiAycHg7DQogICAgICAgIHJpZ2h0 OiAycHg7DQogICAgICAgIGJvdHRvbTogMnB4Ow0KICAgICAgICBsZWZ0OiAycHg7DQogICAg ICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBX aW5kb3dUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5wYW5l XzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluay5pcy1zZWxlY3RlZCAubXMtTmF2LWxp bmsgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICBjb2xv cjogIzI0MjQyNDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAucGFuZV8zNGQ1NmFh ZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1zLU5hdi1saW5rIGkgew0K ICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnBh bmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rLmlzLXNlbGVjdGVkIC5tcy1OYXYt bGluazpmb2N1cywNCiAgICAuaXNGbHVlbnRWTmV4dCAucGFuZV8zNGQ1NmFhZiAubXMtTmF2 LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1zLU5hdi1saW5rOmhvdmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAu aXNGbHVlbnRWTmV4dCAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsuaXMt c2VsZWN0ZWQgLm1zLU5hdi1saW5rIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogSGln aGxpZ2h0Ow0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSks DQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucGFu ZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1zLU5hdi1s aW5rIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0Ow0KICAgICAgICBj b2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAo Zm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2 LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1zLU5hdi1saW5rIHsNCiAgICAgICAgLW1z LWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRq dXN0OiBub25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgt bXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29s b3JzOiBhY3RpdmUpIHsNCiAgICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRl TGluay5pcy1zZWxlY3RlZDpob3ZlciAubXMtTmF2LWxpbmsgew0KICAgICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiBIaWdobGlnaHQ7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0K ICAgICAgfQ0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtbGlua1RleHQg ew0KICAgICAgbWFyZ2luOiAwIDA7DQogICAgfQ0KDQogICAgLnBhbmVfMzRkNTZhYWYgLm1z LU5hdi1jaGV2cm9uQnV0dG9uIHsNCiAgICAgIHBhZGRpbmc6IDAgMTZweDsNCiAgICAgIGhl aWdodDogMzZweDsNCiAgICB9DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNoZXZy b25CdXR0b24gLm1zLU5hdi1jaGV2cm9uIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAg fQ0KDQogICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rIC5tcy1OYXYt Y2hldnJvbkJ1dHRvbiB7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5p c0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayB7DQog ICAgICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBjb21t YW5kQmFyQm94U2hhZG93QW5pbWF0aW9uXzEzZmQxZjQxIHsNCiAgICAgIDAlIHsNCiAgICAg ICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNw YXJlbnQ7DQogICAgICB9DQoNCiAgICAgIDEwMCUgew0KICAgICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZmZmZmZmOw0KICAgICAgICBib3gtc2hhZG93OiAwIDMuMnB4IDcuMnB4IDAgcmdi YSgwLCAwLCAwLCAwLjEzMiksDQogICAgICAgICAgMCAwLjZweCAxLjhweCAwIHJnYmEoMCwg MCwgMCwgMC4xMDgpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgY29tbWFu ZEJhckRpdmlkZXJBbmltYXRpb25fMTNmZDFmNDEgew0KICAgICAgMCUgew0KICAgICAgICBv cGFjaXR5OiAxOw0KICAgICAgfQ0KDQogICAgICAxMDAlIHsNCiAgICAgICAgb3BhY2l0eTog MDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubGVmdE5hdk5vdGlmaWNhdGlvbnNTZWN0aW9u XzEzZmQxZjQxIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgcGFkZGluZzogOHB4IDA7 DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgfQ0KDQogICAgLmxlZnROYXZOb3RpZmlj YXRpb25zU2VjdGlvbkJvcmRlcl8xM2ZkMWY0MSB7DQogICAgICBib3JkZXItdG9wOiAxcHgg c29saWQgI2ViZWJlYjsNCiAgICB9DQoNCiAgICAubGVmdE5hdk5vdGlmaWNhdGlvbnNMaW5r XzEzZmQxZjQxIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcGFkZGluZzogOHB4 IDE2cHg7DQogICAgICBjb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAubGVmdE5hdk5v dGlmaWNhdGlvbnNTZWN0aW9uXzEzZmQxZjQxPi5sZWZ0TmF2Tm90aWZpY2F0aW9uc0xpbmtf MTNmZDFmNDE6Zm9jdXMgew0KICAgICAgb3V0bGluZTogMDsNCiAgICB9DQoNCiAgICAub2Qt UHJlbWl1bVVwc2VsbEJhbm5lciB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAg ICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgICBtYXJnaW46IDhweCAxNnB4IDEycHg7DQogICAg fQ0KDQogICAgLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItLWN1cnNvciB7DQogICAgICBjdXJz b3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItaGVh ZGVyIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQog ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMTA2 ZWJlOw0KICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgcGFkZGluZzogNnB4IDEy cHg7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgIGNvbG9yOiAjMTA2 ZWJlOw0KICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgfQ0KDQogICAgLm9k LVByZW1pdW1VcHNlbGxCYW5uZXItaGVhZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xv cjogIzAwNWE5ZTsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2ViZWJlYjsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtUHJlbWl1 bVVwc2VsbEJhbm5lci1oZWFkZXIgew0KICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIHBhZGRpbmc6IDEwcHggMTJweCAxMXB4 Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgICAgYm94LXNoYWRvdzogMCAxcHgg MnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsN CiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1o ZWFkZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICB9 DQoNCiAgICAub2QtZm9jdXMtLWVuYWJsZWQgLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItaGVh ZGVyOmZvY3VzOjphZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHRvcDogMnB4 Ow0KICAgICAgcmlnaHQ6IDJweDsNCiAgICAgIGxlZnQ6IDJweDsNCiAgICAgIGJvdHRvbTog MnB4Ow0KICAgICAgYm9yZGVyOiAxcHggc29saWQgIzI0MjQyNDsNCiAgICAgIHBvc2l0aW9u OiBhYnNvbHV0ZTsNCiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1qZXdl bCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBhbGlnbi1zZWxmOiBj ZW50ZXI7DQogICAgICBoZWlnaHQ6IDE2cHg7DQogICAgICB3aWR0aDogMTZweDsNCiAgICAg IHBvc2l0aW9uOiB0b3A7DQogICAgICB0b3A6IDFweDsNCiAgICB9DQoNCiAgICBbZGlyPSJs dHIiXSAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1qZXdlbCB7DQogICAgICBwYWRkaW5nLXJp Z2h0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVByZW1pdW1VcHNlbGxC YW5uZXItamV3ZWwgew0KICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7DQogICAgfQ0KDQogICAg LmlzRmx1ZW50Vk5leHQgLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItamV3ZWwgew0KICAgICAg aGVpZ2h0OiAxOHB4Ow0KICAgICAgd2lkdGg6IDE4cHg7DQogICAgICBmb250LXNpemU6IDE4 cHg7DQogICAgfQ0KDQogICAgLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItZGV0YWlscyB7DQog ICAgICBtYXJnaW4tYm90dG9tOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0 IC5vZC1QcmVtaXVtVXBzZWxsQmFubmVyLWRldGFpbHMgew0KICAgICAgbWFyZ2luLWJvdHRv bTogMThweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7DQogICAgfQ0KDQogICAgLm9kLVBy ZW1pdW1VcHNlbGxCYW5uZXItdXBzZWxsIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9j azsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQog ICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgY29sb3I6IGluaGVyaXQ7DQogICAgICBm bGV4OiAwIDEgYXV0bzsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIHBhZGRp bmc6IDA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVByZW1pdW1VcHNlbGxC YW5uZXItdXBzZWxsIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgfQ0KDQogICAgLm9k LVByZW1pdW1VcHNlbGxCYW5uZXItZ2xlYW0gew0KICAgICAgaGVpZ2h0OiAyNHB4Ow0KICAg ICAgd2lkdGg6IDI0cHg7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBh bGlnbi1zZWxmOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLm9kLVByZW1pdW1VcHNlbGxCYW5u ZXItbWVzc2FnZSB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBmb250LXdlaWdo dDogNDAwOw0KICAgICAgZGlzcGxheTogaW5saW5lOw0KICAgICAgY29sb3I6ICM2MTYxNjE7 DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItbWVz c2FnZSB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7DQogICAgfQ0KDQogICAgW2Rpcj0i cnRsIl0gLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItbWVzc2FnZSB7DQogICAgICBwYWRkaW5n LWxlZnQ6IDRweDsNCiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1saW5r IHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQog ICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG1hcmdpbi10b3A6IDNweDsNCiAgICAgIHRl eHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAg fQ0KDQogICAgLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItbGluazpob3ZlciB7DQogICAgICBj b2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1h bmNob3Igew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiA2MHB4Ow0K ICAgICAgd2lkdGg6IDFweDsNCiAgICAgIGhlaWdodDogMXB4Ow0KICAgIH0NCg0KICAgIFtk aXI9Imx0ciJdIC5vZC1QcmVtaXVtVXBzZWxsQmFubmVyLWFuY2hvciB7DQogICAgICByaWdo dDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUHJlbWl1bVVwc2VsbEJhbm5l ci1hbmNob3Igew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3Rh IHsNCiAgICAgIHBhZGRpbmc6IDEycHggMjBweCAxNnB4Ow0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2ZkZTdlOTsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5v ZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1tZXNzYWdlIHsNCiAgICAgIGZvbnQtc2l6ZTog MTJweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtT3ZlclF1b3RhIC5vZC1PdmVy UXVvdGEtbWVzc2FnZSB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7DQogICAgfQ0KDQog ICAgW2Rpcj0icnRsIl0gLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLW1lc3NhZ2Ugew0K ICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7DQogICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSAu b2QtT3ZlclF1b3RhLWxpbmsgew0KICAgICAgY29sb3I6ICMwMDVhOWU7DQogICAgICBmb250 LXNpemU6IDEycHg7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgZGlzcGxh eTogaW5saW5lLWJsb2NrOw0KICAgIH0NCg0KICAgIC5vZC1PdmVyUXVvdGEgLm9kLU92ZXJR dW90YS1idXR0b25BcmVhIHsNCiAgICAgIG1hcmdpbi10b3A6IDE2cHg7DQogICAgICBtYXJn aW4tYm90dG9tOiA4cHg7DQogICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1 b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1wcmltYXJ5QnV0dG9uIHsNCiAgICAgIGhl aWdodDogYXV0bzsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgICBi b3JkZXI6IDA7DQogICAgICBtaW4td2lkdGg6IDE2MHB4Ow0KICAgICAgd2lkdGg6IDEwMCU7 DQogICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEg Lm9kLU92ZXJRdW90YS1wcmltYXJ5QnV0dG9uIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAg Y29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLnNtIC5vZC1PdmVyUXVvdGEgLm9kLU92 ZXJRdW90YS1idXR0b25BcmVhIC5vZC1PdmVyUXVvdGEtcHJpbWFyeUJ1dHRvbiB7DQogICAg ICBtaW4td2lkdGg6IDE0MHB4Ow0KICAgICAgcGFkZGluZzogNHB4IDEwcHggNnB4Ow0KICAg IH0NCg0KICAgIC5vZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIC5vZC1P dmVyUXVvdGEtcHJpbWFyeUJ1dHRvbjpmb2N1cywNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1P dmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtT3ZlclF1b3RhLXByaW1hcnlCdXR0b246aG92ZXIg ew0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNWE5 ZTsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQogICAgLm9k LU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1wcmlt YXJ5QnV0dG9uOmZvY3VzIC5vZC1CdXR0b24tbGFiZWwsDQogICAgLm9kLU92ZXJRdW90YSAu b2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1wcmltYXJ5QnV0dG9uOmhv dmVyIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0K DQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJR dW90YS1zZWNvbmRhcnlCdXR0b24gew0KICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIG1pbi13 aWR0aDogMTYwcHg7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAub2QtT3Zl clF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtT3ZlclF1b3RhLXNlY29uZGFy eUJ1dHRvbiAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAg IH0NCg0KICAgIC5zbSAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAu b2QtT3ZlclF1b3RhLXNlY29uZGFyeUJ1dHRvbiB7DQogICAgICBtaW4td2lkdGg6IDE0MHB4 Ow0KICAgICAgcGFkZGluZzogNHB4IDEwcHggNnB4Ow0KICAgIH0NCg0KICAgIC5vZC1PdmVy UXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIC5vZC1PdmVyUXVvdGEtc2Vjb25kYXJ5 QnV0dG9uOmZvY3VzLA0KICAgIC5vZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25B cmVhIC5vZC1PdmVyUXVvdGEtc2Vjb25kYXJ5QnV0dG9uOmhvdmVyIHsNCiAgICAgIGJveC1z aGFkb3c6IG5vbmU7DQogICAgICBib3JkZXItY29sb3I6ICNkZWVjZjk7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZGVlY2Y5Ow0KICAgIH0NCg0KICAgIC5vZC1PdmVyUXVvdGEgLm9k LU92ZXJRdW90YS1idXR0b25BcmVhIC5vZC1PdmVyUXVvdGEtc2Vjb25kYXJ5QnV0dG9uOmZv Y3VzIC5vZC1CdXR0b24tbGFiZWwsDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3Rh LWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1zZWNvbmRhcnlCdXR0b246aG92ZXIgLm9kLUJ1 dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAub2Qt T3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtQnV0dG9uKy5vZC1CdXR0 b24gew0KICAgICAgbWFyZ2luLXRvcDogMTBweDsNCiAgICAgIGJvcmRlci1jb2xvcjogIzEw NmViZTsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgfQ0KDQogICAg Lm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLUJ1dHRvbisub2Qt QnV0dG9uIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAg fQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLUJ1 dHRvbisub2QtQnV0dG9uOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmVi ZWI7DQogICAgICBib3JkZXItY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQogICAgLm9kLU92 ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLUJ1dHRvbisub2QtQnV0dG9u OmhvdmVyIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICMwMDVhOWU7DQogICAg fQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLUJ1 dHRvbisub2QtQnV0dG9uOmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBl MGUwOw0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIC5vZC1P dmVyUXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIC5vZC1CdXR0b24rLm9kLUJ1dHRv bjphY3RpdmUgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzAwNDU3ODsNCiAg ICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEt YnV0dG9uQXJlYSAub2QtQnV0dG9uKy5vZC1CdXR0b24gew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXIub2QtUXVvdGFCYXIt b24gew0KICAgICAgcGFkZGluZzogOHB4IDE2cHg7DQogICAgfQ0KDQogICAgLm9kLVF1b3Rh QmFyLXRvcCB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246 IHJvdzsNCiAgICAgIG1pbi1oZWlnaHQ6IDE4cHg7DQogICAgICBtYXJnaW4tYm90dG9tOiAw Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci10b3AgLm9kLVF1b3RhQmFyLXRleHQgew0K ICAgICAgbWFyZ2luLXRvcDogMTBweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAu b2QtUXVvdGFCYXItdG9wIC5vZC1RdW90YUJhci10ZXh0IHsNCiAgICAgIG1hcmdpbi10b3A6 IDZweDsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItYm90dG9tIHsNCiAgICAgIGRpc3Bs YXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgbWluLWhl aWdodDogMThweDsNCiAgICAgIG1hcmdpbjogMCAwIDE0cHg7DQogICAgfQ0KDQogICAgLm9k LVF1b3RhQmFyLWJvdHRvbSAub2QtUXVvdGFCYXItcHJpbWFyeU1lc3NhZ2Ugew0KICAgICAg ZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgfQ0K DQogICAgLm9kLVF1b3RhQmFyLWJvdHRvbSAub2QtUXVvdGFCYXItdGV4dCB7DQogICAgICBk aXNwbGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1ib3R0b20gLm9kLVF1 b3RhQmFyLWRldGFpbGVkTWVzc2FnZSB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAg ICBtYXJnaW4tdG9wOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1ib3R0b20g Lm9kLVF1b3RhQmFyLXVuZnJlZXplQnV0dG9uIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsN CiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItYm90dG9tIC5vZC1RdW90YUJhci11bmZyZWV6 ZUJ1dHRvbiAub2QtUXVvdGFCYXItbGluayB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAg ICAgIGhlaWdodDogMjRweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgICAgIGNv bG9yOiAjZmZmZmZmOw0KICAgICAgYmFja2dyb3VuZDogIzAwNzhkNDsNCiAgICAgIGZvbnQt d2VpZ2h0OiA2MDA7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBsaW5lLWhl aWdodDogMjRweDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW4tdG9wOiAyMHB4 Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1ib3R0b20gLm9kLVF1b3RhQmFyLXVuZnJl ZXplQnV0dG9uIC5vZC1RdW90YUJhci1saW5rLXJlbW92ZS1ob3Zlci10ZXh0IHsNCiAgICAg IGRpc3BsYXk6IGJsb2NrOw0KICAgICAgaGVpZ2h0OiAyNHB4Ow0KICAgICAgYm9yZGVyLXJh ZGl1czogMnB4Ow0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBiYWNrZ3JvdW5kOiAj MDA3OGQ0Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIHRleHQtYWxpZ246IGNl bnRlcjsNCiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4Ow0KICAgICAgcGFkZGluZzogMDsNCiAg ICAgIG1hcmdpbi10b3A6IDIwcHg7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWJvdHRv bSAub2QtT3ZlclF1b3RhIHsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW4tdG9w OiAyMHB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCiAgICAgIGxpbmUt aGVpZ2h0OiAxNnB4Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1ib3R0b20gLm9kLU92 ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgew0KICAgICAgbWFyZ2luOiAwOw0K ICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1ib3R0b20gLm9kLU92ZXJRdW90YSAub2QtT3Zl clF1b3RhLWJ1dHRvbkFyZWEgLm9kLUJ1dHRvbiB7DQogICAgICBwYWRkaW5nOiAwOw0KICAg ICAgaGVpZ2h0OiAzMnB4Ow0KICAgICAgbWluLXdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAg IC5vZC1RdW90YUJhci1ib3R0b20gLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRv bkFyZWEgLm9kLU92ZXJRdW90YS1zZWNvbmRhcnlCdXR0b24gew0KICAgICAgYm9yZGVyOiAx cHggc29saWQgIzI0MjQyNDsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItYm90dG9tIC5v ZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1saW5rIHsNCiAgICAgIG1hcmdpbi1ib3R0b206 IDI0cHg7DQogICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSB7DQogICAgICBwYWRkaW5nOiAw Ow0KICAgICAgbWFyZ2luLXRvcDogMjBweDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNm M2YyZjE7DQogICAgICBsaW5lLWhlaWdodDogMTZweDsNCiAgICB9DQoNCiAgICAub2QtT3Zl clF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSB7DQogICAgICBtYXJnaW46IDA7DQog ICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9k LUJ1dHRvbiB7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAg ICAgbWluLXdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIC5vZC1PdmVyUXVvdGEgLm9kLU92 ZXJRdW90YS1idXR0b25BcmVhIC5vZC1PdmVyUXVvdGEtc2Vjb25kYXJ5QnV0dG9uIHsNCiAg ICAgIGJvcmRlcjogMXB4IHNvbGlkICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLm9kLU92ZXJR dW90YSAub2QtT3ZlclF1b3RhLWxpbmsgew0KICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsN CiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItdGV4dCB7DQogICAgICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIGZvbnQtc2l6ZTogMTJw eDsNCiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7DQogICAgfQ0KDQogICAgLm9kLVF1b3Rh QmFyLXRleHQgLm9kLVF1b3RhQmFyLWxpbms6aG92ZXIgew0KICAgICAgdGV4dC1kZWNvcmF0 aW9uOiB1bmRlcmxpbmU7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLXRleHQgLm9kLVF1 b3RhQmFyLWxpbms6bm90KC5vZC1RdW90YUJhci1saW5rUmVkKSB7DQogICAgICBjb2xvcjog IzEwNmViZTsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItdGV4dCAub2QtUXVvdGFCYXIt bGluazpub3QoLm9kLVF1b3RhQmFyLWxpbmtSZWQpOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj MDA1YTllOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci10ZXh0IC5vZC1RdW90YUJhci1s aW5rLm9kLVF1b3RhQmFyLWxpbmtSZWQgew0KICAgICAgY29sb3I6ICNhNDI2MmM7DQogICAg ICBtYXJnaW4tdG9wOiA0cHg7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBmb250 LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci10ZXh0IC5vZC1RdW90 YUJhci1saW5rLXJlbW92ZS1ob3Zlci10ZXh0IHsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjog dW5kZXJsaW5lOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci10ZXh0IC5vZC1RdW90YUJh ci1saW5rLXJlbW92ZS1ob3Zlci10ZXh0Om5vdCgub2QtUXVvdGFCYXItbGlua1JlZCkgew0K ICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLXRleHQg Lm9kLVF1b3RhQmFyLWxpbmstcmVtb3ZlLWhvdmVyLXRleHQ6bm90KC5vZC1RdW90YUJhci1s aW5rUmVkKTpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAu b2QtUXVvdGFCYXItdGV4dCAub2QtUXVvdGFCYXItbGluay1yZW1vdmUtaG92ZXItdGV4dC5v ZC1RdW90YUJhci1saW5rUmVkIHsNCiAgICAgIGNvbG9yOiAjYTQyNjJjOw0KICAgICAgbWFy Z2luLXRvcDogNHB4Ow0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgZm9udC13ZWln aHQ6IDQwMDsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItZnVsbCAub2QtUXVvdGFCYXIt dGV4dCB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFC YXItZnVsbCAub2QtUXVvdGFCYXItdGV4dCAub2QtUXVvdGFCYXItbWVzc2FnZS11c3Egew0K ICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgICBm b250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1mdWxsIC5vZC1R dW90YUJhci11c2VkIHsNCiAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjYTQyNjJjOw0K ICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1mdWxsLS1zbWFsbERpYWxvZyAub2QtUXVvdGFC YXItYm90dG9tIC5vZC1RdW90YUJhci1wcmltYXJ5TWVzc2FnZSB7DQogICAgICBmbGV4LWRp cmVjdGlvbjogcm93Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1uZWFyaW5nT3JDcml0 aWNhbCAub2QtUXVvdGFCYXItdGV4dCB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICB9 DQoNCiAgICAub2QtUXVvdGFCYXItbmVhcmluZ09yQ3JpdGljYWwgLm9kLVF1b3RhQmFyLXVz ZWQgew0KICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNhNDI2MmM7DQogICAgfQ0KDQog ICAgLm9kLVF1b3RhQmFyLW1lc3NhZ2UtdXNxIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsN CiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICB9 DQoNCiAgICAub2QtUXVvdGFCYXItYmFyIHsNCiAgICAgIG1hcmdpbi10b3A6IDRweDsNCiAg ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItdG90 YWwgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDEwMCU7DQog ICAgICBib3JkZXI6IG5vbmU7DQogICAgICBib3JkZXItdG9wOiAycHggc29saWQgI2UwZTBl MDsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItdXNlZCB7DQogICAgICBwb3NpdGlvbjog YWJzb2x1dGU7DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICBib3JkZXItdG9wOiAycHgg c29saWQgIzEwNmViZTsNCiAgICAgIG1pbi13aWR0aDogMnB4Ow0KICAgIH0NCg0KICAgIC5v ZC1RdW90YUJhci1saW5rUmVkIHsNCiAgICAgIGNvbG9yOiAjYTQyNjJjOw0KICAgICAgbWFy Z2luLXRvcDogNHB4Ow0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgZm9udC13ZWln aHQ6IDQwMDsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItaGlnaE9yT3ZlclF1b3RhLm9k LVF1b3RhQmFyLW5lYXJpbmdBbmRBYm92ZSAub2QtUXVvdGFCYXItbWVzc2FnZS11c3Egew0K ICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgICBm b250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1oaWdoT3JPdmVy UXVvdGEub2QtUXVvdGFCYXItbmVhcmluZ0FuZEFib3ZlIC5vZC1RdW90YUJhci1saW5rIHsN CiAgICAgIGNvbG9yOiAjOWYyODJiOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1oaWdo T3JPdmVyUXVvdGEub2QtUXVvdGFCYXItbmVhcmluZ0FuZEFib3ZlIC5vZC1RdW90YUJhci11 c2VkIHsNCiAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjOWYyODJiOw0KICAgIH0NCg0K ICAgIC5vZC1RdW90YUJhci1oaWdoT3JPdmVyUXVvdGEub2QtUXVvdGFCYXItbmVhcmluZ0Fu ZEFib3ZlIC5vZC1PdmVyUXVvdGEtdXBncmFkZUJ1dHRvbiB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjOWYyODJiOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1oaWdoT3JPdmVy UXVvdGEub2QtUXVvdGFCYXItbmVhcmluZ0FuZEFib3ZlIC5vZC1PdmVyUXVvdGEtdXBncmFk ZUJ1dHRvbjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzUxZDFmOw0KICAg IH0NCg0KICAgIC5vZC1RdW90YUJhci1oaWdoT3JPdmVyUXVvdGEub2QtUXVvdGFCYXItbmVh cmluZ0FuZEFib3ZlIC5vZC1PdmVyUXVvdGEtdXBncmFkZUJ1dHRvbjphY3RpdmUgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogIzNmMTAxMTsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFC YXItaGlnaE9yT3ZlclF1b3RhLm9kLVF1b3RhQmFyLW5lYXJpbmdBbmRBYm92ZSAub2QtT3Zl clF1b3RhLW1hbmFnZVN0b3JhZ2VMaW5rIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAg ICAgIGNvbG9yOiAjMTA2ZWJlOw0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAg ZGlzcGxheTogYmxvY2s7DQogICAgICBtYXJnaW46IDhweCBhdXRvIDA7DQogICAgfQ0KDQog ICAgLkdldE1vcmVTdG9yYWdlUHJpbWFyeUJ1dHRvbl9iNThlNDgzZSB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZDgzYjAxOw0KICAgICAgYm9yZGVyOiAibm9uZSI7DQogICAgICBj b2xvcjogI2ZmZmZmZjsNCiAgICAgIHdpZHRoOiAiYXV0byI7DQogICAgfQ0KDQogICAgLkdl dE1vcmVTdG9yYWdlUHJpbWFyeUJ1dHRvbl9iNThlNDgzZTpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZDgzYjAxOw0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBj dXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLkdldE1vcmVTdG9yYWdlUHJpbWFyeUJ1 dHRvblYyX2I1OGU0ODNlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkODNiMDE7DQog ICAgICBib3JkZXI6ICJub25lIjsNCiAgICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7 DQogICAgICB3aWR0aDogImF1dG8iOw0KICAgIH0NCg0KICAgIC5HZXRNb3JlU3RvcmFnZVBy aW1hcnlCdXR0b25WMl9iNThlNDgzZTpob3ZlciB7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7 DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm1zLU5hdi1jb21wb3NpdGVMaW5rLmlz LXNlbGVjdGVkIC5tcy1OYXYtbGluayAubXMtQnV0dG9uLWZsZXhDb250YWluZXI6OmJlZm9y ZSB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHdpZHRoOiAycHg7DQogICAgICBoZWlnaHQ6IDI4cHg7DQogICAgICBib3JkZXItcmFk aXVzOiA0cHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0K ICAgIC5pY29uV3JhcHBlcl9mODgxY2NhNCB7DQogICAgICBwYWRkaW5nLXRvcDogM3B4Ow0K ICAgICAgd2lkdGg6IDE2cHg7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgfQ0KDQog ICAgW2Rpcj0ibHRyIl0gLmljb25XcmFwcGVyX2Y4ODFjY2E0IHsNCiAgICAgIG1hcmdpbi1y aWdodDogMTZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuaWNvbldyYXBwZXJfZjg4 MWNjYTQgew0KICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7DQogICAgfQ0KDQogICAgW2Rpcj0i bHRyIl0gLmlzRmx1ZW50Vk5leHQgLmljb25XcmFwcGVyX2Y4ODFjY2E0IHsNCiAgICAgIG1h cmdpbi1yaWdodDogMTBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuaXNGbHVlbnRW TmV4dCAuaWNvbldyYXBwZXJfZjg4MWNjYTQgew0KICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7 DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmlzRmx1ZW50Vk5leHQgLmljb25XcmFwcGVy X2Y4ODFjY2E0IHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4Ow0KICAgIH0NCg0KICAgIFtk aXI9InJ0bCJdIC5pc0ZsdWVudFZOZXh0IC5pY29uV3JhcHBlcl9mODgxY2NhNCB7DQogICAg ICBtYXJnaW4tcmlnaHQ6IDEycHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLmlj b25XcmFwcGVyX2Y4ODFjY2E0IGkgew0KICAgICAgY29sb3I6ICM0MjQyNDI7DQogICAgfQ0K DQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0K ICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLmlzRmx1 ZW50Vk5leHQgLmljb25XcmFwcGVyX2Y4ODFjY2E0IGkgew0KICAgICAgICBjb2xvcjogQnV0 dG9uVGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuZ3JvdXBIZWFkZXJfZDNmYjRiNjAg ew0KICAgICAgaGVpZ2h0OiAzNnB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDMycHg7DQogICAg ICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQog ICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBwYWRkaW5nOiAwIDE2cHggMCAxNnB4Ow0K ICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgIH0N Cg0KICAgIGh0bWxbZGlyPSJydGwiXSAuZ3JvdXBIZWFkZXJfZDNmYjRiNjAgew0KICAgICAg cGFkZGluZzogMCAxNnB4IDAgMTZweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAu Z3JvdXBIZWFkZXJfZDNmYjRiNjAgew0KICAgICAgbWFyZ2luLWJvdHRvbTogNHB4Ow0KICAg IH0NCiAgPC9zdHlsZT4NCiAgPHNjcmlwdCBjaGFyc2V0PSJ1dGYtOCINCiAgICBzcmM9Imh0 dHBzOi8vcmVzLTEuY2RuLm9mZmljZS5uZXQvZmlsZXMvb2RzcC13ZWItcHJvZF8yMDIzLTEw LTIwLjAwNS9vZGNsaWdodHNwZWVkd2VicGFjay5tYW5pZmVzdC84MTMuanMiDQogICAgY3Jv c3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgaWQ9IlN1aXRlTmF2 U2hlbGxDb3JlIg0KICAgIHNyYz0iaHR0cHM6Ly9zaGVsbHByb2QubXNvY2RuLmNvbS9hcGkv c2hlbGxib290c3RyYXBwZXIvY29uc3VtZXIvb25lc2hlbGw/bm9leHQiPjwvc2NyaXB0Pg0K ICA8c2NyaXB0IGNoYXJzZXQ9InV0Zi04Ig0KICAgIHNyYz0iaHR0cHM6Ly9yZXMtMS5jZG4u b2ZmaWNlLm5ldC9maWxlcy9vZHNwLXdlYi1wcm9kXzIwMjMtMTAtMjAuMDA1L29kY2xpZ2h0 c3BlZWR3ZWJwYWNrLm1hbmlmZXN0LzE5My5qcyINCiAgICBjcm9zc29yaWdpbj0iYW5vbnlt b3VzIj48L3NjcmlwdD4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVl Ij4NCiAgICAuZmllbGRfY2I5ZTFlMjQgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr Ow0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIG1heC13aWR0aDogMTAw JTsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICB0ZXh0LW92ZXJmbG93OiBl bGxpcHNpczsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0KDQogICAgLmZpZWxk X2NiOWUxZTI0LmJsb2NrX2NiOWUxZTI0IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAg IH0NCg0KICAgIC5wYXRoU2VjdGlvbl9jYjllMWUyNCB7DQogICAgICBkaXNwbGF5OiBpbmxp bmU7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVu IGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9y Y2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucGF0aFNlY3Rpb25fY2I5ZTFlMjQgew0K ICAgICAgICBjb2xvcjogV2luZG93VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVk aWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVu IGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAubXMtRGV0YWlsc1Jvdy5p cy1zZWxlY3RlZCAubXMtRGV0YWlsc1Jvdy1jZWxsIC5wYXRoU2VjdGlvbl9jYjllMWUyNCB7 DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAg IC5jaGV2cm9uX2NiOWUxZTI0IHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIG1h cmdpbjogM3B4IDFweDsNCiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KTsNCiAgICAgIHZl cnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoN CiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQog ICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAuY2hldnJv bl9jYjllMWUyNCB7DQogICAgICAgIGNvbG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0KICAg IH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZl KSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5t cy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5tcy1EZXRhaWxzUm93LWNlbGwgLmNoZXZyb25f Y2I5ZTFlMjQgew0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAg ICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1 ZSI+DQogICAgLnRvcENvbGxhUGxhY2VIb2xkZXJfN2ViOGM3NWIgew0KICAgICAgZGlzcGxh eTogZmxleDsNCiAgICAgIG1pbi13aWR0aDogMTNweDsNCiAgICAgIGhlaWdodDogMjFweDsN CiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAudG9wQ29sbGFQbGFjZUhvbGRlcl83ZWI4Yzc1 YiB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC50b3BDb2xsYVBsYWNlSG9sZGVyXzdlYjhjNzViIHsNCiAgICAgIHBhZGRpbmctbGVm dDogMTBweDsNCiAgICB9DQoNCiAgICAudG9wQ29sbGFib3JhdG9ySWNvbl83ZWI4Yzc1YiB7 DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAg IGxpbmUtaGVpZ2h0OiAyMXB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIH0N Cg0KICAgIC50b3BDb2xsYWJvcmF0b3JVc2VyTmFtZV83ZWI4Yzc1YiB7DQogICAgICBmb250 LXdlaWdodDogNzAwOw0KICAgIH0NCg0KICAgIC50b3BDb2xsYWJvcmF0b3JUb29sdGlwXzdl YjhjNzViIHsNCiAgICAgIHBhZGRpbmc6IDAgMnB4Ow0KICAgIH0NCg0KICAgIC51c2VyV2l0 aFRvcENvbGxhYm9yYXRvcl83ZWI4Yzc1YiB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAg IH0NCg0KICAgIC51c2VyV2l0aFRvcENvbGxhYm9yYXRvcl83ZWI4Yzc1YiAudG9wQ29sbGFQ bGFjZUhvbGRlcl83ZWI4Yzc1YiB7DQogICAgICBtaW4td2lkdGg6IDEzcHg7DQogICAgfQ0K DQogICAgW2Rpcj0ibHRyIl0gLnVzZXJXaXRoVG9wQ29sbGFib3JhdG9yXzdlYjhjNzViIC50 b3BDb2xsYVBsYWNlSG9sZGVyXzdlYjhjNzViIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDdw eDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAudXNlcldpdGhUb3BDb2xsYWJvcmF0b3Jf N2ViOGM3NWIgLnRvcENvbGxhUGxhY2VIb2xkZXJfN2ViOGM3NWIgew0KICAgICAgcGFkZGlu Zy1sZWZ0OiA3cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmNvbHVtbkhlYWRlcl83 ZWI4Yzc1YiB7DQogICAgICBtYXJnaW4tbGVmdDogMjBweDsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAuY29sdW1uSGVhZGVyXzdlYjhjNzViIHsNCiAgICAgIG1hcmdpbi1yaWdodDog MjBweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0 eWxlcz0idHJ1ZSI+DQogICAgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lciB7DQogICAgICBw b3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAg ICAgcmlnaHQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItT25l RHJpdmUgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAg ICAgYm90dG9tOiAwOw0KICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogIzAwNzhkNDsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgZGlzcGxh eTogaW5saW5lLWJsb2NrOw0KICAgICAgZm9udC13ZWlnaHQ6IDMwMDsNCiAgICAgIGZvbnQt c2l6ZTogMTRweDsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgZm9udC1zaXplOiAy MnB4Ow0KICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7DQogICAg ICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC11 bmF1dGhlbnRpY2F0ZWRCYW5uZXItT25lRHJpdmUgew0KICAgICAgbGVmdDogMTBweDsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1P bmVEcml2ZSB7DQogICAgICByaWdodDogMTBweDsNCiAgICB9DQoNCiAgICAub2QtdW5hdXRo ZW50aWNhdGVkQmFubmVyLUFjY291bnRCb3ggew0KICAgICAgcG9zaXRpb246IGZpeGVkOw0K ICAgICAgdG9wOiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICAvKiBQb3NpdGlvbiBpdCBv biB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSAqLw0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLXVuYXV0aGVu dGljYXRlZEJhbm5lci1BY2NvdW50Qm94IHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJydGwiXSAub2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLUFjY291bnRC b3ggew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9k LXVuYXV0aGVudGljYXRlZEJhbm5lci1BY2NvdW50Qm94IHsNCiAgICAgIHBhZGRpbmctcmln aHQ6IDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLXVuYXV0aGVudGlj YXRlZEJhbm5lci1BY2NvdW50Qm94IHsNCiAgICAgIHBhZGRpbmctbGVmdDogOHB4Ow0KICAg IH0NCg0KICAgIC5vZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItYnV0dG9uIHsNCiAgICAgIGRp c3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgIGZvbnQt d2VpZ2h0OiA2MDA7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBib3JkZXI6IG5v bmU7DQogICAgICBtYXJnaW46IDhweDsNCiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsNCiAg ICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAg fQ0KDQogICAgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1TaWduSW4gew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmZm ZmY7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7 DQogICAgICBwYWRkaW5nLXRvcDogNnB4Ow0KICAgIH0NCg0KICAgIC5vZC11bmF1dGhlbnRp Y2F0ZWRCYW5uZXItU2lnbkluOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMy Yjg4ZDg7DQogICAgfQ0KDQogICAgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1TaWduVXAg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIGNvbG9yOiAjMDA3 OGQ0Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDdweDsNCiAgICAgIHBhZGRpbmctdG9wOiA3 cHg7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5vZC11bmF1dGhlbnRp Y2F0ZWRCYW5uZXItU2lnblVwOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNm MGYwZjA7DQogICAgfQ0KDQogICAgLmxnIC5vZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItU2ln blVwLA0KICAgIC5tZCAub2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLVNpZ25VcCwNCiAgICAu eGxnIC5vZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItU2lnblVwLA0KICAgIC54eGxnIC5vZC11 bmF1dGhlbnRpY2F0ZWRCYW5uZXItU2lnblVwLA0KICAgIC54eHhsZyAub2QtdW5hdXRoZW50 aWNhdGVkQmFubmVyLVNpZ25VcCwNCiAgICAueHh4eGxnIC5vZC11bmF1dGhlbnRpY2F0ZWRC YW5uZXItU2lnblVwIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9k LVNpZ25JbkRpYWxvZy1tb2RhbCB7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7 DQogICAgICByaWdodDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtU2ln bkluRGlhbG9nLW1vZGFsIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAg Lm9kLVNpZ25JbkRpYWxvZy1tb2RhbCAubXMtTW9kYWxPdmVybGF5IHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC44KTsNCiAgICB9DQoNCiAgICAub2Qt U2lnbkluRGlhbG9nTVNBVmFyIHsNCiAgICAgIHdpZHRoOiA0MTBweDsNCiAgICAgIGhlaWdo dDogMzE1cHg7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBhbGlnbi1zZWxm OiBjZW50ZXI7DQogICAgICBtYXJnaW46IGF1dG87DQogICAgICBvdXRsaW5lOiAwOw0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAub2QtU2lnbklu RGlhbG9nTVNBVmFyLWhlYWRlciB7DQogICAgICBoZWlnaHQ6IDY1cHg7DQogICAgICBwYWRk aW5nLXRvcDogMjJweDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItaGVhZGVyIHsN CiAgICAgIHBhZGRpbmctbGVmdDogMzJweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRs Il0gLm9kLVNpZ25JbkRpYWxvZ01TQVZhci1oZWFkZXIgew0KICAgICAgcGFkZGluZy1yaWdo dDogMzJweDsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLWhlYWRlciBp bWcgew0KICAgICAgaGVpZ2h0OiA0MXB4Ow0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr Ow0KICAgICAgbWFyZ2luOiAwOw0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FW YXItY29udGVudCB7DQogICAgICBwYWRkaW5nOiA1cHggMzZweDsNCiAgICAgIGhlaWdodDog MTM1cHg7DQogICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9n TVNBVmFyLXVwc2VsbCB7DQogICAgICBmb250LXNpemU6IDIxcHg7DQogICAgICBjb2xvcjog IzI0MjQyNDsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLXVzZU1TQSB7 DQogICAgICBmb250LXNpemU6IDE1cHg7DQogICAgICBtYXJnaW46IDE2cHggMDsNCiAgICB9 DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLXVzZU1TQSBhIHsNCiAgICAgIGNvbG9y OiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItdXNlTVNB IGE6aG92ZXIgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAgLm9kLVNp Z25JbkRpYWxvZ01TQVZhci1uZXh0IHsNCiAgICAgIG1hcmdpbjogYXV0bzsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICMxMDZlYmU7DQogICAgICBoZWlnaHQ6IDM0cHg7DQogICAgICB3 aWR0aDogMzQycHg7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGZvbnQtd2VpZ2h0 OiAzMDA7DQogICAgICBmb250LXNpemU6IDE1cHg7DQogICAgICBib3JkZXI6IDJweDsNCiAg ICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlh bG9nTVNBVmFyLW5leHQ6Zm9jdXMgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZWZmNmZjOw0K ICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItbmV4dDpob3ZlciB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI4OGQ4Ow0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5E aWFsb2dNU0FWYXItaW5wdXQgew0KICAgICAgaGVpZ2h0OiAzNHB4Ow0KICAgICAgd2lkdGg6 IDM0MnB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsNCiAgICAgIGZvbnQtc2l6ZTog MTVweDsNCiAgICAgIHBhZGRpbmc6IDAgNHB4Ow0KICAgICAgYm94LXNpemluZzogYm9yZGVy LWJveDsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLWNyZWF0ZU1TQSB7 DQogICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICBtYXJnaW46IDE2cHggMDsNCiAgICB9 DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLWNyZWF0ZU1TQSBhIHsNCiAgICAgIGNv bG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItY3Jl YXRlTVNBIGE6aG92ZXIgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAg Lm9kLVNpZ25JbkRpYWxvZ01TQVZhci1saW5lIHsNCiAgICAgIHdpZHRoOiA0MTBweDsNCiAg ICAgIGhlaWdodDogMXB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDog MDsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLWRpc21pc3Mgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0K ICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAg IHdpZHRoOiA0MTBweDsNCiAgICAgIGhlaWdodDogMzVweDsNCiAgICAgIGN1cnNvcjogcG9p bnRlcjsNCiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsN CiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAg ICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nLWNsb3NlIHsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJhY2tncm91bmQ6IDAgMDsNCiAgICAg IGJvcmRlcjogMDsNCiAgICAgIHBhZGRpbmc6IDE2cHg7DQogICAgICBjdXJzb3I6IHBvaW50 ZXI7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1TaWduSW5EaWFsb2ctY2xv c2Ugew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5v ZC1TaWduSW5EaWFsb2ctY2xvc2Ugew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAu b2QtU2lnbkluRGlhbG9nLWNsb3NlIC5tcy1JY29uLm1zLUljb24tLUNhbmNlbCB7DQogICAg ICBmb250LXNpemU6IDE2cHg7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQogIDwv c3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAg Lm9kLU92ZXJsYXkgew0KICAgICAgaGVpZ2h0OiAwOw0KICAgICAgd2lkdGg6IDA7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEt bG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtRXJyb3Igew0KICAgICAgdGV4 dC1hbGlnbjogY2VudGVyOw0KICAgIH0NCg0KICAgIC5vZC1FcnJvci1pbWFnZSB7DQogICAg ICBwYWRkaW5nLXRvcDogNTJweDsNCiAgICAgIGhlaWdodDogMjA4cHg7DQogICAgICB3aWR0 aDogYXV0bzsNCiAgICAgIG1hcmdpbjogMCBhdXRvOw0KICAgIH0NCg0KICAgIC5vZC1FcnJv ci1pbWFnZSAub2QtRXJyb3ItaW1hZ2VUYWcgew0KICAgICAgaGVpZ2h0OiAyMDhweDsNCiAg ICAgIHdpZHRoOiBhdXRvOw0KICAgIH0NCg0KICAgIC5vZC1FcnJvci1pbWFnZSAub2QtRXJy b3ItdmF1bHRJbWFnZSB7DQogICAgICBoZWlnaHQ6IDg4cHg7DQogICAgICB3aWR0aDogYXV0 bzsNCiAgICAgIHBhZGRpbmctdG9wOiAxMTNweDsNCiAgICB9DQoNCiAgICAubWQgLm9kLUVy cm9yLWltYWdlLA0KICAgIC5zbSAub2QtRXJyb3ItaW1hZ2Ugew0KICAgICAgcGFkZGluZy10 b3A6IDIwcHg7DQogICAgICBoZWlnaHQ6IDE2OHB4Ow0KICAgICAgd2lkdGg6IGF1dG87DQog ICAgfQ0KDQogICAgLm1kIC5vZC1FcnJvci1pbWFnZSAub2QtRXJyb3ItaW1hZ2VUYWcsDQog ICAgLnNtIC5vZC1FcnJvci1pbWFnZSAub2QtRXJyb3ItaW1hZ2VUYWcgew0KICAgICAgaGVp Z2h0OiAxNjhweDsNCiAgICAgIHdpZHRoOiBhdXRvOw0KICAgIH0NCg0KICAgIC5tZCAub2Qt RXJyb3ItaW1hZ2UgLm9kLUVycm9yLXZhdWx0SW1hZ2UsDQogICAgLnNtIC5vZC1FcnJvci1p bWFnZSAub2QtRXJyb3ItdmF1bHRJbWFnZSB7DQogICAgICBoZWlnaHQ6IDg4cHg7DQogICAg ICB3aWR0aDogYXV0bzsNCiAgICAgIHBhZGRpbmctdG9wOiA4MHB4Ow0KICAgIH0NCg0KICAg IC5vZC1FcnJvci10aXRsZSB7DQogICAgICBwYWRkaW5nOiAxNnB4IDE2cHggMCAxNnB4Ow0K ICAgICAgZm9udC1zaXplOiAyMXB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDEwMDsNCiAgICAg IG1heC13aWR0aDogNDAwcHg7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIG1hcmdp bjogMCBhdXRvOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtRXJyb3ItdGl0 bGUgew0KICAgICAgcGFkZGluZzogMTZweCAxNnB4IDAgMTZweDsNCiAgICB9DQoNCiAgICAu bWQgLm9kLUVycm9yLXRpdGxlLA0KICAgIC5zbSAub2QtRXJyb3ItdGl0bGUgew0KICAgICAg Zm9udC1zaXplOiAxN3B4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDMwMDsNCiAgICB9DQoNCiAg ICAub2QtRXJyb3Itc3ViVGV4dCB7DQogICAgICBwYWRkaW5nOiA2cHggMTZweCAwIDE2cHg7 DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAg ICAgbWF4LXdpZHRoOiA0MDBweDsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgICAgbWFy Z2luOiAwIGF1dG87DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1FcnJvci1z dWJUZXh0IHsNCiAgICAgIHBhZGRpbmc6IDZweCAxNnB4IDAgMTZweDsNCiAgICB9DQoNCiAg ICAub2QtRXJyb3Itc3VidGV4dC0tYWNjZXNzcmVtb3ZlZCB7DQogICAgICBtYXgtd2lkdGg6 IDQxMHB4Ow0KICAgIH0NCg0KICAgIC5vZC1FcnJvci1jb2RlIHsNCiAgICAgIHBhZGRpbmct dG9wOiA4cHg7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICAgIC13ZWJraXQtdG91Y2gt Y2FsbG91dDogdGV4dDsNCiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7DQogICAg ICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7DQogICAgICB1c2VyLXNlbGVjdDogdGV4dDsNCiAg ICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0K DQogICAgLm9kLUVycm9yLWJ1dHRvbiB7DQogICAgICBwYWRkaW5nLXRvcDogMTZweDsNCiAg ICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0K ICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0K ICAgIC5Qcm9ncmVzc1NwaW5uZXJGbGF0IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsN CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBwYWRkaW5nOiAycHggMDsN CiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBoZWlnaHQ6IDZweDsNCiAgICAgIGNv bG9yOiAjMDA3OGQ0Ow0KICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAgIH0NCg0KICAgIC5Q cm9ncmVzc1NwaW5uZXJGbGF0PmRpdiB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQog ICAgICBsaW5lLWhlaWdodDogMDsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICAgIGFu aW1hdGlvbjogcHJvZ3Jlc3MgMy40cyBpbmZpbml0ZSBjdWJpYy1iZXppZXIoMCwgMC43NSwg MSwgMC4yNSk7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLlByb2dyZXNzU3Bpbm5lckZs YXQ+ZGl2IHsNCiAgICAgIGxlZnQ6IC01MHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJd IC5Qcm9ncmVzc1NwaW5uZXJGbGF0PmRpdiB7DQogICAgICByaWdodDogLTUwcHg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2IHsNCiAgICAg IGFuaW1hdGlvbjogcHJvZ3Jlc3NSdGwgMy40cyBpbmZpbml0ZSBjdWJpYy1iZXppZXIoMCwg MC43NSwgMSwgMC4yNSk7DQogICAgfQ0KDQogICAgLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2 OmZpcnN0LWNoaWxkIHsNCiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4xczsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6Zmlyc3QtY2hpbGQg ew0KICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0g LlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2OmZpcnN0LWNoaWxkIHsNCiAgICAgIG1hcmdpbi1y aWdodDogNDBweDsNCiAgICB9DQoNCiAgICAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6bnRo LWNoaWxkKDIpIHsNCiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4yczsNCiAgICB9DQoNCiAg ICBbZGlyPSJsdHIiXSAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6bnRoLWNoaWxkKDIpIHsN CiAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5Q cm9ncmVzc1NwaW5uZXJGbGF0PmRpdjpudGgtY2hpbGQoMikgew0KICAgICAgbWFyZ2luLXJp Z2h0OiAzMHB4Ow0KICAgIH0NCg0KICAgIC5Qcm9ncmVzc1NwaW5uZXJGbGF0PmRpdjpudGgt Y2hpbGQoMykgew0KICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOw0KICAgIH0NCg0KICAg IFtkaXI9Imx0ciJdIC5Qcm9ncmVzc1NwaW5uZXJGbGF0PmRpdjpudGgtY2hpbGQoMykgew0K ICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLlBy b2dyZXNzU3Bpbm5lckZsYXQ+ZGl2Om50aC1jaGlsZCgzKSB7DQogICAgICBtYXJnaW4tcmln aHQ6IDIwcHg7DQogICAgfQ0KDQogICAgLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2Om50aC1j aGlsZCg0KSB7DQogICAgICBhbmltYXRpb24tZGVsYXk6IDAuNHM7DQogICAgfQ0KDQogICAg W2Rpcj0ibHRyIl0gLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2Om50aC1jaGlsZCg0KSB7DQog ICAgICBtYXJnaW4tbGVmdDogMTBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuUHJv Z3Jlc3NTcGlubmVyRmxhdD5kaXY6bnRoLWNoaWxkKDQpIHsNCiAgICAgIG1hcmdpbi1yaWdo dDogMTBweDsNCiAgICB9DQoNCiAgICAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6bnRoLWNo aWxkKDUpIHsNCiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC41czsNCiAgICB9DQoNCiAgICBb ZGlyPSJsdHIiXSAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6bnRoLWNoaWxkKDUpIHsNCiAg ICAgIG1hcmdpbi1sZWZ0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5Qcm9ncmVz c1NwaW5uZXJGbGF0PmRpdjpudGgtY2hpbGQoNSkgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAw Ow0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgcHJvZ3Jlc3Mgew0KICAgICAgZnJvbSB7DQog ICAgICAgIGxlZnQ6IC01MHB4Ow0KICAgICAgfQ0KDQogICAgICAyNSUgew0KICAgICAgICBs ZWZ0OiAtNTBweDsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICBsZWZ0OiAxMDAl Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgcHJvZ3Jlc3NSdGwgew0KICAg ICAgZnJvbSB7DQogICAgICAgIHJpZ2h0OiAtNTBweDsNCiAgICAgIH0NCg0KICAgICAgMjUl IHsNCiAgICAgICAgcmlnaHQ6IC01MHB4Ow0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAg ICAgIHJpZ2h0OiAxMDAlOw0KICAgICAgfQ0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxl IGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtRmlsZXMtdW5hdXRo QmFubmVyIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAg ICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIGhlaWdodDogNTBweDsNCiAg ICB9DQoNCiAgICAub2QtRmlsZXMtb25lVXAgew0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAg ICAgYm90dG9tOiAwOw0KICAgIH0NCg0KICAgIC5vZC1GaWxlcy1vbmVVcC5vZC1GaWxlcy1P bmVVcC0tc2hvd1VuYXV0aEJhbm5lciB7DQogICAgICB0b3A6IDUwcHg7DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1jb21tdW5pY2F0aW9uU2hhZGUzMCwNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3ItY29tbXVuaWNhdGlvblNoYWRlMzAtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1Nzg7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25TaGFkZTIwLA0KICAgIGh0bWwgYm9keSAu bXMtYmdDb2xvci1jb21tdW5pY2F0aW9uU2hhZGUyMC0taG92ZXI6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3ItY29tbXVuaWNhdGlvblNoYWRlMTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLWNvbW11bmljYXRpb25TaGFkZTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1jb21tdW5pY2F0aW9uUHJpbWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29t bXVuaWNhdGlvblByaW1hcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11 bmljYXRpb25UaW50MTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRp b25UaW50MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYjg4 ZDg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25U aW50MjAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25UaW50MjAt LWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjN2UwZjQ7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25UaW50MzAsDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25UaW50MzAtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWVjZjk7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25UaW50NDAsDQogICAgaHRtbCBi b2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25UaW50NDAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmY2ZmM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1iZ0NvbG9yLWJsYWNrLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ibGFjay0t aG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTIyMCwNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3ItZ3JheTIyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogIzExMTAwZjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3Jh eTIxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTIxMC0taG92ZXI6aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE2MTUxNDsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3ItZ3JheTIwMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3It Z3JheTIwMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFiMWEx OTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE5MCwNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE5MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzIwMWYxZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItZ3JheTE4MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE4MC0taG92 ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjQyMzsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE3MCwNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3ItZ3JheTE3MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogIzI5MjgyNzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE2 MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE2MC0taG92ZXI6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzEzMDsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItZ3JheTE1MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3Jh eTE1MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNiM2EzOTsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE0MCwNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3ItZ3JheTE0MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogIzQ4NDY0NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29s b3ItZ3JheTEzMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTEzMC0taG92ZXI6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYwNWU1YzsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTEyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItZ3JheTEyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog Izc5Nzc3NTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTExMCwN CiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTExMC0taG92ZXI6aG92ZXIgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogIzhhODg4NjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3ItZ3JheTEwMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTEw MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk3OTU5MzsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTkwLA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1ncmF5OTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNhMTlmOWQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdy YXk4MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTgwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjNiMGFkOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1ncmF5NzAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdy YXk3MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JlYmJiODsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTYwLA0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1ncmF5NjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNjOGM2YzQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LWdyYXk1MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTUwLS1ob3Zlcjpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDJkMGNlOw0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1ncmF5NDAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LWdyYXk0MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZGZk ZDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTMwLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNlZGViZTk7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLWdyYXkyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTIwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmMmYxOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLWdyYXkxMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Zh ZjlmODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itd2hpdGUsDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLXdoaXRlLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1zaGFyZWRQaW5rUmVkMTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJl ZFBpbmtSZWQxMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc1 MGIxYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkUmVkMjAs DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZFJlZDIwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTQyNjJjOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1zaGFyZWRSZWQxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29s b3Itc2hhcmVkUmVkMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICNkMTM0Mzg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZFJl ZE9yYW5nZTIwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRSZWRPcmFuZ2Uy MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYwM2QzMDsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkUmVkT3JhbmdlMTAsDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZFJlZE9yYW5nZTEwLS1ob3Zlcjpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGEzYjAxOw0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRPcmFuZ2UzMCwNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3Itc2hhcmVkT3JhbmdlMzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICM4ZTU2MmU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LXNoYXJlZE9yYW5nZTIwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRPcmFu Z2UyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NhNTAxMDsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkT3JhbmdlMTAsDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE9yYW5nZTEwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1zaGFyZWRZZWxsb3cxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29s b3Itc2hhcmVkWWVsbG93MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNmY2UxMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJl ZE9yYW5nZVllbGxvdzIwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRPcmFu Z2VZZWxsb3cyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4 NmYwYjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkT3Jhbmdl WWVsbG93MTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE9yYW5nZVllbGxv dzEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzE5YzAwOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRZZWxsb3dHcmVlbjEw LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRZZWxsb3dHcmVlbjEwLS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGNiZDE4Ow0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRHcmVlbjIwLA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1zaGFyZWRHcmVlbjIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjMGI2YTBiOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1zaGFyZWRHcmVlbjEwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRH cmVlbjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDk4MjA1 Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRHcmVlbkN5YW4x MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkR3JlZW5DeWFuMTAtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGFkNTY7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEN5YW40MCwNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3Itc2hhcmVkQ3lhbjQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjMDA1ZTUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1zaGFyZWRDeWFuMzAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEN5YW4z MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNWI3MDsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQ3lhbjIwLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRDeWFuMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICMwMzgzODc7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLXNoYXJlZEN5YW4xMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hh cmVkQ3lhbjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBi N2MzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRDeWFuQmx1 ZTIwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRDeWFuQmx1ZTIwLS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZThjOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRDeWFuQmx1ZTEwLA0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1zaGFyZWRDeWFuQmx1ZTEwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtYmdDb2xvci1zaGFyZWRCbHVlMTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNo YXJlZEJsdWUxMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRm NmJlZDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZU1h Z2VudGE0MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGE0 MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3MzI3NzsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGEzMCwN CiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGEzMC0taG92ZXI6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjMmU5MTsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGEyMCwNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGEyMC0taG92ZXI6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg3NjRiODsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGExMCwNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGExMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzgzNzhkZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3Itc2hhcmVkTWFnZW50YTIwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFy ZWRNYWdlbnRhMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4 ODE3OTg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE1hZ2Vu dGExMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkTWFnZW50YTEwLS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIzOWIzOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRNYWdlbnRhUGluazIwLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRNYWdlbnRhUGluazIwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWIwMDYyOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1zaGFyZWRNYWdlbnRhUGluazEwLA0KICAgIGh0bWwgYm9keSAu bXMtYmdDb2xvci1zaGFyZWRNYWdlbnRhUGluazEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZTMwMDhjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt YmdDb2xvci1zaGFyZWRHcmF5NDAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJl ZEdyYXk0MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM5Mzkz OTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkR3JheTMwLA0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRHcmF5MzAtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3YTc1NzQ7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEdyYXkyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29s b3Itc2hhcmVkR3JheTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjNjk3OTdlOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRH cmF5MTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEdyYXkxMC0taG92ZXI6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EwYWViMjsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25TaGFkZTMwLA0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblNoYWRlMzAtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNDU3ODsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25TaGFkZTIwLA0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblNoYWRlMjAtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25TaGFkZTEwLA0KICAgIGh0bWwg Ym9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblNoYWRlMTAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25QcmltYXJ5LA0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblByaW1hcnktLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25UaW50MTAsDQogICAgaHRtbCBib2R5IC5t cy1ib3JkZXJDb2xvci1jb21tdW5pY2F0aW9uVGludDEwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBib3JkZXItY29sb3I6ICMyYjg4ZDg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1jb21tdW5pY2F0aW9uVGludDIwLA0KICAgIGh0bWwgYm9keSAubXMtYm9y ZGVyQ29sb3ItY29tbXVuaWNhdGlvblRpbnQyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9y ZGVyLWNvbG9yOiAjYzdlMGY0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVy Q29sb3ItY29tbXVuaWNhdGlvblRpbnQzMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLWNvbW11bmljYXRpb25UaW50MzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1j b2xvcjogI2RlZWNmOTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9y LWNvbW11bmljYXRpb25UaW50NDAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1j b21tdW5pY2F0aW9uVGludDQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6 ICNlZmY2ZmM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ibGFj aywNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWJsYWNrLS1ob3Zlcjpob3ZlciB7 DQogICAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1ncmF5MjIwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3ItZ3JheTIyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMTExMDBm Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTIxMCwNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkyMTAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogIzE2MTUxNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLWdyYXkyMDAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1n cmF5MjAwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMxYjFhMTk7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTkwLA0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTE5MC0taG92ZXI6aG92ZXIgew0KICAgICAg Ym9yZGVyLWNvbG9yOiAjMjAxZjFlOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9y ZGVyQ29sb3ItZ3JheTE4MCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkx ODAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzI1MjQyMzsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxNzAsDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTcwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3Jk ZXItY29sb3I6ICMyOTI4Mjc7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJD b2xvci1ncmF5MTYwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTE2MC0t aG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMzIzMTMwOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTE1MCwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLWdyYXkxNTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1j b2xvcjogIzNiM2EzOTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9y LWdyYXkxNDAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTQwLS1ob3Zl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM0ODQ2NDQ7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTMwLA0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItZ3JheTEzMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjNjA1ZTVjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3Jh eTEyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxMjAtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzc5Nzc3NTsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxMTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1ncmF5MTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM4 YTg4ODY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTAw LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTEwMC0taG92ZXI6aG92ZXIg ew0KICAgICAgYm9yZGVyLWNvbG9yOiAjOTc5NTkzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3ItZ3JheTkwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3ItZ3JheTkwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNhMTlmOWQ7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5ODAsDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5ODAtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJvcmRlci1jb2xvcjogI2IzYjBhZDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLWdyYXk3MCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXk3 MC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjYmViYmI4Ow0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTYwLA0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3ItZ3JheTYwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXIt Y29sb3I6ICNjOGM2YzQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1ncmF5NTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5NTAtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2QyZDBjZTsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXk0MCwNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLWdyYXk0MC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAj ZTFkZmRkOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTMw LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTMwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBib3JkZXItY29sb3I6ICNlZGViZTk7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1ncmF5MjAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1ncmF5MjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2YzZjJmMTsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxMCwNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxMC0taG92ZXI6aG92ZXIgew0KICAgICAg Ym9yZGVyLWNvbG9yOiAjZmFmOWY4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9y ZGVyQ29sb3Itd2hpdGUsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci13aGl0ZS0t aG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkUGlua1JlZDEwLA0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkUGlua1JlZDEwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBib3JkZXItY29sb3I6ICM3NTBiMWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRSZWQyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLXNoYXJlZFJlZDIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6 ICNhNDI2MmM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFy ZWRSZWQxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZFJlZDEwLS1o b3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNkMTM0Mzg7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRSZWRPcmFuZ2UyMCwNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZFJlZE9yYW5nZTIwLS1ob3Zlcjpob3Zl ciB7DQogICAgICBib3JkZXItY29sb3I6ICM2MDNkMzA7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRSZWRPcmFuZ2UxMCwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLXNoYXJlZFJlZE9yYW5nZTEwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBib3JkZXItY29sb3I6ICNkYTNiMDE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1zaGFyZWRPcmFuZ2UzMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLXNoYXJlZE9yYW5nZTMwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6 ICM4ZTU2MmU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFy ZWRPcmFuZ2UyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZE9yYW5n ZTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNjYTUwMTA7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRPcmFuZ2UxMCwNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZE9yYW5nZTEwLS1ob3Zlcjpob3Zl ciB7DQogICAgICBib3JkZXItY29sb3I6ICNmYTQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRZZWxsb3cxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLXNoYXJlZFllbGxvdzEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXIt Y29sb3I6ICNmY2UxMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1zaGFyZWRPcmFuZ2VZZWxsb3cyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9y LXNoYXJlZE9yYW5nZVllbGxvdzIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29s b3I6ICM5ODZmMGI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1z aGFyZWRPcmFuZ2VZZWxsb3cxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNo YXJlZE9yYW5nZVllbGxvdzEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6 ICNjMTljMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFy ZWRZZWxsb3dHcmVlbjEwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVk WWVsbG93R3JlZW4xMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjOGNi ZDE4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3Jl ZW4yMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEdyZWVuMjAtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzBiNmEwYjsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEdyZWVuMTAsDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRHcmVlbjEwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBib3JkZXItY29sb3I6ICM0OTgyMDU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1zaGFyZWRHcmVlbkN5YW4xMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLXNoYXJlZEdyZWVuQ3lhbjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXIt Y29sb3I6ICMwMGFkNTY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1zaGFyZWRDeWFuNDAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRD eWFuNDAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNWU1MDsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEN5YW4zMCwNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEN5YW4zMC0taG92ZXI6aG92ZXIg ew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA1YjcwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkQ3lhbjIwLA0KICAgIGh0bWwgYm9keSAubXMtYm9y ZGVyQ29sb3Itc2hhcmVkQ3lhbjIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29s b3I6ICMwMzgzODc7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1z aGFyZWRDeWFuMTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRDeWFu MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwYjdjMzsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEN5YW5CbHVlMjAsDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRDeWFuQmx1ZTIwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDRlOGM7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRDeWFuQmx1ZTEwLA0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkQ3lhbkJsdWUxMC0taG92ZXI6aG92ZXIgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3Itc2hhcmVkQmx1ZTEwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3Itc2hhcmVkQmx1ZTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM0 ZjZiZWQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRC bHVlTWFnZW50YTQwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkQmx1 ZU1hZ2VudGE0MC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMzczMjc3 Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkQmx1ZU1h Z2VudGEzMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEJsdWVNYWdl bnRhMzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzVjMmU5MTsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEJsdWVNYWdlbnRh MjAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRCbHVlTWFnZW50YTIw LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM4NzY0Yjg7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRCbHVlTWFnZW50YTEwLA0K ICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkQmx1ZU1hZ2VudGExMC0taG92 ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjODM3OGRlOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkTWFnZW50YTIwLA0KICAgIGh0bWwg Ym9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkTWFnZW50YTIwLS1ob3Zlcjpob3ZlciB7DQog ICAgICBib3JkZXItY29sb3I6ICM4ODE3OTg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1ib3JkZXJDb2xvci1zaGFyZWRNYWdlbnRhMTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1zaGFyZWRNYWdlbnRhMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1j b2xvcjogI2MyMzliMzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9y LXNoYXJlZE1hZ2VudGFQaW5rMjAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1z aGFyZWRNYWdlbnRhUGluazIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6 ICM5YjAwNjI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFy ZWRNYWdlbnRhUGluazEwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVk TWFnZW50YVBpbmsxMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZTMw MDhjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3Jh eTQwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3JheTQwLS1ob3Zl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMzOTM5Mzk7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRHcmF5MzAsDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRHcmF5MzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJv cmRlci1jb2xvcjogIzdhNzU3NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLXNoYXJlZEdyYXkyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNo YXJlZEdyYXkyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjNjk3OTdl Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3JheTEw LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3JheTEwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNhMGFlYjI7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblNoYWRlMzAsDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblNoYWRlMzAtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLWNvbW11bmljYXRpb25TaGFkZTIwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLWNvbW11bmljYXRpb25TaGFkZTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjog IzAwNWE5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5p Y2F0aW9uU2hhZGUxMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5pY2F0 aW9uU2hhZGUxMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblByaW1hcnks DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblByaW1hcnktLWhv dmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLWNvbW11bmljYXRpb25UaW50MTAsDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblRpbnQxMC0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICMyYjg4ZDg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3ItY29tbXVuaWNhdGlvblRpbnQyMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1j b21tdW5pY2F0aW9uVGludDIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2M3ZTBm NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5pY2F0aW9u VGludDMwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWNvbW11bmljYXRpb25UaW50 MzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZGVlY2Y5Ow0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLWNvbW11bmljYXRpb25UaW50NDAsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblRpbnQ0MC0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICNlZmY2ZmM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItYmxhY2ssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmxhY2stLWhv dmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLWdyYXkyMjAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3ItZ3JheTIyMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMxMTEwMGY7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTIxMCwNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci1ncmF5MjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjog IzE2MTUxNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MjAw LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkyMDAtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjMWIxYTE5Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLWdyYXkxOTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTE5MC0t aG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMyMDFmMWU7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTE4MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1ncmF5MTgwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzI1MjQyMzsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTcwLA0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLWdyYXkxNzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjMjkyODI3Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkx NjAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTE2MC0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICMzMjMxMzA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItZ3JheTE1MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTUw LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzNiM2EzOTsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTQwLA0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLWdyYXkxNDAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNDg0NjQ0Ow0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkxMzAsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTEzMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29s b3I6ICM2MDVlNWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3Jh eTEyMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTIwLS1ob3Zlcjpob3Zl ciB7DQogICAgICBjb2xvcjogIzc5Nzc3NTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1ncmF5MTEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkx MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjOGE4ODg2Ow0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkxMDAsDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItZ3JheTEwMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM5Nzk1OTM7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTkwLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXk5MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29s b3I6ICNhMTlmOWQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3Jh eTgwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXk4MC0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICNiM2IwYWQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItZ3JheTcwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXk3MC0t aG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNiZWJiYjg7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTYwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLWdyYXk2MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNjOGM2YzQ7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTUwLA0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLWdyYXk1MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNk MmQwY2U7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTQwLA0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXk0MC0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICNlMWRmZGQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3ItZ3JheTMwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkzMC0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICNlZGViZTk7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItZ3JheTIwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdy YXkyMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNmM2YyZjE7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTEwLA0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLWdyYXkxMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNmYWY5Zjg7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itd2hpdGUsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3Itd2hpdGUtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJl ZFBpbmtSZWQxMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRQaW5rUmVk MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNzUwYjFjOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZFJlZDIwLA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXNoYXJlZFJlZDIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjog I2E0MjYyYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRS ZWQxMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRSZWQxMC0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICNkMTM0Mzg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3Itc2hhcmVkUmVkT3JhbmdlMjAsDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3Itc2hhcmVkUmVkT3JhbmdlMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjNjAzZDMwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJl ZFJlZE9yYW5nZTEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZFJlZE9y YW5nZTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2RhM2IwMTsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRPcmFuZ2UzMCwNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRPcmFuZ2UzMC0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICM4ZTU2MmU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3Itc2hhcmVkT3JhbmdlMjAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVk T3JhbmdlMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjY2E1MDEwOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZE9yYW5nZTEwLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZE9yYW5nZTEwLS1ob3Zlcjpob3ZlciB7DQog ICAgICBjb2xvcjogI2ZhNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1zaGFyZWRZZWxsb3cxMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRZ ZWxsb3cxMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNmY2UxMDA7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkT3JhbmdlWWVsbG93MjAsDQog ICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkT3JhbmdlWWVsbG93MjAtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjOTg2ZjBiOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLXNoYXJlZE9yYW5nZVllbGxvdzEwLA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXNoYXJlZE9yYW5nZVllbGxvdzEwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogI2MxOWMwMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1zaGFyZWRZZWxsb3dHcmVlbjEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNo YXJlZFllbGxvd0dyZWVuMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjOGNiZDE4 Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEdyZWVuMjAs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkR3JlZW4yMC0taG92ZXI6aG92 ZXIgew0KICAgICAgY29sb3I6ICMwYjZhMGI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3Itc2hhcmVkR3JlZW4xMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1zaGFyZWRHcmVlbjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzQ5ODIwNTsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRHcmVlbkN5YW4x MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRHcmVlbkN5YW4xMC0taG92 ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMGFkNTY7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQ3lhbjQwLA0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLXNoYXJlZEN5YW40MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDVl NTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQ3lhbjMw LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEN5YW4zMC0taG92ZXI6aG92 ZXIgew0KICAgICAgY29sb3I6ICMwMDViNzA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3Itc2hhcmVkQ3lhbjIwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXNoYXJlZEN5YW4yMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMzgzODc7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQ3lhbjEwLA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEN5YW4xMC0taG92ZXI6aG92ZXIgew0K ICAgICAgY29sb3I6ICMwMGI3YzM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3Itc2hhcmVkQ3lhbkJsdWUyMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1z aGFyZWRDeWFuQmx1ZTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNGU4YzsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRDeWFuQmx1ZTEw LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEN5YW5CbHVlMTAtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLXNoYXJlZEJsdWUxMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1zaGFyZWRCbHVlMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNGY2YmVk Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEJsdWVNYWdl bnRhNDAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQmx1ZU1hZ2VudGE0 MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMzNzMyNzc7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQmx1ZU1hZ2VudGEzMCwNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRCbHVlTWFnZW50YTMwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBjb2xvcjogIzVjMmU5MTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1zaGFyZWRCbHVlTWFnZW50YTIwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXNoYXJlZEJsdWVNYWdlbnRhMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj ODc2NGI4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEJs dWVNYWdlbnRhMTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQmx1ZU1h Z2VudGExMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM4Mzc4ZGU7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkTWFnZW50YTIwLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZE1hZ2VudGEyMC0taG92ZXI6aG92ZXIgew0K ICAgICAgY29sb3I6ICM4ODE3OTg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3Itc2hhcmVkTWFnZW50YTEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNo YXJlZE1hZ2VudGExMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNjMjM5YjM7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkTWFnZW50YVBpbmsy MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRNYWdlbnRhUGluazIwLS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzliMDA2MjsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRNYWdlbnRhUGluazEwLA0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLXNoYXJlZE1hZ2VudGFQaW5rMTAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGNvbG9yOiAjZTMwMDhjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXNoYXJlZEdyYXk0MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRH cmF5NDAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMzkzOTM5Ow0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEdyYXkzMCwNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRHcmF5MzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNv bG9yOiAjN2E3NTc0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNo YXJlZEdyYXkyMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRHcmF5MjAt LWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNjk3OTdlOw0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEdyYXkxMCwNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1zaGFyZWRHcmF5MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj YTBhZWIyOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZURhcmss DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRoZW1lRGFyay0taG92ZXI6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItdGhlbWVEYXJrQWx0LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci10aGVtZURhcmtBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMxMDZlYmU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRoZW1lRGFy a2VyLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZURhcmtlci0taG92ZXI6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ODsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItdGhlbWVQcmltYXJ5LA0KICAgIGh0bWwgYm9keSAubXMt YmdDb2xvci10aGVtZVByaW1hcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRo ZW1lU2Vjb25kYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZVNlY29uZGFy eS0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJiODhkODsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItdGhlbWVUZXJ0aWFyeSwNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItdGhlbWVUZXJ0aWFyeS0taG92ZXI6aG92ZXIgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogIzcxYWZlNTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3ItdGhlbWVMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItdGhl bWVMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3ZTBm NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItdGhlbWVMaWdodGVyLA0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZUxpZ2h0ZXItLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWVjZjk7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1iZ0NvbG9yLXRoZW1lTGlnaHRlckFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItdGhlbWVMaWdodGVyQWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjZWZmNmZjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3ItdGhlbWVEYXJrLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItdGhlbWVEYXJr LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDVhOWU7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZURhcmtBbHQsDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZURhcmtBbHQtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLXRoZW1lRGFya2VyLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3ItdGhlbWVEYXJrZXItLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAw NDU3ODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1lUHJp bWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1lUHJpbWFyeS0taG92 ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItdGhlbWVTZWNvbmRhcnksDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZVNlY29uZGFyeS0taG92ZXI6aG92ZXIgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjMmI4OGQ4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItdGhlbWVUZXJ0aWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLXRoZW1lVGVydGlhcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjog IzcxYWZlNTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1l TGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZUxpZ2h0LS1ob3Zl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNjN2UwZjQ7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZUxpZ2h0ZXIsDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci10aGVtZUxpZ2h0ZXItLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJv cmRlci1jb2xvcjogI2RlZWNmOTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLXRoZW1lTGlnaHRlckFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9y LXRoZW1lTGlnaHRlckFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAj ZWZmNmZjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lRGFy a2VyLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lRGFya2VyLS1ob3Zlcjpo b3ZlciB7DQogICAgICBjb2xvcjogIzAwNDU3ODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci10aGVtZURhcmssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It dGhlbWVEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNWE5ZTsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZURhcmtBbHQsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVEYXJrQWx0LS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci10aGVtZVByaW1hcnksDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVQcmlt YXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZVNlY29uZGFyeSwNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci10aGVtZVNlY29uZGFyeS0taG92ZXI6aG92ZXIgew0KICAgICAg Y29sb3I6ICMyYjg4ZDg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It dGhlbWVUZXJ0aWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZVRlcnRp YXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzcxYWZlNTsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZUxpZ2h0LA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXRoZW1lTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj YzdlMGY0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lTGln aHRlciwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZUxpZ2h0ZXItLWhvdmVy OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZGVlY2Y5Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLXRoZW1lTGlnaHRlckFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci10aGVtZUxpZ2h0ZXJBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj ZWZmNmZjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ibGFjaywNCiAg ICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItYmxhY2stLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLW5ldXRyYWxEYXJrLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFs RGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE0MTQxNDsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbFByaW1hcnksDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxQcmltYXJ5LS1ob3Zlcjpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1uZXV0cmFsUHJpbWFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3ItbmV1dHJhbFByaW1hcnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICM0MjQyNDI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLW5ldXRyYWxTZWNvbmRhcnksDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRy YWxTZWNvbmRhcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2 MTYxNjE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxTZWNv bmRhcnlBbHQsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxTZWNvbmRhcnlB bHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxUZXJ0aWFyeSwNCiAg ICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbFRlcnRpYXJ5LS1ob3Zlcjpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1uZXV0cmFsVGVydGlhcnlBbHQsDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLW5ldXRyYWxUZXJ0aWFyeUFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItbmV1dHJhbFF1YXRlcm5hcnksDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5l dXRyYWxRdWF0ZXJuYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjZDFkMWQxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFs UXVhdGVybmFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbFF1YXRl cm5hcnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUw ZTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxMaWdodCwN CiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbExpZ2h0LS1ob3Zlcjpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1uZXV0cmFsTGlnaHRlciwNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItbmV1dHJhbExpZ2h0ZXItLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNmMGYwZjA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5l dXRyYWxMaWdodGVyQWx0LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFsTGln aHRlckFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFm YTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itd2hpdGUsDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLXdoaXRlLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVy Q29sb3ItYmxhY2ssDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ibGFjay0taG92 ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbERhcmssDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgYm9y ZGVyLWNvbG9yOiAjMTQxNDE0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVy Q29sb3ItbmV1dHJhbFByaW1hcnksDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1u ZXV0cmFsUHJpbWFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMjQy NDI0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbFBy aW1hcnlBbHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsUHJpbWFy eUFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjNDI0MjQyOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbFNlY29uZGFyeSwN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxTZWNvbmRhcnktLWhvdmVy OmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxTZWNvbmRhcnlBbHQsDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsU2Vjb25kYXJ5QWx0LS1ob3Zlcjpob3Zl ciB7DQogICAgICBib3JkZXItY29sb3I6ICM4YThhOGE7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsVGVydGlhcnksDQogICAgaHRtbCBib2R5IC5t cy1ib3JkZXJDb2xvci1uZXV0cmFsVGVydGlhcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJv cmRlci1jb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLW5ldXRyYWxUZXJ0aWFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLW5ldXRyYWxUZXJ0aWFyeUFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNv bG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It bmV1dHJhbFF1YXRlcm5hcnksDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0 cmFsUXVhdGVybmFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZDFk MWQxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbFF1 YXRlcm5hcnlBbHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsUXVh dGVybmFyeUFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZTBlMGUw Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbExpZ2h0 LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbExpZ2h0LS1ob3Zlcjpo b3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsTGlnaHRlciwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLW5ldXRyYWxMaWdodGVyLS1ob3Zlcjpob3ZlciB7DQogICAgICBi b3JkZXItY29sb3I6ICNmMGYwZjA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1uZXV0cmFsTGlnaHRlckFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLW5ldXRyYWxMaWdodGVyQWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29s b3I6ICNmYWZhZmE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci13 aGl0ZSwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXdoaXRlLS1ob3Zlcjpob3Zl ciB7DQogICAgICBib3JkZXItY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3ItYmxhY2ssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It YmxhY2stLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxEYXJrLA0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLW5ldXRyYWxEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogIzE0MTQxNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0 cmFsUHJpbWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsUHJpbWFy eS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFByaW1hcnlBbHQsDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFByaW1hcnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGNvbG9yOiAjNDI0MjQyOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLW5ldXRyYWxTZWNvbmRhcnksDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1 dHJhbFNlY29uZGFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFNlY29uZGFyeUFs dCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsU2Vjb25kYXJ5QWx0LS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzhhOGE4YTsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsVGVydGlhcnksDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3ItbmV1dHJhbFRlcnRpYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0 cmFsVGVydGlhcnlBbHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFRl cnRpYXJ5QWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2M3YzdjNzsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsUXVhdGVybmFyeSwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsUXVhdGVybmFyeS0taG92ZXI6aG92 ZXIgew0KICAgICAgY29sb3I6ICNkMWQxZDE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3ItbmV1dHJhbFF1YXRlcm5hcnlBbHQsDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItbmV1dHJhbFF1YXRlcm5hcnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNv bG9yOiAjZTBlMGUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5l dXRyYWxMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsTGlnaHQt LWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxMaWdodGVyLA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLW5ldXRyYWxMaWdodGVyLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogI2YwZjBmMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0 cmFsTGlnaHRlckFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsTGln aHRlckFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNmYWZhZmE7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itd2hpdGUsDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3Itd2hpdGUtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZm Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci15ZWxsb3csDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLXllbGxvdy0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2ZmYjkwMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29s b3IteWVsbG93TGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXllbGxvd0xpZ2h0 LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMTAwOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1vcmFuZ2UsDQogICAgaHRtbCBib2R5 IC5tcy1iZ0NvbG9yLW9yYW5nZS0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2Q4M2IwMTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itb3Jh bmdlTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW9yYW5nZUxpZ2h0LS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWE0MzAwOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1vcmFuZ2VMaWdodGVyLA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1vcmFuZ2VMaWdodGVyLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZmY4YzAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1yZWREYXJrLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1yZWREYXJrLS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTQyNjJjOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1yZWQsDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLXJlZC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U4MTEy MzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbWFnZW50YURhcmssDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW1hZ2VudGFEYXJrLS1ob3Zlcjpob3ZlciB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWMwMDVjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1tYWdlbnRhLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1tYWdl bnRhLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjQwMDllOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1tYWdlbnRhTGlnaHQsDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLW1hZ2VudGFMaWdodC0taG92ZXI6aG92ZXIgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2UzMDA4YzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3ItcHVycGxlRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItcHVy cGxlRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMyMTQ1 YTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItcHVycGxlLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1wdXJwbGUtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICM1YzJkOTE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLXB1cnBsZUxpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1wdXJwbGVMaWdo dC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2I0YTBmZjsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItYmx1ZURhcmssDQogICAgaHRtbCBi b2R5IC5tcy1iZ0NvbG9yLWJsdWVEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjMDAyMDUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1ibHVlTWlkLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ibHVlTWlkLS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAxODhmOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1ibHVlLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1ibHVlLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0 Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ibHVlTGlnaHQsDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLWJsdWVMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzAwYmNmMjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3ItdGVhbERhcmssDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRlYWxEYXJr LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0YjUwOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10ZWFsLA0KICAgIGh0bWwgYm9keSAu bXMtYmdDb2xvci10ZWFsLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjMDA4MjcyOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10ZWFsTGln aHQsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRlYWxMaWdodC0taG92ZXI6aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjI5NDsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3ItZ3JlZW5EYXJrLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1ncmVlbkRhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMw MDRiMWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyZWVuLA0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmVlbi0taG92ZXI6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzEwN2MxMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItZ3JlZW5MaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JlZW5MaWdo dC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JhZDgwYTsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXllbGxvdywNCiAgICBodG1s IGJvZHkgLm1zLWJvcmRlckNvbG9yLXllbGxvdy0taG92ZXI6aG92ZXIgew0KICAgICAgYm9y ZGVyLWNvbG9yOiAjZmZiOTAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVy Q29sb3IteWVsbG93TGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci15ZWxs b3dMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmMTAwOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itb3JhbmdlLA0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itb3JhbmdlLS1ob3Zlcjpob3ZlciB7DQogICAgICBi b3JkZXItY29sb3I6ICNkODNiMDE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1vcmFuZ2VMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW9y YW5nZUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNlYTQzMDA7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1vcmFuZ2VMaWdodGVy LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itb3JhbmdlTGlnaHRlci0taG92ZXI6 aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmY4YzAwOw0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItcmVkRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLXJlZERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjog I2E0MjYyYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXJlZCwN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXJlZC0taG92ZXI6aG92ZXIgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjZTgxMTIzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItbWFnZW50YURhcmssDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1tYWdlbnRhRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjNWMw MDVjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbWFnZW50YSwN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW1hZ2VudGEtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogI2I0MDA5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLW1hZ2VudGFMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLW1hZ2VudGFMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjZTMwMDhjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItcHVy cGxlRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXB1cnBsZURhcmstLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzMyMTQ1YTsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXB1cnBsZSwNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLXB1cnBsZS0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjNWMyZDkxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItcHVy cGxlTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1wdXJwbGVMaWdodC0t aG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjYjRhMGZmOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItYmx1ZURhcmssDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1ibHVlRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVy LWNvbG9yOiAjMDAyMDUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3ItYmx1ZU1pZCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWJsdWVNaWQtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwMTg4ZjsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWJsdWUsDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1ibHVlLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMw MDc4ZDQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ibHVlTGln aHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ibHVlTGlnaHQtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwYmNmMjsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJvcmRlckNvbG9yLXRlYWxEYXJrLA0KICAgIGh0bWwgYm9keSAubXMtYm9y ZGVyQ29sb3ItdGVhbERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjog IzAwNGI1MDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRlYWws DQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci10ZWFsLS1ob3Zlcjpob3ZlciB7DQog ICAgICBib3JkZXItY29sb3I6ICMwMDgyNzI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1ib3JkZXJDb2xvci10ZWFsTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci10ZWFsTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwYjI5 NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyZWVuRGFyaywN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyZWVuRGFyay0taG92ZXI6aG92ZXIg ew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA0YjFjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3ItZ3JlZW4sDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1ncmVlbi0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMTA3YzEwOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JlZW5MaWdodCwNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyZWVuTGlnaHQtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogI2JhZDgwYTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci15ZWxsb3csDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3IteWVs bG93LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2ZmYjkwMDsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci15ZWxsb3dMaWdodCwNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci15ZWxsb3dMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6 ICNmZmYxMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itb3Jhbmdl LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW9yYW5nZS0taG92ZXI6aG92ZXIgew0K ICAgICAgY29sb3I6ICNkODNiMDE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3Itb3JhbmdlTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itb3Jhbmdl TGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZWE0MzAwOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW9yYW5nZUxpZ2h0ZXIsDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3Itb3JhbmdlTGlnaHRlci0taG92ZXI6aG92ZXIgew0KICAgICAg Y29sb3I6ICNmZjhjMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It cmVkRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1yZWREYXJrLS1ob3Zlcjpo b3ZlciB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci1yZWQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcmVkLS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2U4MTEyMzsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1tYWdlbnRhRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1tYWdlbnRhRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM1YzAw NWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbWFnZW50YSwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1tYWdlbnRhLS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogI2I0MDA5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1tYWdlbnRhTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbWFnZW50YUxp Z2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2UzMDA4YzsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1wdXJwbGVEYXJrLA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXB1cnBsZURhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj MzIxNDVhOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXB1cnBsZSwN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1wdXJwbGUtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGNvbG9yOiAjNWMyZDkxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXB1cnBsZUxpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXB1cnBsZUxp Z2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2I0YTBmZjsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibHVlRGFyaywNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1ibHVlRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDIw NTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmx1ZU1pZCwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibHVlTWlkLS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogIzAwMTg4ZjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1ibHVlLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJsdWUtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLWJsdWVMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibHVl TGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDBiY2YyOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRlYWxEYXJrLA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXRlYWxEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAw NGI1MDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10ZWFsLA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRlYWwtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNv bG9yOiAjMDA4MjcyOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRl YWxMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10ZWFsTGlnaHQtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDBiMjk0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLWdyZWVuRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1ncmVlbkRhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA0YjFjOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyZWVuLA0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLWdyZWVuLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzEw N2MxMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmVlbkxpZ2h0 LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyZWVuTGlnaHQtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjYmFkODBhOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt YmdDb2xvci1pbmZvLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1pbmZvLS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1zdWNjZXNzLA0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1zdWNjZXNzLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj ZGZmNmRkOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zZXZlcmVXYXJu aW5nLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zZXZlcmVXYXJuaW5nLS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVkOWNjOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci13YXJuaW5nLA0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci13YXJuaW5nLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj ZmZmNGNlOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1lcnJvciwNCiAg ICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItZXJyb3ItLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICNmZGU3ZTk7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItaW5mbywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1pbmZvLS1ob3Zl cjpob3ZlciB7DQogICAgICBjb2xvcjogIzY2NjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci1zdWNjZXNzLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXN1 Y2Nlc3MtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTA3YzEwOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWFsZXJ0LA0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLWFsZXJ0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2Q4M2IwMTsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci13YXJuaW5nLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLXdhcm5pbmctLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNv bG9yOiAjNzY3Njc2Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNl dmVyZVdhcm5pbmcsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2V2ZXJlV2Fybmlu Zy0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNhODAwMDA7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItZXJyb3IsDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3ItZXJyb3ItLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYTgwMDAwOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1jb250cmFzdEJsYWNrRGlzYWJsZWQs DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbnRyYXN0QmxhY2tEaXNhYmxlZC0taG92 ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29udHJhc3RXaGl0ZURpc2FibGVkLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1jb250cmFzdFdoaXRlRGlzYWJsZWQtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2MDAwMDA7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLWNvbnRyYXN0QmxhY2tTZWxlY3RlZCwNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItY29udHJhc3RCbGFja1NlbGVjdGVkLS1ob3Zlcjpob3ZlciB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWFlYmZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1jb250cmFzdFdoaXRlU2VsZWN0ZWQsDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLWNvbnRyYXN0V2hpdGVTZWxlY3RlZC0taG92ZXI6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzM3MDA2ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1jb250cmFzdEJsYWNrRGlzYWJsZWQsDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItY29udHJhc3RCbGFja0Rpc2FibGVkLS1ob3Zlcjpob3ZlciB7DQogICAgICBj b2xvcjogIzBmMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb250 cmFzdFdoaXRlRGlzYWJsZWQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29udHJh c3RXaGl0ZURpc2FibGVkLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzYwMDAwMDsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb250cmFzdEJsYWNrU2Vs ZWN0ZWQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29udHJhc3RCbGFja1NlbGVj dGVkLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzFhZWJmZjsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb250cmFzdFdoaXRlU2VsZWN0ZWQsDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29udHJhc3RXaGl0ZVNlbGVjdGVkLS1ob3Zlcjpo b3ZlciB7DQogICAgICBjb2xvcjogIzM3MDA2ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLWNvbnRyYXN0QmxhY2tEaXNhYmxlZCwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLWNvbnRyYXN0QmxhY2tEaXNhYmxlZC0taG92ZXI6aG92ZXIgew0K ICAgICAgYm9yZGVyLWNvbG9yOiAjMGYwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItY29udHJhc3RXaGl0ZURpc2FibGVkLA0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItY29udHJhc3RXaGl0ZURpc2FibGVkLS1ob3Zlcjpob3ZlciB7DQogICAg ICBib3JkZXItY29sb3I6ICM2MDAwMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1jb250cmFzdEJsYWNrU2VsZWN0ZWQsDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1jb250cmFzdEJsYWNrU2VsZWN0ZWQtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJvcmRlci1jb2xvcjogIzFhZWJmZjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLWNvbnRyYXN0V2hpdGVTZWxlY3RlZCwNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLWNvbnRyYXN0V2hpdGVTZWxlY3RlZC0taG92ZXI6aG92ZXIgew0KICAgICAg Ym9yZGVyLWNvbG9yOiAjMzcwMDZlOw0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS02OCB7 DQogICAgICBmb250LXNpemU6IDY4cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLTQy IHsNCiAgICAgIGZvbnQtc2l6ZTogNDJweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUt MzIgew0KICAgICAgZm9udC1zaXplOiAzMnB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6 ZS0yOCB7DQogICAgICBmb250LXNpemU6IDI4cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRT aXplLTI0IHsNCiAgICAgIGZvbnQtc2l6ZTogMjRweDsNCiAgICB9DQoNCiAgICAubXMtZm9u dFNpemUtMjAgew0KICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgIH0NCg0KICAgIC5tcy1m b250U2l6ZS0xOCB7DQogICAgICBmb250LXNpemU6IDE4cHg7DQogICAgfQ0KDQogICAgLm1z LWZvbnRTaXplLTE2IHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICB9DQoNCiAgICAu bXMtZm9udFNpemUtMTQgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIH0NCg0KICAg IC5tcy1mb250U2l6ZS0xMiB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgfQ0KDQog ICAgLm1zLWZvbnRTaXplLTEwIHsNCiAgICAgIGZvbnQtc2l6ZTogMTBweDsNCiAgICB9DQoN CiAgICAubXMtZm9udFdlaWdodC1yZWd1bGFyIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7 DQogICAgfQ0KDQogICAgLm1zLWZvbnRXZWlnaHQtc2VtaWJvbGQgew0KICAgICAgZm9udC13 ZWlnaHQ6IDYwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udFdlaWdodC1ib2xkIHsNCiAgICAg IGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQtc3Ugew0KICAgICAg Zm9udC1zaXplOiA0MnB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDEwMDsNCiAgICB9DQoNCiAg ICAubXMtZm9udC14eGwgew0KICAgICAgZm9udC1zaXplOiAyOHB4Ow0KICAgICAgZm9udC13 ZWlnaHQ6IDEwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC14bC1wbHVzIHsNCiAgICAgIGZv bnQtc2l6ZTogMjRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7DQogICAgfQ0KDQogICAg Lm1zLWZvbnQteGwgew0KICAgICAgZm9udC1zaXplOiAyMXB4Ow0KICAgICAgZm9udC13ZWln aHQ6IDEwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC1sIHsNCiAgICAgIGZvbnQtc2l6ZTog MTdweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQt bS1wbHVzIHsNCiAgICAgIGZvbnQtc2l6ZTogMTVweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0 MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQtbSB7DQogICAgICBmb250LXNpemU6IDE0cHg7 DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LXMtcGx1 cyB7DQogICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0K ICAgIH0NCg0KICAgIC5tcy1mb250LXMgew0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAg ICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC14cyB7DQogICAg ICBmb250LXNpemU6IDExcHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0K ICAgIC5tcy1mb250LW1pIHsNCiAgICAgIGZvbnQtc2l6ZTogMTBweDsNCiAgICAgIGZvbnQt d2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnRXZWlnaHQtbGlnaHQgew0KICAg ICAgZm9udC13ZWlnaHQ6IDEwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udFdlaWdodC1zZW1p bGlnaHQgew0KICAgICAgZm9udC13ZWlnaHQ6IDMwMDsNCiAgICB9DQoNCiAgICAubXMtZm9u dFNpemUtc3Ugew0KICAgICAgZm9udC1zaXplOiA0MnB4Ow0KICAgIH0NCg0KICAgIC5tcy1m b250U2l6ZS14eGwgew0KICAgICAgZm9udC1zaXplOiAyOHB4Ow0KICAgIH0NCg0KICAgIC5t cy1mb250U2l6ZS14bFBsdXMgew0KICAgICAgZm9udC1zaXplOiAyNHB4Ow0KICAgIH0NCg0K ICAgIC5tcy1mb250U2l6ZS14bCB7DQogICAgICBmb250LXNpemU6IDIxcHg7DQogICAgfQ0K DQogICAgLm1zLWZvbnRTaXplLWwgew0KICAgICAgZm9udC1zaXplOiAxN3B4Ow0KICAgIH0N Cg0KICAgIC5tcy1mb250U2l6ZS1tUGx1cyB7DQogICAgICBmb250LXNpemU6IDE1cHg7DQog ICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLW0gew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0K ICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS1zUGx1cyB7DQogICAgICBmb250LXNpemU6IDEz cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXMgew0KICAgICAgZm9udC1zaXplOiAx MnB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS14cyB7DQogICAgICBmb250LXNpemU6 IDExcHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLW1pIHsNCiAgICAgIGZvbnQtc2l6 ZTogMTBweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtNjggew0KICAgICAgZm9udC1z aXplOiA2OHB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS00MiB7DQogICAgICBmb250 LXNpemU6IDQycHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLTMyIHsNCiAgICAgIGZv bnQtc2l6ZTogMzJweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtMjggew0KICAgICAg Zm9udC1zaXplOiAyOHB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS0yNCB7DQogICAg ICBmb250LXNpemU6IDI0cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLTIwIHsNCiAg ICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtMTggew0K ICAgICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS0xNiB7 DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLTE0 IHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUt MTIgew0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6 ZS0xMCB7DQogICAgICBmb250LXNpemU6IDEwcHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRX ZWlnaHQtcmVndWxhciB7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAg IC5tcy1mb250V2VpZ2h0LXNlbWlib2xkIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQog ICAgfQ0KDQogICAgLm1zLWZvbnRXZWlnaHQtYm9sZCB7DQogICAgICBmb250LXdlaWdodDog NzAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LXN1IHsNCiAgICAgIGZvbnQtc2l6ZTogNDJw eDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQteHhs IHsNCiAgICAgIGZvbnQtc2l6ZTogMjhweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7DQog ICAgfQ0KDQogICAgLm1zLWZvbnQteGwtcGx1cyB7DQogICAgICBmb250LXNpemU6IDI0cHg7 DQogICAgICBmb250LXdlaWdodDogMTAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LXhsIHsN CiAgICAgIGZvbnQtc2l6ZTogMjFweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7DQogICAg fQ0KDQogICAgLm1zLWZvbnQtbCB7DQogICAgICBmb250LXNpemU6IDE3cHg7DQogICAgICBm b250LXdlaWdodDogMzAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LW0tcGx1cyB7DQogICAg ICBmb250LXNpemU6IDE1cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0K ICAgIC5tcy1mb250LW0gew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13 ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC1zLXBsdXMgew0KICAgICAgZm9u dC1zaXplOiAxM3B4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAu bXMtZm9udC1zIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIGZvbnQtd2VpZ2h0 OiA0MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQteHMgew0KICAgICAgZm9udC1zaXplOiAx MXB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC1t aSB7DQogICAgICBmb250LXNpemU6IDEwcHg7DQogICAgICBmb250LXdlaWdodDogNjAwOw0K ICAgIH0NCg0KICAgIC5tcy1mb250V2VpZ2h0LWxpZ2h0IHsNCiAgICAgIGZvbnQtd2VpZ2h0 OiAxMDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnRXZWlnaHQtc2VtaWxpZ2h0IHsNCiAgICAg IGZvbnQtd2VpZ2h0OiAzMDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXN1IHsNCiAg ICAgIGZvbnQtc2l6ZTogNDJweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUteHhsIHsN CiAgICAgIGZvbnQtc2l6ZTogMjhweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUteGxQ bHVzIHsNCiAgICAgIGZvbnQtc2l6ZTogMjRweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNp emUteGwgew0KICAgICAgZm9udC1zaXplOiAyMXB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250 U2l6ZS1sIHsNCiAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICB9DQoNCiAgICAubXMtZm9u dFNpemUtbVBsdXMgew0KICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAgIH0NCg0KICAgIC5t cy1mb250U2l6ZS1tIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICB9DQoNCiAgICAu bXMtZm9udFNpemUtc1BsdXMgew0KICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgIH0NCg0K ICAgIC5tcy1mb250U2l6ZS1zIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICB9DQoN CiAgICAubXMtZm9udFNpemUteHMgew0KICAgICAgZm9udC1zaXplOiAxMXB4Ow0KICAgIH0N Cg0KICAgIC5tcy1mb250U2l6ZS1taSB7DQogICAgICBmb250LXNpemU6IDEwcHg7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVEYXJrZXIsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVEYXJrZXItLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXRoZW1lRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZURhcmstLWhv dmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLXRoZW1lRGFya0FsdCwNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci10aGVtZURhcmtBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTA2 ZWJlOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lUHJpbWFy eSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZVByaW1hcnktLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXRoZW1lU2Vjb25kYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXRoZW1lU2Vjb25kYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzJiODhk ODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZVRlcnRpYXJ5 LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lVGVydGlhcnktLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjNzFhZmU1Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXRoZW1lTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It dGhlbWVMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNjN2UwZjQ7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVMaWdodGVyLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lTGlnaHRlci0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICNkZWVjZjk7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3ItdGhlbWVMaWdodGVyQWx0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1l TGlnaHRlckFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNlZmY2ZmM7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmxhY2ssDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItYmxhY2stLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDAw MDAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxEYXJr LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxEYXJrLS1ob3Zlcjpob3Zl ciB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1uZXV0cmFsUHJpbWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1uZXV0cmFsUHJpbWFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMyNDI0MjQ7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFNlY29uZGFy eSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsU2Vjb25kYXJ5LS1ob3Zl cjpob3ZlciB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsU2Vjb25kYXJ5QWx0LA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLW5ldXRyYWxTZWNvbmRhcnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjOGE4YThhOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LW5ldXRyYWxUZXJ0aWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFs VGVydGlhcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxUZXJ0aWFyeUFsdCwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsVGVydGlhcnlBbHQtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLW5ldXRyYWxMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1uZXV0cmFsTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZWJlYmViOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxMaWdodGVyLA0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxMaWdodGVyLS1ob3Zlcjpob3Zl ciB7DQogICAgICBjb2xvcjogI2YwZjBmMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1uZXV0cmFsTGlnaHRlckFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1uZXV0cmFsTGlnaHRlckFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNm YWZhZmE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itd2hpdGUsDQog ICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itd2hpdGUtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXllbGxvdywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci15ZWxsb3ctLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjZmZiOTAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXllbGxvd0xpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXllbGxvd0xpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2ZmZjEwMDsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1vcmFuZ2UsDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3Itb3JhbmdlLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjog I2Q4M2IwMTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1vcmFuZ2VM aWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1vcmFuZ2VMaWdodC0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICNlYTQzMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3Itb3JhbmdlTGlnaHRlciwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1vcmFuZ2VMaWdodGVyLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2ZmOGMw MDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1yZWREYXJrLA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXJlZERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjYTQyNjJjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXJlZCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1yZWQtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjZTgxMTIzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLW1hZ2VudGFEYXJrLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW1hZ2Vu dGFEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzVjMDA1YzsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1tYWdlbnRhLA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLW1hZ2VudGEtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYjQw MDllOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW1hZ2VudGFMaWdo dCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1tYWdlbnRhTGlnaHQtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjZTMwMDhjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLXB1cnBsZURhcmssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It cHVycGxlRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMzMjE0NWE7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcHVycGxlLA0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLXB1cnBsZS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM1 YzJkOTE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcHVycGxlTGln aHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcHVycGxlTGlnaHQtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjYjRhMGZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLWJsdWVEYXJrLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJs dWVEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwMjA1MDsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibHVlTWlkLA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLWJsdWVNaWQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDAx ODhmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJsdWUsDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmx1ZS0taG92ZXI6aG92ZXIgew0KICAgICAgY29s b3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmx1 ZUxpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJsdWVMaWdodC0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICMwMGJjZjI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItdGVhbERhcmssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It dGVhbERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA0YjUwOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRlYWwsDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3ItdGVhbC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDgyNzI7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGVhbExpZ2h0LA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRlYWxMaWdodC0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICMwMGIyOTQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3ItZ3JlZW5EYXJrLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyZWVuRGFyay0t aG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDRiMWM7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItZ3JlZW4sDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3ItZ3JlZW4tLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTA3YzEwOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyZWVuTGlnaHQsDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3ItZ3JlZW5MaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29s b3I6ICNiYWQ4MGE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItaW5m bywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1pbmZvLS1ob3Zlcjpob3ZlciB7DQog ICAgICBjb2xvcjogIzY2NjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1zdWNjZXNzLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXN1Y2Nlc3MtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTA3YzEwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLWFsZXJ0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWFs ZXJ0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2Q4M2IwMTsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1lcnJvciwNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1lcnJvci0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNhODAwMDA7DQog ICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rpb24tZmFkZUluIHsNCiAgICAgIGZyb20g ew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAg IG9wYWNpdHk6IDE7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rp b24tZmFkZU91dCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAg IH0NCg0KICAgICAgdG8gew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgfQ0KICAgIH0N Cg0KICAgIEBrZXlmcmFtZXMgbXMtbW90aW9uLXNjYWxlRG93bkluIHsNCiAgICAgIGZyb20g ew0KICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMS4xNSwgMSk7DQogICAgICB9 DQoNCiAgICAgIHRvIHsNCiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0K ICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgbXMtbW90aW9uLXNjYWxlRG93bk91 dCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEp Ow0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgw LjksIDAuOSwgMSk7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rp b24tc2xpZGVMZWZ0T3V0IHsNCiAgICAgIGZyb20gew0KICAgICAgICB0cmFuc2Zvcm06IHRy YW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIHRy YW5zZm9ybTogdHJhbnNsYXRlM2QoLTQ4cHgsIDAsIDApOw0KICAgICAgfQ0KICAgIH0NCg0K ICAgIEBrZXlmcmFtZXMgbXMtbW90aW9uLXNsaWRlUmlnaHRPdXQgew0KICAgICAgZnJvbSB7 DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgICB9DQoN CiAgICAgIHRvIHsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0OHB4LCAwLCAw KTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIG1zLW1vdGlvbi1zbGlkZUxl ZnRJbiB7DQogICAgICBmcm9tIHsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0 OHB4LCAwLCAwKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB0cmFuc2Zvcm06 IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFt ZXMgbXMtbW90aW9uLXNsaWRlUmlnaHRJbiB7DQogICAgICBmcm9tIHsNCiAgICAgICAgdHJh bnNmb3JtOiB0cmFuc2xhdGUzZCgtNDhweCwgMCwgMCk7DQogICAgICB9DQoNCiAgICAgIHRv IHsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgICAgIH0N CiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIG1zLW1vdGlvbi1zbGlkZVVwT3V0IHsNCiAgICAg IGZyb20gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAg ICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwg LTQ4cHgsIDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgbXMtbW90aW9u LXNsaWRlRG93bk91dCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFu c2xhdGUzZCgwLCAwLCAwKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB0cmFu c2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDQ4cHgsIDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IEBrZXlmcmFtZXMgbXMtbW90aW9uLXNsaWRlVXBJbiB7DQogICAgICBmcm9tIHsNCiAgICAg ICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA0OHB4LCAwKTsNCiAgICAgIH0NCg0KICAg ICAgdG8gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAg ICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgbXMtbW90aW9uLXNsaWRlRG93bkluIHsN CiAgICAgIGZyb20gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC00OHB4 LCAwKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5z bGF0ZTNkKDAsIDAsIDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5tcy1tb3Rpb24tZmFk ZUluIHsNCiAgICAgIGFuaW1hdGlvbjogbXMtbW90aW9uLWZhZGVJbiAwLjFzIGN1YmljLWJl emllcigwLCAwLCAxLCAxKSBib3RoOw0KICAgIH0NCg0KICAgIC5tcy1tb3Rpb24tZmFkZU91 dCB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlvbi1mYWRlT3V0IDAuMXMgY3ViaWMtYmV6 aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAgfQ0KDQogICAgLm1zLW1vdGlvbi1zY2FsZURv d25JbiB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlvbi1zY2FsZURvd25JbiAwLjNzIGN1 YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSBib3RoLA0KICAgICAgICBtcy1tb3Rpb24t ZmFkZUluIDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAgfQ0KDQog ICAgLm1zLW1vdGlvbi1zY2FsZURvd25PdXQgew0KICAgICAgYW5pbWF0aW9uOiBtcy1tb3Rp b24tc2NhbGVEb3duT3V0IDAuM3MgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpIGJv dGgsDQogICAgICAgIG1zLW1vdGlvbi1mYWRlT3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAs IDEsIDEpIGJvdGg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm1zLW1vdGlvbi1zbGlk ZUxlZnRPdXQgew0KICAgICAgYW5pbWF0aW9uOiBtcy1tb3Rpb24tc2xpZGVMZWZ0T3V0IDAu MXMgY3ViaWMtYmV6aWVyKDAuOSwgMC4xLCAxLCAwLjIpIGJvdGgsDQogICAgICAgIG1zLW1v dGlvbi1mYWRlT3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLm1zLW1vdGlvbi1zbGlkZUxlZnRPdXQgew0KICAgICAg YW5pbWF0aW9uOiBtcy1tb3Rpb24tc2xpZGVSaWdodE91dCAwLjFzIGN1YmljLWJlemllcigw LjksIDAuMSwgMSwgMC4yKSBib3RoLA0KICAgICAgICBtcy1tb3Rpb24tZmFkZU91dCAwLjFz IGN1YmljLWJlemllcigwLCAwLCAxLCAxKSBib3RoOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0 ciJdIC5tcy1tb3Rpb24tc2xpZGVSaWdodE91dCB7DQogICAgICBhbmltYXRpb246IG1zLW1v dGlvbi1zbGlkZVJpZ2h0T3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAuOSwgMC4xLCAxLCAwLjIp IGJvdGgsDQogICAgICAgIG1zLW1vdGlvbi1mYWRlT3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAs IDAsIDEsIDEpIGJvdGg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm1zLW1vdGlvbi1z bGlkZVJpZ2h0T3V0IHsNCiAgICAgIGFuaW1hdGlvbjogbXMtbW90aW9uLXNsaWRlTGVmdE91 dCAwLjFzIGN1YmljLWJlemllcigwLjksIDAuMSwgMSwgMC4yKSBib3RoLA0KICAgICAgICBt cy1tb3Rpb24tZmFkZU91dCAwLjFzIGN1YmljLWJlemllcigwLCAwLCAxLCAxKSBib3RoOw0K ICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5tcy1tb3Rpb24tc2xpZGVMZWZ0SW4gew0KICAg ICAgYW5pbWF0aW9uOiBtcy1tb3Rpb24tc2xpZGVMZWZ0SW4gMC4xcyBjdWJpYy1iZXppZXIo MC4xLCAwLjksIDAuMiwgMSkgYm90aCwNCiAgICAgICAgbXMtbW90aW9uLWZhZGVJbiAwLjFz IGN1YmljLWJlemllcigwLCAwLCAxLCAxKSBib3RoOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5tcy1tb3Rpb24tc2xpZGVMZWZ0SW4gew0KICAgICAgYW5pbWF0aW9uOiBtcy1tb3Rp b24tc2xpZGVSaWdodEluIDAuMXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpIGJv dGgsDQogICAgICAgIG1zLW1vdGlvbi1mYWRlSW4gMC4xcyBjdWJpYy1iZXppZXIoMCwgMCwg MSwgMSkgYm90aDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAubXMtbW90aW9uLXNsaWRl UmlnaHRJbiB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlvbi1zbGlkZVJpZ2h0SW4gMC4x cyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSkgYm90aCwNCiAgICAgICAgbXMtbW90 aW9uLWZhZGVJbiAwLjFzIGN1YmljLWJlemllcigwLCAwLCAxLCAxKSBib3RoOw0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5tcy1tb3Rpb24tc2xpZGVSaWdodEluIHsNCiAgICAgIGFu aW1hdGlvbjogbXMtbW90aW9uLXNsaWRlTGVmdEluIDAuMXMgY3ViaWMtYmV6aWVyKDAuMSwg MC45LCAwLjIsIDEpIGJvdGgsDQogICAgICAgIG1zLW1vdGlvbi1mYWRlSW4gMC4xcyBjdWJp Yy1iZXppZXIoMCwgMCwgMSwgMSkgYm90aDsNCiAgICB9DQoNCiAgICAubXMtbW90aW9uLXNs aWRlVXBPdXQgew0KICAgICAgYW5pbWF0aW9uOiBtcy1tb3Rpb24tc2xpZGVVcE91dCAwLjFz IGN1YmljLWJlemllcigwLjksIDAuMSwgMSwgMC4yKSBib3RoLA0KICAgICAgICBtcy1tb3Rp b24tZmFkZU91dCAwLjFzIGN1YmljLWJlemllcigwLCAwLCAxLCAxKSBib3RoOw0KICAgIH0N Cg0KICAgIC5tcy1tb3Rpb24tc2xpZGVEb3duT3V0IHsNCiAgICAgIGFuaW1hdGlvbjogbXMt bW90aW9uLXNsaWRlRG93bk91dCAwLjFzIGN1YmljLWJlemllcigwLjksIDAuMSwgMSwgMC4y KSBib3RoLA0KICAgICAgICBtcy1tb3Rpb24tZmFkZU91dCAwLjFzIGN1YmljLWJlemllcigw LCAwLCAxLCAxKSBib3RoOw0KICAgIH0NCg0KICAgIC5tcy1tb3Rpb24tc2xpZGVVcEluIHsN CiAgICAgIGFuaW1hdGlvbjogbXMtbW90aW9uLXNsaWRlVXBJbiAwLjFzIGN1YmljLWJlemll cigwLjEsIDAuOSwgMC4yLCAxKSBib3RoLA0KICAgICAgICBtcy1tb3Rpb24tZmFkZUluIDAu MXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAgfQ0KDQogICAgLm1zLW1v dGlvbi1zbGlkZURvd25JbiB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlvbi1zbGlkZURv d25JbiAwLjFzIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSBib3RoLA0KICAgICAg ICBtcy1tb3Rpb24tZmFkZUluIDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7 DQogICAgfQ0KDQogICAgLm9kLUxpbmsgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAg ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAg ICBvdXRsaW5lOiAwOw0KICAgIH0NCg0KICAgIC5vZC1MaW5rOmZvY3VzLA0KICAgIC5vZC1M aW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIC5vZC1M aW5rOmFjdGl2ZSB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAub2Qt TGlua1tkaXNhYmxlZF0gew0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgICAgY29sb3I6 ICM5ZTllOWU7DQogICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51LWl0ZW0gew0KICAg ICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsN CiAgICB9DQoNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtaXRlbS5vZC1Db250ZXh0dWFsTWVu dS1pdGVtLS1kaXZpZGVyIHsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICAgIGRpc3Bs YXk6IGJsb2NrOw0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBtYXJnaW46IDRweCAwOw0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIHBvc2l0aW9uOiByZWxh dGl2ZTsNCiAgICB9DQoNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtaXRlbS5vZC1Db250ZXh0 dWFsTWVudS1pdGVtLS1oZWFkZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICBm b250LXNpemU6IDEycHg7DQogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAg ICAgaGVpZ2h0OiA0MHB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7DQogICAgICBwYWRk aW5nOiAwIDE4cHg7DQogICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsgew0K ICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQog ICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICAgIGN1cnNvcjogcG9p bnRlcjsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgaGVpZ2h0OiA0MHB4Ow0KICAg ICAgbGluZS1oZWlnaHQ6IDQwcHg7DQogICAgICBwYWRkaW5nOiAwIDE4cHg7DQogICAgICBw b3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1t cy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1s aW5rIHsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwOw0KICAgICAgfQ0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24t d2hpdGUpIHsNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rIHsNCiAgICAgICAgYm9y ZGVyLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0 dWFsTWVudS1saW5rOmZpcnN0LWNoaWxkLA0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5r Omxhc3QtY2hpbGQgew0KICAgICAgaGVpZ2h0OiAzOXB4Ow0KICAgIH0NCg0KICAgIC5vZC1D b250ZXh0dWFsTWVudS1saW5rOmFjdGl2ZSwNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtbGlu azpmb2N1cywNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluazpob3ZlciB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAg fQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUp IHsNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rOmhvdmVyIHsNCiAgICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzFhZWJmZjsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMWFlYmZm Ow0KICAgICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICAgIH0NCg0KICAgICAgLm9kLUNvbnRl eHR1YWxNZW51LWxpbms6aG92ZXI6Zm9jdXMgew0KICAgICAgICBib3JkZXItY29sb3I6ICMw MDAwMDA7DQogICAgICB9DQoNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rOmhvdmVy Ky5vZC1Db250ZXh0dWFsTWVudS1jYXJldFJpZ2h0LA0KICAgICAgLm9kLUNvbnRleHR1YWxN ZW51LWxpbms6aG92ZXIrLm9kLUNvbnRleHR1YWxNZW51LXN1Yk1lbnVJY29uIHsNCiAgICAg ICAgY29sb3I6ICMwMDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVl biBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9k LUNvbnRleHR1YWxNZW51LWxpbms6aG92ZXIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjMzcwMDZlOw0KICAgICAgICBib3JkZXItY29sb3I6ICMzNzAwNmU7DQogICAgICAgIGNv bG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KDQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGlu azpob3Zlcisub2QtQ29udGV4dHVhbE1lbnUtY2FyZXRSaWdodCwNCiAgICAgIC5vZC1Db250 ZXh0dWFsTWVudS1saW5rOmhvdmVyKy5vZC1Db250ZXh0dWFsTWVudS1zdWJNZW51SWNvbiB7 DQogICAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1D b250ZXh0dWFsTWVudS1saW5rOmFjdGl2ZSB7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAj MDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rOmZvY3VzIHsN CiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICAgIG91dGxpbmU6IDA7DQogICAg fQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUp IHsNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rOmZvY3VzIHsNCiAgICAgICAgYm9y ZGVyLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5v ZC1Db250ZXh0dWFsTWVudS1saW5rOmZvY3VzIHsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAj MDAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5r LmlzLXNlbGVjdGVkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjN2UwZjQ7DQogICAg ICBjb2xvcjogIzAwMDAwMDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQog ICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQ6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogI2M3ZTBmNDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVu IGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLUNvbnRleHR1 YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj MWFlYmZmOw0KICAgICAgICBib3JkZXItY29sb3I6ICMxYWViZmY7DQogICAgICAgIGNvbG9y OiAjMDAwMDAwOw0KICAgICAgfQ0KDQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5p cy1zZWxlY3RlZDpmb2N1cyB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzAwMDAwMDsNCiAg ICAgIH0NCg0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQrLm9k LUNvbnRleHR1YWxNZW51LWNhcmV0UmlnaHQsDQogICAgICAub2QtQ29udGV4dHVhbE1lbnUt bGluay5pcy1zZWxlY3RlZCsub2QtQ29udGV4dHVhbE1lbnUtc3ViTWVudUljb24gew0KICAg ICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAu b2QtQ29udGV4dHVhbE1lbnUtbGluay5pcy1zZWxlY3RlZCB7DQogICAgICAgIGJhY2tncm91 bmQtY29sb3I6ICMzNzAwNmU7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzM3MDA2ZTsNCiAg ICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICB9DQoNCiAgICAgIC5vZC1Db250ZXh0dWFs TWVudS1saW5rLmlzLXNlbGVjdGVkKy5vZC1Db250ZXh0dWFsTWVudS1jYXJldFJpZ2h0LA0K ICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQrLm9kLUNvbnRleHR1 YWxNZW51LXN1Yk1lbnVJY29uIHsNCiAgICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICB9 DQogICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtZGlzYWJsZWQgew0K ICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgICBw b2ludGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtQ29udGV4dHVhbE1lbnUt bGluay5pcy1kaXNhYmxlZDphY3RpdmUsDQogICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsu aXMtZGlzYWJsZWQ6Zm9jdXMgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOw0KICAg IH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZl KSB7DQoNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rLmlzLWRpc2FibGVkOmFjdGl2 ZSwNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rLmlzLWRpc2FibGVkOmZvY3VzIHsN CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUp IHsNCg0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtZGlzYWJsZWQ6YWN0aXZl LA0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtZGlzYWJsZWQ6Zm9jdXMgew0K ICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmY7DQogICAgICB9DQogICAgfQ0KDQogICAg QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAg IC5vZC1Db250ZXh0dWFsTWVudS1saW5rLmlzLWRpc2FibGVkIHsNCiAgICAgICAgY29sb3I6 ICMwZjA7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1o aWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUNvbnRleHR1YWxN ZW51LWxpbmsuaXMtZGlzYWJsZWQgew0KICAgICAgICBjb2xvcjogIzYwMDAwMDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5vZC1Db250ZXh0dWFs TWVudS1saW5rLS1oYXNNZW51fi5vZC1Db250ZXh0dWFsTWVudSB7DQogICAgICBwb3NpdGlv bjogYWJzb2x1dGU7DQogICAgICB0b3A6IC0xcHg7DQogICAgICBsZWZ0OiAxNzhweDsNCiAg ICB9DQoNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtY2FyZXRSaWdodCwNCiAgICAub2QtQ29u dGV4dHVhbE1lbnUtc3ViTWVudUljb24gew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAg ICBmb250LXNpemU6IDE2cHg7DQogICAgICBoZWlnaHQ6IDM5cHg7DQogICAgICBsaW5lLWhl aWdodDogNDBweDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsN CiAgICAgIHJpZ2h0OiA3cHg7DQogICAgICB6LWluZGV4OiAxOw0KICAgICAgcG9pbnRlci1l dmVudHM6IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51Lm9kLUNvbnRl eHR1YWxNZW51LS1tdWx0aXNlbGVjdCAub2QtQ29udGV4dHVhbE1lbnUtaXRlbS5vZC1Db250 ZXh0dWFsTWVudS1pdGVtLS1oZWFkZXIgew0KICAgICAgcGFkZGluZzogMCAzMHB4Ow0KICAg IH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS5vZC1Db250ZXh0dWFsTWVudS0tbXVsdGlz ZWxlY3QgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsgew0KICAgICAgcGFkZGluZzogMCAzMHB4 Ow0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS5vZC1Db250ZXh0dWFsTWVudS0t bXVsdGlzZWxlY3QgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAub2QtQ29udGV4 dHVhbE1lbnUub2QtQ29udGV4dHVhbE1lbnUtLW11bHRpc2VsZWN0IC5vZC1Db250ZXh0dWFs TWVudS1saW5rLmlzLXNlbGVjdGVkOmFmdGVyIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1i bG9jazsNCiAgICAgIGZvbnQtZmFtaWx5OiBGYWJyaWNNREwySWNvbnM7DQogICAgICBmb250 LXN0eWxlOiBub3JtYWw7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgY29sb3I6 ICMyNDI0MjQ7DQogICAgICBjb250ZW50OiAiXGUwNDEiOw0KICAgICAgZm9udC1zaXplOiAx MnB4Ow0KICAgICAgaGVpZ2h0OiAzOXB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7DQog ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiAxMHB4Ow0KICAgIH0NCg0K ICAgIC5vZC1MYWJlbCB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBmb250LXdl aWdodDogNDAwOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIGJveC1z aGFkb3c6IG5vbmU7DQogICAgICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAg ICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAg ICAgcGFkZGluZzogNXB4IDA7DQogICAgfQ0KDQogICAgLm9kLUxhYmVsLmlzLXJlcXVpcmVk OmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIgKiI7DQogICAgICBjb2xvcjogI2E4MDAwMDsN CiAgICB9DQoNCiAgICAub2QtTGFiZWwuaXMtZGlzYWJsZWQgew0KICAgICAgY29sb3I6ICM5 ZTllOWU7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRy YXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1MYWJlbC5pcy1kaXNhYmxlZCB7DQogICAgICAg IGNvbG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5k ICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5vZC1MYWJl bC5pcy1kaXNhYmxlZCB7DQogICAgICAgIGNvbG9yOiAjNjAwMDAwOw0KICAgICAgfQ0KICAg IH0NCg0KICAgIC5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgY29sb3I6ICM5ZTll OWU7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0 OiBhY3RpdmUpIHsNCiAgICAgIC5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgICBj b2xvcjogIzBmMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAo LW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAuaXMtZGlzYWJs ZWQgLm9kLUxhYmVsIHsNCiAgICAgICAgY29sb3I6ICM2MDAwMDA7DQogICAgICB9DQogICAg fQ0KDQogICAgLm9kLUJ1dHRvbiB7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0K ICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRp bmc6IDA7DQogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsNCiAgICAgIGNvbG9yOiAjMjQy NDI0Ow0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0K ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAg ICAgbWluLXdpZHRoOiA4MHB4Ow0KICAgICAgcGFkZGluZzogNHB4IDIwcHggNnB4Ow0KICAg ICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlk ICM4YThhOGE7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIC5pc0Zs dWVudFZOZXh0IC5vZC1CdXR0b24gew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZm ZjsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7DQogICAgICBib3JkZXItcmFk aXVzOiA0cHg7DQogICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7DQogICAgICBwYWRkaW5nLXJp Z2h0OiAxMnB4Ow0KICAgIH0NCg0KICAgIC5pcy1oaWRkZW4ub2QtQnV0dG9uIHsNCiAgICAg IGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbjpob3ZlciB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgICAgYm9yZGVyLWNvbG9yOiAjOGE4 YThhOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0b246aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsNCiAgICAgIGJvcmRlci1jb2xvcjog I2M3YzdjNzsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uOmhvdmVyIC5vZC1CdXR0b24tbGFi ZWwgew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5l eHQgLm9kLUJ1dHRvbjpob3ZlciAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAj MjQyNDI0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250 cmFzdDogYWN0aXZlKSB7DQogICAgICAub2QtQnV0dG9uOmhvdmVyIHsNCiAgICAgICAgY29s b3I6ICMxYWViZmY7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzFhZWJmZjsNCiAgICAgIH0N CiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJs YWNrLW9uLXdoaXRlKSB7DQogICAgICAub2QtQnV0dG9uOmhvdmVyIHsNCiAgICAgICAgY29s b3I6ICMzNzAwNmU7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzM3MDA2ZTsNCiAgICAgIH0N CiAgICB9DQoNCiAgICAub2QtQnV0dG9uOmZvY3VzIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNmZmZmZmY7DQogICAgICBib3JkZXItY29sb3I6ICM4YThhOGE7DQogICAgICBvdXRs aW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0t aXNGb2N1c1Zpc2libGUgLm9kLUJ1dHRvbjpmb2N1czo6YWZ0ZXIgew0KICAgICAgY29udGVu dDogIiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IC0xcHg7DQog ICAgICBsZWZ0OiAtMXB4Ow0KICAgICAgcmlnaHQ6IC0xcHg7DQogICAgICBib3R0b206IC0x cHg7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgIzYxNjE2MTsNCiAgICAgIG91dGxpbmUt b2Zmc2V0OiAtNHB4Ow0KICAgICAgYm9yZGVyOiAycHggc29saWQgIzhhOGE4YTsNCiAgICAg IGJvcmRlci1yYWRpdXM6IDJweDsNCiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZm ZmZmIGluc2V0Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0b246Zm9j dXMgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJvcmRlci1j b2xvcjogI2QxZDFkMTsNCiAgICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJs ZSAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uOmZvY3VzOjphZnRlciB7DQogICAgICBjb250 ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGJvcmRlcjogMXB4 IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgICAg aW5zZXQ6IDA7DQogICAgICBvdXRsaW5lOiAycHggc29saWQgIzAwMDAwMDsNCiAgICAgIG91 dGxpbmUtb2Zmc2V0OiAwOw0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAg ICAub2QtQnV0dG9uOmZvY3VzIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICMy NDI0MjQ7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbjphY3RpdmUgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhhOGE4YTsNCiAg ICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uOmFjdGl2ZSB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgICAgYm9yZGVyLWNvbG9yOiAjOWU5ZTll Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b246YWN0aXZlIC5vZC1CdXR0b24tbGFiZWwgew0K ICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9k LUJ1dHRvbjphY3RpdmUgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzI0MjQy NDsNCiAgICB9DQoNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLA0KICAgIC5vZC1CdXR0 b246ZGlzYWJsZWQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICAg IGJvcmRlci1jb2xvcjogI2YwZjBmMDsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICB9 DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLA0KICAgIC5p c0ZsdWVudFZOZXh0IC5vZC1CdXR0b246ZGlzYWJsZWQgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2YwZjBmMDsNCiAgICAgIGJvcmRlci1jb2xvcjogI2YwZjBmMDsNCiAgICB9DQoN CiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uIC5vZC1CdXR0b24tbGFiZWwsDQogICAgLm9k LUJ1dHRvbjpkaXNhYmxlZCAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjOWU5 ZTllOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5pcy1kaXNhYmxlZC5vZC1CdXR0 b24gLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uOmRp c2FibGVkIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNiZGJkYmQ7DQogICAg fQ0KDQogICAgLmlzLWRpc2FibGVkLm9kLUJ1dHRvbjpmb2N1cywNCiAgICAuaXMtZGlzYWJs ZWQub2QtQnV0dG9uOmhvdmVyLA0KICAgIC5vZC1CdXR0b246ZGlzYWJsZWQ6Zm9jdXMsDQog ICAgLm9kLUJ1dHRvbjpkaXNhYmxlZDpob3ZlciB7DQogICAgICBvdXRsaW5lOiAwOw0KICAg IH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5IHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQog ICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRv bi0tcHJpbWFyeSAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0K ICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5OmhvdmVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDZlYmU7DQogICAgICBib3JkZXItY29sb3I6ICMx MDZlYmU7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXByaW1hcnk6aG92 ZXIgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoN CiAgICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tcHJpbWFyeTpob3Zl ciAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0K ICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5OmZvY3VzIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQog ICAgfQ0KDQogICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLm9kLUJ1dHRvbi5vZC1C dXR0b24tLXByaW1hcnk6Zm9jdXM6OmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAg ICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAtMXB4Ow0KICAgICAgbGVmdDog LTFweDsNCiAgICAgIHJpZ2h0OiAtMXB4Ow0KICAgICAgYm90dG9tOiAtMXB4Ow0KICAgICAg b3V0bGluZTogMXB4IHNvbGlkICMwMDc4ZDQ7DQogICAgICBvdXRsaW5lLW9mZnNldDogLTRw eDsNCiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDc4ZDQ7DQogICAgICBib3JkZXItcmFk aXVzOiAycHg7DQogICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZmZmZiBpbnNldDsN CiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tcHJp bWFyeTpmb2N1cyB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAg Ym9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9j dXNWaXNpYmxlIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5 OmZvY3VzOjphZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7DQogICAgICBib3Jk ZXItcmFkaXVzOiA0cHg7DQogICAgICBpbnNldDogMDsNCiAgICAgIG91dGxpbmU6IDJweCBz b2xpZCAjMDAwMDAwOw0KICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7DQogICAgICBib3gtc2hh ZG93OiBub25lOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5 OmZvY3VzIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAg fQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXByaW1hcnk6YWN0aXZlIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICMwMDQ1Nzg7DQogICAgICBib3JkZXItY29sb3I6ICMwMDQ1 Nzg7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXByaW1hcnk6YWN0aXZl IC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQog ICAgLmlzRmx1ZW50Vk5leHQgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXByaW1hcnk6YWN0aXZl IC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQog ICAgLmlzLWRpc2FibGVkLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXByaW1hcnksDQogICAgLm9k LUJ1dHRvbi5vZC1CdXR0b24tLXByaW1hcnk6ZGlzYWJsZWQgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogI2YwZjBmMDsNCiAgICAgIGJvcmRlci1jb2xvcjogI2YwZjBmMDsNCiAgICB9 DQoNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0tcHJpbWFyeSAub2Qt QnV0dG9uLWxhYmVsLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5OmRpc2Fi bGVkIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0K DQogICAgLmlzRmx1ZW50Vk5leHQgLmlzLWRpc2FibGVkLm9kLUJ1dHRvbi5vZC1CdXR0b24t LXByaW1hcnkgLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0 dG9uLm9kLUJ1dHRvbi0tcHJpbWFyeTpkaXNhYmxlZCAub2QtQnV0dG9uLWxhYmVsIHsNCiAg ICAgIGNvbG9yOiAjYmRiZGJkOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9u LS1oZXJvIHsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIGRpc3BsYXk6 IGZsZXg7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2Qt QnV0dG9uLS1oZXJvIC5vZC1CdXR0b24taWNvbiB7DQogICAgICBjb2xvcjogIzAwNzhkNDsN CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsN CiAgICAgIG1hcmdpbi1yaWdodDogNHB4Ow0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0K ICAgICAgdG9wOiAxcHg7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgfQ0KDQog ICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWhlcm8gLm9kLUJ1dHRvbi1pY29uIC5tcy1JY29u IHsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7DQogICAgICBib3JkZXI6IDFweCBzb2xp ZCAjMDA3OGQ0Ow0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgaGVpZ2h0OiAxOHB4 Ow0KICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7DQogICAgICB3aWR0aDogMThweDsNCiAgICB9 DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybyAub2QtQnV0dG9uLWxhYmVsIHsN CiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgZm9udC1zaXplOiAyMXB4Ow0KICAgICAg Zm9udC13ZWlnaHQ6IDEwMDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHRl eHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRv bi0taGVybzpmb2N1cyAub2QtQnV0dG9uLWljb24sDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0 b24tLWhlcm86aG92ZXIgLm9kLUJ1dHRvbi1pY29uIHsNCiAgICAgIGNvbG9yOiAjMTA2ZWJl Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1oZXJvOmZvY3VzIC5vZC1C dXR0b24taWNvbiAubXMtSWNvbiwNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybzpo b3ZlciAub2QtQnV0dG9uLWljb24gLm1zLUljb24gew0KICAgICAgYm9yZGVyOiAxcHggc29s aWQgIzEwNmViZTsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybzpm b2N1cyAub2QtQnV0dG9uLWxhYmVsLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1oZXJv OmhvdmVyIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICMwMDQ1Nzg7DQogICAg fQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWhlcm86YWN0aXZlIC5vZC1CdXR0b24t aWNvbiB7DQogICAgICBjb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9u Lm9kLUJ1dHRvbi0taGVybzphY3RpdmUgLm9kLUJ1dHRvbi1pY29uIC5tcy1JY29uIHsNCiAg ICAgIGJvcmRlcjogMXB4IHNvbGlkICMxMDZlYmU7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRv bi5vZC1CdXR0b24tLWhlcm86YWN0aXZlIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29s b3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLmlzLWRpc2FibGVkLm9kLUJ1dHRvbi5vZC1C dXR0b24tLWhlcm8gLm9kLUJ1dHRvbi1pY29uLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9u LS1oZXJvOmRpc2FibGVkIC5vZC1CdXR0b24taWNvbiB7DQogICAgICBjb2xvcjogI2M3Yzdj NzsNCiAgICB9DQoNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVy byAub2QtQnV0dG9uLWljb24gLm1zLUljb24sDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24t LWhlcm86ZGlzYWJsZWQgLm9kLUJ1dHRvbi1pY29uIC5tcy1JY29uIHsNCiAgICAgIGJvcmRl cjogMXB4IHNvbGlkICNjN2M3Yzc7DQogICAgfQ0KDQogICAgLmlzLWRpc2FibGVkLm9kLUJ1 dHRvbi5vZC1CdXR0b24tLWhlcm8gLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAub2QtQnV0dG9u Lm9kLUJ1dHRvbi0taGVybzpkaXNhYmxlZCAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNv bG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21w b3VuZCB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIGhlaWdodDogYXV0bzsNCiAg ICAgIG1heC13aWR0aDogMjgwcHg7DQogICAgICBtaW4taGVpZ2h0OiA3MnB4Ow0KICAgICAg cGFkZGluZzogMjBweDsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29t cG91bmQgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAg IGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICB0 ZXh0LWFsaWduOiBsZWZ0Ow0KICAgICAgbWFyZ2luLXRvcDogLTVweDsNCiAgICB9DQoNCiAg ICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQgLm9kLUJ1dHRvbi1kZXNjcmlwdGlv biB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAg ICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIHBv c2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgICB0b3A6 IDNweDsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6aG92 ZXIgLm9kLUJ1dHRvbi1kZXNjcmlwdGlvbiB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAg ICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6Zm9jdXMgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Yw ZjBmMDsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6Zm9j dXMgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQoN CiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6Zm9jdXMgLm9kLUJ1dHRvbi1k ZXNjcmlwdGlvbiB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICAub2Qt QnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWNv bXBvdW5kOmFjdGl2ZSAub2QtQnV0dG9uLWRlc2NyaXB0aW9uLA0KICAgIC5vZC1CdXR0b24u b2QtQnV0dG9uLS1jb21wb3VuZDphY3RpdmUgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBj b2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLm9k LUJ1dHRvbi0tY29tcG91bmQgLm9kLUJ1dHRvbi1kZXNjcmlwdGlvbiwNCiAgICAuaXMtZGlz YWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQgLm9kLUJ1dHRvbi1sYWJlbCwN CiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6ZGlzYWJsZWQgLm9kLUJ1dHRv bi1kZXNjcmlwdGlvbiwNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6ZGlz YWJsZWQgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9 DQoNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6YWN0 aXZlLA0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZDpm b2N1cywNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6ZGlzYWJsZWQ6YWN0 aXZlLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZDpkaXNhYmxlZDpmb2N1 cyB7DQogICAgICBib3JkZXItY29sb3I6ICNmMGYwZjA7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZjBmMGYwOw0KICAgIH0NCg0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b24ub2Qt QnV0dG9uLS1jb21wb3VuZDphY3RpdmUgLm9kLUJ1dHRvbi1kZXNjcmlwdGlvbiwNCiAgICAu aXMtZGlzYWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6YWN0aXZlIC5vZC1C dXR0b24tbGFiZWwsDQogICAgLmlzLWRpc2FibGVkLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWNv bXBvdW5kOmZvY3VzIC5vZC1CdXR0b24tZGVzY3JpcHRpb24sDQogICAgLmlzLWRpc2FibGVk Lm9kLUJ1dHRvbi5vZC1CdXR0b24tLWNvbXBvdW5kOmZvY3VzIC5vZC1CdXR0b24tbGFiZWws DQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWNvbXBvdW5kOmRpc2FibGVkOmFjdGl2ZSAu b2QtQnV0dG9uLWRlc2NyaXB0aW9uLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21w b3VuZDpkaXNhYmxlZDphY3RpdmUgLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAub2QtQnV0dG9u Lm9kLUJ1dHRvbi0tY29tcG91bmQ6ZGlzYWJsZWQ6Zm9jdXMgLm9kLUJ1dHRvbi1kZXNjcmlw dGlvbiwNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6ZGlzYWJsZWQ6Zm9j dXMgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9DQoN CiAgICAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAg Zm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICB9DQoNCiAg ICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjMjQy NDI0Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24tZGVzY3JpcHRpb24sDQogICAgLm9kLUJ1 dHRvbi1pY29uIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLUxh YmVsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7 DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgYm94LXNoYWRvdzogbm9u ZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBib3gtc2l6 aW5nOiBib3JkZXItYm94Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwYWRkaW5n OiA1cHggMDsNCiAgICB9DQoNCiAgICAub2QtTGFiZWwuaXMtcmVxdWlyZWQ6YWZ0ZXIgew0K ICAgICAgY29udGVudDogIiAqIjsNCiAgICAgIGNvbG9yOiAjYTgwMDAwOw0KICAgIH0NCg0K ICAgIC5vZC1MYWJlbC5pcy1kaXNhYmxlZCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSkgew0KICAgICAgLm9kLUxhYmVsLmlzLWRpc2FibGVkIHsNCiAgICAgICAgY29sb3I6ICMw ZjA7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUxhYmVsLmlzLWRpc2Fi bGVkIHsNCiAgICAgICAgY29sb3I6ICM2MDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAg LmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9 DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkg ew0KICAgICAgLmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICAgIGNvbG9yOiAjMGYw Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1j b250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5pcy1kaXNhYmxlZCAub2QtTGFi ZWwgew0KICAgICAgICBjb2xvcjogIzYwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAu b2QtVG9nZ2xlIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0 OiA0MDA7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgYm94LXNoYWRv dzogbm9uZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBw b3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG1hcmdp bi1ib3R0b206IDI2cHg7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZSAubXMtTGFiZWwsDQog ICAgLm9kLVRvZ2dsZSAub2QtTGFiZWwgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0K ICAgICAgdG9wOiAtMXB4Ow0KICAgICAgcGFkZGluZzogMCAwIDAgNTBweDsNCiAgICB9DQoN CiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLVRvZ2dsZSAubXMtTGFiZWwsDQogICAgaHRtbFtk aXI9InJ0bCJdIC5vZC1Ub2dnbGUgLm9kLUxhYmVsIHsNCiAgICAgIHBhZGRpbmc6IDAgNTBw eCAwIDA7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkOmJlZm9y ZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDNweDsNCiAgICAg IHdpZHRoOiAxMHB4Ow0KICAgICAgaGVpZ2h0OiAxMHB4Ow0KICAgICAgYm9yZGVyLXJhZGl1 czogMTBweDsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgbGVmdDogNHB4Ow0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0 cmFuc3BhcmVudDsNCiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQsIGxl ZnQ7DQogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtczsNCiAgICAgIHRyYW5zaXRp b24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIzLCAxKTsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSkgew0KICAgICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkOmJlZm9yZSB7DQogICAg ICAgIGJvcmRlcjogMi41cHggc29saWQgI2ZmZmZmZjsNCiAgICAgICAgaGVpZ2h0OiAxNXB4 Ow0KICAgICAgICBvdXRsaW5lOiAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBz Y3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAg IC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZDpiZWZvcmUgew0KICAgICAgICBib3JkZXIt Y29sb3I6ICMwMDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9k LVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkOmJlZm9yZSB7DQogICAgICByaWdodDogYXV0bzsN CiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQ6 YmVmb3JlIHsNCiAgICAgIGxlZnQ6IGF1dG87DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZSAu b2QtVG9nZ2xlLWZpZWxkIC5tcy1MYWJlbC0tb2ZmIHsNCiAgICAgIGRpc3BsYXk6IGJsb2Nr Ow0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZCAubXMtTGFiZWwt LW9uIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZSAu b2QtVG9nZ2xlLWZpZWxkLmlzLXNlbGVjdGVkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMwMDc4ZDQ7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAg Lm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkLmlzLXNlbGVjdGVkOmJlZm9yZSB7DQogICAg ICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDNweDsNCiAgICAgIHdpZHRoOiAx MHB4Ow0KICAgICAgaGVpZ2h0OiAxMHB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsN CiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgcmlnaHQ6IDRweDsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICM2MTYxNjE7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJl bnQ7DQogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLCBsZWZ0Ow0KICAg ICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7DQogICAgICB0cmFuc2l0aW9uLXRpbWlu Zy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMywgMSk7DQogICAgfQ0KDQog ICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAg ICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1zZWxlY3RlZDpiZWZvcmUgew0K ICAgICAgICBib3JkZXI6IDIuNXB4IHNvbGlkICNmZmZmZmY7DQogICAgICAgIGhlaWdodDog MTVweDsNCiAgICAgICAgb3V0bGluZTogMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVk aWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQog ICAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQ6YmVmb3JlIHsN CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1zZWxlY3RlZDpiZWZvcmUgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQ6YmVmb3JlIHsNCiAg ICAgIGxlZnQ6IDI4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVRvZ2dsZSAu b2QtVG9nZ2xlLWZpZWxkLmlzLXNlbGVjdGVkOmJlZm9yZSB7DQogICAgICByaWdodDogMjhw eDsNCiAgICB9DQoNCiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0 ZWQgLm1zLUxhYmVsLS1vZmYgew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAg ICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQgLm1zLUxhYmVsLS1v biB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVu IGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLVRvZ2dsZSAu b2QtVG9nZ2xlLWZpZWxkLmlzLXNlbGVjdGVkIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xv cjogI2ZmZmZmZjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAo LW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAub2QtVG9nZ2xl IC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQgew0KICAgICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjMDAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGU6Zm9jdXMr Lm9kLVRvZ2dsZS1maWVsZCwNCiAgICAub2QtVG9nZ2xlOmhvdmVyKy5vZC1Ub2dnbGUtZmll bGQgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5vZC1U b2dnbGU6Zm9jdXMrLm9kLVRvZ2dsZS1maWVsZDpiZWZvcmUsDQogICAgLm9kLVRvZ2dsZTpo b3Zlcisub2QtVG9nZ2xlLWZpZWxkOmJlZm9yZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGU6Zm9jdXM6Y2hlY2tlZCsub2Qt VG9nZ2xlLWZpZWxkLA0KICAgIC5vZC1Ub2dnbGU6aG92ZXI6Y2hlY2tlZCsub2QtVG9nZ2xl LWZpZWxkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDZlYmU7DQogICAgICBib3Jk ZXItY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZTpmb2N1czpjaGVj a2VkKy5vZC1Ub2dnbGUtZmllbGQ6YmVmb3JlLA0KICAgIC5vZC1Ub2dnbGU6aG92ZXI6Y2hl Y2tlZCsub2QtVG9nZ2xlLWZpZWxkOmJlZm9yZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGU6YWN0aXZlOmNoZWNrZWQrLm9k LVRvZ2dsZS1maWVsZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1YTllOw0KICAg ICAgYm9yZGVyLWNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUgLm9k LVRvZ2dsZS1maWVsZDpmb2N1cywNCiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQ6 aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5v ZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1zZWxlY3RlZDpmb2N1cywNCiAgICAub2Qt VG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQ6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzEwNmViZTsNCiAgICAgIGJvcmRlci1jb2xvcjogIzEwNmViZTsN CiAgICB9DQoNCiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQgLm1zLUxhYmVsLA0K ICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZCAub2QtTGFiZWwgew0KICAgICAgY29s b3I6ICMwMDAwMDA7DQogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAgICAg LW1zLXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7DQogICAg fQ0KDQogICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkOmhvdmVyIC5tcy1MYWJlbCwN CiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQ6aG92ZXIgLm9kLUxhYmVsIHsNCiAg ICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2ds ZS1maWVsZDphY3RpdmUgLm1zLUxhYmVsLA0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1m aWVsZDphY3RpdmUgLm9kLUxhYmVsIHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgIH0N Cg0KICAgIC5vZC1Ub2dnbGUuaXMtZGlzYWJsZWQgLm1zLUxhYmVsLA0KICAgIC5vZC1Ub2dn bGUuaXMtZGlzYWJsZWQgLm9kLUxhYmVsIHsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAg IH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZl KSB7DQoNCiAgICAgIC5vZC1Ub2dnbGUuaXMtZGlzYWJsZWQgLm1zLUxhYmVsLA0KICAgICAg Lm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgICBjb2xvcjogIzBm MDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gt Y29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQoNCiAgICAgIC5vZC1Ub2dnbGUuaXMtZGlz YWJsZWQgLm1zLUxhYmVsLA0KICAgICAgLm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAub2QtTGFi ZWwgew0KICAgICAgICBjb2xvcjogIzYwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAu b2QtVG9nZ2xlLmlzLWRpc2FibGVkIC5vZC1Ub2dnbGUtZmllbGQgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJvcmRlci1jb2xvcjogI2M3YzdjNzsNCiAg ICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAg IH0NCg0KICAgIC5vZC1Ub2dnbGUuaXMtZGlzYWJsZWQgLm9kLVRvZ2dsZS1maWVsZDpiZWZv cmUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAgICBA bWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KDQogICAg ICAub2QtVG9nZ2xlLmlzLWRpc2FibGVkIC5vZC1Ub2dnbGUtZmllbGQsDQogICAgICAub2Qt VG9nZ2xlLmlzLWRpc2FibGVkIC5vZC1Ub2dnbGUtZmllbGQ6YmVmb3JlIHsNCiAgICAgICAg Ym9yZGVyLWNvbG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCg0KICAgICAg Lm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAub2QtVG9nZ2xlLWZpZWxkLA0KICAgICAgLm9kLVRv Z2dsZS5pcy1kaXNhYmxlZCAub2QtVG9nZ2xlLWZpZWxkOmJlZm9yZSB7DQogICAgICAgIGJv cmRlci1jb2xvcjogIzYwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtVG9nZ2xl LWRlc2NyaXB0aW9uIHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGZvbnQt c2l6ZTogMTRweDsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgbWFyZ2luLWJvdHRv bTogOHB4Ow0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUtZmllbGQgew0KICAgICAgcG9zaXRp b246IHJlbGF0aXZlOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgd2lk dGg6IDQ1cHg7DQogICAgICBoZWlnaHQ6IDIwcHg7DQogICAgICBib3gtc2l6aW5nOiBib3Jk ZXItYm94Ow0KICAgICAgYm9yZGVyOiAycHggc29saWQgIzllOWU5ZTsNCiAgICAgIGJvcmRl ci1yYWRpdXM6IDIwcHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICB0cmFuc2l0 aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLCBsZWZ0LCBib3JkZXItY29sb3I7DQogICAgICB0 cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtczsNCiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1 bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIzLCAxKTsNCiAgICAgIG91dGxpbmU6 IDA7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZS1maWVsZDpmb2N1cywNCiAgICAub2QtVG9n Z2xlLWZpZWxkOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzYxNjE2MTsNCiAgICB9 DQoNCiAgICAub2QtVG9nZ2xlLWlucHV0IHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAg fQ0KDQogICAgLm9kLVRvZ2dsZS5vZC1Ub2dnbGUtLXRleHRMZWZ0IHsNCiAgICAgIHdpZHRo OiAyMjVweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7DQogICAgfQ0KDQogICAgLm9k LVRvZ2dsZS5vZC1Ub2dnbGUtLXRleHRMZWZ0IC5vZC1Ub2dnbGUtZGVzY3JpcHRpb24gew0K ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgbWF4LXdpZHRoOiAxNTBweDsN CiAgICAgIHRvcDogLTNweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDA7DQogICAgfQ0KDQog ICAgLm9kLVRvZ2dsZS5vZC1Ub2dnbGUtLXRleHRMZWZ0IC5vZC1Ub2dnbGUtZmllbGQgew0K ICAgICAgZmxvYXQ6IHJpZ2h0Ow0KICAgIH0NCg0KICAgIC5vZC1MYWJlbCB7DQogICAgICBm b250LXNpemU6IDEycHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgYm94LXNp emluZzogYm9yZGVyLWJveDsNCiAgICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgICBtYXJn aW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJv eDsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcGFkZGluZzogNXB4IDA7DQogICAg fQ0KDQogICAgLm9kLUxhYmVsLmlzLXJlcXVpcmVkOmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6 ICIgKiI7DQogICAgICBjb2xvcjogI2E4MDAwMDsNCiAgICB9DQoNCiAgICAub2QtTGFiZWwu aXMtZGlzYWJsZWQgew0KICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgQG1l ZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5v ZC1MYWJlbC5pcy1kaXNhYmxlZCB7DQogICAgICAgIGNvbG9yOiAjMGYwOw0KICAgICAgfQ0K ICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxh Y2stb24td2hpdGUpIHsNCiAgICAgIC5vZC1MYWJlbC5pcy1kaXNhYmxlZCB7DQogICAgICAg IGNvbG9yOiAjNjAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5pcy1kaXNhYmxlZCAu b2QtTGFiZWwgew0KICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgQG1lZGlh IHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5pcy1k aXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgICBjb2xvcjogIzBmMDsNCiAgICAgIH0NCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNr LW9uLXdoaXRlKSB7DQogICAgICAuaXMtZGlzYWJsZWQgLm9kLUxhYmVsIHsNCiAgICAgICAg Y29sb3I6ICM2MDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZCB7 DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgYm94LXNoYWRvdzogbm9u ZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBjb2xvcjog IzI0MjQyNDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0 MDA7DQogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7DQogICAgfQ0KDQogICAgLm9kLVRleHRG aWVsZCAubXMtTGFiZWwsDQogICAgLm9kLVRleHRGaWVsZCAub2QtTGFiZWwgew0KICAgICAg Zm9udC1zaXplOiAxNHB4Ow0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQuaXMtZGlzYWJs ZWQgLm9kLVRleHRGaWVsZC1maWVsZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBm MGYwOw0KICAgICAgYm9yZGVyLWNvbG9yOiAjZjBmMGYwOw0KICAgICAgcG9pbnRlci1ldmVu dHM6IG5vbmU7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgfQ0KDQogICAgLm9kLVRl eHRGaWVsZC5pcy1kaXNhYmxlZDo6cGxhY2Vob2xkZXIgew0KICAgICAgY29sb3I6ICM5ZTll OWU7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5pcy1yZXF1aXJlZCAubXMtTGFiZWw6 YWZ0ZXIsDQogICAgLm9kLVRleHRGaWVsZC5pcy1yZXF1aXJlZCAub2QtTGFiZWw6YWZ0ZXIg ew0KICAgICAgY29udGVudDogIiAqIjsNCiAgICAgIGNvbG9yOiAjYTgwMDAwOw0KICAgIH0N Cg0KICAgIC5vZC1UZXh0RmllbGQuaXMtcmVxdWlyZWQ6OnBsYWNlaG9sZGVyOmFmdGVyIHsN CiAgICAgIGNvbnRlbnQ6ICIgKiI7DQogICAgICBjb2xvcjogI2E4MDAwMDsNCiAgICB9DQoN CiAgICAub2QtVGV4dEZpZWxkLmlzLWFjdGl2ZSB7DQogICAgICBib3JkZXItY29sb3I6ICMw MDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC1maWVsZCB7DQogICAgICBib3gt c2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgIG1h cmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBmb250LXNpemU6IDE0cHg7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgaGVpZ2h0OiAzMnB4Ow0K ICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBtaW4td2lkdGg6IDE4MHB4Ow0KICAgICAgb3V0 bGluZTogMDsNCiAgICAgIHBhZGRpbmc6IDhweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDJw eDsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM2MTYxNjE7DQogICAgICBjb2xvcjogIzYx NjE2MTsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0KDQogICAgLm9kLVRleHRG aWVsZC1maWVsZDpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM4YThhOGE7DQogICAg fQ0KDQogICAgLm9kLVRleHRGaWVsZC1maWVsZDpmb2N1cyB7DQogICAgICBib3JkZXItY29s b3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBhY3RpdmUpIHsNCg0KICAgICAgLm9kLVRleHRGaWVsZC1maWVsZDpmb2N1 cywNCiAgICAgIC5vZC1UZXh0RmllbGQtZmllbGQ6aG92ZXIgew0KICAgICAgICBib3JkZXIt Y29sb3I6ICMxYWViZmY7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KDQogICAgICAub2Qt VGV4dEZpZWxkLWZpZWxkOmZvY3VzLA0KICAgICAgLm9kLVRleHRGaWVsZC1maWVsZDpob3Zl ciB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzM3MDA2ZTsNCiAgICAgIH0NCiAgICB9DQoN CiAgICAub2QtVGV4dEZpZWxkLWZpZWxkOjpwbGFjZWhvbGRlciB7DQogICAgICBjb2xvcjog IzYxNjE2MTsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtVGV4dEZpZWxkLWZp ZWxkIHsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICB9DQoNCiAgICAub2QtVGV4 dEZpZWxkLWZpZWxkLWhhc0Ryb3Bkb3duIHsNCiAgICAgIHdpZHRoOiA2OCU7DQogICAgfQ0K DQogICAgW2Rpcj0ibHRyIl0gLm9kLVRleHRGaWVsZC1maWVsZC1oYXNEcm9wZG93biB7DQog ICAgICBtYXJnaW4tbGVmdDogN3B4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1U ZXh0RmllbGQtZmllbGQtaGFzRHJvcGRvd24gew0KICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7 DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC1kZXNjcmlwdGlvbiB7DQogICAgICBjb2xv cjogIzhhOGE4YTsNCiAgICAgIGZvbnQtc2l6ZTogMTFweDsNCiAgICB9DQoNCiAgICAub2Qt VGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tcGxhY2Vob2xkZXIgew0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS1w bGFjZWhvbGRlciAubXMtTGFiZWwsDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQt LXBsYWNlaG9sZGVyIC5vZC1MYWJlbCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICBmb250LXdlaWdodDogMzAwOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAg Y29sb3I6ICM2MTYxNjE7DQogICAgICBwYWRkaW5nOiA2cHggMTJweCA3cHg7DQogICAgICBw b2ludGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRl eHRGaWVsZC0tcGxhY2Vob2xkZXIuaXMtZGlzYWJsZWQgew0KICAgICAgY29sb3I6ICM5ZTll OWU7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGlu ZWQgew0KICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjN2M3Yzc7DQogICAgICBk aXNwbGF5OiB0YWJsZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgbWluLXdpZHRoOiAx ODBweDsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJs aW5lZDpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM4YThhOGE7DQogICAgfQ0KDQog ICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAg ICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkOmhvdmVyIHsNCiAg ICAgICAgYm9yZGVyLWNvbG9yOiAjMWFlYmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBt ZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsN CiAgICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkOmhvdmVyIHsN CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMzcwMDZlOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkOmFjdGl2ZSwNCiAgICAu b2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZDpmb2N1cyB7DQogICAgICBi b3JkZXItY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5vZC1U ZXh0RmllbGQtLXVuZGVybGluZWQgLm1zLUxhYmVsLA0KICAgIC5vZC1UZXh0RmllbGQub2Qt VGV4dEZpZWxkLS11bmRlcmxpbmVkIC5vZC1MYWJlbCB7DQogICAgICBmb250LXNpemU6IDE0 cHg7DQogICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOw0KICAgICAgdmVydGljYWwtYWxpZ246 IHRvcDsNCiAgICAgIHBhZGRpbmctdG9wOiAxMHB4Ow0KICAgICAgaGVpZ2h0OiAzMnB4Ow0K ICAgICAgd2lkdGg6IDElOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5l ZCAubXMtTGFiZWwsDQogICAgW2Rpcj0ibHRyIl0gLm9kLVRleHRGaWVsZC5vZC1UZXh0Rmll bGQtLXVuZGVybGluZWQgLm9kLUxhYmVsIHsNCiAgICAgIG1hcmdpbi1yaWdodDogOHB4Ow0K ICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11 bmRlcmxpbmVkIC5tcy1MYWJlbCwNCiAgICBbZGlyPSJydGwiXSAub2QtVGV4dEZpZWxkLm9k LVRleHRGaWVsZC0tdW5kZXJsaW5lZCAub2QtTGFiZWwgew0KICAgICAgbWFyZ2luLWxlZnQ6 IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtVGV4dEZpZWxkLm9kLVRleHRG aWVsZC0tdW5kZXJsaW5lZCAubXMtTGFiZWwsDQogICAgW2Rpcj0ibHRyIl0gLm9kLVRleHRG aWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQgLm9kLUxhYmVsIHsNCiAgICAgIHBhZGRp bmctbGVmdDogMTJweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtVGV4dEZpZWxk Lm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZCAubXMtTGFiZWwsDQogICAgW2Rpcj0icnRsIl0g Lm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQgLm9kLUxhYmVsIHsNCiAg ICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5v ZC1UZXh0RmllbGQtLXVuZGVybGluZWQgLm9kLVRleHRGaWVsZC1maWVsZCB7DQogICAgICBi b3JkZXI6IDA7DQogICAgICBmbG9hdDogbGVmdDsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNl bGw7DQogICAgICBwYWRkaW5nLXRvcDogOHB4Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDNw eDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVRleHRGaWVsZC5vZC1UZXh0 RmllbGQtLXVuZGVybGluZWQgLm9kLVRleHRGaWVsZC1maWVsZCB7DQogICAgICB0ZXh0LWFs aWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtVGV4dEZpZWxk Lm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZCAub2QtVGV4dEZpZWxkLWZpZWxkIHsNCiAgICAg IHRleHQtYWxpZ246IHJpZ2h0Ow0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4 dEZpZWxkLS11bmRlcmxpbmVkIC5vZC1UZXh0RmllbGQtZmllbGQ6YWN0aXZlLA0KICAgIC5v ZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkIC5vZC1UZXh0RmllbGQtZmll bGQ6Zm9jdXMsDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQg Lm9kLVRleHRGaWVsZC1maWVsZDpob3ZlciB7DQogICAgICBvdXRsaW5lOiAwOw0KICAgIH0N Cg0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkLmlzLWRpc2Fi bGVkIHsNCiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQog ICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQuaXMtZGlzYWJsZWQg Lm9kLVRleHRGaWVsZC1maWVsZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh cmVudDsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIC5vZC1UZXh0Rmll bGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkLmlzLWFjdGl2ZSB7DQogICAgICBib3JkZXIt Y29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1o aWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZp ZWxkLS11bmRlcmxpbmVkLmlzLWFjdGl2ZSB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzFh ZWJmZjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhp Z2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAub2QtVGV4dEZpZWxkLm9k LVRleHRGaWVsZC0tdW5kZXJsaW5lZC5pcy1hY3RpdmUgew0KICAgICAgICBib3JkZXItY29s b3I6ICMzNzAwNmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5vZC1U ZXh0RmllbGQtLW11bHRpbGluZSAub2QtVGV4dEZpZWxkLWZpZWxkIHsNCiAgICAgIGNvbG9y OiAjNjE2MTYxOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6 IDQwMDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4Ow0KICAgICAgbWluLWhlaWdodDogNjBw eDsNCiAgICAgIG92ZXJmbG93OiBhdXRvOw0KICAgICAgcGFkZGluZzogNnB4IDhweDsNCiAg ICAgIG1pbi13aWR0aDogMjU0cHg7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5vZC1U ZXh0RmllbGQtLXRleHRGaWVsZFVuZGVybGluZWQgew0KICAgICAgYm9yZGVyOiAwOw0KICAg ICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDc4ZDQ7DQogICAgICBkaXNwbGF5OiB0 YWJsZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgbWluLXdpZHRoOiAxODBweDsNCiAg ICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdGV4dEZpZWxkVW5kZXJs aW5lZDpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM4YThhOGE7DQogICAgfQ0KDQog ICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXRleHRGaWVsZFVuZGVybGluZWQ6YWN0 aXZlLA0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS10ZXh0RmllbGRVbmRlcmxp bmVkOmZvY3VzIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAg ICAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdGV4dEZpZWxkVW5kZXJsaW5lZCAub2Qt VGV4dEZpZWxkLWZpZWxkIHsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIGRpc3BsYXk6IHRh YmxlLWNlbGw7DQogICAgICBwYWRkaW5nLXRvcDogOHB4Ow0KICAgICAgcGFkZGluZy1ib3R0 b206IDJweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVRleHRGaWVsZC5v ZC1UZXh0RmllbGQtLXRleHRGaWVsZFVuZGVybGluZWQgLm9kLVRleHRGaWVsZC1maWVsZCB7 DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwi XSAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdGV4dEZpZWxkVW5kZXJsaW5lZCAub2Qt VGV4dEZpZWxkLWZpZWxkIHsNCiAgICAgIHRleHQtYWxpZ246IHJpZ2h0Ow0KICAgIH0NCg0K ICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS10ZXh0RmllbGRVbmRlcmxpbmVkIC5v ZC1UZXh0RmllbGQtZmllbGQ6YWN0aXZlLA0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZp ZWxkLS10ZXh0RmllbGRVbmRlcmxpbmVkIC5vZC1UZXh0RmllbGQtZmllbGQ6Zm9jdXMgew0K ICAgICAgb3V0bGluZTogMDsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRleHRG aWVsZC0tdGV4dEZpZWxkVW5kZXJsaW5lZC5pcy1kaXNhYmxlZCB7DQogICAgICBib3JkZXIt Ym90dG9tLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQub2Qt VGV4dEZpZWxkLS10ZXh0RmllbGRVbmRlcmxpbmVkLmlzLWRpc2FibGVkIC5vZC1UZXh0Rmll bGQtZmllbGQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAg ICBjb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3ggew0KICAgICAg Zm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGJveC1z aXppbmc6IGJvcmRlci1ib3g7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIG1pbi1o ZWlnaHQ6IDM2cHg7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAg Lm9kLUNoZWNrQm94IC5vZC1MYWJlbCB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAg ICBwYWRkaW5nOiAwIDAgMCAyNnB4Ow0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAg ZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu b2QtQ2hlY2tCb3ggLm9kLUxhYmVsIHsNCiAgICAgIHBhZGRpbmc6IDAgMjZweCAwIDA7DQog ICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWlucHV0IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNv bHV0ZTsNCiAgICAgIG9wYWNpdHk6IDA7DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWZp ZWxkOjpiZWZvcmUgew0KICAgICAgY29udGVudDogIiI7DQogICAgICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7DQogICAgICBib3JkZXI6IDJweCBzb2xpZCAjOWU5ZTllOw0KICAgICAgd2lk dGg6IDIwcHg7DQogICAgICBoZWlnaHQ6IDIwcHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7 DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHRyYW5zaXRpb24tcHJvcGVy dHk6IGJhY2tncm91bmQsIGJvcmRlciwgYm9yZGVyLWNvbG9yOw0KICAgICAgdHJhbnNpdGlv bi1kdXJhdGlvbjogMC4yczsNCiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBj dWJpYy1iZXppZXIoMC40LCAwLCAwLjIzLCAxKTsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tC b3gtZmllbGQ6OmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6ICJcZTczZSI7DQogICAgICBmb250 LWZhbWlseTogRmFicmljTURMMkljb25zOw0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIGZvbnQtc2l6ZTogMTNweDsN CiAgICAgIHRvcDogMDsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgbGluZS1oZWln aHQ6IDIwcHg7DQogICAgICB3aWR0aDogMjBweDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRl cjsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6 IGFjdGl2ZSkgew0KICAgICAgLm9kLUNoZWNrQm94LWZpZWxkOjphZnRlciB7DQogICAgICAg IC1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDogbm9uZTsNCiAgICAgICAgY29sb3I6ICMwMDAw MDA7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUNoZWNrQm94LWZpZWxk OjphZnRlciB7DQogICAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgIH0NCg0K ICAgIC5vZC1DaGVja0JveC1maWVsZCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBtYXJnaW4tdG9wOiA4cHg7DQogICAg ICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBvdXRsaW5lOiAwOw0KICAgICAgdmVydGlj YWwtYWxpZ246IHRvcDsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQ6Zm9jdXM6 OmJlZm9yZSwNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQ6aG92ZXI6OmJlZm9yZSB7DQogICAg ICBib3JkZXItY29sb3I6ICM4YThhOGE7DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWZp ZWxkOmZvY3VzIC5vZC1MYWJlbCwNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQ6aG92ZXIgLm9k LUxhYmVsIHsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5vZC1DaGVj a0JveC1maWVsZC5pcy1kaXNhYmxlZCB7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAg fQ0KDQogICAgLm9kLUNoZWNrQm94LWZpZWxkLmlzLWRpc2FibGVkOjpiZWZvcmUgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAgICAgIGJvcmRlci1jb2xvcjogI2M3 YzdjNzsNCiAgICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAub2QtQ2hlY2tC b3gtZmllbGQuaXMtZGlzYWJsZWQ6OmJlZm9yZSB7DQogICAgICAgIGJvcmRlci1jb2xvcjog IzBmMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhp Z2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAub2QtQ2hlY2tCb3gtZmll bGQuaXMtZGlzYWJsZWQ6OmJlZm9yZSB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzYwMDAw MDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMtZGlzYWJs ZWQgLm9kLUxhYmVsIHsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIEBt ZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAu b2QtQ2hlY2tCb3gtZmllbGQuaXMtZGlzYWJsZWQgLm9kLUxhYmVsIHsNCiAgICAgICAgY29s b3I6ICMwZjA7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1t cy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUNoZWNrQm94 LWZpZWxkLmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICAgIGNvbG9yOiAjNjAwMDAw Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1DaGVja0JveC1maWVsZC5pbi1mb2N1czo6 YmVmb3JlIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhhOGE4YTsNCiAgICB9DQoNCiAgICAu b2QtQ2hlY2tCb3gtZmllbGQuaW4tZm9jdXMuaXMtZGlzYWJsZWQ6OmJlZm9yZSB7DQogICAg ICBib3JkZXItY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWZp ZWxkLmluLWZvY3VzLmlzLWNoZWNrZWQ6OmJlZm9yZSB7DQogICAgICBib3JkZXItY29sb3I6 ICMwMDVhOWU7DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWZpZWxkLmlzLWNoZWNrZWQ6 OmJlZm9yZSB7DQogICAgICBib3JkZXI6IDEwcHggc29saWQgIzAwNzhkNDsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1DaGVja0JveC1m aWVsZC5pcy1jaGVja2VkOjpiZWZvcmUgew0KICAgICAgICBib3JkZXItY29sb3I6ICMxYWVi ZmY7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUNoZWNrQm94LWZpZWxk LmlzLWNoZWNrZWQ6OmJlZm9yZSB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzM3MDA2ZTsN CiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMtY2hlY2tlZDo6 YWZ0ZXIgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgLm9kLUNoZWNr Qm94LWZpZWxkLmlzLWNoZWNrZWQ6Zm9jdXM6OmJlZm9yZSwNCiAgICAub2QtQ2hlY2tCb3gt ZmllbGQuaXMtY2hlY2tlZDpob3Zlcjo6YmVmb3JlIHsNCiAgICAgIGJvcmRlci1jb2xvcjog IzEwNmViZTsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMtY2hlY2tlZC5p cy1kaXNhYmxlZDo6YmVmb3JlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjN2M3Yzc7 DQogICAgICBib3JkZXI6IDEwcHggc29saWQgI2M3YzdjNzsNCiAgICAgIGNvbG9yOiAjYzdj N2M3Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFz dDogYWN0aXZlKSB7DQogICAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMtY2hlY2tlZC5pcy1k aXNhYmxlZDo6YmVmb3JlIHsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMWFlYmZmOw0KICAg ICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFz dDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5vZC1DaGVja0JveC1maWVsZC5pcy1jaGVj a2VkLmlzLWRpc2FibGVkOjpiZWZvcmUgew0KICAgICAgICBib3JkZXItY29sb3I6ICMzNzAw NmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWZpZWxkLmlzLWNoZWNr ZWQuaXMtZGlzYWJsZWQ6OmFmdGVyIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0N Cg0KICAgIC5vZC1DaGVja0JveC1maWVsZC5pcy1jaGVja2VkLmlzLWRpc2FibGVkOmZvY3Vz OjpiZWZvcmUsDQogICAgLm9kLUNoZWNrQm94LWZpZWxkLmlzLWNoZWNrZWQuaXMtZGlzYWJs ZWQ6aG92ZXI6OmJlZm9yZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjN2M3Ow0K ICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkICNjN2M3Yzc7DQogICAgICBjb2xvcjogI2M3Yzdj NzsNCiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24gew0KICAgICAgZm9udC1zaXplOiAx NHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRl ci1ib3g7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIG1pbi1oZWlnaHQ6IDM2cHg7 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgLm1zLVJhZGlvQnV0 dG9uIC5tcy1MYWJlbCwNCiAgICAubXMtUmFkaW9CdXR0b24gLm9kLUxhYmVsIHsNCiAgICAg IGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIHBhZGRpbmc6IDAgMCAwIDI2cHg7DQogICAgICBj dXJzb3I6IHBvaW50ZXI7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5tcy1SYWRpb0J1dHRvbiAubXMtTGFiZWwsDQogICAg aHRtbFtkaXI9InJ0bCJdIC5tcy1SYWRpb0J1dHRvbiAub2QtTGFiZWwgew0KICAgICAgcGFk ZGluZzogMCAyNnB4IDAgMDsNCiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24taW5wdXQg ew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgb3BhY2l0eTogMDsNCiAgICB9 DQoNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQ6OmJlZm9yZSB7DQogICAgICBjb250ZW50 OiAiIjsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGJvcmRlcjogMnB4 IHNvbGlkICM5ZTllOWU7DQogICAgICB3aWR0aDogMjBweDsNCiAgICAgIGhlaWdodDogMjBw eDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQog ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94 Ow0KICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWNvbG9yOw0KICAgICAgdHJh bnNpdGlvbi1kdXJhdGlvbjogMC4yczsNCiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0 aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIzLCAxKTsNCiAgICAgIGJvcmRlci1yYWRp dXM6IDUwJTsNCiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQ6OmFmdGVyIHsN CiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgd2lkdGg6IDA7DQogICAgICBoZWlnaHQ6IDA7 DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICB0b3A6IDhweDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHRyYW5zaXRpb24t cHJvcGVydHk6IHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodDsNCiAgICAgIHRyYW5zaXRpb24t ZHVyYXRpb246IDE1MG1zOw0KICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1 YmljLWJlemllcigwLjQsIDAsIDAuMjMsIDEpOw0KICAgICAgYm94LXNpemluZzogYm9yZGVy LWJveDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAubXMtUmFkaW9CdXR0b24tZmllbGQ6 OmFmdGVyIHsNCiAgICAgIGxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu bXMtUmFkaW9CdXR0b24tZmllbGQ6OmFmdGVyIHsNCiAgICAgIHJpZ2h0OiA4cHg7DQogICAg fQ0KDQogICAgW2Rpcj0ibHRyIl0gLm1zLVJhZGlvQnV0dG9uLWZpZWxkOjphZnRlciB7DQog ICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAubXMtUmFkaW9CdXR0 b24tZmllbGQ6OmFmdGVyIHsNCiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQogICAgQG1lZGlh IHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5tcy1S YWRpb0J1dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAgICBjb2xvcjogIzBmMDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6 IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAubXMtUmFkaW9CdXR0b24tZmllbGQ6OmFmdGVy IHsNCiAgICAgICAgY29sb3I6ICM2MDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm1z LVJhZGlvQnV0dG9uLWZpZWxkIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAg ICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIG1hcmdpbi10b3A6IDhweDsNCiAgICAgIHBv c2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIG91dGxpbmU6IDA7DQogICAgICB2ZXJ0aWNhbC1h bGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZDpmb2N1czo6 YmVmb3JlLA0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZDpob3Zlcjo6YmVmb3JlIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogIzhhOGE4YTsNCiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0 b24tZmllbGQ6Zm9jdXMgLm1zLUxhYmVsLA0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZDpm b2N1cyAub2QtTGFiZWwsDQogICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkOmhvdmVyIC5tcy1M YWJlbCwNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQ6aG92ZXIgLm9kLUxhYmVsIHsNCiAg ICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVs ZC5pcy1kaXNhYmxlZCB7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgfQ0KDQogICAg Lm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlzLWRpc2FibGVkOjpiZWZvcmUgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAgICAgIGJvcmRlci1jb2xvcjogI2M3YzdjNzsN CiAgICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5k ICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAubXMtUmFkaW9CdXR0b24t ZmllbGQuaXMtZGlzYWJsZWQ6OmJlZm9yZSB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzBm MDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gt Y29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAubXMtUmFkaW9CdXR0b24tZmll bGQuaXMtZGlzYWJsZWQ6OmJlZm9yZSB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzYwMDAw MDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtZGlz YWJsZWQgLm1zLUxhYmVsLA0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pcy1kaXNhYmxl ZCAub2QtTGFiZWwgew0KICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgQG1l ZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCg0KICAgICAg Lm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlzLWRpc2FibGVkIC5tcy1MYWJlbCwNCiAgICAgIC5t cy1SYWRpb0J1dHRvbi1maWVsZC5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgICBj b2xvcjogIzBmMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAo LW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQoNCiAgICAgIC5tcy1SYWRp b0J1dHRvbi1maWVsZC5pcy1kaXNhYmxlZCAubXMtTGFiZWwsDQogICAgICAubXMtUmFkaW9C dXR0b24tZmllbGQuaXMtZGlzYWJsZWQgLm9kLUxhYmVsIHsNCiAgICAgICAgY29sb3I6ICM2 MDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlz LWRpc2FibGVkOmZvY3VzOjpiZWZvcmUsDQogICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlz LWRpc2FibGVkOmhvdmVyOjpiZWZvcmUgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjYzdjN2M3 Ow0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pbi1mb2N1czo6YmVmb3Jl IHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhhOGE4YTsNCiAgICB9DQoNCiAgICAubXMtUmFk aW9CdXR0b24tZmllbGQuaXMtY2hlY2tlZDo6YmVmb3JlLA0KICAgIC5tcy1SYWRpb0J1dHRv bi1pbnB1dDpjaGVja2VkKy5tcy1SYWRpb0J1dHRvbi1maWVsZDo6YmVmb3JlIHsNCiAgICAg IGJvcmRlcjogMnB4IHNvbGlkICMwMDc4ZDQ7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gt Y29udHJhc3Q6IGFjdGl2ZSkgew0KDQogICAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMt Y2hlY2tlZDo6YmVmb3JlLA0KICAgICAgLm1zLVJhZGlvQnV0dG9uLWlucHV0OmNoZWNrZWQr Lm1zLVJhZGlvQnV0dG9uLWZpZWxkOjpiZWZvcmUgew0KICAgICAgICBib3JkZXItY29sb3I6 ICMxYWViZmY7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1t cy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KDQogICAgICAubXMtUmFkaW9C dXR0b24tZmllbGQuaXMtY2hlY2tlZDo6YmVmb3JlLA0KICAgICAgLm1zLVJhZGlvQnV0dG9u LWlucHV0OmNoZWNrZWQrLm1zLVJhZGlvQnV0dG9uLWZpZWxkOjpiZWZvcmUgew0KICAgICAg ICBib3JkZXItY29sb3I6ICMzNzAwNmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLm1zLVJh ZGlvQnV0dG9uLWZpZWxkLmlzLWNoZWNrZWQ6OmFmdGVyLA0KICAgIC5tcy1SYWRpb0J1dHRv bi1pbnB1dDpjaGVja2VkKy5tcy1SYWRpb0J1dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIHRvcDogNXB4Ow0KICAgICAgd2lk dGg6IDEwcHg7DQogICAgICBoZWlnaHQ6IDEwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRy Il0gLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlzLWNoZWNrZWQ6OmFmdGVyLA0KICAgIFtkaXI9 Imx0ciJdIC5tcy1SYWRpb0J1dHRvbi1pbnB1dDpjaGVja2VkKy5tcy1SYWRpb0J1dHRvbi1m aWVsZDo6YWZ0ZXIgew0KICAgICAgbGVmdDogNXB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pcy1jaGVja2VkOjphZnRlciwNCiAgICBbZGly PSJydGwiXSAubXMtUmFkaW9CdXR0b24taW5wdXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24t ZmllbGQ6OmFmdGVyIHsNCiAgICAgIHJpZ2h0OiA1cHg7DQogICAgfQ0KDQogICAgQG1lZGlh IHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCg0KICAgICAgLm1z LVJhZGlvQnV0dG9uLWZpZWxkLmlzLWNoZWNrZWQ6OmFmdGVyLA0KICAgICAgLm1zLVJhZGlv QnV0dG9uLWlucHV0OmNoZWNrZWQrLm1zLVJhZGlvQnV0dG9uLWZpZWxkOjphZnRlciB7DQog ICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYWViZmY7DQogICAgICB9DQogICAgfQ0KDQog ICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0 ZSkgew0KDQogICAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtY2hlY2tlZDo6YWZ0ZXIs DQogICAgICAubXMtUmFkaW9CdXR0b24taW5wdXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24t ZmllbGQ6OmFmdGVyIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3MDA2ZTsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtY2hlY2tlZDpm b2N1czo6YmVmb3JlLA0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pcy1jaGVja2VkOmhv dmVyOjpiZWZvcmUsDQogICAgLm1zLVJhZGlvQnV0dG9uLWlucHV0OmNoZWNrZWQrLm1zLVJh ZGlvQnV0dG9uLWZpZWxkOmZvY3VzOjpiZWZvcmUsDQogICAgLm1zLVJhZGlvQnV0dG9uLWlu cHV0OmNoZWNrZWQrLm1zLVJhZGlvQnV0dG9uLWZpZWxkOmhvdmVyOjpiZWZvcmUgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRv bi1maWVsZC5pcy1jaGVja2VkLmluLWZvY3VzOjpiZWZvcmUsDQogICAgLm1zLVJhZGlvQnV0 dG9uLWlucHV0OmNoZWNrZWQrLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmluLWZvY3VzOjpiZWZv cmUgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5tcy1h Y2Nlc3NpYmxlIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogLTkw MDFweDsNCiAgICAgIGxlZnQ6IC05MDAxcHg7DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAg IHdpZHRoOiAxcHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRo ZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5MYW5ndWFnZVBpY2tlciBzZWxlY3Qgew0KICAg ICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2Fk LXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5Gb2xkZXJUeXBlRWRpdG9yLW9wdGlvbisu Rm9sZGVyVHlwZUVkaXRvci1vcHRpb24gew0KICAgICAgbWFyZ2luLXRvcDogMTBweDsNCiAg ICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1 ZSI+DQogICAgLm9kLUl0ZW1OYW1lRWRpdG9yLWlucHV0IHsNCiAgICAgIGRpc3BsYXk6IHRh YmxlLWNlbGw7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAub2QtSXRlbU5h bWVFZGl0b3ItZXh0ZW5zaW9uIHsNCiAgICAgIGRpcmVjdGlvbjogbHRyOw0KICAgICAgZGlz cGxheTogdGFibGUtY2VsbDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtSXRlbU5h bWVFZGl0b3ItZXh0ZW5zaW9uIHsNCiAgICAgIHBhZGRpbmctbGVmdDogOHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5vZC1JdGVtTmFtZUVkaXRvci1leHRlbnNpb24gew0KICAg ICAgcGFkZGluZy1yaWdodDogOHB4Ow0KICAgIH0NCg0KICAgIC5vZC1JdGVtTmFtZUVkaXRv ci0tbm9FeHRlbnNpb24gLm9kLUl0ZW1OYW1lRWRpdG9yLWlucHV0IHsNCiAgICAgIGRpc3Bs YXk6IGJsb2NrOw0KICAgICAgd2lkdGg6IGF1dG87DQogICAgfQ0KDQogICAgLm9kLUl0ZW1O YW1lRWRpdG9yLS1ub0V4dGVuc2lvbiAub2QtSXRlbU5hbWVFZGl0b3ItZXh0ZW5zaW9uIHsN CiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1OYW1lRWRpdG9y LXN0YXR1cyB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBmb250LXdlaWdodDog NDAwOw0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICB3b3JkLXdyYXA6IGJyZWFrLXdv cmQ7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1OYW1lRWRpdG9yLXN0YXR1cy0tZXJyb3Igew0K ICAgICAgY29sb3I6ICNhNDI2MmM7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1OYW1lRWRpdG9y LWlucHV0LS1lcnJvciB7DQogICAgICBib3JkZXItY29sb3I6ICNhNDI2MmMgIWltcG9ydGFu dDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxl cz0idHJ1ZSI+DQogICAgQGtleWZyYW1lcyBjb21tYW5kQmFyQm94U2hhZG93QW5pbWF0aW9u IHsNCiAgICAgIDAlIHsNCiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgICAgYmFj a2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICB9DQoNCiAgICAgIDEwMCUgew0K ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgICBib3gtc2hhZG93 OiAwIDMuMnB4IDcuMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEzMiksDQogICAgICAgICAgMCAw LjZweCAxLjhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMDgpOw0KICAgICAgfQ0KICAgIH0NCg0K ICAgIEBrZXlmcmFtZXMgY29tbWFuZEJhckRpdmlkZXJBbmltYXRpb24gew0KICAgICAgMCUg ew0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgfQ0KDQogICAgICAxMDAlIHsNCiAgICAg ICAgb3BhY2l0eTogMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuSW5mb1BhbmUtc2hhcmlu ZyB7DQogICAgICBtYXJnaW4tdG9wOiAwLjVyZW07DQogICAgfQ0KDQogICAgLkluZm9QYW5l LXNlY3Rpb25IZWFkZXJUZXh0IHsNCiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07DQogICAg fQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLU1hbmFnZUFjY2Vzc0xpbmsgew0KICAgICAg Zm9udC1zaXplOiAwLjc1cmVtOw0KICAgIH0NCg0KICAgIC5TaGFyaW5nU2VjdGlvbi1zaGFy ZUxpbmsgew0KICAgICAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtOw0KICAgICAgZm9udC1zaXpl OiAwLjc1cmVtOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuU2hhcmluZ1NlY3Rp b24tc2hhcmVMaW5rIHsNCiAgICAgIGZsb2F0OiByaWdodDsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0icnRsIl0gLlNoYXJpbmdTZWN0aW9uLXNoYXJlTGluayB7DQogICAgICBmbG9hdDog bGVmdDsNCiAgICB9DQoNCiAgICAuU2hhcmluZ1NlY3Rpb24tZW50aXR5IHsNCiAgICAgIHBh ZGRpbmc6IDAuNXJlbSAwOw0KICAgICAgZm9udC1zaXplOiAwLjc1cmVtOw0KICAgIH0NCg0K ICAgIC5TaGFyaW5nU2VjdGlvbi1lbnRpdHkgLm1zLVBlcnNvbmEgew0KICAgICAgd2hpdGUt c3BhY2U6IG5vd3JhcDsNCiAgICB9DQoNCiAgICAuU2hhcmluZ1NlY3Rpb24tZW50aXR5IC5t cy1QZXJzb25hIC5tcy1QZXJzb25hLWRldGFpbHMgew0KICAgICAgZGlzcGxheTogaW5saW5l LWJsb2NrOw0KICAgICAgbWF4LXdpZHRoOiAxMC42MjVyZW07DQogICAgICBwYWRkaW5nOiAw Ow0KICAgIH0NCg0KICAgIC5TaGFyaW5nU2VjdGlvbi1hZGRQZW9wbGUgew0KICAgICAgZm9u dC1zaXplOiAxLjEyNXJlbTsNCiAgICAgIG1pbi1oZWlnaHQ6IDMuMTI1cmVtOw0KICAgICAg bWFyZ2luLXRvcDogMC42MjVyZW07DQogICAgfQ0KDQogICAgLlNoYXJpbmdTZWN0aW9uLWFk ZFBlb3BsZS1pY29uIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAg IGZvbnQtc2l6ZTogMS4yNXJlbTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAg IHdpZHRoOiAzLjEyNXJlbTsNCiAgICAgIGhlaWdodDogMy4xMjVyZW07DQogICAgfQ0KDQog ICAgW2Rpcj0ibHRyIl0gLlNoYXJpbmdTZWN0aW9uLWFkZFBlb3BsZS1pY29uIHsNCiAgICAg IG1hcmdpbi1yaWdodDogMC42MjVyZW07DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLlNo YXJpbmdTZWN0aW9uLWFkZFBlb3BsZS1pY29uIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAwLjYy NXJlbTsNCiAgICB9DQoNCiAgICAuU2hhcmluZ1NlY3Rpb24tYWRkUGVvcGxlLWljb24gLm1z LUljb24tLVBlb3BsZUFkZCB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICB0 b3A6IDAuNzVyZW07DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLlNoYXJpbmdTZWN0aW9u LWFkZFBlb3BsZS1pY29uIC5tcy1JY29uLS1QZW9wbGVBZGQgew0KICAgICAgbGVmdDogMC45 Mzc1cmVtOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5TaGFyaW5nU2VjdGlvbi1hZGRQ ZW9wbGUtaWNvbiAubXMtSWNvbi0tUGVvcGxlQWRkIHsNCiAgICAgIHJpZ2h0OiAwLjkzNzVy ZW07DQogICAgfQ0KDQogICAgLlNoYXJpbmdTZWN0aW9uLWFkZFBlb3BsZS10ZXh0IHsNCiAg ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7 DQogICAgICBsaW5lLWhlaWdodDogMy4xMjVyZW07DQogICAgfQ0KDQogICAgLlNoYXJpbmdT ZWN0aW9uLWxpbmtzQm94IGEgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAg ICAgbWFyZ2luLXRvcDogMC4zMTI1cmVtOw0KICAgIH0NCg0KICAgIC5TaGFyaW5nU2VjdGlv bi1saW5rLA0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsLWxpbmsgew0KICAgICAgcGFkZGlu Zy10b3A6IDAuNXJlbTsNCiAgICB9DQoNCiAgICAub2QtYWxlcnQgew0KICAgICAgZGlzcGxh eTogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtYWxlcnQub2QtUGVybWlzc2lvbnNQYW5lbC1h bGVydCB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICBkaXYubXMtQ29u dGV4dHVhbE1lbnUuaXMtb3BlbiB7DQogICAgICB6LWluZGV4OiAyOTk7DQogICAgfQ0KDQog ICAgLm9kLVBlcm1pc3Npb25zUGFuZWwgew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAg b3ZlcmZsb3cteTogYXV0bzsNCiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsNCiAgICB9DQoN CiAgICAub2QtUGVybWlzc2lvbnNQYW5lbCAub2QtU2hhcmluZ0xpbmstbGlua1N3aXRjaGVy IHsNCiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsNCiAgICB9DQoNCiAgICAub2QtUGVybWlz c2lvblBpbGUtRmFjZVBpbGUgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAg ICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICB9DQoNCiAgICAub2QtUGVy bWlzc2lvblBpbGUtRmFjZVBpbGUub2QtUGVybWlzc2lvblBpbGUtVW5zaGFyZWQgew0KICAg ICAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogICAgICBmbGV4LXdyYXA6IHdyYXA7DQogICAg ICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0Ow0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9u c1BhbmVsLXNoYXJlTGluayB7DQogICAgICBsaW5lLWhlaWdodDogMS42MjVyZW07DQogICAg ICBmb250LXNpemU6IDAuNzVyZW07DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5v ZC1QZXJtaXNzaW9uc1BhbmVsLXNoYXJlTGluayB7DQogICAgICBmbG9hdDogcmlnaHQ7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1QZXJtaXNzaW9uc1BhbmVsLXNoYXJl TGluayB7DQogICAgICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lv blBpbGUtYWNjZXNzaWJsZUxhYmVsIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAgIHBhZGRpbmc6IDA7 DQogICAgICBtYXJnaW46IC0xcHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAg Y2xpcDogcmVjdCgwLCAwLCAwLCAwKTsNCiAgICAgIGJvcmRlcjogMDsNCiAgICB9DQoNCiAg ICAub2QtUGVybWlzc2lvbnNQYW5lbC1zdG9wU2hhcmluZyB7DQogICAgICBjb2xvcjogIzAw NzhkNDsNCiAgICAgIGZvbnQtc2l6ZTogMXJlbTsNCiAgICAgIGJhY2tncm91bmQ6IDAgMDsN CiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBjdXJzb3I6 IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtc3RvcFNoYXJp bmc6Zm9jdXMsDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtc3RvcFNoYXJpbmc6aG92ZXIg ew0KICAgICAgY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1QZXJtaXNzaW9u c1BhbmVsLXN0b3BTaGFyaW5nIGE6Zm9jdXMgew0KICAgICAgICBib3JkZXI6IDAuMDYyNXJl bSBzb2xpZCAjZmZmZmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4g YW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5vZC1Q ZXJtaXNzaW9uc1BhbmVsLXN0b3BTaGFyaW5nIGE6Zm9jdXMgew0KICAgICAgICBib3JkZXI6 IDAuMDYyNXJlbSBzb2xpZCAjMDAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1Q ZXJtaXNzaW9uc1BhbmVsLWVudGl0eSB7DQogICAgICBwYWRkaW5nOiAwLjVyZW0gMDsNCiAg ICAgIGZvbnQtc2l6ZTogMC43NXJlbTsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQ YW5lbC1lbnRpdHkgLm9kLVBlcnNvbmEgLm9kLVBlcnNvbmEtZGV0YWlscyB7DQogICAgICBk aXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBtYXgtd2lkdGg6IDIwMHB4Ow0KICAgICAg cGFkZGluZzogMDsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC1hZGRQZW9w bGUgew0KICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07DQogICAgICBtaW4taGVpZ2h0OiAz LjEyNXJlbTsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTsNCiAgICB9DQoNCiAg ICAub2QtUGVybWlzc2lvbnNQYW5lbC1hZGRQZW9wbGUtaWNvbiB7DQogICAgICBkaXNwbGF5 OiBpbmxpbmUtYmxvY2s7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAg ICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBmb250LXNpemU6IDEuMjVyZW07DQogICAgICBi b3JkZXItcmFkaXVzOiA1MCU7DQogICAgICB3aWR0aDogMy4xMjVyZW07DQogICAgICBoZWln aHQ6IDMuMTI1cmVtOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1QZXJtaXNzaW9u c1BhbmVsLWFkZFBlb3BsZS1pY29uIHsNCiAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07 DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVBlcm1pc3Npb25zUGFuZWwtYWRkUGVv cGxlLWljb24gew0KICAgICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtOw0KICAgIH0NCg0KICAg IC5vZC1QZXJtaXNzaW9uc1BhbmVsLWFkZFBlb3BsZS1pY29uIC5tcy1JY29uLS1QZW9wbGVB ZGQgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgdG9wOiAwLjc1cmVtOw0K ICAgICAgbGVmdDogMC45Mzc1cmVtOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1Bh bmVsLWFkZFBlb3BsZS10ZXh0IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAg ICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICBsaW5lLWhlaWdodDogMy4xMjVyZW07 DQogICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtbGlua3NCb3ggYSB7DQogICAg ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBtYXJnaW4tdG9wOiAwLjMxMjVyZW07 DQogICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtbGluayB7DQogICAgICBwYWRk aW5nLXRvcDogMC41cmVtOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsLWNv bnRhaW5lciB7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5vZC1Q ZXJtaXNzaW9uc1BhbmVsLWNvbnRhaW5lci13aXRoQ29tbWFuZGJhciB7DQogICAgICB0b3A6 IDQwcHg7DQogICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtaGVhZCB7DQogICAg ICBmb250LXNpemU6IDEuMjVyZW07DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAg bWFyZ2luLWJvdHRvbTogMC41cmVtOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1Bh bmVsLWZpbGVOYW1lIHsNCiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07DQogICAgICBjb2xv cjogIzYxNjE2MTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB0ZXh0LW92ZXJm bG93OiBlbGxpcHNpczsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICBoZWln aHQ6IDEuNTYyNXJlbTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtUGVybWlzc2lv bnNQYW5lbC1maWxlTmFtZSB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVBlcm1pc3Npb25zUGFuZWwtZmlsZU5hbWUgew0K ICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07DQogICAgfQ0KDQogICAgLm9kLVBlcm1pc3Np b25zUGFuZWwtZmlsZU5hbWUgLm9kLVBlcm1pc3Npb25zUGFuZWwtUGF0aCB7DQogICAgICBw YWRkaW5nOiAwLjE4NzVyZW07DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAg ICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9u c1BhbmVsLWZpbGVOYW1lIC5vZC1QZXJtaXNzaW9uc1BhbmVsLVBhdGggLm9kLVBlcm1pc3Np b25zUGFuZWwtUGF0aC1FbGVtZW50IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAg IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQ YW5lbC1maWxlTmFtZSAub2QtUGVybWlzc2lvbnNQYW5lbC1QYXRoIC5vZC1QZXJtaXNzaW9u c1BhbmVsLVBhdGgtRWxlbWVudDphZnRlciB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7DQogICAgICBmb250LWZhbWlseTogRmFicmljTURMMkljb25zOw0KICAgICAgZm9udC1z dHlsZTogbm9ybWFsOw0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGNvbG9yOiAj NjE2MTYxOw0KICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07DQogICAgICBmb250LXNpemU6 IDAuNXJlbTsNCiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7DQogICAgICBjb250ZW50OiAiXGU3 NmMiOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsLWZpbGVOYW1lIC5vZC1Q ZXJtaXNzaW9uc1BhbmVsLVBhdGggLm9kLVBlcm1pc3Npb25zUGFuZWwtUGF0aC1FbGVtZW50 Omxhc3QtY2hpbGQ6YWZ0ZXIgew0KICAgICAgY29udGVudDogIiI7DQogICAgICBkaXNwbGF5 OiBub25lOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtUGVybWlzc2lvbnNQ YW5lbC1QYXRoLUVsZW1lbnQ6YWZ0ZXIgew0KICAgICAgY29udGVudDogIlxlNzZiIjsNCiAg ICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC10aXRsZUJhciB7DQogICAgICBwYWRk aW5nLXRvcDogMXJlbTsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtOw0KICAgICAg Ym9yZGVyLWJvdHRvbTogc29saWQgMC4wNjI1cmVtICNlYmViZWI7DQogICAgfQ0KDQogICAg W2Rpcj0ibHRyIl0gLm9kLVBlcm1pc3Npb25zUGFuZWwtdGl0bGVCYXIgew0KICAgICAgcGFk ZGluZy1sZWZ0OiAxcmVtOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1QZXJtaXNz aW9uc1BhbmVsLXRpdGxlQmFyIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07DQogICAg fQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtcGFyZW50IHsNCiAgICAgIGhlaWdodDog MTAwJTsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC1jb250ZW50IHsNCiAg ICAgIHBhZGRpbmctdG9wOiAxNXB4Ow0KICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4Ow0KICAg ICAgcGFkZGluZy1yaWdodDogNXB4Ow0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1Bh bmVsLWxpbmtzQm94LA0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsLWxpbmtzQm94LXJvdyB7 DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICB9DQoNCiAgICAub2Qt U2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlIHsNCiAgICAgIHdpZHRoOiAyMHJlbTsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICBib3gtc2l6aW5nOiBi b3JkZXItYm94Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsNCiAgICAgIHBhZGRpbmc6 IDFyZW0gMS41cmVtOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNz aW9uc1BpbGUgLkluZm9QYW5lLXNlY3Rpb25IZWFkZXIgew0KICAgICAgY3Vyc29yOiBkZWZh dWx0Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDA7DQogICAgfQ0KDQogICAgLm9kLVNoYXJp bmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZSAub2QtTGluazpmb2N1cy12aXNpYmxlIHsNCiAg ICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5vZC1TaGFy aW5nU2VjdGlvbi1NYW5hZ2VBY2Nlc3NMaW5rLUJ1dHRvbiB7DQogICAgICBib3JkZXI6IDA7 DQogICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOw0KICAgICAgZm9udC1zaXplOiBpbmhlcml0 Ow0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAg fQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hcyB7 DQogICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOw0KICAgIH0NCg0KICAgIC5vZC1TaGFy aW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtcGVyc29uYXMgLm9kLVBlcnNvbmEgew0KICAg ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgd2lkdGg6IDJyZW07DQogICAgICBo ZWlnaHQ6IDJyZW07DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgY3Vy c29yOiBwb2ludGVyOw0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICB9DQoNCiAg ICBbZGlyPSJsdHIiXSAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNv bmFzIC5vZC1QZXJzb25hIHsNCiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTsNCiAgICB9 DQoNCiAgICBbZGlyPSJydGwiXSAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxl LXBlcnNvbmFzIC5vZC1QZXJzb25hIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtOw0K ICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtcGVyc29u YXMgLm9kLVBlcnNvbmEub2QtUGVyc29uYS0teHMgew0KICAgICAgYm9yZGVyOiAwLjA2MjVy ZW0gc29saWQgdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9u LVBlcm1pc3Npb25zUGlsZS1wZXJzb25hcyAub2QtUGVyc29uYS5vZC1QZXJzb25hLS14cyAu b2QtUGVyc29uYS1pbml0aWFscyB7DQogICAgICBmb250LXNpemU6IDFyZW07DQogICAgfQ0K DQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hcyAub2Qt UGVyc29uYS5vZC1IYXNBY2Nlc3NDb250cm9sIHsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRl cjsNCiAgICAgIHBhZGRpbmc6IDAuMzc1cmVtIDA7DQogICAgICBoZWlnaHQ6IHVuc2V0Ow0K ICAgICAgd2lkdGg6IHVuc2V0Ow0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1Q ZXJtaXNzaW9uc1BpbGUtcGVyc29uYXMgLm9kLVBlcnNvbmEub2QtUG9pbnRlciB7DQogICAg ICBjdXJzb3I6IGF1dG87DQogICAgfQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1p c3Npb25zUGlsZS1wZXJzb25hcyAub2QtUGVyc29uYS1wcmVzZW5jZSB7DQogICAgICBib3gt c2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgYm9yZGVyOiAwLjA2MjVyZW0gc29saWQgI2Zm ZmZmZjsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxl LXBlcnNvbmFzIC5vZC1QZXJzb25hVGlsZSB7DQogICAgICBvdXRsaW5lOiAwOw0KICAgIH0N Cg0KICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtcGVyc29uYXMgLm9k LVBlcnNvbmEtaW1hZ2VbZGlzYWJsZWRdIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9u c1BpbGUtYWRkRnJpZW5kIHsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgLm9kLWZvY3VzLS1lbmFibGVk IC5vZC1QZXJzb25hLS14czpmb2N1cyB7DQogICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjA2 MjVyZW0gIzYxNjE2MSBpbnNldDsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24t UGVybWlzc2lvbnNQaWxlLWFkZEZyaWVuZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj MDA3OGQ0Ow0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBoZWlnaHQ6IDEwMCU7DQog ICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQog ICAgICBmb250LXNpemU6IDEuMDYyNXJlbTsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1Nl Y3Rpb24tUGVybWlzc2lvbnNQaWxlLW51bWJlclRleHQgew0KICAgICAgZm9udC1zaXplOiAw LjYyNXJlbTsNCiAgICAgIHBhZGRpbmctdG9wOiAxcmVtOw0KICAgICAgdGV4dC1hbGlnbjog Y2VudGVyOw0KICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgICBjb2xvcjogIzAw MDAwMDsNCiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7DQogICAgfQ0KDQogICAgLm9kLVNo YXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hQm9yZGVyIHsNCiAgICAgIGJv eC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgfQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9u LVBlcm1pc3Npb25zUGlsZS1wZXJzb25hQm9yZGVyOmZvY3VzIHsNCiAgICAgIG91dGxpbmU6 IDAuMDYyNXJlbSBzb2xpZCAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2Vj dGlvbi1QZXJtaXNzaW9uc1BpbGUtcGVyc29uYUJvcmRlciAubXMtSWNvbiB7DQogICAgICBm b250LXNpemU6IDAuODc1cmVtOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1Q ZXJtaXNzaW9uc1BpbGUtcGVyc29uYUljb24gew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZl Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIGhlaWdodDogMTAw JTsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgICAgY29sb3I6ICMxNDE0MTQ7 DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgfQ0KDQogICAgLm9kLVNoYXJpbmdT ZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hSWNvbi5vZC1TaGFyaW5nU2VjdGlvbi1Q ZXJtaXNzaW9uc1BpbGUtcGVyc29uYUljb24tLW1hbnkgLm1zLUljb24gew0KICAgICAgcG9z aXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwLjI1cmVtOw0KICAgICAgdHJhbnNmb3Jt OiB0cmFuc2xhdGVYKC01MCUpOw0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgICBmb250 LXNpemU6IDAuNzVyZW07DQogICAgICBsaW5lLWhlaWdodDogbm9ybWFsOw0KICAgIH0NCg0K ICAgIFtkaXI9Imx0ciJdIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtcGVy c29uYUljb24ub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNvbmFJY29u LS1tYW55IC5tcy1JY29uIHsNCiAgICAgIGxlZnQ6IDUwJTsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNvbmFJY29u Lm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hSWNvbi0tbWFueSAu bXMtSWNvbiB7DQogICAgICByaWdodDogNTAlOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5n U2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtcGVyc29uYU1vcmUgew0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIGhl aWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lv bnNQaWxlLW1vcmVOdW1iZXIgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAg Zm9udC1zaXplOiAwLjYyNXJlbTsNCiAgICAgIHRvcDogNTAlOw0KICAgICAgdHJhbnNmb3Jt OiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICB9 DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxl LW1vcmVOdW1iZXIgew0KICAgICAgbGVmdDogNTAlOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtbW9yZU51bWJlciB7DQog ICAgICByaWdodDogNTAlOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJt aXNzaW9uc1BpbGUtZGVzY3JpcHRpb24gew0KICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJl bTsNCiAgICAgIHBhZGRpbmc6IDAuMTI1cmVtOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5n U2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtZGVzY3JpcHRpb24gLm1zLUljb24gew0KICAgICAg Zm9udC1zaXplOiAwLjc1cmVtOw0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQog ICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1kZXNjcmlwdGlvblRleHQg ew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgZm9udC1zaXplOiAwLjc1 cmVtOw0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9w Ow0KICAgICAgcGFkZGluZzogMC4xODc1cmVtOw0KICAgIH0NCg0KICAgIC5vZC1QZXJzb25h IC5vZC1QZXJzb25hLS14cyB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAg fQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hcyAu b2QtUGVyc29uYSAub2QtUGVyc29uYS1kZXRhaWxzIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7 DQogICAgfQ0KDQogICAgLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2UgLm1zLUljb24tLUNhbmNl bCB7DQogICAgICBmb250LXNpemU6IDFyZW07DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJt aXNzaW9ucy1jb21tYW5kQmFyIHsNCiAgICAgIG91dGxpbmU6IDA7DQogICAgICBtYXJnaW46 IDA7DQogICAgICBib3JkZXI6IDA7DQogICAgICB0b3A6IDA7DQogICAgICB3aWR0aDogMTAw JTsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYw Ow0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAubXMtQ29t bWFuZEJhciB7DQogICAgICBhbmltYXRpb24tbmFtZTogbXMtZmFkZUluLCBtcy1zbGlkZURv d25JbjIwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzNjdtczsNCiAgICAgIGFuaW1h dGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsN CiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgICBhbmltYXRpb24tZGVs YXk6IDAuNXM7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJl ZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7DQogICAgICAub2QtU2hvd1Blcm1pc3Np b25zLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgew0KICAgICAgICBhbmltYXRpb246IG5v bmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNzaW9ucy1jb21tYW5k QmFyIC5tcy1Db21tYW5kQmFyIC5tcy1PdmVyZmxvd1NldC1pdGVtOmZpcnN0LWNoaWxkIGJ1 dHRvbiB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgYm94LXNo YWRvdzogaW5zZXQgMCAwLjA2MjVyZW0gMCAwICMyYjg4ZDg7DQogICAgICBjb2xvcjogI2Zm ZmZmZjsNCiAgICB9DQoNCiAgICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIgLm1z LUNvbW1hbmRCYXIgLm1zLU92ZXJmbG93U2V0LWl0ZW06Zmlyc3QtY2hpbGQgYnV0dG9uIGkg ew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNz aW9ucy1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1PdmVyZmxvd1NldC1pdGVtOmZp cnN0LWNoaWxkIGJ1dHRvbjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1 YTllOw0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtU2hvd1Bl cm1pc3Npb25zLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLU92ZXJmbG93U2V0LWl0 ZW06Zmlyc3QtY2hpbGQgYnV0dG9uOmZvY3VzIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMwMDVhOWU7DQogICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjA2MjVyZW0gI2ZmZmZmZiBp bnNldDsNCiAgICB9DQoNCiAgICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIgLkNv bW1hbmRCYXIgew0KICAgICAgYW5pbWF0aW9uLW5hbWU6IG1zLWZhZGVJbiwgbXMtc2xpZGVE b3duSW4yMDsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzY3bXM7DQogICAgICBhbmlt YXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7 DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOw0KICAgICAgYW5pbWF0aW9uLWRl bGF5OiAwLjVzOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlv bjogcmVkdWNlKSB7DQogICAgICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIgLkNv bW1hbmRCYXIgew0KICAgICAgICBhbmltYXRpb246IG5vbmU7DQogICAgICB9DQogICAgfQ0K DQogICAgLm9kLVNob3dQZXJtaXNzaW9ucy1jb21tYW5kQmFyIC5Db21tYW5kQmFyIC5Db21t YW5kQmFySXRlbTpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0K ICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAuQ29tbWFuZEJh ciAuQ29tbWFuZEJhckl0ZW06Zmlyc3QtY2hpbGQgew0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogIzAwNzhkNDsNCiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMC4wNjI1cmVtIDAgMCAj MmI4OGQ4Ow0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAu Q29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW06Zmlyc3QtY2hpbGQgLkNvbW1hbmRCYXJJdGVt LWljb24gew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLVNob3dQ ZXJtaXNzaW9ucy1jb21tYW5kQmFyIC5Db21tYW5kQmFyIC5Db21tYW5kQmFySXRlbTpmaXJz dC1jaGlsZCAuQ29tbWFuZEJhckl0ZW0taWNvbiAub2QtSWNvbkdseXBoIHsNCiAgICAgIGNv bG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFu ZEJhciAuQ29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW06Zmlyc3QtY2hpbGQgLkNvbW1hbmRC YXJJdGVtLWNvbW1hbmRUZXh0IHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0K ICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAuQ29tbWFuZEJhciAuQ29tbWFu ZEJhckl0ZW06Zmlyc3QtY2hpbGQgLkNvbW1hbmRCYXJJdGVtLWxpbmtXcmFwcGVyIHsNCiAg ICAgIHBhZGRpbmctbGVmdDogMC43NXJlbTsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNzVy ZW07DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNzaW9ucy1jb21tYW5kQmFyIC5Db21t YW5kQmFyIC5Db21tYW5kQmFySXRlbTpmaXJzdC1jaGlsZDpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjMDA1YTllOw0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9 DQoNCiAgICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXIgLkNv bW1hbmRCYXJJdGVtOmZpcnN0LWNoaWxkOmhvdmVyIC5Db21tYW5kQmFySXRlbS1pY29uIHsN CiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lv bnMtY29tbWFuZEJhciAuQ29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW06Zmlyc3QtY2hpbGQ6 aG92ZXIgLkNvbW1hbmRCYXJJdGVtLWNvbW1hbmRUZXh0IHsNCiAgICAgIGNvbG9yOiAjZmZm ZmZmOw0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAuQ29t bWFuZEJhciAuQ29tbWFuZEJhckl0ZW06Zmlyc3QtY2hpbGQ6Zm9jdXMgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAub2QtU2hvd1Blcm1pc3Np b25zLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtOmZpcnN0LWNoaWxk OmZvY3VzIC5Db21tYW5kQmFySXRlbS1saW5rOmJlZm9yZSB7DQogICAgICBib3JkZXI6IDAu MDYyNXJlbSBzb2xpZCAjMDA0NTc4Ow0KICAgICAgbWFyZ2luOiAwLjEyNXJlbSAtMC41cmVt Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVz PSJ0cnVlIj4NCiAgICAub2QtU3VnZ2VzdGVkRmlsZXMtdGl0bGVCYXIgew0KICAgICAgcGFk ZGluZy1ib3R0b206IDhweDsNCiAgICB9DQoNCiAgICAub2QtU3VnZ2VzdGVkRmlsZXMtaGVh ZCB7DQogICAgICBmb250LXNpemU6IDIwcHg7DQogICAgICBmb250LXdlaWdodDogNjAwOw0K ICAgIH0NCg0KICAgIC5vZC1TdWdnZXN0ZWRGaWxlcy1kZXNjcmlwdGlvbiB7DQogICAgICBw YWRkaW5nOiA0cHggMCAxMnB4Ow0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgY29s b3I6ICM4YThhOGE7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRo ZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2Qtc2hhcmVzdXJ2 ZXktcHJldmlldyB7DQogICAgICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0icnRsIl0gLm9kLXNoYXJlc3VydmV5LXByZXZpZXcgew0KICAgICAgZmxvYXQ6IHJpZ2h0 Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1zaGFyZXN1cnZleS1wcmV2aWV3IHsN CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu b2Qtc2hhcmVzdXJ2ZXktcHJldmlldyB7DQogICAgICBtYXJnaW4tbGVmdDogMTBweDsNCiAg ICB9DQoNCiAgICAub2Qtc2hhcmVzdXJ2ZXktZGV0YWlscyB7DQogICAgICBtYXgtd2lkdGg6 IDM1MHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2Qtc2hhcmVzdXJ2ZXkt ZGV0YWlscyB7DQogICAgICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i cnRsIl0gLm9kLXNoYXJlc3VydmV5LWRldGFpbHMgew0KICAgICAgZmxvYXQ6IHJpZ2h0Ow0K ICAgIH0NCg0KICAgIC5vZC1zaGFyZXN1cnZleS1jcmVhdGUgew0KICAgICAgbWFyZ2luLXRv cDogMTBweDsNCiAgICB9DQoNCiAgICAub2Qtc2hhcmVzdXJ2ZXktdGV4dGJveCB7DQogICAg ICBwYWRkaW5nOiAxcHggNXB4IDJweCAxMHB4Ow0KICAgICAgbWFyZ2luOiAxMHB4IDA7DQog ICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAg ICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRs Il0gLm9kLXNoYXJlc3VydmV5LXRleHRib3ggew0KICAgICAgcGFkZGluZzogMXB4IDEwcHgg MnB4IDVweDsNCiAgICB9DQoNCiAgICAub2Qtc2hhcmVzdXJ2ZXktZXJyb3Igew0KICAgICAg Y29sb3I6ICNhNDI2MmM7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2Fk LXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZC1Mb2FkaW5nU3Bpbm5lciB7DQogICAg ICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgIH0NCg0KICAgIC5vZC1Mb2FkaW5nU3Bpbm5l ci1sb2FkaW5nVGV4dCB7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgIH0NCg0K ICAgIC5vZC1Mb2FkaW5nU3Bpbm5lci1sb2FkaW5nR2lmIHsNCiAgICAgIHZlcnRpY2FsLWFs aWduOiBib3R0b207DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRo ZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZC1EcmFnQW5kRHJvcEhpbnQtYm94IHsNCiAg ICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBj b2xvcjogIzYxNjE2MTsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIGJveC1z aXppbmc6IGJvcmRlci1ib3g7DQogICAgfQ0KDQogICAgLm9kLURyYWdBbmREcm9wSGludC1m aWxlIHsNCiAgICAgIGhlaWdodDogODAlOw0KICAgICAgdG9wOiA1MCU7DQogICAgICB0cmFu c2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAu b2QtRHJhZ0FuZERyb3BIaW50LWZpbGUgew0KICAgICAgbGVmdDogNTAlOw0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJydGwiXSAub2QtRHJhZ0FuZERyb3BIaW50LWZpbGUgew0KICAgICAg cmlnaHQ6IDUwJTsNCiAgICB9DQoNCiAgICAub2QtRHJhZ0FuZERyb3BIaW50LWZpbGVDb250 YWluZXIgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDc0JTsNCiAgICAg IHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoNCiAgICAub2QtRHJhZ0FuZERyb3BIaW50 LXJvYm90IHsNCiAgICAgIGhlaWdodDogMTczcHg7DQogICAgICB3aWR0aDogMTAwJTsNCiAg ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogICAgICBiYWNrZ3JvdW5kLXBv c2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDEw MCU7DQogICAgICBtYXJnaW4tdG9wOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5vZC1EcmFnQW5k RHJvcEhpbnQtYm94LS1yb2JvdCB7DQogICAgICBib3JkZXI6IDJweCBkYXNoZWQgI2ViZWJl YjsNCiAgICB9DQoNCiAgICAub2QtRHJhZ0FuZERyb3BIaW50LXJvYm90LS1ncmlkIHsNCiAg ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIGJh Y2tncm91bmQtcG9zaXRpb246IC0yNXB4Ow0KICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRv IDEwMCU7DQogICAgICB3aWR0aDogNDUlOw0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsN CiAgICB9DQoNCiAgICAub2QtRHJhZ0FuZERyb3BIaW50LS1ncmlkIHsNCiAgICAgIGhlaWdo dDogMTAwJTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZl Ow0KICAgIH0NCg0KICAgIC5vZC1EcmFnQW5kRHJvcEhpbnQtYm94LS1ncmlkIHsNCiAgICAg IGhlaWdodDogMTAwJTsNCiAgICAgIHdpZHRoOiA1NCU7DQogICAgICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5v ZC1EcmFnQW5kRHJvcEhpbnQtdGV4dC0tZ3JpZCB7DQogICAgICBwYWRkaW5nOiA0cHggNXB4 Ow0KICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg ICAgIHdpZHRoOiAxMDAlOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAg Ym94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz Ow0KICAgICAgaGVpZ2h0OiA0MCU7DQogICAgfQ0KDQogICAgLm9kLURyYWdBbmREcm9wSGlu dC5pcy1hbmltYXRpbmcgew0KICAgICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAgICAub2Qt RHJhZ0FuZERyb3BIaW50LXJvYm90QW5pbWF0aW9uLm9kLURyYWdBbmREcm9wSGludC1yb2Jv dC0tZ3JpZCB7DQogICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTA2JTsNCiAgICB9DQog IDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQog ICAgLm9kLUljb25HbHlwaC5tcy1JY29uIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAg ICBmb250LXNpemU6IDE2cHg7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICB3 aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0N Cg0KICAgIC5vZC1JY29uR2x5cGgubXMtSWNvbi5vZC1JY29uR2x5cGgtLXZpc2libGUgew0K ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgIH0NCg0KICAgIC5vZC1JY29uR2x5 cGgubXMtSWNvbi5tcy1JY29uLS1BZGQgew0KICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAg IH0NCg0KICAgIC5vZC1JY29uR2x5cGgtYmFkZ2UubXMtSWNvbiB7DQogICAgICBkaXNwbGF5 OiBub25lOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAtMC4yZW07 DQogICAgICBmb250LXNpemU6IDAuN2VtOw0KICAgICAgd2lkdGg6IDFlbTsNCiAgICAgIGhl aWdodDogMWVtOw0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgd2hpdGUtc3Bh Y2U6IG5vd3JhcDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtSWNvbkdseXBoLWJh ZGdlLm1zLUljb24gew0KICAgICAgcmlnaHQ6IC0wLjJlbTsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAub2QtSWNvbkdseXBoLWJhZGdlLm1zLUljb24gew0KICAgICAgbGVmdDogLTAu MmVtOw0KICAgIH0NCg0KICAgIC5vZC1JY29uR2x5cGgtYmFkZ2UubXMtSWNvbi5tcy1JY29u LS1TdGF0dXNFcnJvckZ1bGwgew0KICAgICAgY29sb3I6ICNhNDI2MmM7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAg ICAgbWFyZ2luLXRvcDogMDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICB9DQoNCiAg ICAub2QtSWNvbkdseXBoLWJhZGdlLm1zLUljb24ubXMtSWNvbi0tU3RhdHVzRXJyb3JGdWxs OmJlZm9yZSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICB0b3A6IC0ycHg7 DQogICAgfQ0KDQogICAgLm9kLUljb25HbHlwaC5tcy1JY29uLm9kLUljb25HbHlwaC0tYmFk Z2VkIC5vZC1JY29uR2x5cGgtYmFkZ2UubXMtSWNvbiB7DQogICAgICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1l ZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZC1VbmxvY2tDb25maXJtYXRpb24tZGlhbG9nLm9k LURpYWxvZy1tYWluIHsNCiAgICAgIHdpZHRoOiB1bnNldDsNCiAgICB9DQoNCiAgICAub2Qt VW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZyAub2QtRGlhbG9nLWFjdGlvbnNSaWdodCB7DQog ICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7DQogICAgfQ0KDQogICAgLm9kLVVubG9ja0NvbmZp cm1hdGlvbi1kaWFsb2cgLm9kLURpYWxvZy1pbm5lciB7DQogICAgICB3aWR0aDogbWluLWNv bnRlbnQ7DQogICAgfQ0KDQogICAgLm9kLVVubG9ja0NvbmZpcm1hdGlvbi1kaWFsb2cgLm9k LURpYWxvZy1jb250ZW50IHsNCiAgICAgIG1pbi13aWR0aDogMzIwcHg7DQogICAgfQ0KDQog ICAgLm9kLVVubG9ja0NvbmZpcm1hdGlvbi1kaWFsb2cgLm9kLURpYWxvZy1hY3Rpb25zTG9h ZGluZyB7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5vZC1VbmxvY2tD b25maXJtYXRpb24tZGlhbG9nQ29udGVudCB7DQogICAgICBwYWRkaW5nLXRvcDogMDsNCiAg ICB9DQoNCiAgICAub2QtVW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZ0NvbnRlbnQgLm9kLXVu bG9ja0NvbmZpcm1hdGlvbi1tZXNzYWdlIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAg ICAgIG1hcmdpbi1ib3R0b206IDE2cHg7DQogICAgfQ0KDQogICAgLm9kLVVubG9ja0NvbmZp cm1hdGlvbi1kaWFsb2dDb250ZW50IC5vZC11bmxvY2tDb25maXJtYXRpb24tdGV4dElucHV0 TGFiZWwgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZGlzcGxheTogYmxvY2s7 DQogICAgICBtYXJnaW4tYm90dG9tOiA0cHg7DQogICAgfQ0KDQogICAgLm9kLVVubG9ja0Nv bmZpcm1hdGlvbi1kaWFsb2dDb250ZW50IC5vZC11bmxvY2tDb25maXJtYXRpb24tdGV4dElu cHV0TGFiZWwgcCB7DQogICAgICBtYXJnaW46IDA7DQogICAgfQ0KDQogICAgLm9kLVVubG9j a0NvbmZpcm1hdGlvbi1kaWFsb2dDb250ZW50IC5vZC1VbmxvY2tDb25maXJtYXRpb24tc3Rh dHVzIHsNCiAgICAgIG1hcmdpbi10b3A6IDhweDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsN CiAgICB9DQoNCiAgICAub2QtVW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZ0NvbnRlbnQgLm9k LVVubG9ja0NvbmZpcm1hdGlvbi1zdGF0dXMgLm9kLVVubG9ja0NvbmZpcm1hdGlvbi1lcnJv ciB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHls ZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLUFwcFVwc2VsbCB7 DQogICAgICBtYXJnaW46IDIwcHg7DQogICAgICBwYWRkaW5nOiAyMHB4IDEycHggOHB4IDEy cHg7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA3OGQ0Ow0KICAgICAgdGV4dC1hbGln bjogY2VudGVyOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5v ZC1BcHBVcHNlbGwgLm1zLUljb24ubXMtSWNvbi0tQ2FuY2VsIHsNCiAgICAgIGhlaWdodDog MjhweDsNCiAgICAgIHdpZHRoOiAyOHB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7DQog ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBib3JkZXI6 IDA7DQogICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQog ICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLUFwcFVwc2VsbCAubXMtSWNvbi5tcy1JY29u LS1DYW5jZWwgew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0g Lm9kLUFwcFVwc2VsbCAubXMtSWNvbi5tcy1JY29uLS1DYW5jZWwgew0KICAgICAgbGVmdDog MDsNCiAgICB9DQoNCiAgICAub2QtQXBwVXBzZWxsIC5vZC1CdXR0b24gew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0N Cg0KICAgIC5sZyAub2QtQXBwVXBzZWxsLA0KICAgIC5tZCAub2QtQXBwVXBzZWxsLA0KICAg IC5zbSAub2QtQXBwVXBzZWxsIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQog ICAgLm9kLUFwcFVwc2VsbC1NZXNzYWdlIHsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsN CiAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsNCiAgICAgIC13ZWJraXQtdXNl ci1zZWxlY3Q6IG5vbmU7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICB1 c2VyLXNlbGVjdDogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtQXBwVXBzZWxsLUltYWdlIHsN CiAgICAgIG1hcmdpbjogOHB4IDA7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0 YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIEBrZXlmcmFtZXMgY29tbWFuZEJh ckJveFNoYWRvd0FuaW1hdGlvbiB7DQogICAgICAwJSB7DQogICAgICAgIGJveC1zaGFkb3c6 IG5vbmU7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAg fQ0KDQogICAgICAxMDAlIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsN CiAgICAgICAgYm94LXNoYWRvdzogMCAzLjJweCA3LjJweCAwIHJnYmEoMCwgMCwgMCwgMC4x MzIpLA0KICAgICAgICAgIDAgMC42cHggMS44cHggMCByZ2JhKDAsIDAsIDAsIDAuMTA4KTsN CiAgICAgIH0NCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGNvbW1hbmRCYXJEaXZpZGVyQW5p bWF0aW9uIHsNCiAgICAgIDAlIHsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgIH0NCg0K ICAgICAgMTAwJSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICB9DQogICAgfQ0KDQog ICAgLk9uZVVwIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7 DQogICAgICByaWdodDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAg ICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBvdXRsaW5lOiAwOw0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICAuT25lVXAuT25lVXAtLWRhcmtC YWNrZ3JvdW5kIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjFhMTk7DQogICAgfQ0K DQogICAgLk9uZVVwLWRldGFpbHNCYXIgew0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0K ICAgICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAgICAuT25lVXAtZGV0YWlsc0JhciAuQ29t bWFuZEJhckl0ZW0gew0KICAgICAgZmxleDogMCAwIGF1dG87DQogICAgfQ0KDQogICAgaHRt bFtkaXI9Imx0ciJdIC5PbmVVcC1kZXRhaWxzQmFyIC5Db21tYW5kQmFySXRlbSB7DQogICAg ICBtYXJnaW4tcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5PbmVV cC1kZXRhaWxzQmFyIC5Db21tYW5kQmFySXRlbSB7DQogICAgICBtYXJnaW4tbGVmdDogMDsN CiAgICB9DQoNCiAgICAuT25lVXAtZGV0YWlsc0JhciAuQ29tbWFuZEJhckl0ZW0gLkNvbW1h bmRCYXJJdGVtLWljb24gew0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAg Lk9uZVVwLWRldGFpbHNCYXIgLkNvbW1hbmRCYXJJdGVtIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNmNWY1ZjU7DQogICAgICBvcGFjaXR5OiAwLjk7DQogICAgfQ0KDQogICAgLk9u ZVVwLWRldGFpbHNCYXIgLkNvbW1hbmRCYXJJdGVtLmlzLXRvZ2dsZWQsDQogICAgLk9uZVVw LWRldGFpbHNCYXIgLkNvbW1hbmRCYXJJdGVtLmlzLXRvZ2dsZWQ6aG92ZXIsDQogICAgLk9u ZVVwLWRldGFpbHNCYXIgLkNvbW1hbmRCYXJJdGVtOmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNlMGUwZTA7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAgIC5P bmVVcC10b29sYmFySG9zdCB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1m bG93OiBjb2x1bW4tcmV2ZXJzZSBub3dyYXA7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNl bnRlcjsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLk9uZVVw LXRvb2xiYXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAg ICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIGhlaWdodDogNDRweDsNCiAgICAgIGRpc3BsYXk6 IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsNCiAgICAgIGp1c3RpZnktY29u dGVudDogY2VudGVyOw0KICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwOw0KICAgIH0NCg0K ICAgIC5sZyAuT25lVXAtdG9vbGJhciwNCiAgICAueGxnIC5PbmVVcC10b29sYmFyLA0KICAg IC54eGxnIC5PbmVVcC10b29sYmFyLA0KICAgIC54eHhsZyAuT25lVXAtdG9vbGJhciwNCiAg ICAueHh4eGxnIC5PbmVVcC10b29sYmFyIHsNCiAgICAgIGhlaWdodDogNDBweDsNCiAgICB9 DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICB0b3A6IC00NHB4Ow0K ICAgICAgei1pbmRleDogMjsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgIGhl aWdodDogNDRweDsNCiAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMjY3bXMgbGluZWFy LCB0b3AgMjY3bXMgbGluZWFyOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsN CiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW06aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAgICAuT25l VXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW0ub2QtQ29tbWFuZC0tV29yZCB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI1NzlhOw0KICAgICAgY29sb3I6ICNmZmZmZmY7DQog ICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1h bmQtLVdvcmQgLm1zLUljb24tLVdvcmRMb2dvOmJlZm9yZSB7DQogICAgICBjb2xvcjogI2Zm ZmZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW0u b2QtQ29tbWFuZC0tV29yZCAub2QtQ29tbWFuZEJhckl0ZW0tZG93biB7DQogICAgICBjb2xv cjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJh ckl0ZW0ub2QtQ29tbWFuZC0tRXhjZWwgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIx NzM0NjsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21t YW5kQmFyIC5Db21tYW5kQmFySXRlbS5vZC1Db21tYW5kLS1FeGNlbCAubXMtSWNvbi0tRXhj ZWxMb2dvOmJlZm9yZSB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAu T25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW0ub2QtQ29tbWFuZC0tRXhjZWwgLm9k LUNvbW1hbmRCYXJJdGVtLWRvd24gew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0K DQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1hbmQtLVBv d2VyUG9pbnQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QyNDcyNjsNCiAgICAgIGNv bG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5Db21tYW5k QmFySXRlbS5vZC1Db21tYW5kLS1Qb3dlclBvaW50IC5tcy1JY29uLS1Qb3dlclBvaW50TG9n bzpiZWZvcmUgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVw LWNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1hbmQtLVBvd2VyUG9pbnQgLm9k LUNvbW1hbmRCYXJJdGVtLWRvd24gew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0K DQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1hbmQtLVBE RiB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzkwMzA0Ow0KICAgICAgY29sb3I6ICNm ZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVt Lm9kLUNvbW1hbmQtLVBERiAubXMtSWNvbi0tUERGOmJlZm9yZSB7DQogICAgICBjb2xvcjog I2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0 ZW0ub2QtQ29tbWFuZC0tUERGIC5vZC1Db21tYW5kQmFySXRlbS1kb3duIHsNCiAgICAgIGNv bG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5Db21tYW5k QmFySXRlbS5vZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uIHsNCiAgICAgIGNvbG9yOiAjZmZm ZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5Db21tYW5kQmFySXRlbS5v ZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZm Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIHsNCiAg ICAgIHBhZGRpbmc6IDA7DQogICAgfQ0KDQogICAgLnNtIC5PbmVVcC1jb21tYW5kQmFyIHsN CiAgICAgIHRvcDogLTQ0cHg7DQogICAgICBoZWlnaHQ6IDQ0cHg7DQogICAgfQ0KDQogICAg Lk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9u ZVVwLWNvbW1hbmRCYXIgew0KICAgICAgcGFkZGluZy1yaWdodDogMnB4Ow0KICAgICAgYm9y ZGVyOiAxcHggc29saWQgI2ViZWJlYjsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1h bmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAu bXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyIHsNCiAgICAgIG1hcmdpbjog MCA0cHg7DQogICAgfQ0KDQogICAgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdE ZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1z LUJ1dHRvbi0tY29tbWFuZEJhci5oaWRlLWxhYmVsIC5tcy1CdXR0b24tbGFiZWwgew0KICAg ICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIu T25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29t bWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0 b24gew0KICAgICAgbWFyZ2luOiA2cHggMTRweCA2cHggMTBweDsNCiAgICAgIHBhZGRpbmc6 IDhweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICB9DQoNCiAgICAuT25lVXAt LWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29t bWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1h bmQtLVByaW1hcnlCdXR0b24gLm1zLUJ1dHRvbi10ZXh0Q29udGFpbmVyIHsNCiAgICAgIHBh ZGRpbmctYm90dG9tOiA0cHg7DQogICAgfQ0KDQogICAgLk9uZVVwLS1oYXNDb21tYW5kQmFy Lk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNv bW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1lZGl0UGhvdG8g ew0KICAgICAgd2lkdGg6IDgycHg7DQogICAgICBtYXJnaW46IDZweCAxNHB4IDZweCAxOHB4 Ow0KICAgICAgYmFja2dyb3VuZDogIzAwNzhkNDsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAg ICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgcGFkZGluZzogMTBweCAwOw0KICAgICAgYm9yZGVy LXJhZGl1czogNHB4Ow0KICAgIH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVV cC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5k QmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tZWRpdFBob3RvOjphZnRl ciB7DQogICAgICBvdXRsaW5lOiAjZmZmIDFweCBzb2xpZDsNCiAgICB9DQoNCiAgICAuT25l VXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAt Y29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNv bW1hbmQtLWVkaXRQZGYgew0KICAgICAgd2lkdGg6IDgwcHg7DQogICAgICBoZWlnaHQ6IGF1 dG87DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJhY2tncm91bmQ6ICMwMDc4ZDQ7 DQogICAgfQ0KDQogICAgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25l ZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRv bi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1lZGl0UGRmIC5tcy1CdXR0b24tdGV4dENvbnRh aW5lciB7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMDsNCiAgICB9DQoNCiAgICAuT25lVXAt LWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29t bWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1h bmQtLWVkaXRQZGYuaXMtZGlzYWJsZWQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAw NzhkNDsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICAgIG9wYWNpdHk6IDAu MzsNCiAgICB9DQoNCiAgICAubWQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdE ZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1z LUJ1dHRvbi0tY29tbWFuZEJhciwNCiAgICAuc20gLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9u ZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1h bmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciB7DQogICAgICBoZWlnaHQ6IGF1dG87DQog ICAgfQ0KDQogICAgLm1kIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWdu ZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0 b24tLWNvbW1hbmRCYXIgLm1zLUJ1dHRvbi1pY29uLA0KICAgIC5zbSAuT25lVXAtLWhhc0Nv bW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJh ciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyIC5tcy1CdXR0b24taWNv biB7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgfQ0KDQogICAgLk9uZVVwLS1oYXND b21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRC YXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciBpW2RhdGEtaWNvbi1u YW1lPSJNb3JlIl0gew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLk9u ZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVw LWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy1k aXNhYmxlZCBpW2RhdGEtaWNvbi1uYW1lPSJOZXh0Il0sDQogICAgLk9uZVVwLS1oYXNDb21t YW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIg Lm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy1kaXNhYmxlZCBpW2Rh dGEtaWNvbi1uYW1lPSJQcmV2aW91cyJdIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAg ICAgb3BhY2l0eTogMC4zOw0KICAgIH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhci5P bmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21t YW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tc2VwYXJhdG9yIHsN CiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtaW4td2lkdGg6 IDI5cHg7DQogICAgfQ0KDQogICAgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdE ZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1z LUJ1dHRvbi0tY29tbWFuZEJhciBpW2RhdGEtaWNvbi1uYW1lPSJTZXBhcmF0b3IiXSB7DQog ICAgICBjb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRC YXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMt Q29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLXBhZ2VDb3Vu dCB7DQogICAgICBtYXJnaW46IDAgOHB4Ow0KICAgIH0NCg0KICAgIC5PbmVVcC0taGFzQ29t bWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFy IC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tZmls ZVRpdGxlLA0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRD b21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24t LWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tcGFnZUNvdW50IHsNCiAgICAgIGNvbG9yOiAjMDAw MDAwOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFz dDogYWN0aXZlKSB7DQoNCiAgICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3 RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5t cy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tZmlsZVRpdGxlLA0KICAgICAgLk9u ZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVw LWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1D b21tYW5kLS1wYWdlQ291bnQgew0KICAgICAgICBjb2xvcjogd2luZG93dGV4dDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2ln bmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0 dG9uLS1jb21tYW5kQmFyIGlbZGF0YS1pY29uLW5hbWU9IkNhbmNlbCJdIHsNCiAgICAgIGNv bG9yOiAjNDI0MjQyOw0KICAgIH0NCg0KICAgIC5tZCAuT25lVXAtLWhhc0NvbW1hbmRCYXIu T25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29t bWFuZEJhciwNCiAgICAuc20gLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNp Z25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgew0KICAg ICAgaGVpZ2h0OiA0NHB4Ow0KICAgIH0NCg0KICAgIC5Db21tYW5kQmFyLWNlbnRlciB7DQog ICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLk9uZVVwLWFjY2Vzc2li bGVJdGVtQW5ub3VuY2VtZW50IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAgIHBhZGRpbmc6IDA7DQog ICAgICBtYXJnaW46IC0xcHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgY2xp cDogcmVjdCgwLCAwLCAwLCAwKTsNCiAgICAgIGJvcmRlcjogMDsNCiAgICB9DQoNCiAgICAu T25lVXAtY29udGVudCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0 OiAwOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmlnaHQ6IDA7 DQogICAgICB0cmFuc2l0aW9uOiB0b3AgMjY3bXMgbGluZWFyLCBsZWZ0IDM2N21zIGN1Ymlj LWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSwNCiAgICAgICAgcmlnaHQgMzY3bXMgY3ViaWMt YmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jYXJvdXNl bCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiAwOw0KICAgICAg cmlnaHQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICB6LWlu ZGV4OiAxOw0KICAgICAgdHJhbnNpdGlvbjogdG9wIDI2N21zIGxpbmVhcjsNCiAgICB9DQoN CiAgICAuc20gLk9uZVVwLS1oYXNDb21tYW5kQmFyIC5PbmVVcC1wYW5lSG9zdCB7DQogICAg ICB0b3A6IDQ0cHg7DQogICAgfQ0KDQogICAgLk9uZVVwLS1oYXNDb21tYW5kQmFyIC5tcy1C dXR0b24tLWNvbW1hbmRCYXIgLm1zLUJ1dHRvbi1tZW51SWNvbiB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJh ciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLmlzLWRpc2FibGVkIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6IGluaGVyaXQ7DQogICAgICBjb2xvcjogaW5oZXJpdDsNCiAgICB9DQoNCiAg ICAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVwLWNvbnRlbnQsDQogICAgLk9uZVVwLS1o YXNDb21tYW5kQmFyIC5PbmVVcC1wYW5lSG9zdCB7DQogICAgICB0b3A6IDQ0cHg7DQogICAg fQ0KDQogICAgLk9uZVVwLS1oYXNDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIHsNCiAg ICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgICB0b3A6IDA7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9Imx0ciJdIC5PbmVVcC0taGFzQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJh ciB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9 InJ0bCJdIC5PbmVVcC0taGFzQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciB7DQogICAg ICBwYWRkaW5nLXJpZ2h0OiAxNnB4Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1kZXRhaWxzQmFy IHsNCiAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDI2N21zLCBvcGFj aXR5IDI2N21zIGxpbmVhciwNCiAgICAgICAgYm90dG9tIDI2N21zIGxpbmVhcjsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsN CiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgei1pbmRleDogMTsNCiAgICB9DQoNCiAg ICBbZGlyPSJsdHIiXSAubGcgLk9uZVVwLS1oYXNJbmZvUGFuZSAuT25lVXAtY29udGVudCwN CiAgICBbZGlyPSJsdHIiXSAubWQgLk9uZVVwLS1oYXNJbmZvUGFuZSAuT25lVXAtY29udGVu dCwNCiAgICBbZGlyPSJsdHIiXSAueGxnIC5PbmVVcC0taGFzSW5mb1BhbmUgLk9uZVVwLWNv bnRlbnQsDQogICAgW2Rpcj0ibHRyIl0gLnh4bGcgLk9uZVVwLS1oYXNJbmZvUGFuZSAuT25l VXAtY29udGVudCwNCiAgICBbZGlyPSJsdHIiXSAueHh4bGcgLk9uZVVwLS1oYXNJbmZvUGFu ZSAuT25lVXAtY29udGVudCwNCiAgICBbZGlyPSJsdHIiXSAueHh4eGxnIC5PbmVVcC0taGFz SW5mb1BhbmUgLk9uZVVwLWNvbnRlbnQgew0KICAgICAgcmlnaHQ6IDMyMHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5sZyAuT25lVXAtLWhhc0luZm9QYW5lIC5PbmVVcC1jb250 ZW50LA0KICAgIFtkaXI9InJ0bCJdIC5tZCAuT25lVXAtLWhhc0luZm9QYW5lIC5PbmVVcC1j b250ZW50LA0KICAgIFtkaXI9InJ0bCJdIC54bGcgLk9uZVVwLS1oYXNJbmZvUGFuZSAuT25l VXAtY29udGVudCwNCiAgICBbZGlyPSJydGwiXSAueHhsZyAuT25lVXAtLWhhc0luZm9QYW5l IC5PbmVVcC1jb250ZW50LA0KICAgIFtkaXI9InJ0bCJdIC54eHhsZyAuT25lVXAtLWhhc0lu Zm9QYW5lIC5PbmVVcC1jb250ZW50LA0KICAgIFtkaXI9InJ0bCJdIC54eHh4bGcgLk9uZVVw LS1oYXNJbmZvUGFuZSAuT25lVXAtY29udGVudCB7DQogICAgICBsZWZ0OiAzMjBweDsNCiAg ICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuT25lVXAtLWhhc0luZm9QYW5lIC5PbmVVcC1wYW5l SG9zdCB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuT25l VXAtLWhhc0luZm9QYW5lIC5PbmVVcC1wYW5lSG9zdCB7DQogICAgICBsZWZ0OiAwOw0KICAg IH0NCg0KICAgIC5zbSAuT25lVXAtLWhhc0luZm9QYW5lIC5PbmVVcC1pbmZvUGFuZSwNCiAg ICAuc20gLk9uZVVwLS1oYXNJbmZvUGFuZSAuT25lVXAtcGFuZUhvc3Qgew0KICAgICAgd2lk dGg6IDEwMCU7DQogICAgfQ0KDQogICAgLk9uZVVwLS1zbGlkZVNob3dPbiAuT25lVXAtY29t bWFuZEJhciB7DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgfQ0KDQogICAgLk9u ZVVwLS1zbGlkZVNob3dPbiAuT25lVXAtY29udGVudCB7DQogICAgICB0b3A6IDA7DQogICAg fQ0KDQogICAgLk9uZVVwLS1hd2FrZSAuT25lVXAtZGV0YWlsc0JhciB7DQogICAgICB2aXNp YmlsaXR5OiBpbmhlcml0Ow0KICAgICAgb3BhY2l0eTogMTsNCiAgICAgIHRyYW5zaXRpb24t ZGVsYXk6IDBzLCAwcywgMHM7DQogICAgfQ0KDQogICAgLk9uZVVwLS1hd2FrZS5PbmVVcC0t c2xpZGVTaG93T24gLk9uZVVwLWNvbW1hbmRCYXIgew0KICAgICAgdmlzaWJpbGl0eTogaW5o ZXJpdDsNCiAgICB9DQoNCiAgICAuT25lVXAtY2FwdGlvbi1jb250YWluZXIgew0KICAgICAg ZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBqdXN0 aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsNCiAgICB9DQoNCiAgICAu T25lVXAtY2FwdGlvbiB7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIGZsZXg6IDEg MSBhdXRvOw0KICAgICAgaGVpZ2h0OiAzMHB4Ow0KICAgICAgYm9yZGVyOiAwOw0KICAgICAg cGFkZGluZzogMDsNCiAgICAgIGJhY2tncm91bmQ6IDAgMDsNCiAgICAgIHRleHQtYWxpZ246 IGNlbnRlcjsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgbWF4LXdpZHRoOiA2MDBweDsN CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjog bWlkZGxlOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQw MDsNCiAgICB9DQoNCiAgICAuT25lVXAtY2FwdGlvbi0tZWRpdGFibGUgew0KICAgICAgY3Vy c29yOiBwb2ludGVyOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jYXB0aW9uLWNsaXBwZXIgew0K ICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIG1heC13aWR0aDogNjAwcHg7DQog ICAgICBoZWlnaHQ6IDMwcHg7DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAg ICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAg ICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAg ICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0KDQogICAgLmxnIC5PbmVVcC1jYXB0aW9u LWNsaXBwZXIgew0KICAgICAgbWF4LXdpZHRoOiA1MTBweDsNCiAgICB9DQoNCiAgICAubWQg Lk9uZVVwLWNhcHRpb24tY2xpcHBlciB7DQogICAgICBtYXgtd2lkdGg6IDM0NXB4Ow0KICAg IH0NCg0KICAgIC5zbSAuT25lVXAtY2FwdGlvbi1jbGlwcGVyIHsNCiAgICAgIG1heC13aWR0 aDogMTUwcHg7DQogICAgfQ0KDQogICAgLk9uZVVwLW9wdGlvbnMgew0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAg dGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLk9uZVVwLW9w dGlvbnMgew0KICAgICAgcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu T25lVXAtb3B0aW9ucyB7DQogICAgICBsZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgLk9uZVVw LWluZm8gew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAg ICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwYWRkaW5nOiAyMHB4IDhweDsNCiAgICAgIGhl aWdodDogNDBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuT25lVXAtaW5mbyB7DQog ICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuT25lVXAtaW5mbyB7 DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5PbmVVcC1wYW5lSG9zdCB7DQogICAg ICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB3aWR0aDogMzIwcHg7DQogICAgICB0b3A6 IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAg ei1pbmRleDogMTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuT25lVXAtcGFuZUhvc3Qg ew0KICAgICAgcmlnaHQ6IC0zMjFweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuT25l VXAtcGFuZUhvc3Qgew0KICAgICAgbGVmdDogLTMyMXB4Ow0KICAgIH0NCg0KICAgIC5PbmVV cC1pbmZvUGFuZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0K ICAgICAgcmlnaHQ6IDA7DQogICAgICB3aWR0aDogMzIwcHg7DQogICAgfQ0KDQogICAgLm9k LXVzZXJTZWxlY3QtLWVuYWJsZWQgLk9uZVVwLWluZm9QYW5lIHsNCiAgICAgIC13ZWJraXQt dG91Y2gtY2FsbG91dDogdGV4dDsNCiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7 DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7DQogICAgICB1c2VyLXNlbGVjdDogdGV4 dDsNCiAgICB9DQoNCiAgICAuT25lVXAgLm9kLVBhbmVsLA0KICAgIC5PbmVVcCAub2QtUGFu ZWxPdmVybGF5IHsNCiAgICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4 dCAuT25lVXAtY29tbWFuZEJhciB7DQogICAgICB0b3A6IC00OHB4Ow0KICAgICAgaGVpZ2h0 OiA0OHB4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5zbSAuT25lVXAtY29tbWFu ZEJhciB7DQogICAgICB0b3A6IC00OHB4Ow0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgIH0N Cg0KICAgIC5pc0ZsdWVudFZOZXh0IC5zbSAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVw LXBhbmVIb3N0IHsNCiAgICAgIHRvcDogNDhweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRW TmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVwLWNvbnRlbnQsDQogICAgLmlzRmx1 ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyIC5PbmVVcC1wYW5lSG9zdCB7DQogICAg ICB0b3A6IDQ4cHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLk9uZVVwLS1oYXND b21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIHsNCiAgICAgIHRvcDogMDsNCiAgICB9DQoN CiAgICAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rl c2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjZmFmYWZhOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0t aGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21t YW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFu ZC0tUHJpbWFyeUJ1dHRvbiB7DQogICAgICBwYWRkaW5nOiAwIDhweDsNCiAgICB9DQoNCiAg ICAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2ln bmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0 dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b24gLm1zLUJ1dHRvbi10 ZXh0Q29udGFpbmVyIHsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAwOw0KICAgICAgaGVpZ2h0 OiAxNnB4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFu ZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5t cy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tZWRpdFBo b3RvIHsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQg Lk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9u ZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5v ZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uLA0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0t aGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21t YW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFu ZC0tZWRpdFBob3RvIHsNCiAgICAgIG1hcmdpbi10b3A6IDRweDsNCiAgICAgIG1hcmdpbi1i b3R0b206IDRweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0Nv bW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJh ciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVBy aW1hcnlCdXR0b246YWN0aXZlIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciwNCiAgICAuaXNG bHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29t bWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1j b21tYW5kQmFyLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b246Zm9jdXMgLm1zLUJ1dHRvbi1m bGV4Q29udGFpbmVyLA0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJh ci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1D b21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUHJpbWFyeUJ1 dHRvbjpob3ZlciAubXMtQnV0dG9uLWZsZXhDb250YWluZXIsDQogICAgLmlzRmx1ZW50Vk5l eHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIg Lk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJh ci5vZC1Db21tYW5kLS1lZGl0UGhvdG86YWN0aXZlIC5tcy1CdXR0b24tZmxleENvbnRhaW5l ciwNCiAgICAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5l d0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAu bXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLWVkaXRQaG90bzpmb2N1cyAubXMt QnV0dG9uLWZsZXhDb250YWluZXIsDQogICAgLmlzRmx1ZW50Vk5leHQgLk9uZVVwLS1oYXND b21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRC YXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1l ZGl0UGhvdG86aG92ZXIgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0taXNGb2N1 c1Zpc2libGUgLmlzRmx1ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1u ZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIg Lm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uOmZvY3Vz LA0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5pc0ZsdWVudFZOZXh0IC5PbmVV cC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29t bWFuZC0tZWRpdFBob3RvOmZvY3VzIHsNCiAgICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAg ICBvdXRsaW5lOiAwOw0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxl IC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWdu ZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0 b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUHJpbWFyeUJ1dHRvbjpmb2N1czo6YWZ0ZXIs DQogICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLmlzRmx1ZW50Vk5leHQgLk9uZVVw LS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNv bW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21t YW5kLS1lZGl0UGhvdG86Zm9jdXM6OmFmdGVyIHsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJv dHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIG91dGxp bmUtb2Zmc2V0OiAtMXB4Ow0KICAgICAgb3V0bGluZTogMnB4IHNvbGlkICMwMDAwMDA7DQog ICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVu dFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5k QmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1h bmRCYXIuaXMtZGlzYWJsZWQgaVtkYXRhLWljb24tbmFtZT0iTmV4dCJdLA0KICAgIC5pc0Zs dWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21t YW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNv bW1hbmRCYXIuaXMtZGlzYWJsZWQgaVtkYXRhLWljb24tbmFtZT0iUHJldmlvdXMiXSB7DQog ICAgICBjb2xvcjogI2JkYmRiZDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAuT25l VXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAt Y29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyIGlbZGF0 YS1pY29uLW5hbWU9IlNlcGFyYXRvciJdIHsNCiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4Ow0K ICAgICAgd2lkdGg6IDIwcHg7DQogICAgICBoZWlnaHQ6IDIwcHg7DQogICAgICBmb250LXNp emU6IDIwcHg7DQogICAgfQ0KDQogICAgLm1kIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFz Q29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5k QmFyIC5tcy1Db21tYW5kQmFyLA0KICAgIC5zbSAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhh c0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFu ZEJhciAubXMtQ29tbWFuZEJhciB7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQog ICAgLm9kLUZpbGVzLXVuYXV0aEJhbm5lciB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAg ICBoZWlnaHQ6IDUwcHg7DQogICAgfQ0KDQogICAgLm9kLUZpbGVzLW9uZVVwIHsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQog ICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICB9DQoNCiAgICAub2QtRmls ZXMtb25lVXAub2QtRmlsZXMtT25lVXAtLXNob3dVbmF1dGhCYW5uZXIgew0KICAgICAgdG9w OiA1MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1Db21tYW5kLS1leHRyYWN0IC5tcy1Db250ZXh0 dWFsTWVudS1pdGVtVGV4dDo6YWZ0ZXIgew0KICAgICAgY29udGVudDogdXJsKCJkYXRhOmlt YWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCcgdmlld0JveD0nMCAw IDEwIDEwJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcn JTNFJTNDcGF0aCBkPSdNNS41IDFDNS41IDIuMTQ5NjEgNS43Njk4NyAyLjk1OTIxIDYuMjgw MzMgMy40Njk2N0M2Ljc1MTUzIDMuOTQwODcgNy40Nzc2MSA0LjIwNzA2IDguNDkwNzIgNC4y NDUyMkw4Ljc1IDQuMjVDOS43MDgzMyA0LjI1IDkuNzQ4MjYgNS42Mjc2IDguODY5NzkgNS43 NDI0TDguNzUgNS43NUM3LjYwMDM5IDUuNzUgNi43OTA4IDYuMDE5ODcgNi4yODAzMyA2LjUz MDMzQzUuODA5MTMgNy4wMDE1MyA1LjU0Mjk0IDcuNzI3NjEgNS41MDQ3OCA4Ljc0MDcyTDUu NSA5QzUuNSAxMCA0IDEwIDQgOUM0IDcuODUwMzkgMy43MzAxNCA3LjA0MDc5IDMuMjE5Njcg Ni41MzAzM0MyLjc0ODQ3IDYuMDU5MTMgMi4wMjIzOSA1Ljc5Mjk0IDEuMDA5MjggNS43NTQ3 OEwwLjc1IDUuNzVDLTAuMjA4MzMzIDUuNzUgLTAuMjQ4MjY0IDQuMzcyNCAwLjYzMDIwOCA0 LjI1NzZMMC43NSA0LjI1QzEuODk5NjEgNC4yNSAyLjcwOTIxIDMuOTgwMTMgMy4yMTk2NyAz LjQ2OTY3QzMuNzMwMTQgMi45NTkyMSA0IDIuMTQ5NjEgNCAxQzQgMCA1LjUgMCA1LjUgMVon IGZpbGw9JyUyM0ZGQjkwMCcvJTNFJTNDL3N2ZyUzRSUwQSIpOw0KICAgICAgaGVpZ2h0OiAx MHB4Ow0KICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7DQogICAgICBkaXNwbGF5OiBpbmxpbmUt YmxvY2s7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1z dHlsZXM9InRydWUiPg0KICAgIC5vZC1PdmVybGF5SG9zdCB7DQogICAgICBwb3NpdGlvbjog YWJzb2x1dGU7DQogICAgICB6LWluZGV4OiA2MDA7DQogICAgICB0b3A6IDA7DQogICAgICBs ZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICB2aXNp YmlsaXR5OiBoaWRkZW47DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCg0KICAg IC5vZC1PdmVybGF5SG9zdC1jb250ZW50IHsNCiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7 DQogICAgfQ0KDQogICAgLm9kLU92ZXJsYXlIb3N0LW92ZXJsYXktLXBvc2l0aW9uZWQgew0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHNjcmlw dCB0eXBlPSJ0ZXh0L2h0bWwiIGlkPSJvZC10cmFuc2NsdXNpb24taG9zdC1kZWZhdWx0Ij4N CiAgICAgICAgICA8IS0ta28gd2l0aDpjdXJyZW50Q29udGV4dC0tPjwhLS1rbyB0cmFuc2Ns dXNpb25Ib3N0OiRkYXRhLS0+PCEtLS9rby0tPjwhLS0va28tLT4NCiAgPC9zY3JpcHQ+DQog IDxzY3JpcHQgdHlwZT0idGV4dC9odG1sIiBpZD0ib2QtdHJhbnNjbHVzaW9uLWhvc3QtY3Vz dG9tIj4NCiAgICAgICAgICA8IS0ta28gaG9zdDp7ZGF0YTp7Y29udGV4dHM6Y29udGV4dHN9 fS0tPjwhLS0va28tLT4NCiAgPC9zY3JpcHQ+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVk LXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLURpYWxvZ0hvc3Qgew0KICAgICAgZGlzcGxheTog bm9uZTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0 eWxlcz0idHJ1ZSI+DQogICAgLm9kLURpYWxvZ092ZXJsYXkgew0KICAgICAgZGlzcGxheTog bm9uZTsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6IHRyYW5zcGFyZW50Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9w OiA0OHB4Ow0KICAgICAgYm90dG9tOiAwOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBk aXNwbGF5OiBibG9jazsNCiAgICAgIGZvbnQtc2l6ZTogMDsNCiAgICAgIGxpbmUtaGVpZ2h0 OiAxMDB2aDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIGRpc3BsYXk6IGZs ZXg7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0 ciJdIC5vZC1EaWFsb2cgew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJy dGwiXSAub2QtRGlhbG9nIHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIC5vZC1E aWFsb2c6OmJlZm9yZSB7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAg ZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgY29udGVudDogIiI7DQogICAgICBoZWln aHQ6IDEwMCU7DQogICAgICB3aWR0aDogMDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxv ZyB7DQogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsNCiAgICAgIGJveC1zaXppbmc6 IGJvcmRlci1ib3g7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0NCg0KICAgIC5vZC1EaWFs b2ctbWFpbiB7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAgZGlzcGxh eTogaW5saW5lLWJsb2NrOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAg ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBsaW5lLWhlaWdodDogbm9ybWFs Ow0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBtaW4taGVpZ2h0OiAxMDBweDsNCiAgICAg IG91dGxpbmU6IDA7DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgICBib3gtc2hh ZG93OiAwIDI1LjZweCA1Ny42cHggMCByZ2JhKDAsIDAsIDAsIDAuMjIpLA0KICAgICAgICAw IDQuOHB4IDE0LjRweCAwIHJnYmEoMCwgMCwgMCwgMC4xOCk7DQogICAgICBib3JkZXItcmFk aXVzOiAycHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5zbSAu b2QtRGlhbG9nLW1haW4gew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAub2QtRGlhbG9nLW1haW4gew0KICAgICAgdGV4dC1hbGlnbjogbGVm dDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLURpYWxvZy1tYWluIHsNCiAg ICAgIHRleHQtYWxpZ246IHJpZ2h0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5k ICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAub2QtRGlhbG9nLW1haW4g ew0KICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggI2ZmZmZmZiBpbnNldDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6 IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAub2QtRGlhbG9nLW1haW4gew0KICAgICAgICBi b3gtc2hhZG93OiAwIDAgMCAzcHggIzAwMDAwMCBpbnNldDsNCiAgICAgIH0NCiAgICB9DQoN CiAgICAub2QtRGlhbG9nLW1haW46Zm9jdXMgew0KICAgICAgb3V0bGluZTogMDsNCiAgICB9 DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLWRpYWxvZyB7DQogICAgICBtYXJnaW46IGF1dG87 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1t YWluLS1jYWxsb3V0IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB9DQoNCiAg ICAub2QtRGlhbG9nLW1haW4tLXZpc2libGUgew0KICAgICAgdmlzaWJpbGl0eTogdmlzaWJs ZTsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLXNtIHsNCiAgICAgIHdpZHRoOiAz NjBweDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWlu LXN0eWxlLS1ibG9ja2VyIHsNCiAgICAgIHdpZHRoOiAzNDBweDsNCiAgICB9DQoNCiAgICAu b2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLXN0eWxlLS12YXVsdEJsb2NrZXIg ew0KICAgICAgd2lkdGg6IDYyMHB4Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9nLW1h aW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsLA0KICAgIC5zbSAub2QtRGlhbG9n LW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIHsNCiAgICAgIHRvcDogMDsN CiAgICAgIHdpZHRoOiBhdXRvOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAg Ym90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0K ICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVs IC5vZC1CdXR0b24sDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1h aW4tLWFsbG93UGFuZWwgLm9kLUJ1dHRvbiB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxl eDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLnNtIC5vZC1E aWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLUJ1dHRvbi0t cHJpbWFyeSwNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0t YWxsb3dQYW5lbCAub2QtQnV0dG9uLS1wcmltYXJ5IHsNCiAgICAgIGJvcmRlcjogbm9uZTsN CiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0t YWxsb3dQYW5lbCAub2QtQnV0dG9uLS1wcmltYXJ5OmRpc2FibGVkLA0KICAgIC5zbSAub2Qt RGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1CdXR0b24t LXByaW1hcnk6ZGlzYWJsZWQgew0KICAgICAgY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQog ICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwg Lm9kLUJ1dHRvbi0tcHJpbWFyeTpkaXNhYmxlZDpiZWZvcmUsDQogICAgLnNtIC5vZC1EaWFs b2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLUJ1dHRvbi0tcHJp bWFyeTpkaXNhYmxlZDpiZWZvcmUgew0KICAgICAgY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0K DQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFu ZWwgLm9kLUJ1dHRvbi0tcHJpbWFyeSAub2QtQnV0dG9uLWxhYmVsLA0KICAgIC5zbSAub2Qt RGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1CdXR0b24t LXByaW1hcnkgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAg ICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxs b3dQYW5lbC5vZC1EaWFsb2ctLWNsb3NlIC5vZC1EaWFsb2ctYnV0dG9uLm9kLURpYWxvZy1i dXR0b24tLWNsb3NlLA0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1t YWluLS1hbGxvd1BhbmVsLm9kLURpYWxvZy0tY2xvc2UgLm9kLURpYWxvZy1idXR0b24ub2Qt RGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgdG9wOiA4cHg7DQogICAgfQ0KDQogICAg Lm9kLURpYWxvZy1tYWluLS1tZCB7DQogICAgICBtYXgtd2lkdGg6IDQ4MHB4Ow0KICAgIH0N Cg0KICAgIC5vZC1EaWFsb2ctbWFpbi0tbGcgew0KICAgICAgbWF4LXdpZHRoOiA2NDBweDsN CiAgICB9DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLXhsZyB7DQogICAgICBtYXgtd2lkdGg6 IDEwMjRweDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLXh4bGcgew0KICAgICAg bWF4LXdpZHRoOiAxMzY2cHg7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1tYWluLS14eHhs ZyB7DQogICAgICBtYXgtd2lkdGg6IDE5MjBweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRW TmV4dCAub2QtRGlhbG9nLW1haW4gew0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAg ICAgYm94LXNoYWRvdzogMCA2LjRweCAxNC40cHggMCByZ2JhKDAsIDAsIDAsIDAuMTMyKSwN CiAgICAgICAgMCAxLjJweCAzLjZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMDgpOw0KICAgIH0N Cg0KICAgIC5vZC1EaWFsb2ctYnV0dG9uLm9kLURpYWxvZy1idXR0b24tLWNsb3NlIHsNCiAg ICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLnNtIC5vZC1EaWFsb2ctYnV0dG9u Lm9kLURpYWxvZy1idXR0b24tLWNsb3NlIHsNCiAgICAgIHRvcDogOHB4Ow0KICAgIH0NCg0K ICAgIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1jbG9zZSAub2QtRGlhbG9nLWJ1dHRvbi5vZC1E aWFsb2ctYnV0dG9uLS1jbG9zZSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIGJvcmRlcjogMDsN CiAgICAgIGJhY2tncm91bmQ6IDAgMDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAg IHRvcDogNXB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgbGluZS1oZWln aHQ6IDMycHg7DQogICAgICBoZWlnaHQ6IDMycHg7DQogICAgICB3aWR0aDogMzJweDsNCiAg ICAgIHBhZGRpbmc6IDA7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBb ZGlyPSJsdHIiXSAub2QtRGlhbG9nLm9kLURpYWxvZy0tY2xvc2UgLm9kLURpYWxvZy1idXR0 b24ub2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgcmlnaHQ6IDVweDsNCiAgICB9 DQoNCiAgICBbZGlyPSJydGwiXSAub2QtRGlhbG9nLm9kLURpYWxvZy0tY2xvc2UgLm9kLURp YWxvZy1idXR0b24ub2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgbGVmdDogNXB4 Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1jbG9zZSAub2QtRGlhbG9n LWJ1dHRvbi5vZC1EaWFsb2ctYnV0dG9uLS1jbG9zZTpob3ZlciB7DQogICAgICBjb2xvcjog IzI0MjQyNDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgfQ0KDQog ICAgLm9kLURpYWxvZy5vZC1EaWFsb2ctLWNsb3NlIC5vZC1EaWFsb2ctYnV0dG9uLm9kLURp YWxvZy1idXR0b24tLWNsb3NlOmFjdGl2ZSB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLm9kLURpYWxv Zy5vZC1EaWFsb2ctLWNsb3NlIC5vZC1EaWFsb2ctYnV0dG9uLm9kLURpYWxvZy1idXR0b24t LWNsb3NlIC5tcy1JY29uLm1zLUljb24tLUNhbmNlbCB7DQogICAgICBmb250LXNpemU6IDE2 cHg7DQogICAgICBjb2xvcjogaW5oZXJpdDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxv Zy5vZC1EaWFsb2ctLWNsb3NlIC5vZC1EaWFsb2ctYnV0dG9uLm9kLURpYWxvZy1idXR0b24t LWNsb3NlIHsNCiAgICAgIHRvcDogOHB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7DQog ICAgfQ0KDQogICAgLnNtIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1jbG9zZSAub2QtRGlhbG9n LWJ1dHRvbi5vZC1EaWFsb2ctYnV0dG9uLS1jbG9zZSAubXMtSWNvbi5tcy1JY29uLS1DYW5j ZWwgew0KICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ct c3ViVGV4dCB7DQogICAgICBtYXJnaW46IDAgMCAyMHB4IDA7DQogICAgICBmb250LXdlaWdo dDogMzAwOw0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLm9kLURpYWxv Zy1zdWJUZXh0Lm9kLURpYWxvZy1zdWJUZXh0LS1zIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJw eDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLXN1YlRleHQub2QtRGlhbG9nLXN1YlRleHQt LW0gew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ct c3ViVGV4dC5vZC1EaWFsb2ctc3ViVGV4dC0tbCB7DQogICAgICBmb250LXNpemU6IDE3cHg7 DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1jb250ZW50IHsNCiAgICAgIHBvc2l0aW9uOiBy ZWxhdGl2ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlh bG9nLWNvbnRlbnQgew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5vZC1E aWFsb2ctY29udGVudCAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6bm90KDpsYXN0 LWNoaWxkKSB7DQogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KICAgIH0NCg0KICAgIC5t cy1Nb2RhbE92ZXJsYXkgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3NpdGlv bjogYWJzb2x1dGU7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBsZWZ0OiAwOw0K ICAgICAgcmlnaHQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7DQogICAgfQ0K DQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsN CiAgICAgIC5tcy1Nb2RhbE92ZXJsYXkgew0KICAgICAgICBkaXNwbGF5OiBub25lOw0KICAg ICAgfQ0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctLW11bHRpbGluZSB7DQogICAgICB3aWR0 aDogOTUlOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1EaWFsb2ctYnV0dG9uLS1j bG9zZSB7DQogICAgICByaWdodDogMTRweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu b2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgbGVmdDogMTRweDsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAub2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgbGVm dDogYXV0bzsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtRGlhbG9nLWJ1dHRvbi0t Y2xvc2Ugew0KICAgICAgcmlnaHQ6IGF1dG87DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1j b250ZW50IHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAy MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5IC5tcy1Nb2RhbE92 ZXJsYXkgew0KICAgICAgYW5pbWF0aW9uLW5hbWU6IG1zLWZhZGVJbjsNCiAgICAgIGFuaW1h dGlvbi1kdXJhdGlvbjogMTY3bXM7DQogICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9u OiBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgICBhbmltYXRpb24tZmls bC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1v dGlvbjogcmVkdWNlKSB7DQogICAgICAub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheSAubXMtTW9k YWxPdmVybGF5IHsNCiAgICAgICAgYW5pbWF0aW9uOiBub25lOw0KICAgICAgfQ0KICAgIH0N Cg0KICAgIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5IC5vZC1EaWFsb2ctbWFpbiB7DQogICAg ICBhbmltYXRpb24tbmFtZTogbXMtZmFkZUluLCBtcy1zbGlkZURvd25JbjEwOw0KICAgICAg YW5pbWF0aW9uLWR1cmF0aW9uOiAxNjdtczsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVu Y3Rpb246IGN1YmljLWJlemllcigwLjEsIDAuMjUsIDAuNzUsIDAuOSk7DQogICAgICBhbmlt YXRpb24tZmlsbC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJlZmVycy1y ZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7DQogICAgICAub2QtT3ZlcmxheUhvc3Qtb3Zlcmxh eSAub2QtRGlhbG9nLW1haW4gew0KICAgICAgICBhbmltYXRpb246IG5vbmU7DQogICAgICB9 DQogICAgfQ0KDQogICAgLm9kLU92ZXJsYXlIb3N0LW92ZXJsYXkub2QtT3ZlcmxheUhvc3Qt b3ZlcmxheS0tY2xvc2VkIC5tcy1Nb2RhbE92ZXJsYXkgew0KICAgICAgYW5pbWF0aW9uLW5h bWU6IG1zLWZhZGVPdXQ7DQogICAgICBhbmltYXRpb24tZHVyYXRpb246IDE2N21zOw0KICAg ICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAw LjIsIDEpOw0KICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCiAgICB9DQoNCiAg ICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgew0KICAgICAgLm9k LU92ZXJsYXlIb3N0LW92ZXJsYXkub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS0tY2xvc2VkIC5t cy1Nb2RhbE92ZXJsYXkgew0KICAgICAgICBhbmltYXRpb246IG5vbmU7DQogICAgICB9DQog ICAgfQ0KDQogICAgLm9kLU92ZXJsYXlIb3N0LW92ZXJsYXkub2QtT3ZlcmxheUhvc3Qtb3Zl cmxheS0tY2xvc2VkIC5vZC1EaWFsb2ctbWFpbiB7DQogICAgICBhbmltYXRpb24tbmFtZTog bXMtZmFkZU91dCwgbXMtc2xpZGVVcE91dDEwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9u OiAxNjdtczsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemll cigwLjEsIDAuMjUsIDAuNzUsIDAuOSk7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBi b3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVk dWNlKSB7DQogICAgICAub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9zdC1v dmVybGF5LS1jbG9zZWQgLm9kLURpYWxvZy1tYWluIHsNCiAgICAgICAgYW5pbWF0aW9uOiBu b25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5Lm9k LU92ZXJsYXlIb3N0LW92ZXJsYXktLWNsb3NlZCAub2QtRGlhbG9nIHsNCiAgICAgIHZpc2li aWxpdHk6IGhpZGRlbjsNCiAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFy IDI2N21zOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQt c3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtTGluayB7DQogICAgICBjb2xvcjogIzAwNzhkNDsN CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsN CiAgICAgIG91dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLm9kLUxpbms6Zm9jdXMsDQogICAg Lm9kLUxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDQ1Nzg7DQogICAgfQ0KDQogICAg Lm9kLUxpbms6YWN0aXZlIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAg IC5vZC1MaW5rW2Rpc2FibGVkXSB7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgICBj b2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLWFjdGlvbnNMb2FkaW5n IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIHBhZGRpbmctYm90dG9t OiA3cHg7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOw0KICAgIH0NCg0KICAgIFtk aXI9Imx0ciJdIC5vZC1EaWFsb2ctYWN0aW9uc0xvYWRpbmcgew0KICAgICAgcGFkZGluZy1y aWdodDogNXB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1EaWFsb2ctYWN0aW9u c0xvYWRpbmcgew0KICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7DQogICAgfQ0KDQogICAgLm9k LURpYWxvZy1tYWluLS1jYWxsb3V0IC5vZC1EaWFsb2ctaW5uZXIgew0KICAgICAgcGFkZGlu ZzogMDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLWNhbGxvdXQgLm9kLURpYWxv Zy1oZWFkZXIgew0KICAgICAgcGFkZGluZzogMDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURp YWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFj dGlvbnMsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFs bG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb25zIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAg ICAgIG1hcmdpbi10b3A6IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0K ICAgICAgcGFkZGluZzogMCAxMHB4IDAgMDsNCiAgICAgIGhlaWdodDogNDRweDsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlh bG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb25zLA0KICAgIGh0bWxbZGly PSJydGwiXSAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQ YW5lbCAub2QtRGlhbG9nLWFjdGlvbnMgew0KICAgICAgcGFkZGluZzogMCAwIDAgMTBweDsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQu b2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb25zIC5vZC1EaWFs b2ctYWN0aW9uc1JpZ2h0LA0KICAgIGh0bWxbZGlyPSJsdHIiXSAuc20gLm9kLURpYWxvZy1t YWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlvbnMg Lm9kLURpYWxvZy1hY3Rpb25zUmlnaHQgew0KICAgICAgZmxvYXQ6IGxlZnQ7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxv Zy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9ucyAub2QtRGlhbG9nLWFjdGlv bnNSaWdodCwNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20u b2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb25zIC5vZC1EaWFs b2ctYWN0aW9uc1JpZ2h0IHsNCiAgICAgIGZsb2F0OiByaWdodDsNCiAgICB9DQoNCiAgICAu c20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2Qt RGlhbG9nLWFjdGlvbnMgLm1zLUljb24tLVNhdmUsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFp bi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb25zIC5t cy1JY29uLS1TYXZlIHsNCiAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICB9DQoNCiAgICAu c20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2Qt RGlhbG9nLWFjdGlvbiwNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ct bWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlvbiB7DQogICAgICBiYWNrZ3JvdW5k OiAwIDA7DQogICAgICBoZWlnaHQ6IDQ0cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0g LnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9k LURpYWxvZy1hY3Rpb24sDQogICAgW2Rpcj0ibHRyIl0gLnNtIC5vZC1EaWFsb2ctbWFpbi0t c20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb24gew0KICAg ICAgcGFkZGluZy1yaWdodDogMTZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuc20g Lm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlh bG9nLWFjdGlvbiwNCiAgICBbZGlyPSJydGwiXSAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5v ZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlvbiB7DQogICAgICBw YWRkaW5nLWxlZnQ6IDE2cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLnNtIC5vZC1E aWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1h Y3Rpb24sDQogICAgW2Rpcj0ibHRyIl0gLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlh bG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb24gew0KICAgICAgcGFkZGlu Zy1sZWZ0OiAxNnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5zbSAub2QtRGlhbG9n LW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9u LA0KICAgIFtkaXI9InJ0bCJdIC5zbSAub2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1t YWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9uIHsNCiAgICAgIHBhZGRpbmctcmln aHQ6IDE2cHg7DQogICAgfQ0KDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlh bG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb24gLm9kLUJ1dHRvbi1pY29u LA0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1Bh bmVsIC5vZC1EaWFsb2ctYWN0aW9uIC5vZC1CdXR0b24taWNvbiB7DQogICAgICBkaXNwbGF5 OiBpbmxpbmUtYmxvY2s7DQogICAgICBtYXJnaW4tdG9wOiA1cHg7DQogICAgICBtYXJnaW4t cmlnaHQ6IDZweDsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5zbSAu b2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFs b2ctYWN0aW9uIC5vZC1CdXR0b24tbGFiZWwsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0t c20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb24gLm9kLUJ1 dHRvbi1sYWJlbCB7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgZm9udC1zaXpl OiAxNHB4Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxv Zy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9uOmhvdmVyLA0KICAgIC5zbSAu b2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFs b2ctYWN0aW9uOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWVjZjk7DQog ICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy1tYWlu LS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWhlYWRlciwNCiAg ICAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAu b2QtRGlhbG9nLWhlYWRlciB7DQogICAgICBwYWRkaW5nOiA0OHB4IDE2cHggMCAxNnB4Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5v ZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWhlYWRlciwNCiAgICBodG1s W2Rpcj0icnRsIl0gLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFs bG93UGFuZWwgLm9kLURpYWxvZy1oZWFkZXIgew0KICAgICAgcGFkZGluZzogNDhweCAxNnB4 IDAgMTZweDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFs b2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWlubmVyLA0KICAgIC5zbSAub2QtRGlh bG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctaW5u ZXIgew0KICAgICAgcGFkZGluZzogMTZweDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxv Zy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtQnV0dG9uOmRpc2Fi bGVkIC5vZC1CdXR0b24taWNvbiwNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5vZC1E aWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtQnV0dG9uOmRpc2FibGVkIC5vZC1CdXR0b24t aWNvbiB7DQogICAgICBjb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAgICAuc20gLm9kLURp YWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtQnV0dG9uOmRp c2FibGVkIC5vZC1CdXR0b24tbGFiZWwsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20u b2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLUJ1dHRvbjpkaXNhYmxlZCAub2QtQnV0 dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIC5vZC1E aWFsb2cub2QtRGlhbG9nLS1jbG9zZSAub2QtRGlhbG9nLWJ1dHRvbi5vZC1EaWFsb2ctYnV0 dG9uLS1iYWNrIHsNCiAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAwOw0KICAgICAgYmFj a2dyb3VuZDogMCAwOw0KICAgICAgYm9yZGVyOiAwOw0KICAgICAgY3Vyc29yOiBwb2ludGVy Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtRGlhbG9nLm9kLURpYWxvZy0t Y2xvc2UgLm9kLURpYWxvZy1idXR0b24ub2QtRGlhbG9nLWJ1dHRvbi0tYmFjayB7DQogICAg ICBwYWRkaW5nOiA1cHggMCA1cHggMTBweDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLm9k LURpYWxvZy0tY2xvc2UgLm9kLURpYWxvZy1idXR0b24ub2QtRGlhbG9nLWJ1dHRvbi0tYmFj ayAubXMtSWNvbi5tcy1JY29uLS1CYWNrIHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAg ICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIH0NCg0KICAgIC5tcy1EaWFsb2ctYnV0dG9uLS1j bG9zZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDEycHg7DQog ICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICBjdXJz b3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm1zLURpYWxvZy1idXR0 b24tLWNsb3NlIHsNCiAgICAgIHJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRs Il0gLm1zLURpYWxvZy1idXR0b24tLWNsb3NlIHsNCiAgICAgIGxlZnQ6IDhweDsNCiAgICB9 DQoNCiAgICAubXMtRGlhbG9nLWJ1dHRvbi0tY2xvc2UgLm1zLUljb24gew0KICAgICAgZm9u dC1zaXplOiAxNnB4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctaGVhZGVyIHsNCiAgICAg IHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgYm94LXNp emluZzogYm9yZGVyLWJveDsNCiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsNCiAgICAg IHBhZGRpbmc6IDI0cHggNDBweCAwIDI0cHg7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1o ZWFkZXIgLm9kLURpYWxvZy10aXRsZSB7DQogICAgICBtYXJnaW46IDA7DQogICAgICBjb2xv cjogIzI0MjQyNDsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAgIGZvbnQtc2l6ZTog MjBweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLm9kLURpYWxv Zy1oZWFkZXIgLm9kLURpYWxvZy10aXRsZSAub2QtRGlhbG9nLXRpdGxlSWNvbjo6YWZ0ZXIg ew0KICAgICAgY29udGVudDogIiI7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLURp YWxvZy1oZWFkZXIgLm9kLURpYWxvZy10aXRsZSAub2QtRGlhbG9nLXRpdGxlSWNvbjo6YWZ0 ZXIgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5vZC1EaWFsb2ctaGVhZGVyIC5vZC1EaWFsb2ctdGl0bGUgLm9kLURpYWxvZy10aXRs ZUljb246OmFmdGVyIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4Ow0KICAgIH0NCg0KICAg IC5vZC1EaWFsb2ctaGVhZGVyIC5vZC1EaWFsb2ctdGl0bGUgLm9kLURpYWxvZy10aXRsZUlj b24gLm9kLUljb25HbHlwaCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAg ICB0b3A6IDhweDsNCiAgICAgIGZvbnQtc2l6ZTogMjhweDsNCiAgICB9DQoNCiAgICAub2Qt RGlhbG9nLWhlYWRlci5vZC1EaWFsb2ctaGVhZGVyLS1sYXJnZSB7DQogICAgICBwYWRkaW5n OiAzMHB4IDIwcHg7DQogICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLWhlYWRlci5v ZC1EaWFsb2ctaGVhZGVyLS1sYXJnZSAub2QtRGlhbG9nLXRpdGxlIHsNCiAgICAgIGZvbnQt d2VpZ2h0OiAxMDA7DQogICAgICBmb250LXNpemU6IDI4cHg7DQogICAgICBjb2xvcjogI2Zm ZmZmZjsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLWlubmVyIHsNCiAgICAgIGhlaWdodDog MTAwJTsNCiAgICAgIHBhZGRpbmc6IDE4cHggMjRweCAyNHB4Ow0KICAgIH0NCg0KICAgIC5v ZC1EaWFsb2ctYWN0aW9ucyB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICB3 aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMzJweDsNCiAgICAgIG1hcmdpbi10b3A6IDI0 cHg7DQogICAgICB6b29tOiAxOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctYWN0aW9uczo6 YWZ0ZXIsDQogICAgLm9kLURpYWxvZy1hY3Rpb25zOjpiZWZvcmUgew0KICAgICAgZGlzcGxh eTogdGFibGU7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIGxpbmUtaGVpZ2h0OiAwOw0K ICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctYWN0aW9uczo6YWZ0ZXIgew0KICAgICAgY2xlYXI6 IGJvdGg7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1hY3Rpb24gLm9kLUJ1dHRvbi1pY29u IHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1hY3Rp b24ub2QtRGlhbG9nLWFjdGlvbi0tbGluayB7DQogICAgICBib3JkZXI6IDA7DQogICAgICBj dXJzb3I6IHBvaW50ZXI7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAg Ym94LXNoYWRvdzogbm9uZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7 DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsN CiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIG91dGxpbmU6IDA7DQogICAgICBwYWRk aW5nOiAwIDAgMCA0cHg7DQogICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgfQ0KDQogICAg Lm9kLURpYWxvZy1hY3Rpb24ub2QtRGlhbG9nLWFjdGlvbi0tbGluazpmb2N1cywNCiAgICAu b2QtRGlhbG9nLWFjdGlvbi5vZC1EaWFsb2ctYWN0aW9uLS1saW5rOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctYWN0aW9uLm9kLURp YWxvZy1hY3Rpb24tLWxpbms6YWN0aXZlIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAg IH0NCg0KICAgIC5vZC1EaWFsb2ctYWN0aW9uLm9kLURpYWxvZy1hY3Rpb24tLWxpbmtbZGlz YWJsZWRdIHsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICAgIGNvbG9yOiAjOWU5ZTll Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtRGlhbG9nLWFjdGlvbi5vZC1E aWFsb2ctYWN0aW9uLS1saW5rIHsNCiAgICAgIHBhZGRpbmc6IDAgNHB4IDAgMDsNCiAgICB9 DQoNCiAgICAub2QtRGlhbG9nLWFjdGlvbi5vZC1EaWFsb2ctYWN0aW9uLS1saW5rIC5vZC1C dXR0b24tbGFiZWwgew0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGNvbG9yOiAj MDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctYWN0aW9uLm9kLURpYWxvZy1hY3Rp b24tLWxpbms6aG92ZXIgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzAwNDU3 ODsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy1hY3Rpb24gLm9kLUJ1dHRvbi1sYWJl bCB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0 ciJdIC5vZC1EaWFsb2ctYWN0aW9uc1JpZ2h0IHsNCiAgICAgIGZsb2F0OiByaWdodDsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLURpYWxvZy1hY3Rpb25zUmlnaHQgew0K ICAgICAgZmxvYXQ6IGxlZnQ7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLURpYWxv Zy1hY3Rpb25zUmlnaHQgLm9kLURpYWxvZy1hY3Rpb246bm90KDpsYXN0LWNoaWxkKSB7DQog ICAgICBtYXJnaW4tcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2Qt RGlhbG9nLWFjdGlvbnNSaWdodCAub2QtRGlhbG9nLWFjdGlvbjpub3QoOmxhc3QtY2hpbGQp IHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0 ciJdIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1sZ0hlYWRlciAub2QtRGlhbG9nLWFjdGlvbnNS aWdodCB7DQogICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0 bCJdIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1sZ0hlYWRlciAub2QtRGlhbG9nLWFjdGlvbnNS aWdodCB7DQogICAgICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAu b2QtRGlhbG9nLm9kLURpYWxvZy0tbGdIZWFkZXIgLm9kLURpYWxvZy1hY3Rpb25zUmlnaHQg Lm9kLURpYWxvZy1hY3Rpb246bm90KDpsYXN0LWNoaWxkKSB7DQogICAgICBtYXJnaW4tcmln aHQ6IDE1cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLURpYWxvZy5vZC1EaWFs b2ctLWxnSGVhZGVyIC5vZC1EaWFsb2ctYWN0aW9uc1JpZ2h0IC5vZC1EaWFsb2ctYWN0aW9u Om5vdCg6bGFzdC1jaGlsZCkgew0KICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7DQogICAgfQ0K ICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0K ICAgIEBrZXlmcmFtZXMgY29tbWFuZEJhckJveFNoYWRvd0FuaW1hdGlvbiB7DQogICAgICAw JSB7DQogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgICAgIGJhY2tncm91bmQtY29s b3I6IHRyYW5zcGFyZW50Ow0KICAgICAgfQ0KDQogICAgICAxMDAlIHsNCiAgICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgICAgYm94LXNoYWRvdzogMCAzLjJweCA3 LjJweCAwIHJnYmEoMCwgMCwgMCwgMC4xMzIpLA0KICAgICAgICAgIDAgMC42cHggMS44cHgg MCByZ2JhKDAsIDAsIDAsIDAuMTA4KTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAa2V5ZnJh bWVzIGNvbW1hbmRCYXJEaXZpZGVyQW5pbWF0aW9uIHsNCiAgICAgIDAlIHsNCiAgICAgICAg b3BhY2l0eTogMTsNCiAgICAgIH0NCg0KICAgICAgMTAwJSB7DQogICAgICAgIG9wYWNpdHk6 IDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLVBhbmVsSG9zdCB7DQogICAgICBkaXNw bGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5TUFBhZ2VDaHJvbWUgLm9kLVBhbmVsIHsNCiAg ICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwgew0KICAgICAgb3V0bGluZTog MXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAg ICAgdG9wOiA0OHB4Ow0KICAgICAgYm90dG9tOiAwOw0KICAgICAgd2lkdGg6IDEwMCU7DQog ICAgICBtYXgtd2lkdGg6IDEwMCU7DQogICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOw0KICAg ICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAu M3MgZWFzZS1vdXQ7DQogICAgICBib3gtc2hhZG93OiAtMzBweCAwIDMwcHggLTMwcHggcmdi YSgwLCAwLCAwLCAwLjQpOw0KICAgICAgYm94LXNoYWRvdzogMCAyNS42cHggNTcuNnB4IDAg cmdiYSgwLCAwLCAwLCAwLjIyKSwNCiAgICAgICAgMCA0LjhweCAxNC40cHggMCByZ2JhKDAs IDAsIDAsIDAuMTgpOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1QYW5lbCB7DQog ICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUGFuZWwgew0K ICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwub2QtUGFuZWwtLXJlYWN0 U3VpdGVOYXYgew0KICAgICAgdG9wOiA0OHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJy dGwiXSAub2QtUGFuZWwgew0KICAgICAgYm94LXNoYWRvdzogMzBweCAwIDMwcHggLTMwcHgg cmdiYSgwLCAwLCAwLCAwLjQpOw0KICAgIH0NCg0KICAgIC5vZC1CYXNlUGFnZS0tbm9TdWl0 ZU5hdiAub2QtUGFuZWwgew0KICAgICAgdG9wOiAwOw0KICAgIH0NCg0KICAgIC5vZC1QYW5l bC5vZC1QYW5lbC0tc20gew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAgLmxn IC5vZC1QYW5lbC5vZC1QYW5lbC0tc20sDQogICAgLm1kIC5vZC1QYW5lbC5vZC1QYW5lbC0t c20sDQogICAgLnhsZyAub2QtUGFuZWwub2QtUGFuZWwtLXNtLA0KICAgIC54eGxnIC5vZC1Q YW5lbC5vZC1QYW5lbC0tc20sDQogICAgLnh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tc20s DQogICAgLnh4eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLXNtIHsNCiAgICAgIHdpZHRoOiAz NDBweDsNCiAgICB9DQoNCiAgICAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICAu bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgLnhsZyAub2QtUGFuZWwub2QtUGFu ZWwtLWxnLA0KICAgIC54bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgLnh4bGcg Lm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICAueHhsZyAub2QtUGFuZWwub2QtUGFuZWwt LXhsZywNCiAgICAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICAueHh4bGcg Lm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgLnh4eHhsZyAub2QtUGFuZWwub2QtUGFu ZWwtLWxnLA0KICAgIC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcgew0KICAgICAg d2lkdGg6IGF1dG87DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmxnIC5vZC1QYW5lbC5v ZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0ibHRyIl0gLmxnIC5vZC1QYW5lbC5vZC1QYW5lbC0t eGxnLA0KICAgIFtkaXI9Imx0ciJdIC54bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAg ICBbZGlyPSJsdHIiXSAueGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIFtkaXI9 Imx0ciJdIC54eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0ibHRyIl0g Lnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxn IC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxnIC5vZC1Q YW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIFtkaXI9Imx0ciJdIC54eHh4bGcgLm9kLVBhbmVs Lm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJsdHIiXSAueHh4eGxnIC5vZC1QYW5lbC5vZC1Q YW5lbC0teGxnIHsNCiAgICAgIGxlZnQ6IDQ4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRs Il0gLmxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0icnRsIl0gLmxnIC5v ZC1QYW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIFtkaXI9InJ0bCJdIC54bGcgLm9kLVBhbmVs Lm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJydGwiXSAueGxnIC5vZC1QYW5lbC5vZC1QYW5l bC0teGxnLA0KICAgIFtkaXI9InJ0bCJdIC54eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcs DQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAg W2Rpcj0icnRsIl0gLnh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0i cnRsIl0gLnh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIFtkaXI9InJ0bCJd IC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJydGwiXSAueHh4 eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0teGxnIHsNCiAgICAgIHJpZ2h0OiA0OHB4Ow0KICAg IH0NCg0KICAgIC5sZyAub2QtUGFuZWwub2QtUGFuZWwtLW1kLA0KICAgIC54bGcgLm9kLVBh bmVsLm9kLVBhbmVsLS1tZCwNCiAgICAueHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLW1kLA0K ICAgIC54eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLW1kLA0KICAgIC54eHh4bGcgLm9kLVBh bmVsLm9kLVBhbmVsLS1tZCB7DQogICAgICB3aWR0aDogNjQzcHg7DQogICAgfQ0KDQogICAg W2Rpcj0ibHRyIl0gLmxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQsDQogICAgW2Rpcj0ibHRy Il0gLnhsZyAub2QtUGFuZWwub2QtUGFuZWwtLW1kLA0KICAgIFtkaXI9Imx0ciJdIC54eGxn IC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxnIC5vZC1Q YW5lbC5vZC1QYW5lbC0tbWQsDQogICAgW2Rpcj0ibHRyIl0gLnh4eHhsZyAub2QtUGFuZWwu b2QtUGFuZWwtLW1kIHsNCiAgICAgIGxlZnQ6IGF1dG87DQogICAgfQ0KDQogICAgW2Rpcj0i cnRsIl0gLmxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQsDQogICAgW2Rpcj0icnRsIl0gLnhs ZyAub2QtUGFuZWwub2QtUGFuZWwtLW1kLA0KICAgIFtkaXI9InJ0bCJdIC54eGxnIC5vZC1Q YW5lbC5vZC1QYW5lbC0tbWQsDQogICAgW2Rpcj0icnRsIl0gLnh4eGxnIC5vZC1QYW5lbC5v ZC1QYW5lbC0tbWQsDQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAub2QtUGFuZWwub2QtUGFu ZWwtLW1kIHsNCiAgICAgIHJpZ2h0OiBhdXRvOw0KICAgIH0NCg0KICAgIC5sZyAub2QtUGFu ZWwub2QtcGFuZWwtbWQtbGlzdGZvcm0sDQogICAgLnhsZyAub2QtUGFuZWwub2QtcGFuZWwt bWQtbGlzdGZvcm0sDQogICAgLnh4bGcgLm9kLVBhbmVsLm9kLXBhbmVsLW1kLWxpc3Rmb3Jt LA0KICAgIC54eHhsZyAub2QtUGFuZWwub2QtcGFuZWwtbWQtbGlzdGZvcm0sDQogICAgLnh4 eHhsZyAub2QtUGFuZWwub2QtcGFuZWwtbWQtbGlzdGZvcm0gew0KICAgICAgd2lkdGg6IDgw MHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5sZyAub2QtUGFuZWwub2QtcGFuZWwt bWQtbGlzdGZvcm0sDQogICAgW2Rpcj0ibHRyIl0gLnhsZyAub2QtUGFuZWwub2QtcGFuZWwt bWQtbGlzdGZvcm0sDQogICAgW2Rpcj0ibHRyIl0gLnh4bGcgLm9kLVBhbmVsLm9kLXBhbmVs LW1kLWxpc3Rmb3JtLA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtUGFuZWwub2QtcGFu ZWwtbWQtbGlzdGZvcm0sDQogICAgW2Rpcj0ibHRyIl0gLnh4eHhsZyAub2QtUGFuZWwub2Qt cGFuZWwtbWQtbGlzdGZvcm0gew0KICAgICAgbGVmdDogYXV0bzsNCiAgICB9DQoNCiAgICBb ZGlyPSJydGwiXSAubGcgLm9kLVBhbmVsLm9kLXBhbmVsLW1kLWxpc3Rmb3JtLA0KICAgIFtk aXI9InJ0bCJdIC54bGcgLm9kLVBhbmVsLm9kLXBhbmVsLW1kLWxpc3Rmb3JtLA0KICAgIFtk aXI9InJ0bCJdIC54eGxnIC5vZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSwNCiAgICBb ZGlyPSJydGwiXSAueHh4bGcgLm9kLVBhbmVsLm9kLXBhbmVsLW1kLWxpc3Rmb3JtLA0KICAg IFtkaXI9InJ0bCJdIC54eHh4bGcgLm9kLVBhbmVsLm9kLXBhbmVsLW1kLWxpc3Rmb3JtIHsN CiAgICAgIHJpZ2h0OiBhdXRvOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC54eGxnIC5v ZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxnIC5vZC1QYW5l bC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0ibHRyIl0gLnh4eHhsZyAub2QtUGFuZWwub2Qt UGFuZWwtLWxnIHsNCiAgICAgIGxlZnQ6IDQyOHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC54eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0icnRsIl0gLnh4 eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAu b2QtUGFuZWwub2QtUGFuZWwtLWxnIHsNCiAgICAgIHJpZ2h0OiA0MjhweDsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBb ZGlyPSJsdHIiXSAueHh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcgew0KICAgICAgbGVm dDogOTgwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLnh4eGxnIC5vZC1QYW5lbC5v ZC1QYW5lbC0tbGcsDQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAub2QtUGFuZWwub2QtUGFu ZWwtLWxnIHsNCiAgICAgIHJpZ2h0OiA5ODBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAueHh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcgew0KICAgICAgbGVmdDogMTYyMHB4 Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVs LS1sZyB7DQogICAgICByaWdodDogMTYyMHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC54eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIFtkaXI9Imx0ciJdIC54eHhs ZyAub2QtUGFuZWwub2QtUGFuZWwtLXhsZywNCiAgICBbZGlyPSJsdHIiXSAueHh4eGxnIC5v ZC1QYW5lbC5vZC1QYW5lbC0teGxnIHsNCiAgICAgIGxlZnQ6IDE3NnB4Ow0KICAgIH0NCg0K ICAgIFtkaXI9InJ0bCJdIC54eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIFtk aXI9InJ0bCJdIC54eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLXhsZywNCiAgICBbZGlyPSJy dGwiXSAueHh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0teGxnIHsNCiAgICAgIHJpZ2h0OiAx NzZweDsNCiAgICB9DQoNCiAgICAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1mdWxsU2NyZWVu LA0KICAgIC5tZCAub2QtUGFuZWwub2QtUGFuZWwtLWZ1bGxTY3JlZW4sDQogICAgLnhsZyAu b2QtUGFuZWwub2QtUGFuZWwtLWZ1bGxTY3JlZW4sDQogICAgLnh4bGcgLm9kLVBhbmVsLm9k LVBhbmVsLS1mdWxsU2NyZWVuLA0KICAgIC54eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLWZ1 bGxTY3JlZW4sDQogICAgLnh4eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLWZ1bGxTY3JlZW4g ew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAgLnNtIC5vZC1QYW5lbC5vZC1Q YW5lbC0tbGlnaHREaXNtaXNzIHsNCiAgICAgIHdpZHRoOiAyNzJweDsNCiAgICB9DQoNCiAg ICAub2QtUGFuZWwtLUZ1bGxQYWdlUGFuZWwgew0KICAgICAgdG9wOiAwOw0KICAgICAgd2lk dGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLm9kLVBhbmVs LS1oYXNQYWRkaW5nIHsNCiAgICAgIHBhZGRpbmc6IDc0cHggMTZweCAyMHB4Ow0KICAgIH0N Cg0KICAgIC5sZyAub2QtUGFuZWwtLWhhc1BhZGRpbmcsDQogICAgLnhsZyAub2QtUGFuZWwt LWhhc1BhZGRpbmcsDQogICAgLnh4bGcgLm9kLVBhbmVsLS1oYXNQYWRkaW5nLA0KICAgIC54 eHhsZyAub2QtUGFuZWwtLWhhc1BhZGRpbmcsDQogICAgLnh4eHhsZyAub2QtUGFuZWwtLWhh c1BhZGRpbmcgew0KICAgICAgcGFkZGluZzogNzRweCAyNHB4IDIwcHg7DQogICAgfQ0KDQog ICAgLnhsZyAub2QtUGFuZWwtLWhhc1BhZGRpbmcsDQogICAgLnh4bGcgLm9kLVBhbmVsLS1o YXNQYWRkaW5nLA0KICAgIC54eHhsZyAub2QtUGFuZWwtLWhhc1BhZGRpbmcsDQogICAgLnh4 eHhsZyAub2QtUGFuZWwtLWhhc1BhZGRpbmcgew0KICAgICAgcGFkZGluZy10b3A6IDc0cHg7 DQogICAgfQ0KDQogICAgLnh4bGcgLm9kLVBhbmVsLS1oYXNQYWRkaW5nLA0KICAgIC54eHhs ZyAub2QtUGFuZWwtLWhhc1BhZGRpbmcsDQogICAgLnh4eHhsZyAub2QtUGFuZWwtLWhhc1Bh ZGRpbmcgew0KICAgICAgcGFkZGluZzogNzRweCAyNHB4IDIwcHg7DQogICAgfQ0KDQogICAg Lm9kLVBhbmVsLS1hdXRvU2Nyb2xsIHsNCiAgICAgIG92ZXJmbG93OiBhdXRvOw0KICAgIH0N Cg0KICAgIC5vZC1QYW5lbC0taGlkZGVuU2Nyb2xsIHsNCiAgICAgIG92ZXJmbG93OiBoaWRk ZW47DQogICAgfQ0KDQogICAgLm9kLVBhbmVsLS1hbHdheXNTY3JvbGwgew0KICAgICAgb3Zl cmZsb3cteTogc2Nyb2xsOw0KICAgIH0NCg0KICAgIC5vZC1QYW5lbC10aXRsZSB7DQogICAg ICBtYXJnaW4tYm90dG9tOiAxOXB4Ow0KICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgICAg Zm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIG1heC13aWR0aDogMjQwcHg7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1QYW5lbC10aXRsZSB7DQogICAgICBtYXJnaW4tcmln aHQ6IDI2cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1QYW5lbC10aXRs ZSB7DQogICAgICBtYXJnaW4tbGVmdDogMjZweDsNCiAgICB9DQoNCiAgICAubGcgLm9kLVBh bmVsLXRpdGxlLA0KICAgIC5tZCAub2QtUGFuZWwtdGl0bGUsDQogICAgLnNtIC5vZC1QYW5l bC10aXRsZSB7DQogICAgICBsaW5lLWhlaWdodDogbm9ybWFsOw0KICAgIH0NCg0KICAgIC5v ZC1QYW5lbC0taGlkZGVuIHsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICB9DQoN CiAgICAub2QtUGFuZWwtY29udGVudC0tdGl0bGVGaWxsIHsNCiAgICAgIHdpZHRoOiAxMDAl Ow0KICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0OHB4IC0gOHB4KTsNCiAgICB9DQoNCiAg ICAub2QtUGFuZWwtY29udGVudC0tbm9UaXRsZUZpbGwgew0KICAgICAgd2lkdGg6IDEwMCU7 DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLm9kLVBhbmVsLWJ1dHRvbi0t Y2xvc2Ugew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgb3V0bGluZTogMDsN CiAgICAgIG1hcmdpbjogMDsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIGJhY2tncm91bmQ6 IDAgMDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGhlaWdodDogMzJweDsNCiAg ICAgIHdpZHRoOiAzMnB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDMycHg7DQogICAgICBwYWRk aW5nOiAwOw0KICAgICAgdG9wOiAxNnB4Ow0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAg ICBib3JkZXItcmFkaXVzOiAycHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLVBh bmVsLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgcmlnaHQ6IDE2cHg7DQogICAgfQ0KDQogICAg W2Rpcj0icnRsIl0gLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgbGVmdDogMTZw eDsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZTpob3ZlciB7DQogICAg ICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQog ICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2U6aG92 ZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLVBhbmVsLWJ1 dHRvbi0tY2xvc2U6YWN0aXZlIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwtYnV0dG9u LS1jbG9zZSAubXMtSWNvbi0tQ2FuY2VsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAg ICAgIG1hcmdpbi10b3A6IDA7DQogICAgICBjb2xvcjogaW5oZXJpdDsNCiAgICB9DQoNCiAg ICAubWQgLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2UgLm1zLUljb24tLUNhbmNlbCwNCiAgICAu c20gLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2UgLm1zLUljb24tLUNhbmNlbCB7DQogICAgICBm b250LXNpemU6IDE2cHg7DQogICAgfQ0KDQogICAgLm9kLVBhbmVsLS1oYXNDb21tYW5kQmFy IC5vZC1QYW5lbC1idXR0b24tLWNsb3NlIHsNCiAgICAgIHotaW5kZXg6IDYwMDsNCiAgICAg IHBhZGRpbmc6IDA7DQogICAgICB0b3A6IDZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAub2QtUGFuZWwtLWhhc0NvbW1hbmRCYXIgLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2Ugew0K ICAgICAgcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUGFuZWwt LWhhc0NvbW1hbmRCYXIgLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgbGVmdDog OHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1QYW5lbC0tc3RpY2t5Q2xvc2VC dXR0b24gLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgcmlnaHQ6IDIwcHg7DQog ICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVBhbmVsLS1zdGlja3lDbG9zZUJ1dHRvbiAu b2QtUGFuZWwtYnV0dG9uLS1jbG9zZSB7DQogICAgICBsZWZ0OiAyMHB4Ow0KICAgIH0NCg0K ICAgIFtkaXI9Imx0ciJdIC5tZCAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSwNCiAgICBbZGly PSJsdHIiXSAuc20gLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgcmlnaHQ6IDIw cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm1kIC5vZC1QYW5lbC1idXR0b24tLWNs b3NlLA0KICAgIFtkaXI9InJ0bCJdIC5zbSAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSB7DQog ICAgICBsZWZ0OiAyMHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5zbSAub2QtUGFu ZWwtYnV0dG9uLS1jbG9zZSB7DQogICAgICByaWdodDogMTJweDsNCiAgICB9DQoNCiAgICBb ZGlyPSJydGwiXSAuc20gLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgbGVmdDog MTJweDsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZTpmb2N1cyB7DQog ICAgICBvdXRsaW5lOiAxcHggc29saWQgIzYxNjE2MTsNCiAgICB9DQoNCiAgICAub2QtUGFu ZWwtLXN0aWNreUNsb3NlQnV0dG9uIC5vZC1QYW5lbC1jb250ZW50IHsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAg IGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIG92ZXJmbG93OiBhdXRvOw0KICAg IH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1QYW5lbC0tc3RpY2t5Q2xvc2VCdXR0b24gLm9k LVBhbmVsLWNvbnRlbnQgew0KICAgICAgcGFkZGluZy1yaWdodDogNDBweDsNCiAgICB9DQoN CiAgICBbZGlyPSJydGwiXSAub2QtUGFuZWwtLXN0aWNreUNsb3NlQnV0dG9uIC5vZC1QYW5l bC1jb250ZW50IHsNCiAgICAgIHBhZGRpbmctbGVmdDogNDBweDsNCiAgICB9DQoNCiAgICAu b2QtT3ZlcmxheUhvc3Qtb3ZlcmxheSAub2QtUGFuZWwgew0KICAgICAgb3BhY2l0eTogMDsN CiAgICB9DQoNCiAgICAub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9zdC1v dmVybGF5LS1vcGVuZWQgLm9kLVBhbmVsIHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgfQ0K DQogICAgW2Rpcj0ibHRyIl0gLm9kLU92ZXJsYXlIb3N0LW92ZXJsYXkub2QtT3ZlcmxheUhv c3Qtb3ZlcmxheS0tb3BlbmVkIC5vZC1QYW5lbCB7DQogICAgICBhbmltYXRpb24tbmFtZTog bXMtZmFkZUluLCBtcy1zbGlkZUxlZnRJbjQwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9u OiAzNjdtczsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemll cigwLjEsIDAuOSwgMC4yLCAxKTsNCiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7 DQogICAgfQ0KDQogICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Up IHsNCiAgICAgIFtkaXI9Imx0ciJdIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5Lm9kLU92ZXJs YXlIb3N0LW92ZXJsYXktLW9wZW5lZCAub2QtUGFuZWwgew0KICAgICAgICBhbmltYXRpb246 IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLU92ZXJsYXlI b3N0LW92ZXJsYXkub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS0tb3BlbmVkIC5vZC1QYW5lbCB7 DQogICAgICBhbmltYXRpb24tbmFtZTogbXMtZmFkZUluLCBtcy1zbGlkZVJpZ2h0SW40MDsN CiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzY3bXM7DQogICAgICBhbmltYXRpb24tdGlt aW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgICBh bmltYXRpb24tZmlsbC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJlZmVy cy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7DQogICAgICBbZGlyPSJydGwiXSAub2QtT3Zl cmxheUhvc3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9zdC1vdmVybGF5LS1vcGVuZWQgLm9kLVBh bmVsIHsNCiAgICAgICAgYW5pbWF0aW9uOiBub25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IFtkaXI9Imx0ciJdIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5Lm9kLU92ZXJsYXlIb3N0LW92 ZXJsYXktLWNsb3NlZCAub2QtUGFuZWwgew0KICAgICAgYW5pbWF0aW9uLW5hbWU6IG1zLWZh ZGVPdXQsIG1zLXNsaWRlUmlnaHRPdXQ0MDsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjog MTY3bXM7DQogICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIo MC4xLCAwLjI1LCAwLjc1LCAwLjkpOw0KICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90 aDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVj ZSkgew0KICAgICAgW2Rpcj0ibHRyIl0gLm9kLU92ZXJsYXlIb3N0LW92ZXJsYXkub2QtT3Zl cmxheUhvc3Qtb3ZlcmxheS0tY2xvc2VkIC5vZC1QYW5lbCB7DQogICAgICAgIGFuaW1hdGlv bjogbm9uZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtT3Zlcmxh eUhvc3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9zdC1vdmVybGF5LS1jbG9zZWQgLm9kLVBhbmVs IHsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBtcy1mYWRlT3V0LCBtcy1zbGlkZUxlZnRPdXQ0 MDsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMTY3bXM7DQogICAgICBhbmltYXRpb24t dGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjI1LCAwLjc1LCAwLjkpOw0K ICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCiAgICB9DQoNCiAgICBAbWVkaWEg KHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgew0KICAgICAgW2Rpcj0icnRsIl0g Lm9kLU92ZXJsYXlIb3N0LW92ZXJsYXkub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS0tY2xvc2Vk IC5vZC1QYW5lbCB7DQogICAgICAgIGFuaW1hdGlvbjogbm9uZTsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAub2QtUGFuZWxPdmVybGF5Lm1zLU1vZGFsT3ZlcmxheSB7DQogICAgICB0b3A6 IDQ4cHg7DQogICAgfQ0KDQogICAgLm9kLUJhc2VQYWdlLS1ub1N1aXRlTmF2IC5vZC1QYW5l bE92ZXJsYXkubXMtTW9kYWxPdmVybGF5IHsNCiAgICAgIHRvcDogMDsNCiAgICB9DQoNCiAg ICAuU1BQYWdlQ2hyb21lIC5vZC1QYW5lbE92ZXJsYXkubXMtTW9kYWxPdmVybGF5IHsNCiAg ICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtLWhhc0ZsZXhQYW5l IC5vZC1QYW5lbCB7DQogICAgICByaWdodDogMzIwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0i cnRsIl0gLm9kLS1oYXNGbGV4UGFuZSAub2QtUGFuZWwgew0KICAgICAgbGVmdDogMzIwcHg7 DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9 InRydWUiPg0KICAgIC5PbmVVcC1zbGlkZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICB0b3A6IDA7DQogICAg ICBib3R0b206IDA7DQogICAgfQ0KDQogICAgLk9uZVVwLXNsaWRlOmFmdGVyLA0KICAgIC5P bmVVcC1zbGlkZTpiZWZvcmUgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICB3aWR0aDogMiU7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgICBjb250ZW50OiAiIjsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLk9u ZVVwLXNsaWRlOmJlZm9yZSB7DQogICAgICByaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICBo dG1sW2Rpcj0icnRsIl0gLk9uZVVwLXNsaWRlOmJlZm9yZSB7DQogICAgICBsZWZ0OiAxMDAl Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuT25lVXAtc2xpZGU6YWZ0ZXIgew0K ICAgICAgbGVmdDogMTAwJTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLk9uZVVw LXNsaWRlOmFmdGVyIHsNCiAgICAgIHJpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5vZC1P bmVVcFZpZGVvIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7 DQogICAgICByaWdodDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAg ICB9DQoNCiAgICAuT25lVXAtb3RoZXIgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgbGVmdDogNTAlOw0KICAgICAgdG9wOiA1MCU7DQogICAgICB0cmFuc2Zvcm06IHRy YW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICB9DQoNCiAgICAuT25lVXAtb3RoZXIgLk9uZVVw LW90aGVyLWNvbnRlbnQgew0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIH0NCg0K ICAgIC5PbmVVcC1vdGhlciAuT25lVXAtb3RoZXItY29udGVudCAuT25lVXAtb3RoZXItZmls ZU5hbWUgew0KICAgICAgZm9udC1zaXplOiAyMXB4Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1v dGhlciAuT25lVXAtb3RoZXItY29udGVudCAuT25lVXAtb3RoZXItZG93bmxvYWQgew0KICAg ICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLW90aGVyIC5PbmVVcC1v dGhlci1jb250ZW50IC5PbmVVcC1vdGhlci1tZXNzYWdlIHsNCiAgICAgIG1hcmdpbi10b3A6 IDE1cHg7DQogICAgICBtYXJnaW4tYm90dG9tOiAxNXB4Ow0KICAgIH0NCg0KICAgIC5PbmVV cC1vdGhlciAuT25lVXAtb3RoZXItY29udGVudCAuT25lVXAtb3RoZXItYWN0aW9ucyAub2Qt QnV0dG9uQmFyLW1haW4gew0KICAgICAgZmxvYXQ6IG5vbmU7DQogICAgfQ0KDQogICAgLk9u ZVVwLW90aGVyIC5PbmVVcC1vdGhlci1jb250ZW50IC5PbmVVcC1vdGhlci1maWxlSWNvbiAu RmlsZVR5cGVJY29uIHsNCiAgICAgIG91dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLk9uZVVw LW90aGVyIC5PbmVVcC1vdGhlci1jb250ZW50IC5vZC1CdXR0b25CYXJDb21tYW5kOm5vdCgu b2QtQnV0dG9uLS1wcmltYXJ5KSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmVi Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1lcnJvciB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0K ICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBhbGlnbi1pdGVtczogY2Vu dGVyOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5PbmVVcC1zbGlkZS1l cnJvciB7DQogICAgICBvdmVyZmxvdy14OiBoaWRkZW47DQogICAgICBvdmVyZmxvdy15OiBh dXRvOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAg IHJpZ2h0OiAwOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgIH0NCg0K ICAgIC5PbmVVcC1waG90byAub2QtUHJvamVjdG9yLS1saXZlIC5vZC1JbWFnZVRpbGUtYmFj a2dyb3VuZCB7DQogICAgICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggMjY3bXMgY3ViaWMtYmV6 aWVyKDAuMSwgMC45LCAwLjIsIDEpLA0KICAgICAgICBtYXgtaGVpZ2h0IDI2N21zIGN1Ymlj LWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsNCiAgICB9DQoNCiAgICAuT25lVXAtcGhvdG8g Lm9kLVByb2plY3Rvci0tbGl2ZS5vZC1Qcm9qZWN0b3ItLXBhbm5pbmcgLm9kLUltYWdlVGls ZS1iYWNrZ3JvdW5kIHsNCiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzLCAwczsNCiAg ICB9DQoNCiAgICAuT25lVXAtb3RoZXJUaWxlIHsNCiAgICAgIHdpZHRoOiAyNDBweDsNCiAg ICAgIGhlaWdodDogMjQwcHg7DQogICAgICBtYXJnaW46IGF1dG87DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgLk9uZVVwLWZpbGVIYW5kbGVyLA0KICAgIC5P bmVVcC1maWxlSGFuZGxlci1mcmFtZSB7DQogICAgICBib3JkZXI6IDA7DQogICAgICB3aWR0 aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAuT25lVXAtb3Ro ZXItbWFsd2FyZURldGVjdGVkSWNvbiB7DQogICAgICBoZWlnaHQ6IDIwOHB4Ow0KICAgICAg d2lkdGg6IDIwOHB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10 aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuT25lVXAtaHRtbCB7DQogICAgICBwb3NpdGlv bjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmln aHQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBtYXJnaW46IDIwcHggMjBweDsNCiAg ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsNCiAgICB9DQoNCiAgICAu T25lVXAtaHRtbC5pT1Mgew0KICAgICAgb3ZlcmZsb3c6IGF1dG87DQogICAgfQ0KDQogICAg Lk9uZVVwLWh0bWwgaWZyYW1lIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0 OiAxMDAlOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgICAgIGJvcmRlcjog MDsNCiAgICAgIGJveC1zaGFkb3c6IDAgMCA3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7 DQogICAgICBvdmVyZmxvdzogYXV0bzsNCiAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xs aW5nOiB0b3VjaDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhl bWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLkZpbGVUeXBlSWNvbiB7DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgfQ0KDQog ICAgLkZpbGVUeXBlSWNvbi0tY2xpY2thYmxlIHsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsN CiAgICB9DQoNCiAgICAuRmlsZVR5cGVJY29uLWljb24gew0KICAgICAgZGlzcGxheTogaW5s aW5lLWJsb2NrOw0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAgIHBvc2l0 aW9uOiByZWxhdGl2ZTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0KDQogICAg LkZpbGVUeXBlSWNvbi1pY29uOjpiZWZvcmUgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgfQ0KDQogICAgLkZpbGVUeXBlSWNvbi1vdmVybGF5IHsNCiAgICAgIGRpc3BsYXk6IGJs b2NrOw0KICAgICAgYm9yZGVyOiAwOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAg ICAgbGVmdDogOXB4Ow0KICAgICAgYm90dG9tOiA5cHg7DQogICAgICBoZWlnaHQ6IDlweDsN CiAgICAgIHdpZHRoOiA5cHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1s b2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZC1Qcm9qZWN0b3Igew0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHRvcDogMDsNCiAg ICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgb3ZlcmZsb3c6 IGhpZGRlbjsNCiAgICB9DQoNCiAgICAub2QtUHJvamVjdG9yLWltYWdlIHsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAg ICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIHRyYW5zZm9ybS1v cmlnaW46IDAgMDsNCiAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsNCiAgICAgIHdpbGwtY2hh bmdlOiB0cmFuc2Zvcm07DQogICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47DQog ICAgICBwZXJzcGVjdGl2ZTogMTAwMDsNCiAgICB9DQoNCiAgICAub2QtUHJvamVjdG9yLS1n bGlkaW5nLm9kLVByb2plY3Rvci0tcHJldmlldyAub2QtUHJvamVjdG9yLWltYWdlIHsNCiAg ICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNjdtcyBjdWJpYy1iZXppZXIoMC4xLCAwLjks IDAuMiwgMSk7DQogICAgfQ0KDQogICAgLm9kLVByb2plY3Rvci0tZ2xpZGluZy5vZC1Qcm9q ZWN0b3ItLWxpdmUgLm9kLVByb2plY3Rvci1pbWFnZSB7DQogICAgICB0cmFuc2l0aW9uOiBs ZWZ0IDI2N21zIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSwNCiAgICAgICAgdG9w IDI2N21zIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSwNCiAgICAgICAgd2lkdGgg MjY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpLA0KICAgICAgICBoZWlnaHQg MjY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2Qt SW1hZ2VGcmFtZSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBib3R0b206 IDA7DQogICAgICByaWdodDogMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRh LWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLUltYWdlU3RhY2sgew0KICAg ICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0 b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmlnaHQ6 IDA7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5vZC1JbWFnZVN0 YWNrLXRpbGUgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAw Ow0KICAgICAgcmlnaHQ6IDA7DQogICAgICBvcGFjaXR5OiAwOw0KICAgIH0NCg0KICAgIC5v ZC1JbWFnZVN0YWNrLXRpbGUtLWlzTG9hZGVkIHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAg fQ0KDQogICAgLm9kLUltYWdlU3RhY2stLWZhZGUgLm9kLUltYWdlU3RhY2stdGlsZS0taXNM b2FkZWQgew0KICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMTdtcyBsaW5lYXIgNTBtczsN CiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0i dHJ1ZSI+DQogICAgLm9kLUltYWdlVGlsZSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7 DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIG92ZXJmbG93OiBo aWRkZW47DQogICAgfQ0KDQogICAgLm9kLUltYWdlVGlsZSBpbWcgew0KICAgICAgZGlzcGxh eTogYmxvY2s7DQogICAgfQ0KDQogICAgLm9kLUltYWdlVGlsZS0tY292ZXIgLm9kLUltYWdl VGlsZS1iYWNrZ3JvdW5kIHsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAg ICBib3R0b206IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAg ICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgbWFyZ2luOiBhdXRvOw0KICAgICAgYmFja2dyb3Vu ZC1zaXplOiBjb3ZlcjsNCiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQog ICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLm9kLUlt YWdlVGlsZS0tZml0IC5vZC1JbWFnZVRpbGUtYmFja2dyb3VuZCB7DQogICAgICB0b3A6IDA7 DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmlnaHQ6IDA7DQog ICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIG1hcmdpbjog YXV0bzsNCiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsNCiAgICAgIGJhY2tncm91 bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50 ZXI7DQogICAgfQ0KDQogICAgLm9kLUltYWdlVGlsZS1pbWFnZSB7DQogICAgICBkaXNwbGF5 OiBibG9jazsNCiAgICAgIG9wYWNpdHk6IDA7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgIH0NCg0KICAgIC5vZC1JbWFn ZVRpbGUtaW1hZ2UsDQogICAgYSAub2QtSW1hZ2VUaWxlLWltYWdlIHsNCiAgICAgIGJvcmRl cjogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtSW1hZ2VUaWxlLWJhY2tncm91bmQgew0KICAg ICAgZGlzcGxheTogYmxvY2s7DQogICAgICBvcGFjaXR5OiAwOw0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICB9DQoNCiAg ICAub2QtSW1hZ2VUaWxlLS1pc0xvYWRlZC5vZC1JbWFnZVRpbGUtLWlzRGltZW5zaW9uZWQu b2QtSW1hZ2VUaWxlLS1pc0FsaWduZWQgLm9kLUltYWdlVGlsZS1iYWNrZ3JvdW5kIHsNCiAg ICAgIG9wYWNpdHk6IDE7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1o aWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1JbWFnZVRpbGUtLWlzTG9hZGVk Lm9kLUltYWdlVGlsZS0taXNEaW1lbnNpb25lZC5vZC1JbWFnZVRpbGUtLWlzQWxpZ25lZCAu b2QtSW1hZ2VUaWxlLWJhY2tncm91bmQgew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAg fQ0KICAgIH0NCg0KICAgIC5vZC1JbWFnZVRpbGUtLWlzTG9hZGVkLm9kLUltYWdlVGlsZS0t aXNEaW1lbnNpb25lZC5vZC1JbWFnZVRpbGUtLWlzQ3VzdG9tIC5vZC1JbWFnZVRpbGUtaW1h Z2Ugew0KICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFu ZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLUltYWdlVGlsZS0t aXNMb2FkZWQub2QtSW1hZ2VUaWxlLS1pc0RpbWVuc2lvbmVkIC5vZC1JbWFnZVRpbGUtaW1h Z2Ugew0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1J bWFnZVRpbGUtLWlzUm90YXRpbmcgLm9kLUltYWdlVGlsZS1pbWFnZSB7DQogICAgICB0cmFu c2l0aW9uOiB0cmFuc2Zvcm0gMTY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC4yNSwgMC43NSwg MC45KTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0 eWxlcz0idHJ1ZSI+DQogICAgLkNhcm91c2VsIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHRvcDogMDsNCiAg ICAgIGJvdHRvbTogMDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAtd2Via2l0 LXRvdWNoLWNhbGxvdXQ6IG5vbmU7DQogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25l Ow0KICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgdXNlci1zZWxlY3Q6IG5v bmU7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtIHsNCiAgICAgIHotaW5kZXg6 IDA7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBs ZWZ0OiAwOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAg ICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7DQogICAgICB0b3VjaC1hY3Rpb246IG5vbmU7DQog ICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWVuYWJsZWQgew0KICAgICAgd2ls bC1jaGFuZ2U6IHRyYW5zZm9ybTsNCiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRl bjsNCiAgICAgIHBlcnNwZWN0aXZlOiAxMDAwOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1z bGlkZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiAwOw0KICAg ICAgdG9wOiAwOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQog ICAgICB6LWluZGV4OiAxOw0KICAgICAgb3BhY2l0eTogMDsNCiAgICAgIHZpc2liaWxpdHk6 IGhpZGRlbjsNCiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMHMgbGluZWFyIDAuM3MsIHZp c2liaWxpdHkgMHMgbGluZWFyIDAuM3MsDQogICAgICAgIHRyYW5zZm9ybSAwcyBsaW5lYXI7 DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXNsaWRlLmlzLWN1cnJlbnQuaXMtbG9hZGVkIHsN CiAgICAgIG9wYWNpdHk6IDE7DQogICAgICB2aXNpYmlsaXR5OiBpbmhlcml0Ow0KICAgICAg dHJhbnNpdGlvbi1kZWxheTogMHMsIDBzLCAwczsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwt c2xpZGUuaXMtY3VycmVudC5pcy1kZWxldGVkLA0KICAgIC5DYXJvdXNlbC1zbGlkZS5pcy1k ZWxldGVkIHsNCiAgICAgIHotaW5kZXg6IDA7DQogICAgICBvcGFjaXR5OiAwOw0KICAgICAg dmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHMsIDBz LCAwczsNCiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAwcywgMHM7DQogICAgfQ0KDQog ICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWVuYWJsZWQgLkNhcm91c2VsLXNsaWRlIHsNCiAg ICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07DQogICAgICBiYWNrZmFjZS12aXNpYmlsaXR5 OiBoaWRkZW47DQogICAgICBwZXJzcGVjdGl2ZTogMTAwMDsNCiAgICB9DQoNCiAgICAuQ2Fy b3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcgLkNhcm91c2VsLXNsaWRlIHsNCiAgICAgIHRy YW5zaXRpb24tZHVyYXRpb246IDBzLCAwcywgMHM7DQogICAgICB0cmFuc2l0aW9uLWRlbGF5 OiAwcywgMHMsIDBzOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1mbGlw cGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9yZGVyPSIxIl0gew0KICAgICAgei1p bmRleDogMTA7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWZsaXBwaW5n IC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb3JkZXI9IjEiXS5pcy1jdXJyZW50LmlzLWxv YWRlZCB7DQogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzLCAwcywgMC4zczsNCiAg ICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcgLkNhcm91c2VsLXNs aWRlW2RhdGEtaXRlbS1vcmRlcj0iMiJdIHsNCiAgICAgIHotaW5kZXg6IDk7DQogICAgfQ0K DQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWZsaXBwaW5nIC5DYXJvdXNlbC1zbGlkZVtk YXRhLWl0ZW0tb3JkZXI9IjIiXS5pcy1sb2FkZWQgew0KICAgICAgdHJhbnNpdGlvbi1kdXJh dGlvbjogMC4zcywgMHMsIDAuM3M7DQogICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzLCAw LjZzLCAwczsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcg LkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vcmRlcj0iMyJdIHsNCiAgICAgIHotaW5kZXg6 IDg7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWZsaXBwaW5nIC5DYXJv dXNlbC1zbGlkZVtkYXRhLWl0ZW0tb3JkZXI9IjQiXSB7DQogICAgICB6LWluZGV4OiA3Ow0K ICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1mbGlwcGluZyAuQ2Fyb3VzZWwt c2xpZGVbZGF0YS1pdGVtLW9yZGVyPSI1Il0gew0KICAgICAgei1pbmRleDogNjsNCiAgICB9 DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcgLkNhcm91c2VsLXNsaWRl W2RhdGEtaXRlbS1vcmRlcj0iNiJdIHsNCiAgICAgIHotaW5kZXg6IDU7DQogICAgfQ0KDQog ICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWZsaXBwaW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRh LWl0ZW0tb3JkZXI9IjciXSB7DQogICAgICB6LWluZGV4OiA0Ow0KICAgIH0NCg0KICAgIC5D YXJvdXNlbC1wbGF0Zm9ybS5pcy1mbGlwcGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVt LW9yZGVyPSI4Il0gew0KICAgICAgei1pbmRleDogMzsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0ibHRyIl0gLkNhcm91c2VsLXBsYXRmb3JtLmlzLWZsaXBwaW5nIC5DYXJvdXNlbC1zbGlk ZVtkYXRhLWl0ZW0tZGlyZWN0aW9uPSIxIl0gew0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xh dGUoMiUsIDApOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuQ2Fyb3VzZWwtcGxh dGZvcm0uaXMtZmxpcHBpbmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1kaXJlY3Rpb249 IjEiXSB7DQogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMiUsIDApOw0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJsdHIiXSAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcgLkNh cm91c2VsLXNsaWRlW2RhdGEtaXRlbS1kaXJlY3Rpb249Ii0xIl0gew0KICAgICAgdHJhbnNm b3JtOiB0cmFuc2xhdGUoLTIlLCAwKTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g LkNhcm91c2VsLXBsYXRmb3JtLmlzLWZsaXBwaW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0 ZW0tZGlyZWN0aW9uPSItMSJdIHsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIlLCAw KTsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtcm90YXRpbmcgLkNhcm91 c2VsLXNsaWRlIHsNCiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAwcywgMHM7DQogICAg ICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcywgMHMsIDBzOw0KICAgIH0NCg0KICAgIC5DYXJv dXNlbC1wbGF0Zm9ybS5pcy1yb3RhdGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9m ZnNldD0iMiJdIHsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwNCUsIDApOw0KICAg IH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1yb3RhdGluZyAuQ2Fyb3VzZWwtc2xp ZGVbZGF0YS1pdGVtLW9mZnNldD0iMSJdIHsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRl KDEwMiUsIDApOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1yb3RhdGlu ZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9mZnNldD0iLTEiXSB7DQogICAgICB0cmFu c2Zvcm06IHRyYW5zbGF0ZSgtMTAyJSwgMCk7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBs YXRmb3JtLmlzLXJvdGF0aW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSIt MiJdIHsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMDQlLCAwKTsNCiAgICB9DQoN CiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtcm90YXRpbmcgLkNhcm91c2VsLXNsaWRlW2Rh dGEtaXRlbS1vZmZzZXQ9Ii0xIl0sDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLXJvdGF0 aW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSItMiJdLA0KICAgIC5DYXJv dXNlbC1wbGF0Zm9ybS5pcy1yb3RhdGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9m ZnNldD0iMSJdLA0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1yb3RhdGluZyAuQ2Fyb3Vz ZWwtc2xpZGVbZGF0YS1pdGVtLW9mZnNldD0iMiJdIHsNCiAgICAgIHZpc2liaWxpdHk6IGlu aGVyaXQ7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0 Zm9ybS5pcy1nbGlkaW5nIHsNCiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVh c2Utb3V0Ow0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1nbGlkaW5nIC5D YXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSItMSJdLA0KICAgIC5DYXJvdXNlbC1w bGF0Zm9ybS5pcy1nbGlkaW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSIt MiJdLA0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1nbGlkaW5nIC5DYXJvdXNlbC1zbGlk ZVtkYXRhLWl0ZW0tb2Zmc2V0PSIxIl0sDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWds aWRpbmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vZmZzZXQ9IjIiXSB7DQogICAgICB0 cmFuc2l0aW9uLWRlbGF5OiAwLjNzLCAwLjNzLCAwczsNCiAgICB9DQogIDwvc3R5bGU+DQog IDxzY3JpcHQgY2hhcnNldD0idXRmLTgiDQogICAgc3JjPSJodHRwczovL3Jlcy0xLmNkbi5v ZmZpY2UubmV0L2ZpbGVzL29kc3Atd2ViLXByb2RfMjAyMy0xMC0yMC4wMDUvb2RjbGlnaHRz cGVlZHdlYnBhY2subWFuaWZlc3QvNzIzLmpzIg0KICAgIGNyb3Nzb3JpZ2luPSJhbm9ueW1v dXMiPjwvc2NyaXB0Pg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgIC55bTVcLzZz aWpsbG9vYzV6MmM3cGV2Z1w9XD0gew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAg ICAgZm9udC1mYW1pbHk6IFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAg ICAgICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0 ZW0sDQogICAgICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1 ZSwgVGFob21hLCBIZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAg ICAgY29sb3I6ICMyNTI0MjM7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOw0K ICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IC0wLjc1cHggcmdiYSgwLCAwLCAwLCAwLjEp Ow0KICAgICAgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAg ICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICB9DQoNCiAgICAueW01XC82c2lqbGxvb2M1ejJj N3BldmdcPVw9OmhvdmVyLA0KICAgIC55bTVcLzZzaWpsbG9vYzV6MmM3cGV2Z1w9XD0uSnJB eXlnanRQYU10eG9aOURjQ1wvQkFcPVw9LA0KICAgIC55bTVcLzZzaWpsbG9vYzV6MmM3cGV2 Z1w9XD0uUWRzbG1HR2JqY0ZjQ01yamUwS3Y1UVw9XD0gew0KICAgICAgY29sb3I6ICMyNTI0 MjM7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICAgICAgYm94LXNoYWRvdzog MCA0cHggOHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpOw0KICAgIH0NCg0KICAgIC55bTVc LzZzaWpsbG9vYzV6MmM3cGV2Z1w9XD0uXzNcL2lRbEIwTXVsYVkzdkhYcU8xWXV3XD1cPSB7 DQogICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggLTAuNzVweCByZ2JhKDAsIDAsIDAsIDAu MSk7DQogICAgfQ0KDQogICAgLmFpaHROUTRRNVJNNmlrRzhSbFJ6bkFcPVw9IHsNCiAgICAg IGJvcmRlci1yYWRpdXM6IDE2cHg7DQogICAgfQ0KDQogICAgLlhlZFpPXCtTUzdRXC9hclN5 QkJIVXc4QVw9XD0gew0KICAgICAgbWF4LXdpZHRoOiA0NjhweDsNCiAgICAgIHdpZHRoOiBj YWxjKDEwMCUgLSA4OHB4KTsNCiAgICAgIG1hcmdpbjogOHB4IGF1dG87DQogICAgfQ0KDQog ICAgLlNUTnRxXC93N2w0TjV0bEFTOWo2Rk9RXD1cPSB7DQogICAgICBtYXgtd2lkdGg6IDQ2 OHB4Ow0KICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOw0KICAgICAgbWFyZ2luOiA4 cHggYXV0bzsNCiAgICB9DQoNCiAgICAuY25udnY2bk9SaWlZZVVtd1VBXCttXCtBXD1cPSB7 DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgYm9y ZGVyLXJhZGl1czogMnB4Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMt aGlnaC1jb250cmFzdDogd2hpdGUtb24tYmxhY2spIHsNCiAgICAgIC5jbm52djZuT1JpaVll VW13VUFcK21cK0FcPVw9IHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJh c3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAuY25udnY2bk9SaWlZZVVtd1VBXCttXCtB XD1cPSB7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogICAgICB9DQogICAg fQ0KDQogICAgLmNubnZ2Nm5PUmlpWWVVbXdVQVwrbVwrQVw9XD0gYnV0dG9uIHsNCiAgICAg IGhlaWdodDogYXV0bzsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIHZlcnRp Y2FsLWFsaWduOiB0b3A7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgIH0N Cg0KICAgIC5QcjQ5aERYSENtYzJhXC9TN2RHc0ltZ1w9XD0gew0KICAgICAgZm9udC1mYW1p bHk6IGluaGVyaXQ7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmbGV4OiAxIDAg MHB4Ow0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0 YW50Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICBib3Jk ZXI6IDA7DQogICAgICBib3JkZXItcmFkaXVzOiAycHg7DQogICAgICBwYWRkaW5nOiAwOw0K ICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgb3V0bGluZTogbm9uZTsNCiAgICB9DQoNCiAg ICAuUHI0OWhEWEhDbWMyYVwvUzdkR3NJbWdcPVw9Ojotd2Via2l0LXNlYXJjaC1jYW5jZWwt YnV0dG9uLA0KICAgIC5QcjQ5aERYSENtYzJhXC9TN2RHc0ltZ1w9XD06Oi13ZWJraXQtc2Vh cmNoLWRlY29yYXRpb24sDQogICAgLlByNDloRFhIQ21jMmFcL1M3ZEdzSW1nXD1cPTo6LXdl YmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sDQogICAgLlByNDloRFhIQ21jMmFcL1M3ZEdz SW1nXD1cPTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHsNCiAgICAgIC13 ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0K DQogICAgLlByNDloRFhIQ21jMmFcL1M3ZEdzSW1nXD1cPTo6LW1zLWNsZWFyIHsNCiAgICAg IGRpc3BsYXk6IG5vbmU7DQogICAgICB3aWR0aDogMDsNCiAgICAgIGhlaWdodDogMDsNCiAg ICB9DQoNCiAgICAuUHI0OWhEWEhDbWMyYVwvUzdkR3NJbWdcPVw9Ojotd2Via2l0LWlucHV0 LXBsYWNlaG9sZGVyIHsNCiAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7DQogICAg fQ0KDQogICAgLlByNDloRFhIQ21jMmFcL1M3ZEdzSW1nXD1cPTotbXMtaW5wdXQtcGxhY2Vo b2xkZXIgew0KICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDsNCiAgICB9DQoNCiAg ICAuUHI0OWhEWEhDbWMyYVwvUzdkR3NJbWdcPVw9OjpwbGFjZWhvbGRlciB7DQogICAgICBj b2xvcjogaW5oZXJpdCAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5mZnBhTEhOV1hBQXJt ODVHTlpreU5RXD1cPSB7DQogICAgICBjb2xvcjogIzEwNmViZTsNCiAgICAgIHZlcnRpY2Fs LWFsaWduOiBtaWRkbGU7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0idGV4 dC9jc3MiPg0KICAgIC5kUThYTE1JeU54bDhNQVlxTXNVWkZRXD1cPSB7DQogICAgICB3aWR0 aDogMTAwJTsNCiAgICAgIGhlaWdodDogNTBweDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQog ICAgICBib3JkZXItc3BhY2luZzogMDsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQog ICAgICBsaW5lLWhlaWdodDogbm9ybWFsOw0KICAgIH0NCg0KICAgIC5kUThYTE1JeU54bDhN QVlxTXNVWkZRXD1cPSAuaHB5SGhtU2U5aG1rNWdvcExyOWE1UVw9XD0sDQogICAgLmRROFhM TUl5TnhsOE1BWXFNc1VaRlFcPVw9IGEuck95XCtIbjhraUQ1Sjl2NVZEQ0UzRGdcPVw9IHsN CiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgfQ0KDQogICAgLmFVOE4zMElNM0dj S080S0t6OGxnTkFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCiAg ICB9DQoNCiAgICAucmVtb3ZlRm9jdXNPdXRsaW5lIDpmb2N1cyB7DQogICAgICBvdXRsaW5l OiBub25lOw0KICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50Ow0KICAgIH0NCg0K ICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1cPSwNCiAgICAuU1hHRGZcL2pqek41WXpu OGVMMHdIamdcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAg IG1pbi13aWR0aDogNDhweDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIGN1 cnNvcjogcG9pbnRlcjsNCiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4Ow0KICAgIH0NCg0K ICAgIEBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgKGZvcmNlZC1j b2xvcnM6IGFjdGl2ZSkgew0KDQogICAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD06 Zm9jdXMsDQogICAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD06aG92ZXIrLmljb24s DQogICAgICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9OmZvY3VzLA0KICAgICAgLlNY R0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPTpob3ZlcisuaWNvbiB7DQogICAgICAgIC1tcy1o aWdoLWNvbnRyYXN0LWFkanVzdDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVz dDogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRh bnQ7DQogICAgICAgIGNvbG9yOiBoaWdobGlnaHRUZXh0ICFpbXBvcnRhbnQ7DQogICAgICB9 DQogICAgfQ0KDQogICAgLmNsZ2lMVktQenVnWlpuczBMaVBUcXdcPVw9OmhvdmVyLA0KICAg IC5TWEdEZlwvamp6TjVZem44ZUwwd0hqZ1w9XD06aG92ZXIgew0KICAgICAgLXdlYmtpdC10 cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNDY3cyBjdWJpYy1iZXppZXIoMC4xLCAw LjksIDAuMiwgMSkgMzRtczsNCiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3Ig MC40NjdzIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSAzNG1zOw0KICAgIH0NCg0K ICAgIC5TWEdEZlwvamp6TjVZem44ZUwwd0hqZ1w9XD0sDQogICAgLkJpRDA5NnhrbUs4VXh3 YzVNVHVPbHdcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAg IG1pbi13aWR0aDogNDhweDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIGN1 cnNvcjogZGVmYXVsdDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0 OiBhY3RpdmUpLA0KICAgIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAgLlNY R0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPTpmb2N1cywNCiAgICAgIC5TWEdEZlwvamp6TjVZ em44ZUwwd0hqZ1w9XD06aG92ZXIrLmljb24sDQogICAgICAuQmlEMDk2eGttSzhVeHdjNU1U dU9sd1w9XD06Zm9jdXMsDQogICAgICAuQmlEMDk2eGttSzhVeHdjNU1UdU9sd1w9XD06aG92 ZXIrLmljb24gew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQog ICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQog ICAgLmNsZ2lMVktQenVnWlpuczBMaVBUcXdcPVw9IHsNCiAgICAgIGJhY2tncm91bmQ6IHRy YW5zcGFyZW50Ow0KICAgICAgYm9yZGVyLXdpZHRoOiAwOw0KICAgICAgd2lkdGg6IGF1dG87 DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0K ICAgICAgb3ZlcmZsb3c6IHZpc2libGU7DQogICAgfQ0KDQogICAgLmNsZ2lMVktQenVnWlpu czBMaVBUcXdcPVw9LA0KICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1cPSBzcGFuW2Ns YXNzKj0iIG1zLUljb24tLSJdLA0KICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1cPSBz cGFuW2NsYXNzXj0ibXMtSWNvbi0tIl0gew0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQog ICAgfQ0KDQogICAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICAo Zm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQ VHF3XD1cPTpmb2N1cysuaWNvbiwNCiAgICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1c PTpob3ZlciB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDogbm9uZTsNCiAg ICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1j b2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRhbnQ7DQogICAgICAgIGNvbG9yOiBoaWdobGlnaHRU ZXh0ICFpbXBvcnRhbnQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLkJpRDA5NnhrbUs4VXh3 YzVNVHVPbHdcPVw9IHsNCiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICAgICAg Ym9yZGVyLXdpZHRoOiAwOw0KICAgICAgd2lkdGg6IGF1dG87DQogICAgICBoZWlnaHQ6IDEw MCU7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgbGluZS1oZWlnaHQ6 IDQ4cHg7DQogICAgICBvdmVyZmxvdzogdmlzaWJsZTsNCiAgICAgIGN1cnNvcjogZGVmYXVs dDsNCiAgICB9DQoNCiAgICAuQmlEMDk2eGttSzhVeHdjNU1UdU9sd1w9XD0gc3BhbltjbGFz cyo9IiBtcy1JY29uLS0iXSwNCiAgICAuQmlEMDk2eGttSzhVeHdjNU1UdU9sd1w9XD0gc3Bh bltjbGFzc149Im1zLUljb24tLSJdIHsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAg IH0NCg0KICAgIEBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgKGZv cmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KDQogICAgICAuQmlEMDk2eGttSzhVeHdjNU1UdU9s d1w9XD06Zm9jdXMrLmljb24sDQogICAgICAuQmlEMDk2eGttSzhVeHdjNU1UdU9sd1w9XD06 aG92ZXIgew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAg ICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAg LlJHU2JcLzFjNGV4OWNtMGFzMG9hbHFhXD1cPSB7DQogICAgICBkaXNwbGF5OiBpbmhlcml0 Ow0KICAgIH0NCg0KICAgIC5cL2wyUEFwVWJJNUVoSkswY21mSFhxZ1w9XD0gew0KICAgICAg bWluLXdpZHRoOiA2OHB4Ow0KICAgIH0NCg0KICAgIC5TWEdEZlwvamp6TjVZem44ZUwwd0hq Z1w9XD0gew0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLmJmV05F UHMyNGRFU3F5cURuaFwvN3RhXD1cPSB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAgYWxpZ24tc2VsZjogY2Vu dGVyOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yOw0KICAgICAgbWFy Z2luLWxlZnQ6IDE2cHg7DQogICAgICBtYXJnaW4tcmlnaHQ6IDhweDsNCiAgICAgIGhlaWdo dDogMjhweDsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0 bCJdIC5iZldORVBzMjRkRVNxeXFEbmhcLzd0YVw9XD0gew0KICAgICAgbWFyZ2luLXJpZ2h0 OiAxNnB4Ow0KICAgICAgbWFyZ2luLWxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICAuaHB5SGht U2U5aG1rNWdvcExyOWE1UVw9XD0gew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0K ICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVNl bWlCb2xkLWZpbmFsLCBTZWdvZSBVSSBTZW1pYm9sZCwNCiAgICAgICAgU2Vnb2VVSS1SZWd1 bGFyLWZpbmFsLCBTZWdvZSBVSSwgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBT ZWdvZSwNCiAgICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2Jv dG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsDQogICAgICAgIEhlbHZldGljYSwgQXJpYWws IHNhbnMtc2VyaWY7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICBsaW5lLWhlaWdo dDogNDhweDsNCiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOw0K ICAgIH0NCg0KICAgIC5BenpUcGJKRjE1U2lvTkQ0dnlsVzhBXD1cPSB7DQogICAgICBib3gt c2hhZG93OiBub25lICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLnl2SHNLNkl2dVFvdlBm Sm1jQVlPT2dcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVj dGlvbjogcm93Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBhbGln bi1pdGVtczogY2VudGVyOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIHdpZHRoOiA0OHB4 Ow0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgIH0NCg0KICAgIC55dkhzSzZJdnVRb3ZQZkpt Y0FZT09nXD1cPSBhOmZvY3VzLXZpc2libGUgew0KICAgICAgb3V0bGluZS1vZmZzZXQ6IDEx cHg7DQogICAgfQ0KDQogICAgLnl2SHNLNkl2dVFvdlBmSm1jQVlPT2dcPVw9IGltZyB7DQog ICAgICB3aWR0aDogMjRweDsNCiAgICAgIGhlaWdodDogMjRweDsNCiAgICAgIHRvcDogMTJw eDsNCiAgICAgIGxlZnQ6IDEycHg7DQogICAgfQ0KDQogICAgLlViYk5VXCtDSlN5cFlIbHVI ZWQ2MWtnXD1cPSB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICB2ZXJ0 aWNhbC1hbGlnbjogdG9wOw0KICAgICAgZm9udC1zaXplOiAyNHB4Ow0KICAgICAgbWFyZ2lu LXRvcDogMTNweDsNCiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7DQogICAgfQ0KDQogICAgLlVi Yk5VXCtDSlN5cFlIbHVIZWQ2MWtnXD1cPTpiZWZvcmUgew0KICAgICAgdmVydGljYWwtYWxp Z246IHRvcDsNCiAgICB9DQoNCiAgICAucThBYlFPQnB1eTkzeUJmVGVHZk5hd1w9XD0gew0K ICAgICAgbWFyZ2luLWxlZnQ6IDE0cHg7DQogICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7DQog ICAgICBoZWlnaHQ6IDI1cHg7DQogICAgICBtYXJnaW4tdG9wOiAxMnB4Ow0KICAgICAgYm9y ZGVyLXJpZ2h0OiAxcHggc29saWQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5V YmJOVVwrQ0pTeXBZSGx1SGVkNjFrZ1w9XD0gew0KICAgICAgbWFyZ2luLWxlZnQ6IDA7DQog ICAgICBtYXJnaW4tcmlnaHQ6IDZweDsNCiAgICB9DQoNCiAgICAuZVwvVmwwajB6SFFNaFpU MXZRNkpcK1NRXD1cPSB7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBkaXNwbGF5OiBm bGV4Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAgIG91dGxpbmUtb2Zm c2V0OiAtMXB4Ow0KICAgICAgcGFkZGluZzogMCAxMnB4IDAgOHB4Ow0KICAgICAgdGV4dC1k ZWNvcmF0aW9uOiBub25lOw0KICAgIH0NCg0KICAgIC5lXC9WbDBqMHpIUU1oWlQxdlE2Slwr U1FcPVw9IGEgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIHRleHQtZGVjb3JhdGlv bjogbm9uZTsNCiAgICAgIGNvbG9yOiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJydGwiXSAuZVwvVmwwajB6SFFNaFpUMXZRNkpcK1NRXD1cPSB7DQogICAgICBwYWRkaW5n OiAwIDhweCAwIDEycHg7DQogICAgfQ0KDQogICAgLl8zckpBeXlBdFBTQ2wwdW9Zclwrd3VM QVw9XD0gew0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjog dG9wOw0KICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9 InJ0bCJdIC5fM3JKQXl5QXRQU0NsMHVvWXJcK3d1TEFcPVw9IHsNCiAgICAgIHBhZGRpbmct cmlnaHQ6IDhweDsNCiAgICAgIHBhZGRpbmctbGVmdDogMDsNCiAgICB9DQoNCiAgICAuck95 XCtIbjhraUQ1Sjl2NVZEQ0UzRGdcPVw9IHsNCiAgICAgIG1heC13aWR0aDogMjAwcHg7DQog ICAgICBtYXgtaGVpZ2h0OiA0OHB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAg IGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgZm9udC1zaXplOiAwOw0KICAgICAgaGVpZ2h0 OiAxMDAlOw0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50 ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICB9DQoNCiAgICAuck95 XCtIbjhraUQ1Sjl2NVZEQ0UzRGdcPVw9OmZvY3VzLXZpc2libGUgew0KICAgICAgb3V0bGlu ZS1vZmZzZXQ6IC0ycHg7DQogICAgfQ0KDQogICAgLnJPeVwrSG44a2lENUo5djVWRENFM0Rn XD1cPSBpbWcgew0KICAgICAgbWF4LXdpZHRoOiAyMDBweDsNCiAgICAgIG1heC1oZWlnaHQ6 IDQ4cHg7DQogICAgICBib3JkZXItc3R5bGU6IG5vbmUgIWltcG9ydGFudDsNCiAgICAgIHZl cnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgfQ0KDQogICAgLnRQNlVkUUF4ZWZCdTBycXYy Y2hNZWdcPVw9IGltZyB7DQogICAgICB3aWR0aDogYXV0bzsNCiAgICAgIGhlaWdodDogMjRw eDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwNCiAg ICBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAudFA2 VWRRQXhlZkJ1MHJxdjJjaE1lZ1w9XD0gaW1nIHsNCiAgICAgICAgbWF4LXdpZHRoOiAyMDBw eDsNCiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsNCiAgICAgICAgbWluLXdpZHRoOiAxNjBw eDsNCiAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgIGhlaWdodDogMjRweDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHsNCiAgICAgIC5I N3d0MVwvVDdrYnlmU1JOWjJKelZMQVw9XD0gew0KICAgICAgICBtYXgtd2lkdGg6IDE3NnB4 Ow0KICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQog ICAgLlwvQjFuXC9oNmliSTV3Vno3amRESVAwQVw9XD0gew0KICAgICAgaGVpZ2h0OiAxMDAl Ow0KICAgICAgbWF4LXdpZHRoOiAxNzZweDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAg fQ0KDQogICAgLkhjS01FWWhtTDR1THlHXCtLNGh5OHBnXD1cPSB7DQogICAgICB0ZXh0LWFs aWduOiByaWdodDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBkaXNw bGF5OiB0YWJsZS1jZWxsOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIG1heC13 aWR0aDogMTIwcHg7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmb250LWZhbWls eTogU2Vnb2VVSS1TZW1pTGlnaHQtZmluYWwsIFNlZ29lIFVJIFNlbWlsaWdodCwNCiAgICAg ICAgU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwgIlNlZ29lIFVJIFdlYiAoV2Vz dCBFdXJvcGVhbikiLCBTZWdvZSwNCiAgICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNT eXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsDQogICAgICAgIEhl bHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxp cHNpczsNCiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsNCiAgICAgIHdoaXRlLXNwYWNl OiBub3dyYXA7DQogICAgICBtYXJnaW4tbGVmdDogNHB4Ow0KICAgIH0NCg0KICAgIC5IY0tN RVlobUw0dUx5R1wrSzRoeThwZ1w9XD0+c3BhbiB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDRw eDsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLlU2Q25mbzBSalhKOFVF d1hoWlY4bVFcPVw9IHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgICBkaXNwbGF5 OiBibG9jazsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBtYXgtd2lkdGg6IDE2 MHB4Ow0KICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29l VUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAgICAgICJTZWdvZSBVSSBXZWIgKFdl c3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAgIEJsaW5rTWFj U3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBIZWx2ZXRpY2Es IEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxs aXBzaXM7DQogICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7DQogICAgICB3aGl0ZS1zcGFj ZTogbm93cmFwOw0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLlU2 Q25mbzBSalhKOFVFd1hoWlY4bVFcPVw9PnNwYW4gew0KICAgICAgcGFkZGluZy1sZWZ0OiAx MnB4Ow0KICAgICAgcGFkZGluZy1yaWdodDogNHB4Ow0KICAgICAgZGlzcGxheTogbm9uZTsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLkhjS01FWWhtTDR1THlHXCtLNGh5OHBn XD1cPSB7DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJydGwiXSAuSGNLTUVZaG1MNHVMeUdcK0s0aHk4cGdcPVw9PnNwYW4gew0KICAgICAgcGFk ZGluZy1sZWZ0OiAwOw0KICAgICAgcGFkZGluZy1yaWdodDogNHB4Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuVTZDbmZvMFJqWEo4VUV3WGhaVjhtUVw9XD0+c3BhbiB7DQog ICAgICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7DQog ICAgfQ0KDQogICAgLk5LNllRMDYwSW51RUgxVzFMYkZKNFFcPVw9IHsNCiAgICAgIGRpc3Bs YXk6IHRhYmxlLWNlbGw7DQogICAgICBib3JkZXItbGVmdC13aWR0aDogMCAhaW1wb3J0YW50 Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAgIGRpc3BsYXk6IGZsZXg7 DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBj ZW50ZXI7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5OSzZZUTA2MEludUVIMVcx TGJGSjRRXD1cPSB7DQogICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDAgIWltcG9ydGFudDsN CiAgICB9DQoNCiAgICAueDAzUnZzM01RN0lkOTQ4VHlpSWtDUVw9XD0gew0KICAgICAgb3Zl cmZsb3c6IGhpZGRlbjsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGJv cmRlci1yYWRpdXM6IDUwJTsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAg ICBmb250LXNpemU6IDZweDsNCiAgICB9DQoNCiAgICAueDAzUnZzM01RN0lkOTQ4VHlpSWtD UVw9XD0gLm1zLVBlcnNvbmEgew0KICAgICAgcmlnaHQ6IDJweDsNCiAgICAgIHRvcDogLTJw eDsNCiAgICB9DQoNCiAgICAueDAzUnZzM01RN0lkOTQ4VHlpSWtDUVw9XD0gLm1zLVBlcnNv bmEgLm1zLUltYWdlLWltYWdlIHsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB0 b3A6IDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC54MDNSdnMzTVE3SWQ5NDhU eWlJa0NRXD1cPSAubXMtUGVyc29uYSB7DQogICAgICBsZWZ0OiAycHg7DQogICAgICByaWdo dDogMDsNCiAgICB9DQoNCiAgICAuXCtnS0R4Q1VSUjVldXdoVlcyTksyMWdcPVw9IHsNCiAg ICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQog ICAgICBib3JkZXI6IHRoaW4gc29saWQ7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQog ICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAgZm9udC1zaXplOiA2cHg7DQog ICAgfQ0KDQogICAgLnU4NVNJaGdFUkx1cWNNVWJ0MnM2NkFcPVw9IHsNCiAgICAgIGJvcmRl ci1yYWRpdXM6IDUwJTsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7DQogICAg fQ0KDQogICAgLnU4NVNJaGdFUkx1cWNNVWJ0MnM2NkFcPVw9OmJlZm9yZSB7DQogICAgICBt YXJnaW4tdG9wOiAwLjRlbTsNCiAgICB9DQoNCiAgICAuU1ByZHNtQ3BaWVMwdGd2dmQwY1Jn UVw9XD0gew0KICAgICAgd2lkdGg6IDMycHg7DQogICAgICBoZWlnaHQ6IDMycHg7DQogICAg ICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIGp1 c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgICAg Zm9udC1mYW1pbHk6IFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAgICAg ICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0ZW0s DQogICAgICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwg VGFob21hLCBIZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAg Ym9yZGVyOiAxcHggc29saWQ7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAg ICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFu dDsNCiAgICB9DQoNCiAgICAuU1ByZHNtQ3BaWVMwdGd2dmQwY1JnUVw9XD06YmVmb3JlIHsN CiAgICAgIG1hcmdpbi10b3A6IDAuNGVtOw0KICAgIH0NCg0KICAgIC54MDNSdnMzTVE3SWQ5 NDhUeWlJa0NRXD1cPSwNCiAgICAudTg1U0loZ0VSTHVxY01VYnQyczY2QVw9XD0sDQogICAg LlwrZ0tEeENVUlI1ZXV3aFZXMk5LMjFnXD1cPSB7DQogICAgICB3aWR0aDogMzJweDsNCiAg ICAgIGhlaWdodDogMzJweDsNCiAgICB9DQoNCiAgICAuaWVSb1wvT3FQWUI3a2ZmUkZLeDJj OXdcPVw9IHsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNv bnRlbnQ6IHNwYWNlLWJldHdlZW47DQogICAgICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5n OiAwOw0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0K ICAgIH0NCg0KICAgIC5fMjVDcVJWS3dFMzhYNVJIRXhENEl5QVw9XD0gew0KICAgICAgZGlz cGxheTogZmxleDsNCiAgICAgIGZsZXg6IDEgMCBhdXRvOw0KICAgICAgaGVpZ2h0OiAxMDAl Ow0KICAgIH0NCg0KICAgIC5fMXRKckVqYnYxUWt2eGNcL1A3cjN0WmdcPVw9IHsNCiAgICAg IGRpc3BsYXk6IGZsZXg7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7DQog ICAgfQ0KDQogICAgLlMzVFdhZlFES0RcKzN1cW03am56aXVnXD1cPSB7DQogICAgICBkaXNw bGF5OiBmbGV4Ow0KICAgICAgZmxleDogMSAwIGF1dG87DQogICAgICBqdXN0aWZ5LWNvbnRl bnQ6IGNlbnRlcjsNCiAgICB9DQoNCiAgICAuXzE2bFV2VlVKWnc2OFpjNHZGbzhvTVFcPVw9 IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgt ZW5kOw0KICAgIH0NCg0KICAgIC5IVjZsQzlKOE9VRnBLSmpmQXIxQXN3XD1cPSB7DQogICAg ICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleDogMCAwIGF1dG87DQogICAgfQ0KDQogICAg LkJoNDZiMXJkOEJyVTR6b2xMOVJ6VWdcPVw9IHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAg ICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICB9DQoN CiAgICAuaGRrV0N6YzZzUlF1YW1GVjA3WTN4UVw9XD0gew0KICAgICAgcmlnaHQ6IDI0cHg7 DQogICAgICB0b3A6IDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmhka1dD emM2c1JRdWFtRlYwN1kzeFFcPVw9IHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgbGVmdDog MjRweDsNCiAgICB9DQoNCiAgICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkgew0KICAg ICAgLmNsZ2lMVktQenVnWlpuczBMaVBUcXdcPVw9OmZvY3VzIHsNCiAgICAgICAgb3V0bGlu ZTogMXB4IGRvdHRlZDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAjTzM2NV9OYXZIZWFkZXIg YWJiciwNCiAgICAjTzM2NV9OYXZIZWFkZXIgYWRkcmVzcywNCiAgICAjTzM2NV9OYXZIZWFk ZXIgYXJ0aWNsZSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgYXNpZGUsDQogICAgI08zNjVfTmF2 SGVhZGVyIGF1ZGlvLA0KICAgICNPMzY1X05hdkhlYWRlciBiLA0KICAgICNPMzY1X05hdkhl YWRlciBibG9ja3F1b3RlLA0KICAgICNPMzY1X05hdkhlYWRlciBib2R5LA0KICAgICNPMzY1 X05hdkhlYWRlciBib2R5IDpmb2N1cywNCiAgICAjTzM2NV9OYXZIZWFkZXIgYm9keSBkaXYs DQogICAgI08zNjVfTmF2SGVhZGVyIGNhcHRpb24sDQogICAgI08zNjVfTmF2SGVhZGVyIGNp dGUsDQogICAgI08zNjVfTmF2SGVhZGVyIGNvZGUsDQogICAgI08zNjVfTmF2SGVhZGVyIGRk LA0KICAgICNPMzY1X05hdkhlYWRlciBkZWwsDQogICAgI08zNjVfTmF2SGVhZGVyIGRldGFp bHMsDQogICAgI08zNjVfTmF2SGVhZGVyIGRmbiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgZGws DQogICAgI08zNjVfTmF2SGVhZGVyIGR0LA0KICAgICNPMzY1X05hdkhlYWRlciBlbSwNCiAg ICAjTzM2NV9OYXZIZWFkZXIgZmllbGRzZXQsDQogICAgI08zNjVfTmF2SGVhZGVyIGZpZ3Vy ZSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgZm9vdGVyLA0KICAgICNPMzY1X05hdkhlYWRlciBm b3JtLA0KICAgICNPMzY1X05hdkhlYWRlciBoMSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaDIs DQogICAgI08zNjVfTmF2SGVhZGVyIGgzLA0KICAgICNPMzY1X05hdkhlYWRlciBoNCwNCiAg ICAjTzM2NV9OYXZIZWFkZXIgaDUsDQogICAgI08zNjVfTmF2SGVhZGVyIGg2LA0KICAgICNP MzY1X05hdkhlYWRlciBoZWFkZXIsDQogICAgI08zNjVfTmF2SGVhZGVyIGh0bWwsDQogICAg I08zNjVfTmF2SGVhZGVyIGksDQogICAgI08zNjVfTmF2SGVhZGVyIGlmcmFtZSwNCiAgICAj TzM2NV9OYXZIZWFkZXIgaW1nLA0KICAgICNPMzY1X05hdkhlYWRlciBpbnMsDQogICAgI08z NjVfTmF2SGVhZGVyIGtiZCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgbGFiZWwsDQogICAgI08z NjVfTmF2SGVhZGVyIGxlZ2VuZCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgbGksDQogICAgI08z NjVfTmF2SGVhZGVyIG1hcmssDQogICAgI08zNjVfTmF2SGVhZGVyIG1lbnUsDQogICAgI08z NjVfTmF2SGVhZGVyIG5hdiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgb2JqZWN0LA0KICAgICNP MzY1X05hdkhlYWRlciBvbCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgcCwNCiAgICAjTzM2NV9O YXZIZWFkZXIgcHJlLA0KICAgICNPMzY1X05hdkhlYWRlciBxLA0KICAgICNPMzY1X05hdkhl YWRlciBzYW1wLA0KICAgICNPMzY1X05hdkhlYWRlciBzZWN0aW9uLA0KICAgICNPMzY1X05h dkhlYWRlciBzbWFsbCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgc3Ryb25nLA0KICAgICNPMzY1 X05hdkhlYWRlciBzdWIsDQogICAgI08zNjVfTmF2SGVhZGVyIHN1bW1hcnksDQogICAgI08z NjVfTmF2SGVhZGVyIHN1cCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdGFibGUsDQogICAgI08z NjVfTmF2SGVhZGVyIHRib2R5LA0KICAgICNPMzY1X05hdkhlYWRlciB0ZCwNCiAgICAjTzM2 NV9OYXZIZWFkZXIgdGZvb3QsDQogICAgI08zNjVfTmF2SGVhZGVyIHRoLA0KICAgICNPMzY1 X05hdkhlYWRlciB0aGVhZCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdGltZSwNCiAgICAjTzM2 NV9OYXZIZWFkZXIgdHIsDQogICAgI08zNjVfTmF2SGVhZGVyIHVsLA0KICAgICNPMzY1X05h dkhlYWRlciB2YXIsDQogICAgI08zNjVfTmF2SGVhZGVyIHZpZGVvLA0KICAgICNPMzY1ZnBj b250YWluZXJpZCBhYmJyLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBhZGRyZXNzLA0KICAg ICNPMzY1ZnBjb250YWluZXJpZCBhcnRpY2xlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBh c2lkZSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYXVkaW8sDQogICAgI08zNjVmcGNvbnRh aW5lcmlkIGIsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGJsb2NrcXVvdGUsDQogICAgI08z NjVmcGNvbnRhaW5lcmlkIGJvZHksDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGJvZHkgOmZv Y3VzLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBib2R5IGRpdiwNCiAgICAjTzM2NWZwY29u dGFpbmVyaWQgY2FwdGlvbiwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgY2l0ZSwNCiAgICAj TzM2NWZwY29udGFpbmVyaWQgY29kZSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZGQsDQog ICAgI08zNjVmcGNvbnRhaW5lcmlkIGRlbCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZGV0 YWlscywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZGZuLA0KICAgICNPMzY1ZnBjb250YWlu ZXJpZCBkbCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZHQsDQogICAgI08zNjVmcGNvbnRh aW5lcmlkIGVtLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBmaWVsZHNldCwNCiAgICAjTzM2 NWZwY29udGFpbmVyaWQgZmlndXJlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBmb290ZXIs DQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGZvcm0sDQogICAgI08zNjVmcGNvbnRhaW5lcmlk IGgxLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBoMiwNCiAgICAjTzM2NWZwY29udGFpbmVy aWQgaDMsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGg0LA0KICAgICNPMzY1ZnBjb250YWlu ZXJpZCBoNSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaDYsDQogICAgI08zNjVmcGNvbnRh aW5lcmlkIGhlYWRlciwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaHRtbCwNCiAgICAjTzM2 NWZwY29udGFpbmVyaWQgaSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaWZyYW1lLA0KICAg ICNPMzY1ZnBjb250YWluZXJpZCBpbWcsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGlucywN CiAgICAjTzM2NWZwY29udGFpbmVyaWQga2JkLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBs YWJlbCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgbGVnZW5kLA0KICAgICNPMzY1ZnBjb250 YWluZXJpZCBsaSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgbWFyaywNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgbWVudSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgbmF2LA0KICAgICNP MzY1ZnBjb250YWluZXJpZCBvYmplY3QsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIG9sLA0K ICAgICNPMzY1ZnBjb250YWluZXJpZCBwLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBwcmUs DQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHEsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHNh bXAsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHNlY3Rpb24sDQogICAgI08zNjVmcGNvbnRh aW5lcmlkIHNtYWxsLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBzdHJvbmcsDQogICAgI08z NjVmcGNvbnRhaW5lcmlkIHN1YiwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgc3VtbWFyeSwN CiAgICAjTzM2NWZwY29udGFpbmVyaWQgc3VwLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB0 YWJsZSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgdGJvZHksDQogICAgI08zNjVmcGNvbnRh aW5lcmlkIHRkLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB0Zm9vdCwNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgdGgsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHRoZWFkLA0KICAgICNP MzY1ZnBjb250YWluZXJpZCB0aW1lLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB0ciwNCiAg ICAjTzM2NWZwY29udGFpbmVyaWQgdWwsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHZhciwN CiAgICAjTzM2NWZwY29udGFpbmVyaWQgdmlkZW8sDQogICAgLm8zNjVzaGVsbC1wb3B1cCBh YmJyLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgYWRkcmVzcywNCiAgICAubzM2NXNoZWxsLXBv cHVwIGFydGljbGUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBhc2lkZSwNCiAgICAubzM2NXNo ZWxsLXBvcHVwIGF1ZGlvLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgYiwNCiAgICAubzM2NXNo ZWxsLXBvcHVwIGJsb2NrcXVvdGUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBib2R5LA0KICAg IC5vMzY1c2hlbGwtcG9wdXAgYm9keSA6Zm9jdXMsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBi b2R5IGRpdiwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGNhcHRpb24sDQogICAgLm8zNjVzaGVs bC1wb3B1cCBjaXRlLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgY29kZSwNCiAgICAubzM2NXNo ZWxsLXBvcHVwIGRkLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZGVsLA0KICAgIC5vMzY1c2hl bGwtcG9wdXAgZGV0YWlscywNCiAgICAubzM2NXNoZWxsLXBvcHVwIGRmbiwNCiAgICAubzM2 NXNoZWxsLXBvcHVwIGRsLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZHQsDQogICAgLm8zNjVz aGVsbC1wb3B1cCBlbSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGZpZWxkc2V0LA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgZmlndXJlLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZm9vdGVyLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgZm9ybSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGgxLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgaDIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBoMywNCiAg ICAubzM2NXNoZWxsLXBvcHVwIGg0LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaDUsDQogICAg Lm8zNjVzaGVsbC1wb3B1cCBoNiwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGhlYWRlciwNCiAg ICAubzM2NXNoZWxsLXBvcHVwIGh0bWwsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBpLA0KICAg IC5vMzY1c2hlbGwtcG9wdXAgaWZyYW1lLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaW1nLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgaW5zLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAga2JkLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgbGFiZWwsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBsZWdl bmQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBsaSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIG1h cmssDQogICAgLm8zNjVzaGVsbC1wb3B1cCBtZW51LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAg bmF2LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgb2JqZWN0LA0KICAgIC5vMzY1c2hlbGwtcG9w dXAgb2wsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBwLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAg cHJlLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgcSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHNh bXAsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBzZWN0aW9uLA0KICAgIC5vMzY1c2hlbGwtcG9w dXAgc21hbGwsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBzdHJvbmcsDQogICAgLm8zNjVzaGVs bC1wb3B1cCBzdWIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBzdW1tYXJ5LA0KICAgIC5vMzY1 c2hlbGwtcG9wdXAgc3VwLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdGFibGUsDQogICAgLm8z NjVzaGVsbC1wb3B1cCB0Ym9keSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHRkLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgdGZvb3QsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB0aCwNCiAgICAu bzM2NXNoZWxsLXBvcHVwIHRoZWFkLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdGltZSwNCiAg ICAubzM2NXNoZWxsLXBvcHVwIHRyLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdWwsDQogICAg Lm8zNjVzaGVsbC1wb3B1cCB2YXIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB2aWRlbyB7DQog ICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgQGZvbnQtZmFjZSB7DQogICAgICBmb250LWZh bWlseTogU2hlbGxGYWJyaWNNREwySWNvbnNMaXRlOw0KICAgICAgc3JjOiB1cmwoZGF0YTpm b250L3dvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUFtb0FBNEFBQUFB RXh3QUE1UjhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUJSQUFBQUVnQUFB QmdNV2Q3WkdOdFlYQUFBQUdNQUFBQVBRQUFBVkxua3QzTlkzWjBJQUFBQWN3QUFBQWdBQUFB S2duWkNhOW1jR2R0QUFBQjdBQUFBUEFBQUFGWi9KN21qbWRoYzNBQUFBTGNBQUFBREFBQUFB d0FDQUFiWjJ4NVpnQUFBdWdBQUFHaEFBQURaTWthY1M5b1pXRmtBQUFFakFBQUFESUFBQUEy QVFqeWMyaG9aV0VBQUFUQUFBQUFGUUFBQUNRUUFRZ0RhRzEwZUFBQUJOZ0FBQUFNQUFBQURB MHFBU1pzYjJOaEFBQUU1QUFBQUFvQUFBQUtBaVFBMkcxaGVIQUFBQVR3QUFBQUhRQUFBQ0FB SWdJT2JtRnRaUUFBQlJBQUFBUDRBQUFKK3BHYjhWTndiM04wQUFBSkNBQUFBQlFBQUFBZy8x RUFlM0J5WlhBQUFBa2NBQUFBaVFBQUFOTjR2ZklPZUp4allHSDNZcHpBd01yQXdEcUwxWmlC Z1ZFYVFqTmZaRWhqRXVKZ1plVmlaR0lFQXdZZ0VHQkFBTjlnQlFVR2grZUtYeDV3Z1BrUWtn R3NqZ1hDVTJCZ0FBRE9JUWh5ZUp4allHQmdab0JnR1FaR0JoRHdBZklZd1h3V0JnTWd6UUdF VEF3TXp4V2ZWMzk1OFA4L2dpWHhVS0tOV3htcUN3d1kyUmhHUEFBQTlGUVBHd0FBQUhpY1k5 QmlDR1VvWUdoZ1dNWEl3TmpBN01CNGdNRUJpd2dRQUFDcUhBZVZlSnhkajc5T3cwQU14bk1r dElRblFEb2huWFVxUTVXSW5lbUdTeVRVSlNVTTU2V0ExRXFrNzRDVWhjVUR6K0p1R2ZOaUNN d1IvaTYydjgvNmZMOXpwL25KZkhhY3BVY3FLVmFjTitHZzFBc082dTJaL2ZraFQrODJaV0ZN MVhsVzkyWEJhZ21pYTA0WDlVMndhTWpROVpaTWJSNGZ0cHd0WXBmRmp2RFNjTktHVHVwdEFI YW92OGNkNGxVOGtzVWpoQkxmVC9GOWpFdjZ0U3hXaHRPTEpxd0Q5MTZ6ODZnQlRNVmpFM2ow R2hCL3lLUS9kV2NUNDJ3NVpkdkFUbk9DUkovS0F2ZEVtb1Q3UzQ5LzlhQ1MvNGI3YmNpL3Ew SDFUZHowRnZTSFljR0NzS0dYWjl0UUNScGcrUTZFL0dUR0FBRUFBZ0FJQUFyLy93QVBlSnhq WUdKWXhzREEwc0pheHNETXdNN0FZQzZvS0tpcUtLaTRqUG5lbjIxTTIvNTZNYkNXL2VxYXd1 TEhBQVJNREEwTURPd05IQXdNMmd6MkRBeU1ja3hDb3NvbVRHb3F5a3A4TEVDV2tCMmp1UjZ6 cVlrZGs3R1JISk9vQ0I4VG80Z2NrRzNIWkdxaXh3UlV4TVJxMUhGN1psQkQ2YmwvejVka0gx dmRuV3pXRURMcmRydGZUYmgreXJxWHJhMHYxNlhvaDFmL2FRenMzcFdWdGFzN0VFWXorK3F2 dlBmdlIvOFNSc2x6cFdiSjNhdVBaVTlnWkwrendsQ3JZdkx5Q0pBMmtQYUlaWk1xbVRpUjlR RnBzTHVCZ0FNSUdaUVp6SUh1TnBKakFUcU9SVmxKVFoyUkRVaWFtcGd6NmpFQzNjMGlqT1JX VWFEYldSMFN0OHhwakRFeWltbWNzeVd4OW1uQ24vZkNVbEpxd3N3Qy9pRVFzZkpMYzZLajUx d3FoOUljREJCaGlMWVEvejhmaE5Xa3BJU1pCUk9lMWtMRWZqTWdLUWZUREp4QTV6V0F3MVdZ UVozQm1zR2ZJWm1obktHYllUN0RacUFRTkNpVmxmU1lRRUdyaU1abmhOTHdJQ2VnSGtNL2ll b1BhTGlaeU1tWnVHbEFhV1lOUWdJL2I1Q3M1UmRCRlJnQ0hBeElIS3owdndiQ0lvVG92d1J0 UWFjWkdBQ3JYTS9wQUFBQWVKeGpZR1JnWUdDZVVuTXZ6VU1ubnQvbUt3TTNCd01JN1A5N3NB RkUzM3psWHdtaU9SakE0cHdNVENBS0FGQk5DaUlBQUhpY1kyQmtZT0JnQUFFNHljaUFDcGdB QXNvQUhRQUFBQVVxQUtZSUFBQ0FBQUFBQUFBQUFCWUFjZ0RDQWJJQUFIaWNZMkJrWUdCZ1lk akN3TWtBQW94Z2tndUVHU05CVEFBVmxnRXlBQUFBZUp5MVZNMktIRGNRcnRrWmV6YzRYa0ln NEtNT0pxeVhvY2RlWSt6WXA4VS9KKzlsYlJaOENXaTZOZDNDUFMwaHFkMTB5Q0ZISC9JWXVS anlGQ0dCSEhQMkUvaWNVNDZwS3FsbmRqMFRzd2xrbWxGL0t0WHZWNlVHZ0J1anIyRUU4WGNY L3hHUDRFdmNSYndEdS9BMDRUSEtueWM4UWZ4dHdsZmdjN0FKWDRVdjRQdUVkK0ViK0RIaFBm Z0tma3Y0R2h6Qys0U3ZqMzRkVFJMZWg4T2QzekhLYVBJWjdvcWRQeE1ld2MzeFdjSTdzRC8r THVFeHl0OG1QRUg4YzhKWDRNYjRqNFN2Z2hoL1NIZ1gzR1F2NFQwNG5BeCtyc0hMeVU4Slh4 Ky9uZnlWOEQ2ODNQdmhsM2ZpNlBhZCsrSkU1ODU0c3dqaXNYSFdPQm0wYVRKeFhOZmlWSmRW OE9KVWVlWGVxQ0o3SnVkTzUrTGt5Zk1qY2V5OUN2NVVsVzB0M2ViQnB1Uk1PWStleGQzczNv TjRTb2Z4N0lVcWpSTGFDeW1DazRWYVN2ZGFtSVVJbFRxWFgrbE1hMG1jbTZXVmpWWSsyNXA4 RllKOU9KdDFYWmN0aC9NTWJXYWh0NlowMGxiOWJHR2E0R2RyYzk5YVcydFZDRHJJeEN2VGlx WHNSZXNWSm9HSmtWZ0VJM0tuWkZCVFVXaHZhOWxQaFd3S1laM0cweHhWRkw2bEYxYTVwUTRC M2MxN0xxTFd1V3JJRng1NFlkd0FGaFJodWxtcWRhWm84ekFWeER6YVRzbG1DS0FiMFZVNnI4 NWwxbUZRM2VSMVcyQ2JWdG1icHU3RmdiNGwxSEtPdWF6VjBjT25zbVgxUWplbGNNb0g3QlN4 dWc1QTVpdGZqNWlCQTQxUmdscFNDNXpHcUlYcG10ckk0aUo3TWxLbEhKVmpNQlN1YmJCdEVJ V2lNa21uVXJXOXlDZ09ZOU1uZFdvSU9rUitLajNYbUhOMitXN0RPeEJ3QkxmaER0eEhkQUlh Y25CZ3dPTi9BUUZsanhFNXZQTzBTcFJvUkExa2VISU1OVDRDVGxGV1FvVm5ubmNLM3dxMTMr QmFvT1l6dEp2am5ueFRqQ2Y0WlRsaWU4K2FaRWRXSmJUb1Q2TG1aU3d1bzNQR2VmaVVzOEF2 WFFiMzRNRUYyOEh5dk4wTHpzYmdLbENIcXBMNEQ4eEFnZElsWi9rYVpjUVNuVlNzdTQyL2t2 Y3RNamhvNS9oZTRsNWlUcHJaeXY0Rjg4UnpRT2xEbU9IVDhaT2h2NC90c3hSbmhyaG5MeVg3 c2VpaFIrbUN2VkcxczYzUlBlZHNzU09hK3loV0Z0VDdWMXlUWUNaNmZMZk1YV1FpTWpab2s4 eHcxUTQxcUE0RlU5d1hyR2U1NHoxTGlBK0tZN2t6MFRaUFhsVGFTL1p0dWE5VWMrQXpzcHB6 SGtNbmFxNklySWE4b29YbkxyZ055V0pWdy9SU1hiVzhMOUFteC8yVStZb3pIK05PVjNFK3Jr RHpKSGJNVTQ3cmRzNjZWQ2xwNTFoTnkzTlhiT1dlYkdwR0I2aC9DOTgwb2ZQRXl6YnZNWWYv eXUzYWU4R2VTcFE1bnVPUTd0UXdxOXNxR0tKdjV2WG8zQXhRSmJHV3dQR0dXMEQrWTYwRlNq cXUzUEN0L05Uc3lRdFRwYmd2SnEyeHFvaGJ2bGt0VzFLMlF6Y0hQNlJaODAzKzV4bU5YOFlt ZFdidGZiZ2hPckZNODBQNXpwbnAyTnYvNFc3L0RZYTdPSnA0bkdOZ1pnQ0QvMzRNNVF5WWdB VUFLUzRCekhpYzI4Q2d6YkNKa1pOSm0zRVRGNGpjenRXYUcycXJ5c0NodlowN05kaEJUd2JF NG9ud3NOQ1FCTEY0bmMyMTVZVkJMRDRkRlJrUkhoQ0xYMDVDbUk4RHhCTGc0K0ZrWndHeEJN RUF4QkxhTUtFZ3dBRElZdGpPQ0RlYUNXNDBNOXhvRnJqUnJIQ2oyZVFrb1Vhenc0M21nQnZO Q1RkNmt6QWp1L1lHQmdYWDJrd0pGd0RFQVNnYUFBQUEpIGZvcm1hdCgid29mZiIpOw0KICAg ICAgZm9udC1kaXNwbGF5OiBhdXRvOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSBbY2xh c3MqPSIgbXMtSWNvbi0tIl0sDQogICAgLm8zNjVjcy1iYXNlIFtjbGFzcyo9IiBtcy1JY29u LS0iXTpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIFtjbGFzc149Im1zLUljb24tLSJdLA0K ICAgIC5vMzY1Y3MtYmFzZSBbY2xhc3NePSJtcy1JY29uLS0iXTpiZWZvcmUgew0KICAgICAg Zm9udC1mYW1pbHk6IFNoZWxsRmFicmljTURMMkljb25zTGl0ZSwgU2hlbGxGYWJyaWNNREwy SWNvbnM7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBsaW5lLWhlaWdo dDogMTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgW2NsYXNzKj0iIG1zLUljb24tLSJd OmJlZm9yZSwNCiAgICAubzM2NWNzLWJhc2UgW2NsYXNzXj0ibXMtSWNvbi0tIl06YmVmb3Jl IHsNCiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7 DQogICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7DQogICAgICB0ZXh0LWFsaWduOiBj ZW50ZXI7DQogICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDsNCiAgICAgIHRleHQtdHJhbnNm b3JtOiBub25lOw0KICAgICAgd2lkdGg6IGF1dG87DQogICAgICBtYXJnaW4tbGVmdDogMDsN CiAgICAgIG1hcmdpbi1yaWdodDogMDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1z LWljb24tZm9udC1jaXJjbGU6YmVmb3JlIHsNCiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7 DQogICAgICBib3JkZXItcmFkaXVzOiAxZW07DQogICAgICBsaW5lLWhlaWdodDogMS4xNTsN CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICAtbW96LWJveC1zaXppbmc6 IGJvcmRlci1ib3g7DQogICAgICBwYWRkaW5nOiAwLjFlbTsNCiAgICB9DQoNCiAgICBAbWVk aWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7DQog ICAgICAubzM2NWNzLWJhc2UgLm1zLWljb24tZm9udC1jaXJjbGU6YmVmb3JlIHsNCiAgICAg ICAgbGluZS1oZWlnaHQ6IDE7DQogICAgICB9DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5tcy1pY29uLWZvbnQtc2l6ZS04IHsNCiAgICAgIGZvbnQtc2l6ZTogOCAhaW1wb3J0YW50 Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtaWNvbi1mb250LXNpemUtMTEgew0K ICAgICAgZm9udC1zaXplOiAxMSAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAubXMtaWNvbi1mb250LXNpemUtMTIgew0KICAgICAgZm9udC1zaXplOiAxMiAhaW1w b3J0YW50Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtaWNvbi1mb250LXNpemUt MTQgew0KICAgICAgZm9udC1zaXplOiAxNCAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubXMtaWNvbi1mb250LXNpemUtMTggew0KICAgICAgZm9udC1zaXplOiAx OCAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtaWNvbi1mb250 LXNpemUtMjAgew0KICAgICAgZm9udC1zaXplOiAyMCAhaW1wb3J0YW50Ow0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubXMtaWNvbi1mb250LXNpemUtMjIgew0KICAgICAgZm9udC1z aXplOiAyMiAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtaWNv bi1mb250LXNpemUtMjUgew0KICAgICAgZm9udC1zaXplOiAyNSAhaW1wb3J0YW50Ow0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtaWNvbi1mb250LXNpemUtMjYgew0KICAgICAg Zm9udC1zaXplOiAyNiAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtaWNvbi1mb250LXNpemUtMzUgew0KICAgICAgZm9udC1zaXplOiAzNSAhaW1wb3J0YW50 Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSBbZGF0YS1pY29uXTpiZWZvcmUgew0KICAg ICAgY29udGVudDogYXR0cihkYXRhLWljb24pOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubXMtSWNvbi0tV2FmZmxlT2ZmaWNlMzY1OmJlZm9yZSB7DQogICAgICBjb250ZW50OiAi PyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1TZWFyY2g6YmVmb3Jl IHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1z LUljb24tLUNvbnRhY3Q6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQog IDwvc3R5bGU+DQogIDxzY3JpcHQgY2hhcnNldD0idXRmLTgiDQogICAgc3JjPSJodHRwczov L3Jlcy0xLmNkbi5vZmZpY2UubmV0L2ZpbGVzL29kc3Atd2ViLXByb2RfMjAyMy0xMC0yMC4w MDUvb2RjbGlnaHRzcGVlZHdlYnBhY2subWFuaWZlc3QvNDA5LmpzIg0KICAgIGNyb3Nzb3Jp Z2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0Pg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1z dHlsZXM9InRydWUiPg0KICAgIEBrZXlmcmFtZXMgY29tbWFuZEJhckJveFNoYWRvd0FuaW1h dGlvbiB7DQogICAgICAwJSB7DQogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgICAg IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgfQ0KDQogICAgICAxMDAl IHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgICAgYm94LXNo YWRvdzogMCAzLjJweCA3LjJweCAwIHJnYmEoMCwgMCwgMCwgMC4xMzIpLA0KICAgICAgICAg IDAgMC42cHggMS44cHggMCByZ2JhKDAsIDAsIDAsIDAuMTA4KTsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICBAa2V5ZnJhbWVzIGNvbW1hbmRCYXJEaXZpZGVyQW5pbWF0aW9uIHsNCiAgICAg IDAlIHsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgIH0NCg0KICAgICAgMTAwJSB7DQog ICAgICAgIG9wYWNpdHk6IDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdCB7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNw YXJlbnQ7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5k QmFyIGJ1dHRvbi5pcy1waXZvdCAubXMtQnV0dG9uLWxhYmVsOmFmdGVyIHsNCiAgICAgIHRy YW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0Ow0KICAgIH0NCg0KICAgIC5vZC1Ub3BC YXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3Q6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICAgIGJvcmRlci1ib3R0b206 IDJweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1h bmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90OmFjdGl2ZSB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNv bGlkICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1D b21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy1jdXJyZW50LXZpZXcsDQogICAgLm9kLVRv cEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy10b2dn bGVkIHsNCiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAg ICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9u LmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldzpob3ZlciwNCiAgICAub2QtVG9wQmFyLWNvbW1h bmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLXRvZ2dsZWQ6aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICAgIGJvcmRlci1ib3R0 b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNv bW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmll dzpob3ZlciAubXMtQnV0dG9uLWxhYmVsOmFmdGVyLA0KICAgIC5vZC1Ub3BCYXItY29tbWFu ZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZDpob3ZlciAu bXMtQnV0dG9uLWxhYmVsOmFmdGVyIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgbGVm dDogMDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRC YXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldyAubXMtQnV0dG9uLWxhYmVsLA0K ICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2 b3QuaXMtdG9nZ2xlZCAubXMtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2 MDA7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFy IGJ1dHRvbi5pcy1waXZvdC5pcy1jdXJyZW50LXZpZXcgLm1zLUJ1dHRvbi1sYWJlbDphZnRl ciwNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlz LXBpdm90LmlzLXRvZ2dsZWQgLm1zLUJ1dHRvbi1sYWJlbDphZnRlciB7DQogICAgICBjb250 ZW50OiAiIjsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcG9zaXRpb246IGFic29s dXRlOw0KICAgICAgbGVmdDogOHB4Ow0KICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlk ICMwMDc4ZDQ7DQogICAgICBib3R0b206IC0ycHg7DQogICAgICB3aWR0aDogY2FsYygxMDAl IC0gKDhweCArIDhweCkpOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BC YXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3VycmVu dC12aWV3IC5tcy1CdXR0b24tZmxleENvbnRhaW5lciwNCiAgICAuaXNGbHVlbnRWTmV4dCAu b2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90Lmlz LXRvZ2dsZWQgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGhlaWdodDogMTAw JTsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtVG9wQmFyLWNvbW1hbmRCYXIg Lm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldzpob3ZlciAu bXMtQnV0dG9uLWZsZXhDb250YWluZXIsDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVRvcEJh ci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy10b2dnbGVk OmhvdmVyIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BCYXIt Y29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3VycmVudC12 aWV3OmFjdGl2ZSAubXMtQnV0dG9uLWZsZXhDb250YWluZXIsDQogICAgLmlzRmx1ZW50Vk5l eHQgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZv dC5pcy10b2dnbGVkOmFjdGl2ZSAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNv bW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmll dywNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlz LXBpdm90LmlzLXRvZ2dsZWQgew0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIg YnV0dG9uLmlzLXBpdm90LmlzLWxhc3QtcGl2b3Qgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAy NHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1Ub3BCYXItY29tbWFuZEJhciAu bXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtbGFzdC1waXZvdCB7DQogICAgICBt YXJnaW4tbGVmdDogMjRweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtVG9w QmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90OmFjdGl2ZSB7 DQogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOw0KICAgICAgYm9yZGVyLWJv dHRvbS1yaWdodC1yYWRpdXM6IDA7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1jb21tYW5k QmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy10b2dnbGVkIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNlYmViZWI7DQogICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICB9DQoNCiAg ICAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXRvZ2ds ZWQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoN CiAgICAuaXNGbHVlbnRWTmV4dCAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRC YXIgYnV0dG9uLmlzLXRvZ2dsZWQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNw YXJlbnQ7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRW TmV4dCAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXRv Z2dsZWQgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVRvcEJhci1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy10b2dnbGVkOmhvdmVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5pc0Zs dWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24u aXMtdG9nZ2xlZDpob3ZlciAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1h bmRCYXIub2QtLWhhc1NlbGVjdGlvbiAubXMtQ29tbWFuZEJhciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xv ciA0NjdtcyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgfQ0KDQogICAg Lm9kLVRvcEJhci1jb21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUJ1dHRvbi0tY29t bWFuZEJhciB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNmMGYwZjA7DQogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDQ2N21z IGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsNCiAgICB9DQoNCiAgICAub2QtVG9w QmFyLWNvbW1hbmRCYXIub2QtLWhhc1NlbGVjdGlvbiAubXMtQnV0dG9uLS1jb21tYW5kQmFy OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQog ICAgLm9kLVRvcEJhci1jb21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUJ1dHRvbi0t Y29tbWFuZEJhci5pcy10b2dnbGVkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUw ZTA7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1jb21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rp b24gLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy10b2dnbGVkOmhvdmVyIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1jb21t YW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjphY3RpdmUg ew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBl MGUwOw0KICAgIH0NCg0KICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhci5vZC0taGFzU2VsZWN0 aW9uIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIuaXMtZXhwYW5kZWQ6aG92ZXIgew0KICAgICAg Y29sb3I6ICMxNDE0MTQ7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAg IH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhci5vZC0taGFz U2VsZWN0aW9uIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAg IH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhci5vZC0taGFz U2VsZWN0aW9uIC5tcy1Db21tYW5kQmFyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNm YWZhZmE7DQogICAgICBhbmltYXRpb24tbmFtZTogY29tbWFuZEJhckJveFNoYWRvd0FuaW1h dGlvbjsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMjY3bXM7DQogICAgICBhbmltYXRp b24tZmlsbC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1U b3BCYXItY29tbWFuZEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1Db21tYW5kQmFyOmFmdGVy IHsNCiAgICAgIGFuaW1hdGlvbjogY29tbWFuZEJhckRpdmlkZXJBbmltYXRpb247DQogICAg ICBhbmltYXRpb24tZHVyYXRpb246IDI2N21zOw0KICAgICAgYW5pbWF0aW9uLWZpbGwtbW9k ZTogYm90aDsNCiAgICB9DQoNCiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lk dGg6IDQ3OS45OTk5OXB4KSB7DQogICAgICAuaXNGbHVlbnRWTmV4dCAub2QtVG9wQmFyLWNv bW1hbmRCYXIub2QtLWhhc1NlbGVjdGlvbiB7DQogICAgICAgIGhlaWdodDogY2FsYyg0OHB4 ICsgNnB4ICogMik7DQogICAgICB9DQoNCiAgICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BC YXItY29tbWFuZEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1Db21tYW5kQmFyIHsNCiAgICAg ICAgYm9yZGVyLXJhZGl1czogMDsNCiAgICAgICAgcGFkZGluZzogNnB4Ow0KICAgICAgfQ0K ICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhci5vZC0t aGFzU2VsZWN0aW9uIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLm1zLUJ1dHRvbi0tY29tbWFu ZEJhci5oaWRlLWxhYmVsIC5tcy1CdXR0b24tdGV4dENvbnRhaW5lciB7DQogICAgICBkaXNw bGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5tcy1Db21tYW5kQmFyIC5vZC1Db21tYW5kLS1X b3JkIC5tcy1CdXR0b24taWNvbiwNCiAgICAubXMtQ29udGV4dHVhbE1lbnUgLm9kLUNvbW1h bmQtLVdvcmQgLm1zLUJ1dHRvbi1pY29uIHsNCiAgICAgIGNvbG9yOiAjMmI1NzlhOw0KICAg IH0NCg0KICAgIC5tcy1Db21tYW5kQmFyIC5vZC1Db21tYW5kLS1FeGNlbCAubXMtQnV0dG9u LWljb24sDQogICAgLm1zLUNvbnRleHR1YWxNZW51IC5vZC1Db21tYW5kLS1FeGNlbCAubXMt QnV0dG9uLWljb24gew0KICAgICAgY29sb3I6ICMyMTczNDY7DQogICAgfQ0KDQogICAgLm1z LUNvbW1hbmRCYXIgLm9kLUNvbW1hbmQtLVBvd2VyUG9pbnQgLm1zLUJ1dHRvbi1pY29uLA0K ICAgIC5tcy1Db250ZXh0dWFsTWVudSAub2QtQ29tbWFuZC0tUG93ZXJQb2ludCAubXMtQnV0 dG9uLWljb24gew0KICAgICAgY29sb3I6ICNkMjQ3MjY7DQogICAgfQ0KDQogICAgLm1zLUNv bW1hbmRCYXIgLm9kLUNvbW1hbmQtLVZpc2lvIC5tcy1CdXR0b24taWNvbiwNCiAgICAubXMt Q29udGV4dHVhbE1lbnUgLm9kLUNvbW1hbmQtLVZpc2lvIC5tcy1CdXR0b24taWNvbiB7DQog ICAgICBjb2xvcjogIzM4NTRhMjsNCiAgICB9DQoNCiAgICAubXMtQ29tbWFuZEJhciAub2Qt Q29tbWFuZC0tT25lTm90ZSAubXMtQnV0dG9uLWljb24sDQogICAgLm1zLUNvbnRleHR1YWxN ZW51IC5vZC1Db21tYW5kLS1PbmVOb3RlIC5tcy1CdXR0b24taWNvbiB7DQogICAgICBjb2xv cjogIzVjMmQ5MTsNCiAgICB9DQoNCiAgICAubXMtQ29tbWFuZEJhciAub2QtQ29tbWFuZC0t UERGIC5tcy1CdXR0b24taWNvbiwNCiAgICAubXMtQ29udGV4dHVhbE1lbnUgLm9kLUNvbW1h bmQtLVBERiAubXMtQnV0dG9uLWljb24gew0KICAgICAgY29sb3I6ICNjOTAzMDQ7DQogICAg fQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0t Y29tbWFuZEJhci5vZC1Db21tYW5kLS1Xb3JkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMyYjU3OWE7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRC YXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1Xb3JkOmZvY3VzOjphZnRl ciB7DQogICAgICBvdXRsaW5lLWNvbG9yOiAjZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29t bWFuZC0tV29yZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI0MDc4Ow0K ICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0 b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tV29yZC5pcy1leHBhbmRlZCwNCiAgICAuT25l VXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9k LUNvbW1hbmQtLVdvcmQuaXMtZXhwYW5kZWQ6aG92ZXIsDQogICAgLk9uZVVwLWNvbW1hbmRC YXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1X b3JkOmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyMDUwOw0KICAgIH0N Cg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNv bW1hbmRCYXIub2QtQ29tbWFuZC0tRXhjZWwgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog IzIxNzM0NjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJh ciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLUV4Y2VsOmZvY3VzOjphZnRl ciB7DQogICAgICBvdXRsaW5lLWNvbG9yOiAjZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29t bWFuZC0tRXhjZWw6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBlNWMyZjsN CiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0 dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLUV4Y2VsLmlzLWV4cGFuZGVkLA0KICAgIC5P bmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIu b2QtQ29tbWFuZC0tRXhjZWwuaXMtZXhwYW5kZWQ6aG92ZXIsDQogICAgLk9uZVVwLWNvbW1h bmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5k LS1FeGNlbDphY3RpdmUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGIxYzsNCiAg ICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9u LS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVBvd2VyUG9pbnQgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogI2I3NDcyYTsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMt Q29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVBvd2VyUG9p bnQ6Zm9jdXM6OmFmdGVyIHsNCiAgICAgIG91dGxpbmUtY29sb3I6ICNmZmY7DQogICAgfQ0K DQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29t bWFuZEJhci5vZC1Db21tYW5kLS1Qb3dlclBvaW50OmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNhOTJiMWE7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1z LUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1Qb3dlclBv aW50LmlzLWV4cGFuZGVkLA0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFy IC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUG93ZXJQb2ludC5pcy1leHBh bmRlZDpob3ZlciwNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVBvd2VyUG9pbnQ6YWN0aXZlIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICM3NDA5MTI7DQogICAgfQ0KDQogICAgLk9uZVVwLWNv bW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21t YW5kLS1WaXNpbyB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0N Cg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNv bW1hbmRCYXIub2QtQ29tbWFuZC0tVmlzaW86Zm9jdXM6OmFmdGVyIHsNCiAgICAgIG91dGxp bmUtY29sb3I6ICNmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNv bW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1WaXNpbzpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIC5P bmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIu b2QtQ29tbWFuZC0tVmlzaW8uaXMtZXhwYW5kZWQsDQogICAgLk9uZVVwLWNvbW1hbmRCYXIg Lm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1WaXNp by5pcy1leHBhbmRlZDpob3ZlciwNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFu ZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVZpc2lvOmFjdGl2ZSB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAgIC5PbmVV cC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2Qt Q29tbWFuZC0tT25lTm90ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzcxOWFhOw0K ICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0 b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tT25lTm90ZTpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjNWMxMzg0Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFy IC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tT25l Tm90ZS5pcy1leHBhbmRlZCwNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJh ciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLU9uZU5vdGUuaXMtZXhwYW5k ZWQ6aG92ZXIsDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1 dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1PbmVOb3RlOmFjdGl2ZSB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjNGMwZjZjOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5k QmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0t UERGIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjOTAzMDQ7DQogICAgfQ0KDQogICAg Lk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJh ci5vZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0K ICAgICAgbWFyZ2luOiA2cHggMTJweCA2cHggMDsNCiAgICAgIGhlaWdodDogYXV0bzsNCiAg ICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g Lk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJh ci5vZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uIHsNCiAgICAgIG1hcmdpbjogNnB4IDAgNnB4 IDEycHg7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIg Lm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uIC5tcy1C dXR0b24taWNvbiwNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b24gLm1zLUJ1dHRv bi1tZW51SWNvbiB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25l VXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9k LUNvbW1hbmQtLW5vbk9mZmljZUFwcCB7DQogICAgICBtYXJnaW46IDZweCAxMnB4IDZweCAw Ow0KICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAg ICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuT25lVXAtY29tbWFuZEJhciAubXMtQ29t bWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLW5vbk9mZmljZUFw cCB7DQogICAgICBtYXJnaW46IDZweCAwIDZweCAxMnB4Ow0KICAgIH0NCg0KICAgIC5PbmVV cC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2Qt Q29tbWFuZC0tbm9uT2ZmaWNlQXBwOmZvY3VzOjphZnRlciB7DQogICAgICBvdXRsaW5lLWNv bG9yOiAjZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5k QmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tbm9uT2ZmaWNlQXBwOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAg Lk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJh ci5vZC1Db21tYW5kLS1ub25PZmZpY2VBcHAuaXMtZXhwYW5kZWQsDQogICAgLk9uZVVwLWNv bW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21t YW5kLS1ub25PZmZpY2VBcHA6YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMw MDVhOWU7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIg Lm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1ub25PZmZpY2VBcHAgLm1zLUJ1 dHRvbi1pY29uLA0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1C dXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tbm9uT2ZmaWNlQXBwIC5tcy1CdXR0b24t bWVudUljb24gew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVw LWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1D b21tYW5kLS1TdHJlYW0gew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JjMTk0ODsNCiAg ICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9u LS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVN0cmVhbTpmb2N1czo6YWZ0ZXIgew0KICAgICAg b3V0bGluZS1jb2xvcjogI2ZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAu bXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVN0cmVh bTpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWExNjQwOw0KICAgIH0NCg0K ICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1h bmRCYXIub2QtQ29tbWFuZC0tU3RyZWFtLmlzLWV4cGFuZGVkLA0KICAgIC5PbmVVcC1jb21t YW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFu ZC0tU3RyZWFtLmlzLWV4cGFuZGVkOmhvdmVyLA0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5t cy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tU3RyZWFt OmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGYxMzM2Ow0KICAgIH0NCg0K ICAgIC5tcy1Db21tYW5kQmFyIGJ1dHRvbiAub2QtZXJyb3ItYmFkZ2Ugew0KICAgICAgY29s b3I6ICNhNDI2MmM7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAg Zm9udC1zaXplOiAxMnB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgcG9z aXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDEycHg7DQogICAgICBoZWlnaHQ6IDEy cHg7DQogICAgICBtYXJnaW4tdG9wOiAtNHB4Ow0KICAgICAgbGVmdDogMThweDsNCiAgICB9 DQoNCiAgICAubXMtQ29tbWFuZEJhciBidXR0b24gLmNvbW1hbmRGaWxlSW5wdXQsDQogICAg Lm1zLUNvbnRleHR1YWxNZW51IGJ1dHRvbiAuY29tbWFuZEZpbGVJbnB1dCB7DQogICAgICBv cGFjaXR5OiAwLjAwMDE7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB3aWR0 aDogMTAwJTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6 IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHotaW5kZXg6IC05OTk5OTk5Ow0KICAgICAg Y3Vyc29yOiBwb2ludGVyOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9DQoNCiAg ICAubWQgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciwNCiAgICAuc20g Lm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciB7DQogICAgICBoZWlnaHQ6 IDQ4cHg7DQogICAgfQ0KDQogICAgLm1kIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNv bW1hbmRCYXIgLm1zLUJ1dHRvbi1pY29uLA0KICAgIC5zbSAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyIC5tcy1CdXR0b24taWNvbiB7DQogICAgICBmb250LXNpemU6 IDIwcHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm1kIC5tcy1Db21tYW5kQmFy IC5tcy1CdXR0b24tLWNvbW1hbmRCYXIsDQogICAgLmlzRmx1ZW50Vk5leHQgLnNtIC5tcy1D b21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIgew0KICAgICAgaGVpZ2h0OiA0MHB4 Ow0KICAgIH0NCg0KICAgIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIu aXMtZGlzYWJsZWQgew0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgIH0NCg0KICAgIC5t cy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIuaXMtZGlzYWJsZWQgaSB7DQog ICAgICBjb2xvcjogIzQyNDI0MjsNCiAgICB9DQoNCiAgICAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyLmlzLWludmlzaWJsZSB7DQogICAgICB2aXNpYmlsaXR5OiBo aWRkZW47DQogICAgfQ0KDQogICAgLmxnIC5tcy1Db21tYW5kQmFyLA0KICAgIC5tZCAubXMt Q29tbWFuZEJhciwNCiAgICAuc20gLm1zLUNvbW1hbmRCYXIgew0KICAgICAgcGFkZGluZzog MCA0cHg7DQogICAgfQ0KDQogICAgLm1kIC5tcy1Db21tYW5kQmFyLA0KICAgIC5zbSAubXMt Q29tbWFuZEJhciB7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLm9kLVRv cEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1Db21tYW5kQmFyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNmMGYwZjA7DQogICAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIH0NCg0K ICAgIC5vZC1Ub3BCYXIub2QtLWhhc1NlbGVjdGlvbiAubXMtQ29tbWFuZEJhciAubXMtQnV0 dG9uLS1jb21tYW5kQmFyIHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogaW5oZXJpdDsNCiAgICAgIHRyYW5zaXRpb246IG5vbmU7DQogICAgfQ0K DQogICAgLm9kLVRvcEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1Db21tYW5kQmFyIC5tcy1C dXR0b24tLWNvbW1hbmRCYXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5vZC1Ub3BCYXIu b2QtLWhhc1NlbGVjdGlvbiAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFy LmlzLXRvZ2dsZWQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9 DQoNCiAgICAub2QtVG9wQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUNvbW1hbmRCYXIgLm1z LUJ1dHRvbi0tY29tbWFuZEJhci5pcy10b2dnbGVkOmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci5vZC0taGFzU2Vs ZWN0aW9uIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6YWN0aXZlIHsN CiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBl MDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUNvbW1h bmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy1leHBhbmRlZDpob3ZlciB7DQogICAg ICBjb2xvcjogIzE0MTQxNDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkMWQxZDE7DQog ICAgfQ0KDQogICAgLm1zLUJ1dHRvbi5pcy1kaXNhYmxlZCB7DQogICAgICBwb2ludGVyLWV2 ZW50czogYWxsOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVt ZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAubXMtQ29udGV4dHVhbE1lbnUtaWNvbiB7DQogICAg ICBmb250LXNpemU6IDFyZW07DQogICAgICB3aWR0aDogMXJlbTsNCiAgICB9DQoNCiAgICAu bXMtQ29udGV4dHVhbE1lbnUtaWNvbi5tcy1JY29uLS1JbmZvIHsNCiAgICAgIG1hcmdpbi10 b3A6IDJweDsNCiAgICB9DQoNCiAgICAubXMtQ29udGV4dHVhbE1lbnUtaWNvbltkYXRhLWlj b24tbmFtZT0iRXhjZWxMb2dvIl0gew0KICAgICAgY29sb3I6ICMyMTczNDY7DQogICAgfQ0K DQogICAgLm1zLUNvbnRleHR1YWxNZW51LWljb25bZGF0YS1pY29uLW5hbWU9Ik9uZU5vdGVM b2dvIl0gew0KICAgICAgY29sb3I6ICM1YzJkOTE7DQogICAgfQ0KDQogICAgLm1zLUNvbnRl eHR1YWxNZW51LWljb25bZGF0YS1pY29uLW5hbWU9IlBvd2VyUG9pbnRMb2dvIl0gew0KICAg ICAgY29sb3I6ICNkMjQ3MjY7DQogICAgfQ0KDQogICAgLm1zLUNvbnRleHR1YWxNZW51LWlj b25bZGF0YS1pY29uLW5hbWU9IldvcmRMb2dvIl0gew0KICAgICAgY29sb3I6ICMyYjU3OWE7 DQogICAgfQ0KDQogICAgLm1zLUNvbnRleHR1YWxNZW51LWljb25bZGF0YS1pY29uLW5hbWU9 IlZpc2lvTG9nbyJdIHsNCiAgICAgIGNvbG9yOiAjMzg1NGEyOw0KICAgIH0NCg0KICAgIC5t cy1Db250ZXh0dWFsTWVudS1pY29uLm9kLU5lZWRzQXR0ZW50aW9uVmlld0ljb24gew0KICAg ICAgY29sb3I6ICNhNDI2MmM7DQogICAgfQ0KDQogICAgLm1zLUNvbnRleHR1YWxNZW51LWlj b24ubXMtSWNvbi0tQ3VzdG9tSWNvbiwNCiAgICAubXMtQ29udGV4dHVhbE1lbnUtaWNvbi5t cy1JY29uLS1jdXN0b20gew0KICAgICAgd2lkdGg6IDFyZW07DQogICAgICBoZWlnaHQ6IDIu MjVyZW07DQogICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47DQogICAgfQ0KDQogICAg Lm1zLUNvbnRleHR1YWxNZW51LWxpbmsgew0KICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTsN CiAgICAgIGhlaWdodDogMi4yNXJlbTsNCiAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtOw0K ICAgIH0NCg0KICAgIC5Db250ZXh0dWFsTWVudS11cGxvYWRJbnB1dCB7DQogICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7DQogICAg ICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICBvcGFjaXR5OiAwLjAwMDE7DQog ICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAg ei1pbmRleDogOTk5OTk5OTsNCiAgICB9DQoNCiAgICAuQ29udGV4dHVhbE1lbnUtdXBsb2Fk SW5wdXQgaW5wdXQgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAw Ow0KICAgICAgZm9udC1zaXplOiAyMDBweDsNCiAgICAgIGhlaWdodDogMTAwcHg7DQogICAg ICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5nOiAw Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5Db250ZXh0dWFsTWVudS11cGxvYWRJbnB1 dCBpbnB1dCB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu Q29udGV4dHVhbE1lbnUtdXBsb2FkSW5wdXQgaW5wdXQgew0KICAgICAgbGVmdDogMDsNCiAg ICB9DQoNCiAgICAuQ29udGV4dHVhbE1lbnUtdXBsb2FkSW5wdXQtY29udGFpbmVyIHsNCiAg ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0N Cg0KICAgIC5Db250ZXh0dWFsTWVudS11cGxvYWRJbnB1dC1UZXh0IHsNCiAgICAgIGRpc3Bs YXk6IGJsb2NrOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8v cmVzLTEuY2RuLm9mZmljZS5uZXQvc2hlbGx1eC9zdWl0ZXV4LnNoZWxsLnJlc3BvbnNpdmUu ZjliYjYwY2U4OGQ2N2FjNmMxNDkuanMiDQogICAgY3Jvc3NvcmlnaW49ImFub255bW91cyIg YXN5bmM9IiI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgc3JjPSJodHRwczovL3Jlcy0xLmNkbi5v ZmZpY2UubmV0L3NoZWxsdXgvc3VpdGV1eC5zaGVsbC5jb25zYXBwZGF0YS42MzA5YTkxNWE0 NWIwNWI2Y2M1YS5qcyINCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBhc3luYz0iIj48 L3NjcmlwdD4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAuTTNwY0I1ZXZTQXRZ TW96Y2sxV1U3QVw9XD0gew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgbGluZS1oZWln aHQ6IDQ4cHg7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5fMVFTSzVs VWh3NUdraDdTRHo5N1pQUVw9XD0gew0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgZGlz cGxheTogZmxleDsNCiAgICB9DQoNCiAgICAuc2lVTU9Kd251bXljeHZzekJlM3V6UVw9XD0g ew0KICAgICAgZGlzcGxheTogaW5oZXJpdDsNCiAgICAgIGZsZXg6IGluaGVyaXQ7DQogICAg ICBqdXN0aWZ5LWNvbnRlbnQ6IGluaGVyaXQ7DQogICAgICBvcmRlcjogaW5oZXJpdDsNCiAg ICAgIGFsaWduLXNlbGY6IGluaGVyaXQ7DQogICAgICBtaW4td2lkdGg6IGluaGVyaXQ7DQog ICAgfQ0KDQogICAgLlwvRHlNWWoyZ05mUHJZTmJFV29WMlwvd1w9XD0gew0KICAgICAgZm9u dC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29lVUktUmVndWxhci1maW5h bCwgU2Vnb2UgVUksDQogICAgICAgICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwg U2Vnb2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9i b3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBIZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAg ICBzYW5zLXNlcmlmOw0KICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICAgIGhlaWdodDog NDhweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgdmVydGljYWwtYWxpZ246 IHRvcDsNCiAgICAgIHBhZGRpbmctbGVmdDogOHB4Ow0KICAgICAgdGV4dC1vdmVyZmxvdzog ZWxsaXBzaXMgIWltcG9ydGFudDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFu dDsNCiAgICAgIG1heC13aWR0aDogMjIwcHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQog ICAgfQ0KDQogICAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICAo Zm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5cL0R5TVlqMmdOZlByWU5iRVdv VjJcL3dcPVw9OmZvY3VzLA0KICAgICAgLlwvRHlNWWoyZ05mUHJZTmJFV29WMlwvd1w9XD06 aG92ZXIgew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAg ICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGJhY2tncm91bmQtY29s b3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50Ow0KICAgICAgICBjb2xvcjogaGlnaGxpZ2h0VGV4 dCAhaW1wb3J0YW50Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5OOUI1XC9MXC9LSEh2VDlX T0JBYjFiZUFcPVw9IHsNCiAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50Ow0K ICAgICAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50Ow0KICAgICAganVzdGlmeS1j b250ZW50OiByaWdodCAhaW1wb3J0YW50Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICB9 DQogIDwvc3R5bGU+DQogIDxzY3JpcHQgc3JjPSJodHRwczovL3Jlcy0xLmNkbi5vZmZpY2Uu bmV0L3NoZWxsdXgvc3VpdGV1eC5zaGVsbC5jb3JlLmViYjU1ODM4M2I3ZjUwMjg0ZTU3Lmpz IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIg0KICAgIGFzeW5jPSIiPjwvc2NyaXB0Pg0KICA8 c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgIC5vMzY1Y3MtYmFzZSAuWE5DcVwrbDRRdWZI dHdEaE9HZGNyRUFcPVw9Ojotd2Via2l0LXNjcm9sbGJhciB7DQogICAgICB3aWR0aDogOHB4 Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuWE5DcVwrbDRRdWZIdHdEaE9HZGNyRUFc PVw9Ojotd2Via2l0LXNjcm9sbGJhci1idXR0b24sDQogICAgLm8zNjVjcy1iYXNlIC5YTkNx XCtsNFF1Zkh0d0RoT0dkY3JFQVw9XD06Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciwNCiAg ICAubzM2NWNzLWJhc2UgLlhOQ3FcK2w0UXVmSHR3RGhPR2RjckVBXD1cPTo6LXdlYmtpdC1z Y3JvbGxiYXItdHJhY2sgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9 XD06Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7DQogICAgICBiYWNrZ3JvdW5kLXJlcGVh dDogbm8tcmVwZWF0Ow0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAuWE5DcVwrbDRRdWZIdHdEaE9HZGNyRUFcPVw9Ojotd2Via2l0LXNjcm9s bGJhci1idXR0b246dmVydGljYWwgew0KICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAl Ow0KICAgICAgd2lkdGg6IDE4cHg7DQogICAgICBoZWlnaHQ6IDE4cHg7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9XD06Oi13ZWJraXQt c2Nyb2xsYmFyLWJ1dHRvbjp2ZXJ0aWNhbDppbmNyZW1lbnQgew0KICAgICAgYmFja2dyb3Vu ZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1Vo RVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJB QUN4and2OFlRVUFBQUFaZEVWWWRGTnZablIzWVhKbEFFRmtiMkpsSUVsdFlXZGxVbVZoWkhs eHlXVThBQUFBVVVsRVFWUTRUNlhMTVE2QU1Bd0V3ZnovYlhSSWZPZVFDeGNrSzhpS1lncXZm Q1BKTHhnTmpBWkdBNk9CMFZqQ2NWNTVNLzgvamtiRE12K1ZKYlNkY2NIWXZzWUZvNEhSd0do Z05EQWFHUGRsM0xObEJub2ZRNCtiQUFBQUFFbEZUa1N1UW1DQyk7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9XD06Oi13ZWJraXQtc2Ny b2xsYmFyLWJ1dHRvbjp2ZXJ0aWNhbDppbmNyZW1lbnQ6aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFO U1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFV MUJBQUN4and2OFlRVUFBQUFaZEVWWWRGTnZablIzWVhKbEFFRmtiMkpsSUVsdFlXZGxVbVZo WkhseHlXVThBQUFBVWtsRVFWUTRUNlhMc1EyQU1Bd0YwZXkvQTFzd0FudDk1TUlGeVFseW9u aUZULzRqeVM4WURZd0dSZ09qZ2RGWXduRmVlVFAvUDQ1R3d6TC9sU1cwblhIQjJMN0dCYU9C MGNCb1lEUXdHaGozWmR4OHNmN3JqT0dRcXdBQUFBQkpSVTVFcmtKZ2dnPT0pOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAuWE5DcVwrbDRRdWZIdHdEaE9HZGNyRUFcPVw9Ojotd2Vi a2l0LXNjcm9sbGJhci1idXR0b246dmVydGljYWw6ZGVjcmVtZW50IHsNCiAgICAgIGJhY2tn cm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFB TlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5R VTFCQUFDeGp3djhZUVVBQUFBWmRFVllkRk52Wm5SM1lYSmxBRUZrYjJKbElFbHRZV2RsVW1W aFpIbHh5V1U4QUFBQVZVbEVRVlE0VDZYTU1Rb0FJUXhFVWU5L05yc0Zyek9TSXFEeGd6dTd4 U3Y4Wkd5U2ZzSG93T2pBNk1Eb3dPakFtUG96RkdwZllRdzV2bjJDc1k1VHZRdEhvT0dxM20r UEx6QTZNRG93T2pBNk1MNm5OZ0ZXK3daNmtUazZGQUFBQUFCSlJVNUVya0pnZ2c9PSk7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9XD06 Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbjp2ZXJ0aWNhbDpkZWNyZW1lbnQ6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJP UncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFBWE5TUjBJQXJz NGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFaZEVWWWRGTnZablIzWVhKbEFFRmtiMkps SUVsdFlXZGxVbVZoWkhseHlXVThBQUFBVmtsRVFWUTRUNlhNd1EzQUlBd0VRZnJ2Z1M1U0Fu MGQ4c01TbUpYSUpZOTVzUExSSlAyQzBZSFJnZEdCMFlIUmdUSDFaeWpVdnNJWWNuejdCR01k cDNvWGprRERWYjNmSGw5Z2RHQjBZSFJnZEdCOFQyMENCK1grNjc1dUxVMEFBQUFBU1VWT1JL NUNZSUk9KTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlhOQ3FcK2w0UXVmSHR3RGhP R2RjckVBXD1cPTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgew0KICAgICAgYm9yZGVyLXJh ZGl1czogOXB4Ow0KICAgICAgYm9yZGVyOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NkM2Q2Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAuWE5DcVwrbDRRdWZIdHdEaE9HZGNyRUFcPVw9Ojotd2Via2l0LXNjcm9sbGJhci10aHVt Yjp2ZXJ0aWNhbCB7DQogICAgICBtaW4taGVpZ2h0OiA1MHB4Ow0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAuWE5DcVwrbDRRdWZIdHdEaE9HZGNyRUFcPVw9Ojotd2Via2l0LXNjcm9s bGJhci10aHVtYjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWRiNGM0Ow0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAub0RqTnNLZ1UwTG91U0wyQ3N6am9hd1w9XD0g ew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVNl bWlCb2xkLWZpbmFsLCBTZWdvZSBVSSBTZW1pYm9sZCwNCiAgICAgICAgU2Vnb2VVSS1SZWd1 bGFyLWZpbmFsLCBTZWdvZSBVSSwgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBT ZWdvZSwNCiAgICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2Jv dG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsDQogICAgICAgIEhlbHZldGljYSwgQXJpYWws IHNhbnMtc2VyaWYgIWltcG9ydGFudDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAg ICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Ow0KICAgICAgYm9yZGVyOiAw Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIG1pbi13aWR0aDogMDsNCiAgICAgIGhlaWdo dDogYXV0bzsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Ow0KICAg ICAgY3Vyc29yOiBwb2ludGVyOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAub0RqTnNL Z1UwTG91U0wyQ3N6am9hd1w9XD0+c3BhbiB7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMnB4 Ow0KICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbS1jb2xvciA4M21zIGxpbmVhcjsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm9Eak5zS2dVMExvdVNMMkNzempvYXdcPVw9 OmhvdmVyPnNwYW4gew0KICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkOw0KICAgICAg cGFkZGluZy1ib3R0b206IDFweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBl PSJ0ZXh0L2NzcyI+DQogICAgLl85aTVSd1Z2MGYwMEpMUFFMN0lcK1k4UVw9XD0gew0KICAg ICAgd2lkdGg6IDM2MHB4Ow0KICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTBweCk7DQog ICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgcG9zaXRpb246IGZpeGVkOw0KICAgICAg ei1pbmRleDogMTAwMDAwMDsNCiAgICAgIHRvcDogNTBweDsNCiAgICAgIHJpZ2h0OiAwOw0K ICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgfQ0KDQogICAgLlg2am1PSmJ0UHhy ZExjcE1GN2diUmdcPVw9IGlmcmFtZSB7DQogICAgICBoZWlnaHQ6IDEwMDBweCAhaW1wb3J0 YW50Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICB9DQoNCiAgICAubWRuM3p3VWpFcHhlNVhodldkVVVWZ1w9XD0gew0KICAgICAg aGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7DQogICAgICB0b3A6IDQ4cHg7DQogICAgfQ0K DQogICAgLmYzWk52SjN0MFBuV0Fnb1d2NUxZMmdcPVw9IHsNCiAgICAgIGhlaWdodDogY2Fs YygxMDB2aCAtIDhweCk7DQogICAgICB0b3A6IDhweDsNCiAgICB9DQoNCiAgICBALW1vei1k b2N1bWVudCB1cmwtcHJlZml4KCkgew0KICAgICAgLlhsS2ZcK2hOSVVzS0o0MlM5eWJZN3Jn XD1cPTpmb2N1cyB7DQogICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQ7DQogICAgICB9DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5mSHNTOFdJYmhIVkRsUFJ5Y3ExTVd3XD1cPSB7 DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAg ICByaWdodDogMDsNCiAgICAgIHotaW5kZXg6IDEwMDAwMDA7DQogICAgICB3aWR0aDogMzIw cHg7DQogICAgICBib3JkZXItc3R5bGU6IHNvbGlkOw0KICAgICAgcG9pbnRlci1ldmVudHM6 IGFsbDsNCiAgICAgIGJvcmRlci13aWR0aDogMCAwIDAgMXB4Ow0KICAgICAgYm94LXNpemlu ZzogY29udGVudC1ib3g7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC54UkZFYVBtd1VM WGRGUmc2eGIwakhBXD1cPSB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDA7DQogICAgICBi b3JkZXItbGVmdC13aWR0aDogMXB4ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5fMHVtXCswbHhrZmFxYVwrMjVycG1hdWZ3XD1cPSB7DQogICAgICBoZWlnaHQ6 IDEwMCU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5QcTlBcGhcK1dhSmhDNnhIcHhy eUt5d1w9XD0gew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgb3ZlcmZsb3ct eTogYXV0bzsNCiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLld0b2hhWVd2elMzY2ZFb1pGNEJ1WkFcPVw9IHsNCiAgICAgIC1tcy1mbGV4 OiAxOw0KICAgICAgZmxleDogMTsNCiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsNCiAgICAg IG92ZXJmbG93LXk6IGF1dG87DQogICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzog dG91Y2g7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5XdG9oYVlXdnpTM2NmRW9aRjRCdVpBXD1cPTpub3QoOi13ZWJraXQtYW55LWxpbmspIHsN CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5YbEtmXCtoTklVc0tKNDJTOXliWTdyZ1w9XD0gew0KICAgICAgbWFyZ2luOiAwIGF1 dG8gMXB4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuQUJzVWVJYXdOaUF5ZFpNOFRa OUdIZ1w9XD0gew0KICAgICAgaGVpZ2h0OiA0MHB4Ow0KICAgICAgd2lkdGg6IDQwcHg7DQog ICAgICBtaW4td2lkdGg6IDA7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0 b3A6IDEycHg7DQogICAgICBsZWZ0OiBjYWxjKDEwMCUgLSA0NHB4KTsNCiAgICAgIHBhZGRp bmc6IDVweDsNCiAgICAgIGJvcmRlci13aWR0aDogMDsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6IHRyYW5zcGFyZW50Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgY3Vy c29yOiBwb2ludGVyOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuQUJzVWVJYXdOaUF5 ZFpNOFRaOUdIZ1w9XD06Zm9jdXMgew0KICAgICAgb3V0bGluZTogMXB4IGRvdHRlZDsNCiAg ICAgIG91dGxpbmU6IDFweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsNCiAgICAg IG91dGxpbmUtc3R5bGU6IGF1dG87DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5qdDFV dmxDcjFEVHhlOE1ZeWJyaWtBXD1cPSB7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l OiBmbGV4UGFuZS1mYWRlSW4sIGZsZXhQYW5lLXNsaWRlUmlnaHRJbjsNCiAgICAgIGFuaW1h dGlvbi1uYW1lOiBmbGV4UGFuZS1mYWRlSW4sIGZsZXhQYW5lLXNsaWRlUmlnaHRJbjsNCiAg ICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjI4czsNCiAgICAgIGFuaW1hdGlv bi1kdXJhdGlvbjogMC4yOHM7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVu Y3Rpb246IGN1YmljLWJlemllcigwLjgsIDAsIDAuMiwgMSk7DQogICAgICBhbmltYXRpb24t dGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC44LCAwLCAwLjIsIDEpOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAuXzhPTEg1ekJvYUw0ZFdZRTczWXFjZkFcPVw9IHsNCiAg ICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsZXhQYW5lLWZhZGVPdXQsIGZsZXhQYW5l LXNsaWRlUmlnaHRPdXQ7DQogICAgICBhbmltYXRpb24tbmFtZTogZmxleFBhbmUtZmFkZU91 dCwgZmxleFBhbmUtc2xpZGVSaWdodE91dDsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1 cmF0aW9uOiAwLjE2czsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xNnM7DQogICAg ICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjgs IDAsIDAuMiwgMSk7DQogICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1i ZXppZXIoMC44LCAwLCAwLjIsIDEpOw0KICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1t b2RlOiBib3RoOw0KICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLl8yXC9YVkZneTdvT0oyUFJkVjBuYjd4Z1w9XD0gew0KICAg ICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIH0NCg0KICAgIEAtd2Via2l0LWtleWZyYW1l cyBmbGV4UGFuZS1mYWRlSW4gew0KICAgICAgMCUgew0KICAgICAgICB2aXNpYmlsaXR5OiBo aWRkZW47DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgIC13ZWJraXQtYW5pbWF0aW9u LXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1 bmN0aW9uOiBsaW5lYXI7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgdmlzaWJp bGl0eTogdmlzaWJsZTsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgIH0NCiAgICB9DQoN CiAgICBAa2V5ZnJhbWVzIGZsZXhQYW5lLWZhZGVJbiB7DQogICAgICAwJSB7DQogICAgICAg IHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgLXdl YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogICAgICAgIGFuaW1h dGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgICAgIH0NCg0KICAgICAgdG8gew0K ICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgICBvcGFjaXR5OiAxOw0KICAg ICAgfQ0KICAgIH0NCg0KICAgIEAtd2Via2l0LWtleWZyYW1lcyBmbGV4UGFuZS1mYWRlT3V0 IHsNCiAgICAgIDAlIHsNCiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgICAgICAg b3BhY2l0eTogMTsNCiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9u OiBsaW5lYXI7DQogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsN CiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQog ICAgICAgIG9wYWNpdHk6IDA7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBm bGV4UGFuZS1mYWRlT3V0IHsNCiAgICAgIDAlIHsNCiAgICAgICAgdmlzaWJpbGl0eTogdmlz aWJsZTsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24t dGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVu Y3Rpb246IGxpbmVhcjsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB2aXNpYmls aXR5OiBoaWRkZW47DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICB9DQogICAgfQ0KDQog ICAgQC13ZWJraXQta2V5ZnJhbWVzIGZsZXhQYW5lLXNsaWRlUmlnaHRJbiB7DQogICAgICAw JSB7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7DQogICAg ICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgICAgdHJhbnNmb3Jt OiB0cmFuc2xhdGUoODBweCk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgLXdl YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTog dHJhbnNsYXRlKDApOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAg IH0NCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGZsZXhQYW5lLXNsaWRlUmlnaHRJbiB7DQog ICAgICAwJSB7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7 DQogICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgICAgdHJh bnNmb3JtOiB0cmFuc2xhdGUoODBweCk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAg ICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAgICAgLW1zLXRyYW5z Zm9ybTogdHJhbnNsYXRlKDApOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsN CiAgICAgIH0NCiAgICB9DQoNCiAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmxleFBhbmUtc2xp ZGVSaWdodE91dCB7DQogICAgICAwJSB7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0 cmFuc2xhdGUoMCk7DQogICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAg ICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7DQogICAgICB9DQoNCiAgICAgIHRvIHsN CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgICAg LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDgwcHgpOw0KICAgICAgICB0cmFuc2Zvcm06IHRy YW5zbGF0ZSg4MHB4KTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGZsZXhQ YW5lLXNsaWRlUmlnaHRPdXQgew0KICAgICAgMCUgew0KICAgICAgICAtd2Via2l0LXRyYW5z Zm9ybTogdHJhbnNsYXRlKDApOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUo MCk7DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApOw0KICAgICAgfQ0KDQogICAg ICB0byB7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7DQog ICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgICAgdHJhbnNm b3JtOiB0cmFuc2xhdGUoODBweCk7DQogICAgICB9DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5KUVV6alIxQnF6Z1lXQkZjSEVQUWtRXD1cPSB7DQogICAgICAtd2Via2l0LWFuaW1h dGlvbi1uYW1lOiBmbGV4UGFuZUl0ZW0tc2xpZGVDb250ZW50SW47DQogICAgICBhbmltYXRp b24tbmFtZTogZmxleFBhbmVJdGVtLXNsaWRlQ29udGVudEluOw0KICAgICAgLXdlYmtpdC1h bmltYXRpb24tZHVyYXRpb246IDAuMjhzOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAw LjI4czsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMt YmV6aWVyKDAuOCwgMCwgMC4yLCAxKTsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rp b246IGN1YmljLWJlemllcigwLjgsIDAsIDAuMiwgMSk7DQogICAgICAtd2Via2l0LWFuaW1h dGlvbi1maWxsLW1vZGU6IGJhY2t3YXJkczsNCiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6 IGJhY2t3YXJkczsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjA0czsNCiAg ICAgIGFuaW1hdGlvbi1kZWxheTogMC4wNHM7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5oam52OXRSQnl3SVZMT1ZUMHJ3T3BBXD1cPSB7DQogICAgICAtd2Via2l0LWFuaW1hdGlv bi1uYW1lOiBmbGV4UGFuZS1mYWRlT3V0LCBmbGV4UGFuZS1zbGlkZVJpZ2h0T3V0Ow0KICAg ICAgYW5pbWF0aW9uLW5hbWU6IGZsZXhQYW5lLWZhZGVPdXQsIGZsZXhQYW5lLXNsaWRlUmln aHRPdXQ7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC4xNnM7DQogICAg ICBhbmltYXRpb24tZHVyYXRpb246IDAuMTZzOw0KICAgICAgLXdlYmtpdC1hbmltYXRpb24t dGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC44LCAwLCAwLjIsIDEpOw0KICAgICAg YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuOCwgMCwgMC4yLCAx KTsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOw0KICAg ICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOw0KICAgIH0NCg0KICAgIEAtd2Vi a2l0LWtleWZyYW1lcyBmbGV4UGFuZUl0ZW0tc2xpZGVDb250ZW50SW4gew0KICAgICAgMCUg ew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJh bnNsYXRlKDgwcHgpOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7 DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDgwcHgpOw0KICAgICAgfQ0KDQogICAg ICB0byB7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt OiB0cmFuc2xhdGUoMCk7DQogICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsN CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7DQogICAgICB9DQogICAgfQ0KDQog ICAgQGtleWZyYW1lcyBmbGV4UGFuZUl0ZW0tc2xpZGVDb250ZW50SW4gew0KICAgICAgMCUg ew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJh bnNsYXRlKDgwcHgpOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7 DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDgwcHgpOw0KICAgICAgfQ0KDQogICAg ICB0byB7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt OiB0cmFuc2xhdGUoMCk7DQogICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsN CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7DQogICAgICB9DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgIC5vMzY1Y3MtYmFzZSAu ZjViYVwvOHFnaHNneGpla3dwdGFpNmFcPVw9IHsNCiAgICAgIHBhZGRpbmctbGVmdDogMTZw eDsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5fNjk5M09cK2VPdktuRDJsb1wrZDNTXC9LUVw9XD0gew0KICAgICAgZm9udDogNjAw IDIwcHggU2Vnb2VVSS1TZW1pQm9sZC1maW5hbCwgU2Vnb2UgVUkgU2VtaWJvbGQsDQogICAg ICAgIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksICJTZWdvZSBVSSBXZWIgKFdl c3QgRXVyb3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFj U3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLA0KICAgICAgICBI ZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJs b2NrOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7DQogICAg ICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogICAgICBwYWRkaW5nLXRvcDogMjBweDsNCiAgICAg IHBhZGRpbmctYm90dG9tOiAxOHB4Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlwvcU9rdHliRjYzQmhpQUVVRkhJdThBXD1c PSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29lVUkt U2VtaUJvbGQtZmluYWwsIFNlZ29lIFVJIFNlbWlib2xkLA0KICAgICAgICBTZWdvZVVJLVJl Z3VsYXItZmluYWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIs IFNlZ29lLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJv Ym90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAgSGVsdmV0aWNhLCBBcmlh bCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAg ICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7DQogICAgICBib3JkZXI6 IDA7DQogICAgICBtaW4td2lkdGg6IDA7DQogICAgICBoZWlnaHQ6IGF1dG87DQogICAgICB0 ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsNCiAgICAgIGN1cnNvcjogcG9pbnRl cjsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZvbnQtc2l6ZTogMTJw eDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBwYWRkaW5nOiAxMHB4 IDAgMCAxNnB4Ow0KICAgICAgd2lkdGg6IGF1dG87DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5cL3FPa3R5YkY2M0JoaUFFVUZISXU4QVw9XD0+c3BhbiB7DQogICAgICBwYWRkaW5n LWJvdHRvbTogMnB4Ow0KICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbS1jb2xvciA4 M21zIGxpbmVhcjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlwvcU9rdHliRjYzQmhp QUVVRkhJdThBXD1cPTpob3Zlcj5zcGFuIHsNCiAgICAgIGJvcmRlci1ib3R0b206IDFweCBz b2xpZDsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5OXCtDd3d4ZXlOUXFMaEgyeFd2V0o4d1w9XD0gew0KICAgICAgZm9udC1mYW1p bHk6IFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAgICAgICJTZWdvZSBV SSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAg IEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBI ZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAgZm9udC1zaXpl OiAxNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIC13ZWJraXQtdHJhbnNm b3JtOiBzY2FsZSgxKTsNCiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAgICAg dHJhbnNmb3JtOiBzY2FsZSgxKTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBl PSJ0ZXh0L2NzcyI+DQogICAgLmRROFhMTUl5TnhsOE1BWXFNc1VaRlFcPVw9IHsNCiAgICAg IHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiA1MHB4Ow0KICAgICAgZGlzcGxheTogZmxl eDsNCiAgICAgIGJvcmRlci1zcGFjaW5nOiAwOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3Jh cDsNCiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7DQogICAgfQ0KDQogICAgLmRROFhMTUl5 TnhsOE1BWXFNc1VaRlFcPVw9IC5ocHlIaG1TZTlobWs1Z29wTHI5YTVRXD1cPSwNCiAgICAu ZFE4WExNSXlOeGw4TUFZcU1zVVpGUVw9XD0gYS5yT3lcK0huOGtpRDVKOXY1VkRDRTNEZ1w9 XD0gew0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICB9DQoNCiAgICAuYVU4TjMw SU0zR2NLTzRLS3o4bGdOQVw9XD0gew0KICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50 Ow0KICAgIH0NCg0KICAgIC5yZW1vdmVGb2N1c091dGxpbmUgOmZvY3VzIHsNCiAgICAgIG91 dGxpbmU6IG5vbmU7DQogICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7DQogICAg fQ0KDQogICAgLmNsZ2lMVktQenVnWlpuczBMaVBUcXdcPVw9LA0KICAgIC5TWEdEZlwvamp6 TjVZem44ZUwwd0hqZ1w9XD0gew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0K ICAgICAgbWluLXdpZHRoOiA0OHB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAg ICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7DQogICAg fQ0KDQogICAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICAoZm9y Y2VkLWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3 XD1cPTpmb2N1cywNCiAgICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1cPTpob3Zlcisu aWNvbiwNCiAgICAgIC5TWEdEZlwvamp6TjVZem44ZUwwd0hqZ1w9XD06Zm9jdXMsDQogICAg ICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9OmhvdmVyKy5pY29uIHsNCiAgICAgICAg LW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3It YWRqdXN0OiBub25lOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQgIWlt cG9ydGFudDsNCiAgICAgICAgY29sb3I6IGhpZ2hsaWdodFRleHQgIWltcG9ydGFudDsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD06aG92ZXIs DQogICAgLlNYR0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPTpob3ZlciB7DQogICAgICAtd2Vi a2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC40NjdzIGN1YmljLWJlemllcigw LjEsIDAuOSwgMC4yLCAxKSAzNG1zOw0KICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1j b2xvciAwLjQ2N3MgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpIDM0bXM7DQogICAg fQ0KDQogICAgLlNYR0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPSwNCiAgICAuQmlEMDk2eGtt SzhVeHdjNU1UdU9sd1w9XD0gew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0K ICAgICAgbWluLXdpZHRoOiA0OHB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAg ICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSAoLW1zLWhpZ2gtY29u dHJhc3Q6IGFjdGl2ZSksDQogICAgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KDQogICAg ICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9OmZvY3VzLA0KICAgICAgLlNYR0RmXC9q anpONVl6bjhlTDB3SGpnXD1cPTpob3ZlcisuaWNvbiwNCiAgICAgIC5CaUQwOTZ4a21LOFV4 d2M1TVR1T2x3XD1cPTpmb2N1cywNCiAgICAgIC5CaUQwOTZ4a21LOFV4d2M1TVR1T2x3XD1c PTpob3ZlcisuaWNvbiB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDogbm9u ZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD0gew0KICAgICAgYmFja2dyb3Vu ZDogdHJhbnNwYXJlbnQ7DQogICAgICBib3JkZXItd2lkdGg6IDA7DQogICAgICB3aWR0aDog YXV0bzsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1i b3g7DQogICAgICBvdmVyZmxvdzogdmlzaWJsZTsNCiAgICB9DQoNCiAgICAuY2xnaUxWS1B6 dWdaWm5zMExpUFRxd1w9XD0sDQogICAgLmNsZ2lMVktQenVnWlpuczBMaVBUcXdcPVw9IHNw YW5bY2xhc3MqPSIgbXMtSWNvbi0tIl0sDQogICAgLmNsZ2lMVktQenVnWlpuczBMaVBUcXdc PVw9IHNwYW5bY2xhc3NePSJtcy1JY29uLS0iXSB7DQogICAgICBsaW5lLWhlaWdodDogNDhw eDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0K ICAgIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAgLmNsZ2lMVktQenVnWlpu czBMaVBUcXdcPVw9OmZvY3VzKy5pY29uLA0KICAgICAgLmNsZ2lMVktQenVnWlpuczBMaVBU cXdcPVw9OmhvdmVyIHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25l Ow0KICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0KICAgICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDsNCiAgICAgICAgY29sb3I6IGhpZ2hs aWdodFRleHQgIWltcG9ydGFudDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuQmlEMDk2eGtt SzhVeHdjNU1UdU9sd1w9XD0gew0KICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQog ICAgICBib3JkZXItd2lkdGg6IDA7DQogICAgICB3aWR0aDogYXV0bzsNCiAgICAgIGhlaWdo dDogMTAwJTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBsaW5lLWhl aWdodDogNDhweDsNCiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOw0KICAgICAgY3Vyc29yOiBk ZWZhdWx0Ow0KICAgIH0NCg0KICAgIC5CaUQwOTZ4a21LOFV4d2M1TVR1T2x3XD1cPSBzcGFu W2NsYXNzKj0iIG1zLUljb24tLSJdLA0KICAgIC5CaUQwOTZ4a21LOFV4d2M1TVR1T2x3XD1c PSBzcGFuW2NsYXNzXj0ibXMtSWNvbi0tIl0gew0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7 DQogICAgfQ0KDQogICAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAg ICAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5CaUQwOTZ4a21LOFV4d2M1 TVR1T2x3XD1cPTpmb2N1cysuaWNvbiwNCiAgICAgIC5CaUQwOTZ4a21LOFV4d2M1TVR1T2x3 XD1cPTpob3ZlciB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDogbm9uZTsN CiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAgIH0NCiAgICB9DQoN CiAgICAuUkdTYlwvMWM0ZXg5Y20wYXMwb2FscWFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGlu aGVyaXQ7DQogICAgfQ0KDQogICAgLlwvbDJQQXBVYkk1RWhKSzBjbWZIWHFnXD1cPSB7DQog ICAgICBtaW4td2lkdGg6IDY4cHg7DQogICAgfQ0KDQogICAgLlNYR0RmXC9qanpONVl6bjhl TDB3SGpnXD1cPSB7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICAu YmZXTkVQczI0ZEVTcXlxRG5oXC83dGFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1i bG9jazsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBhbGlnbi1zZWxm OiBjZW50ZXI7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7DQogICAg ICBtYXJnaW4tbGVmdDogMTZweDsNCiAgICAgIG1hcmdpbi1yaWdodDogOHB4Ow0KICAgICAg aGVpZ2h0OiAyOHB4Ow0KICAgICAgd2lkdGg6IDFweDsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0icnRsIl0gLmJmV05FUHMyNGRFU3F5cURuaFwvN3RhXD1cPSB7DQogICAgICBtYXJnaW4t cmlnaHQ6IDE2cHg7DQogICAgICBtYXJnaW4tbGVmdDogOHB4Ow0KICAgIH0NCg0KICAgIC5o cHlIaG1TZTlobWs1Z29wTHI5YTVRXD1cPSB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29l VUktU2VtaUJvbGQtZmluYWwsIFNlZ29lIFVJIFNlbWlib2xkLA0KICAgICAgICBTZWdvZVVJ LVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFu KSIsIFNlZ29lLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQs IFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAgSGVsdmV0aWNhLCBB cmlhbCwgc2Fucy1zZXJpZjsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIGxpbmUt aGVpZ2h0OiA0OHB4Ow0KICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFz ZWQ7DQogICAgfQ0KDQogICAgLkF6elRwYkpGMTVTaW9ORDR2eWxXOEFcPVw9IHsNCiAgICAg IGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAueXZIc0s2SXZ1 UW92UGZKbWNBWU9PZ1w9XD0gew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgt ZGlyZWN0aW9uOiByb3c7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAg IGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgd2lkdGg6 IDQ4cHg7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLnl2SHNLNkl2dVFv dlBmSm1jQVlPT2dcPVw9IGE6Zm9jdXMtdmlzaWJsZSB7DQogICAgICBvdXRsaW5lLW9mZnNl dDogMTFweDsNCiAgICB9DQoNCiAgICAueXZIc0s2SXZ1UW92UGZKbWNBWU9PZ1w9XD0gaW1n IHsNCiAgICAgIHdpZHRoOiAyNHB4Ow0KICAgICAgaGVpZ2h0OiAyNHB4Ow0KICAgICAgdG9w OiAxMnB4Ow0KICAgICAgbGVmdDogMTJweDsNCiAgICB9DQoNCiAgICAuVWJiTlVcK0NKU3lw WUhsdUhlZDYxa2dcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAg IHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICBmb250LXNpemU6IDI0cHg7DQogICAgICBt YXJnaW4tdG9wOiAxM3B4Ow0KICAgICAgbWFyZ2luLWxlZnQ6IDZweDsNCiAgICB9DQoNCiAg ICAuVWJiTlVcK0NKU3lwWUhsdUhlZDYxa2dcPVw9OmJlZm9yZSB7DQogICAgICB2ZXJ0aWNh bC1hbGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5xOEFiUU9CcHV5OTN5QmZUZUdmTmF3XD1c PSB7DQogICAgICBtYXJnaW4tbGVmdDogMTRweDsNCiAgICAgIG1hcmdpbi1yaWdodDogMTRw eDsNCiAgICAgIGhlaWdodDogMjVweDsNCiAgICAgIG1hcmdpbi10b3A6IDEycHg7DQogICAg ICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRs Il0gLlViYk5VXCtDSlN5cFlIbHVIZWQ2MWtnXD1cPSB7DQogICAgICBtYXJnaW4tbGVmdDog MDsNCiAgICAgIG1hcmdpbi1yaWdodDogNnB4Ow0KICAgIH0NCg0KICAgIC5lXC9WbDBqMHpI UU1oWlQxdlE2SlwrU1FcPVw9IHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGRpc3Bs YXk6IGZsZXg7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAgb3V0bGlu ZS1vZmZzZXQ6IC0xcHg7DQogICAgICBwYWRkaW5nOiAwIDEycHggMCA4cHg7DQogICAgICB0 ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgfQ0KDQogICAgLmVcL1ZsMGowekhRTWhaVDF2 UTZKXCtTUVw9XD0gYSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgdGV4dC1kZWNv cmF0aW9uOiBub25lOw0KICAgICAgY29sb3I6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9InJ0bCJdIC5lXC9WbDBqMHpIUU1oWlQxdlE2SlwrU1FcPVw9IHsNCiAgICAgIHBh ZGRpbmc6IDAgOHB4IDAgMTJweDsNCiAgICB9DQoNCiAgICAuXzNySkF5eUF0UFNDbDB1b1ly XCt3dUxBXD1cPSB7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICAgIGhlaWdodDog MTAwJTsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIHZlcnRpY2FsLWFs aWduOiB0b3A7DQogICAgICBwYWRkaW5nLWxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0icnRsIl0gLl8zckpBeXlBdFBTQ2wwdW9Zclwrd3VMQVw9XD0gew0KICAgICAgcGFk ZGluZy1yaWdodDogOHB4Ow0KICAgICAgcGFkZGluZy1sZWZ0OiAwOw0KICAgIH0NCg0KICAg IC5yT3lcK0huOGtpRDVKOXY1VkRDRTNEZ1w9XD0gew0KICAgICAgbWF4LXdpZHRoOiAyMDBw eDsNCiAgICAgIG1heC1oZWlnaHQ6IDQ4cHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0K ICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICBmb250LXNpemU6IDA7DQogICAgICBo ZWlnaHQ6IDEwMCU7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6 IGNlbnRlcjsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIH0NCg0KICAg IC5yT3lcK0huOGtpRDVKOXY1VkRDRTNEZ1w9XD06Zm9jdXMtdmlzaWJsZSB7DQogICAgICBv dXRsaW5lLW9mZnNldDogLTJweDsNCiAgICB9DQoNCiAgICAuck95XCtIbjhraUQ1Sjl2NVZE Q0UzRGdcPVw9IGltZyB7DQogICAgICBtYXgtd2lkdGg6IDIwMHB4Ow0KICAgICAgbWF4LWhl aWdodDogNDhweDsNCiAgICAgIGJvcmRlci1zdHlsZTogbm9uZSAhaW1wb3J0YW50Ow0KICAg ICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICB9DQoNCiAgICAudFA2VWRRQXhlZkJ1 MHJxdjJjaE1lZ1w9XD0gaW1nIHsNCiAgICAgIHdpZHRoOiBhdXRvOw0KICAgICAgaGVpZ2h0 OiAyNHB4Ow0KICAgIH0NCg0KICAgIEBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUp LA0KICAgIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAg IC50UDZVZFFBeGVmQnUwcnF2MmNoTWVnXD1cPSBpbWcgew0KICAgICAgICBtYXgtd2lkdGg6 IDIwMHB4Ow0KICAgICAgICBtYXgtaGVpZ2h0OiBub25lOw0KICAgICAgICBtaW4td2lkdGg6 IDE2MHB4Ow0KICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgaGVpZ2h0OiAyNHB4Ow0K ICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkgew0KICAg ICAgLkg3d3QxXC9UN2tieWZTUk5aMkp6VkxBXD1cPSB7DQogICAgICAgIG1heC13aWR0aDog MTc2cHg7DQogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAuXC9CMW5cL2g2aWJJNXdWejdqZERJUDBBXD1cPSB7DQogICAgICBoZWlnaHQ6 IDEwMCU7DQogICAgICBtYXgtd2lkdGg6IDE3NnB4Ow0KICAgICAgZGlzcGxheTogZmxleDsN CiAgICB9DQoNCiAgICAuSGNLTUVZaG1MNHVMeUdcK0s0aHk4cGdcPVw9IHsNCiAgICAgIHRl eHQtYWxpZ246IHJpZ2h0Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAg IGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAg bWF4LXdpZHRoOiAxMjBweDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQt ZmFtaWx5OiBTZWdvZVVJLVNlbWlMaWdodC1maW5hbCwgU2Vnb2UgVUkgU2VtaWxpZ2h0LA0K ICAgICAgICBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2Vi IChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlu a01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAg ICAgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsNCiAgICAgIHRleHQtb3ZlcmZsb3c6 IGVsbGlwc2lzOw0KICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOw0KICAgICAgd2hpdGUt c3BhY2U6IG5vd3JhcDsNCiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7DQogICAgfQ0KDQogICAg LkhjS01FWWhtTDR1THlHXCtLNGh5OHBnXD1cPT5zcGFuIHsNCiAgICAgIHBhZGRpbmctbGVm dDogNHB4Ow0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAuVTZDbmZvMFJq WEo4VUV3WGhaVjhtUVw9XD0gew0KICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICAgIGRp c3BsYXk6IGJsb2NrOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIG1heC13aWR0 aDogMTYwcHg7DQogICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICBmb250LWZhbWlseTog U2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdl YiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxp bmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZl dGljYSwgQXJpYWwsDQogICAgICAgIHNhbnMtc2VyaWY7DQogICAgICB0ZXh0LW92ZXJmbG93 OiBlbGxpcHNpczsNCiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsNCiAgICAgIHdoaXRl LXNwYWNlOiBub3dyYXA7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICB9DQoNCiAg ICAuVTZDbmZvMFJqWEo4VUV3WGhaVjhtUVw9XD0+c3BhbiB7DQogICAgICBwYWRkaW5nLWxl ZnQ6IDEycHg7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7DQogICAgICBkaXNwbGF5OiBu b25lOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuSGNLTUVZaG1MNHVMeUdcK0s0 aHk4cGdcPVw9IHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9InJ0bCJdIC5IY0tNRVlobUw0dUx5R1wrSzRoeThwZ1w9XD0+c3BhbiB7DQogICAg ICBwYWRkaW5nLWxlZnQ6IDA7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5VNkNuZm8wUmpYSjhVRXdYaFpWOG1RXD1cPT5zcGFu IHsNCiAgICAgIHBhZGRpbmctbGVmdDogNHB4Ow0KICAgICAgcGFkZGluZy1yaWdodDogMTJw eDsNCiAgICB9DQoNCiAgICAuTks2WVEwNjBJbnVFSDFXMUxiRko0UVw9XD0gew0KICAgICAg ZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwICFpbXBv cnRhbnQ7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAgZGlzcGxheTog ZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRl bnQ6IGNlbnRlcjsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLk5LNllRMDYwSW51 RUgxVzFMYkZKNFFcPVw9IHsNCiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMCAhaW1wb3J0 YW50Ow0KICAgIH0NCg0KICAgIC54MDNSdnMzTVE3SWQ5NDhUeWlJa0NRXD1cPSB7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAg ICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsN CiAgICAgIGZvbnQtc2l6ZTogNnB4Ow0KICAgIH0NCg0KICAgIC54MDNSdnMzTVE3SWQ5NDhU eWlJa0NRXD1cPSAubXMtUGVyc29uYSB7DQogICAgICByaWdodDogMnB4Ow0KICAgICAgdG9w OiAtMnB4Ow0KICAgIH0NCg0KICAgIC54MDNSdnMzTVE3SWQ5NDhUeWlJa0NRXD1cPSAubXMt UGVyc29uYSAubXMtSW1hZ2UtaW1hZ2Ugew0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg ICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLngwM1J2czNNUTdJ ZDk0OFR5aUlrQ1FcPVw9IC5tcy1QZXJzb25hIHsNCiAgICAgIGxlZnQ6IDJweDsNCiAgICAg IHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIC5cK2dLRHhDVVJSNWV1d2hWVzJOSzIxZ1w9XD0g ew0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9j azsNCiAgICAgIGJvcmRlcjogdGhpbiBzb2xpZDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUw JTsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBmb250LXNpemU6IDZw eDsNCiAgICB9DQoNCiAgICAudTg1U0loZ0VSTHVxY01VYnQyczY2QVw9XD0gew0KICAgICAg Ym9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDsN CiAgICB9DQoNCiAgICAudTg1U0loZ0VSTHVxY01VYnQyczY2QVw9XD06YmVmb3JlIHsNCiAg ICAgIG1hcmdpbi10b3A6IDAuNGVtOw0KICAgIH0NCg0KICAgIC5TUHJkc21DcFpZUzB0Z3Z2 ZDBjUmdRXD1cPSB7DQogICAgICB3aWR0aDogMzJweDsNCiAgICAgIGhlaWdodDogMzJweDsN CiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAg ICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBmb250LXNpemU6IDEzcHg7DQog ICAgICBmb250LWZhbWlseTogU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAg ICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5 c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBO ZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAgIHNhbnMtc2VyaWY7DQog ICAgICBib3JkZXI6IDFweCBzb2xpZDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7 DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICBsaW5lLWhlaWdodDogMSAhaW1w b3J0YW50Ow0KICAgIH0NCg0KICAgIC5TUHJkc21DcFpZUzB0Z3Z2ZDBjUmdRXD1cPTpiZWZv cmUgew0KICAgICAgbWFyZ2luLXRvcDogMC40ZW07DQogICAgfQ0KDQogICAgLngwM1J2czNN UTdJZDk0OFR5aUlrQ1FcPVw9LA0KICAgIC51ODVTSWhnRVJMdXFjTVVidDJzNjZBXD1cPSwN CiAgICAuXCtnS0R4Q1VSUjVldXdoVlcyTksyMWdcPVw9IHsNCiAgICAgIHdpZHRoOiAzMnB4 Ow0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAgIH0NCg0KICAgIC5pZVJvXC9PcVBZQjdrZmZS Rkt4MmM5d1w9XD0gew0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIGp1c3Rp ZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBh ZGRpbmc6IDA7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBoZWlnaHQ6IDEw MCU7DQogICAgfQ0KDQogICAgLl8yNUNxUlZLd0UzOFg1UkhFeEQ0SXlBXD1cPSB7DQogICAg ICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleDogMSAwIGF1dG87DQogICAgICBoZWlnaHQ6 IDEwMCU7DQogICAgfQ0KDQogICAgLl8xdEpyRWpidjFRa3Z4Y1wvUDdyM3RaZ1w9XD0gew0K ICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFy dDsNCiAgICB9DQoNCiAgICAuUzNUV2FmUURLRFwrM3VxbTdqbnppdWdcPVw9IHsNCiAgICAg IGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4OiAxIDAgYXV0bzsNCiAgICAgIGp1c3RpZnkt Y29udGVudDogY2VudGVyOw0KICAgIH0NCg0KICAgIC5fMTZsVXZWVUpadzY4WmM0dkZvOG9N UVw9XD0gew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3RpZnktY29udGVudDog ZmxleC1lbmQ7DQogICAgfQ0KDQogICAgLkhWNmxDOUo4T1VGcEtKamZBcjFBc3dcPVw9IHsN CiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4OiAwIDAgYXV0bzsNCiAgICB9DQoN CiAgICAuQmg0NmIxcmQ4QnJVNHpvbEw5UnpVZ1w9XD0gew0KICAgICAgaGVpZ2h0OiAxMDAl Ow0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAg IH0NCg0KICAgIC5oZGtXQ3pjNnNSUXVhbUZWMDdZM3hRXD1cPSB7DQogICAgICByaWdodDog MjRweDsNCiAgICAgIHRvcDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAu aGRrV0N6YzZzUlF1YW1GVjA3WTN4UVw9XD0gew0KICAgICAgcmlnaHQ6IDA7DQogICAgICBs ZWZ0OiAyNHB4Ow0KICAgIH0NCg0KICAgIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7 DQogICAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD06Zm9jdXMgew0KICAgICAgICBv dXRsaW5lOiAxcHggZG90dGVkOw0KICAgICAgfQ0KICAgIH0NCg0KICAgICNPMzY1X05hdkhl YWRlciBhYmJyLA0KICAgICNPMzY1X05hdkhlYWRlciBhZGRyZXNzLA0KICAgICNPMzY1X05h dkhlYWRlciBhcnRpY2xlLA0KICAgICNPMzY1X05hdkhlYWRlciBhc2lkZSwNCiAgICAjTzM2 NV9OYXZIZWFkZXIgYXVkaW8sDQogICAgI08zNjVfTmF2SGVhZGVyIGIsDQogICAgI08zNjVf TmF2SGVhZGVyIGJsb2NrcXVvdGUsDQogICAgI08zNjVfTmF2SGVhZGVyIGJvZHksDQogICAg I08zNjVfTmF2SGVhZGVyIGJvZHkgOmZvY3VzLA0KICAgICNPMzY1X05hdkhlYWRlciBib2R5 IGRpdiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgY2FwdGlvbiwNCiAgICAjTzM2NV9OYXZIZWFk ZXIgY2l0ZSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgY29kZSwNCiAgICAjTzM2NV9OYXZIZWFk ZXIgZGQsDQogICAgI08zNjVfTmF2SGVhZGVyIGRlbCwNCiAgICAjTzM2NV9OYXZIZWFkZXIg ZGV0YWlscywNCiAgICAjTzM2NV9OYXZIZWFkZXIgZGZuLA0KICAgICNPMzY1X05hdkhlYWRl ciBkbCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgZHQsDQogICAgI08zNjVfTmF2SGVhZGVyIGVt LA0KICAgICNPMzY1X05hdkhlYWRlciBmaWVsZHNldCwNCiAgICAjTzM2NV9OYXZIZWFkZXIg ZmlndXJlLA0KICAgICNPMzY1X05hdkhlYWRlciBmb290ZXIsDQogICAgI08zNjVfTmF2SGVh ZGVyIGZvcm0sDQogICAgI08zNjVfTmF2SGVhZGVyIGgxLA0KICAgICNPMzY1X05hdkhlYWRl ciBoMiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaDMsDQogICAgI08zNjVfTmF2SGVhZGVyIGg0 LA0KICAgICNPMzY1X05hdkhlYWRlciBoNSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaDYsDQog ICAgI08zNjVfTmF2SGVhZGVyIGhlYWRlciwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaHRtbCwN CiAgICAjTzM2NV9OYXZIZWFkZXIgaSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaWZyYW1lLA0K ICAgICNPMzY1X05hdkhlYWRlciBpbWcsDQogICAgI08zNjVfTmF2SGVhZGVyIGlucywNCiAg ICAjTzM2NV9OYXZIZWFkZXIga2JkLA0KICAgICNPMzY1X05hdkhlYWRlciBsYWJlbCwNCiAg ICAjTzM2NV9OYXZIZWFkZXIgbGVnZW5kLA0KICAgICNPMzY1X05hdkhlYWRlciBsaSwNCiAg ICAjTzM2NV9OYXZIZWFkZXIgbWFyaywNCiAgICAjTzM2NV9OYXZIZWFkZXIgbWVudSwNCiAg ICAjTzM2NV9OYXZIZWFkZXIgbmF2LA0KICAgICNPMzY1X05hdkhlYWRlciBvYmplY3QsDQog ICAgI08zNjVfTmF2SGVhZGVyIG9sLA0KICAgICNPMzY1X05hdkhlYWRlciBwLA0KICAgICNP MzY1X05hdkhlYWRlciBwcmUsDQogICAgI08zNjVfTmF2SGVhZGVyIHEsDQogICAgI08zNjVf TmF2SGVhZGVyIHNhbXAsDQogICAgI08zNjVfTmF2SGVhZGVyIHNlY3Rpb24sDQogICAgI08z NjVfTmF2SGVhZGVyIHNtYWxsLA0KICAgICNPMzY1X05hdkhlYWRlciBzdHJvbmcsDQogICAg I08zNjVfTmF2SGVhZGVyIHN1YiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgc3VtbWFyeSwNCiAg ICAjTzM2NV9OYXZIZWFkZXIgc3VwLA0KICAgICNPMzY1X05hdkhlYWRlciB0YWJsZSwNCiAg ICAjTzM2NV9OYXZIZWFkZXIgdGJvZHksDQogICAgI08zNjVfTmF2SGVhZGVyIHRkLA0KICAg ICNPMzY1X05hdkhlYWRlciB0Zm9vdCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdGgsDQogICAg I08zNjVfTmF2SGVhZGVyIHRoZWFkLA0KICAgICNPMzY1X05hdkhlYWRlciB0aW1lLA0KICAg ICNPMzY1X05hdkhlYWRlciB0ciwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdWwsDQogICAgI08z NjVfTmF2SGVhZGVyIHZhciwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdmlkZW8sDQogICAgI08z NjVmcGNvbnRhaW5lcmlkIGFiYnIsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGFkZHJlc3Ms DQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGFydGljbGUsDQogICAgI08zNjVmcGNvbnRhaW5l cmlkIGFzaWRlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBhdWRpbywNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgYiwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYmxvY2txdW90ZSwNCiAg ICAjTzM2NWZwY29udGFpbmVyaWQgYm9keSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYm9k eSA6Zm9jdXMsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGJvZHkgZGl2LA0KICAgICNPMzY1 ZnBjb250YWluZXJpZCBjYXB0aW9uLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBjaXRlLA0K ICAgICNPMzY1ZnBjb250YWluZXJpZCBjb2RlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBk ZCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZGVsLA0KICAgICNPMzY1ZnBjb250YWluZXJp ZCBkZXRhaWxzLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBkZm4sDQogICAgI08zNjVmcGNv bnRhaW5lcmlkIGRsLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBkdCwNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgZW0sDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGZpZWxkc2V0LA0KICAg ICNPMzY1ZnBjb250YWluZXJpZCBmaWd1cmUsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGZv b3RlciwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZm9ybSwNCiAgICAjTzM2NWZwY29udGFp bmVyaWQgaDEsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGgyLA0KICAgICNPMzY1ZnBjb250 YWluZXJpZCBoMywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaDQsDQogICAgI08zNjVmcGNv bnRhaW5lcmlkIGg1LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBoNiwNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgaGVhZGVyLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBodG1sLA0KICAg ICNPMzY1ZnBjb250YWluZXJpZCBpLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBpZnJhbWUs DQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGltZywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQg aW5zLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBrYmQsDQogICAgI08zNjVmcGNvbnRhaW5l cmlkIGxhYmVsLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBsZWdlbmQsDQogICAgI08zNjVm cGNvbnRhaW5lcmlkIGxpLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBtYXJrLA0KICAgICNP MzY1ZnBjb250YWluZXJpZCBtZW51LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBuYXYsDQog ICAgI08zNjVmcGNvbnRhaW5lcmlkIG9iamVjdCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQg b2wsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHAsDQogICAgI08zNjVmcGNvbnRhaW5lcmlk IHByZSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgcSwNCiAgICAjTzM2NWZwY29udGFpbmVy aWQgc2FtcCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgc2VjdGlvbiwNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgc21hbGwsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHN0cm9uZywNCiAg ICAjTzM2NWZwY29udGFpbmVyaWQgc3ViLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBzdW1t YXJ5LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBzdXAsDQogICAgI08zNjVmcGNvbnRhaW5l cmlkIHRhYmxlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB0Ym9keSwNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgdGQsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHRmb290LA0KICAgICNP MzY1ZnBjb250YWluZXJpZCB0aCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgdGhlYWQsDQog ICAgI08zNjVmcGNvbnRhaW5lcmlkIHRpbWUsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHRy LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB1bCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQg dmFyLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB2aWRlbywNCiAgICAubzM2NXNoZWxsLXBv cHVwIGFiYnIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBhZGRyZXNzLA0KICAgIC5vMzY1c2hl bGwtcG9wdXAgYXJ0aWNsZSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGFzaWRlLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgYXVkaW8sDQogICAgLm8zNjVzaGVsbC1wb3B1cCBiLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgYmxvY2txdW90ZSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGJvZHks DQogICAgLm8zNjVzaGVsbC1wb3B1cCBib2R5IDpmb2N1cywNCiAgICAubzM2NXNoZWxsLXBv cHVwIGJvZHkgZGl2LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgY2FwdGlvbiwNCiAgICAubzM2 NXNoZWxsLXBvcHVwIGNpdGUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBjb2RlLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgZGQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBkZWwsDQogICAgLm8z NjVzaGVsbC1wb3B1cCBkZXRhaWxzLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZGZuLA0KICAg IC5vMzY1c2hlbGwtcG9wdXAgZGwsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBkdCwNCiAgICAu bzM2NXNoZWxsLXBvcHVwIGVtLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZmllbGRzZXQsDQog ICAgLm8zNjVzaGVsbC1wb3B1cCBmaWd1cmUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBmb290 ZXIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBmb3JtLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAg aDEsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBoMiwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGgz LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaDQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBoNSwN CiAgICAubzM2NXNoZWxsLXBvcHVwIGg2LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaGVhZGVy LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaHRtbCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGks DQogICAgLm8zNjVzaGVsbC1wb3B1cCBpZnJhbWUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBp bWcsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBpbnMsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBr YmQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBsYWJlbCwNCiAgICAubzM2NXNoZWxsLXBvcHVw IGxlZ2VuZCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGxpLA0KICAgIC5vMzY1c2hlbGwtcG9w dXAgbWFyaywNCiAgICAubzM2NXNoZWxsLXBvcHVwIG1lbnUsDQogICAgLm8zNjVzaGVsbC1w b3B1cCBuYXYsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBvYmplY3QsDQogICAgLm8zNjVzaGVs bC1wb3B1cCBvbCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHAsDQogICAgLm8zNjVzaGVsbC1w b3B1cCBwcmUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBxLA0KICAgIC5vMzY1c2hlbGwtcG9w dXAgc2FtcCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHNlY3Rpb24sDQogICAgLm8zNjVzaGVs bC1wb3B1cCBzbWFsbCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHN0cm9uZywNCiAgICAubzM2 NXNoZWxsLXBvcHVwIHN1YiwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHN1bW1hcnksDQogICAg Lm8zNjVzaGVsbC1wb3B1cCBzdXAsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB0YWJsZSwNCiAg ICAubzM2NXNoZWxsLXBvcHVwIHRib2R5LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdGQsDQog ICAgLm8zNjVzaGVsbC1wb3B1cCB0Zm9vdCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHRoLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgdGhlYWQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB0aW1l LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdHIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB1bCwN CiAgICAubzM2NXNoZWxsLXBvcHVwIHZhciwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHZpZGVv IHsNCiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Ow0KICAgIH0NCiAgPC9zdHlsZT4N CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAuRXNTNTk0dHdsTWRiRUpPUEpvNlVE Z1w9XD0gew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgei1pbmRleDogMTAw MDAwMDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7DQogICAgICB3aWR0aDogMzIw cHg7DQogICAgICBtaW4td2lkdGg6IDMyMHB4Ow0KICAgICAgbWF4LXdpZHRoOiAzMjBweDsN CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBvdXRsaW5lOiBub25lOw0K ICAgICAgb3ZlcmZsb3cteTogYXV0bzsNCiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQog ICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNm NGY0ZjQ7DQogICAgICBib3JkZXItcmFkaXVzOiAycHg7DQogICAgICBib3gtc2hhZG93OiAw IDhweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0 aW9uOiAwLjE1czsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBjb250ZXh0TWVudS1zbGlkZUlu Ow0KICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAs IDAsIDEpOw0KICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wOw0KICAgICAgZGlzcGxheTog YmxvY2s7DQogICAgICBtaW4td2lkdGg6IDE4MHB4ICFpbXBvcnRhbnQ7DQogICAgICBvdXRs aW5lLXdpZHRoOiAwOw0KICAgICAgb3V0bGluZS1jb2xvcjogaW52ZXJ0Ow0KICAgIH0NCg0K ICAgIC51MTBzVUhLMWdreVdQSkF2aHlTQnJ3XD1cPSB7DQogICAgICBtYXJnaW46IDA7DQog ICAgICBwYWRkaW5nOiAwOw0KICAgICAgbGlzdC1zdHlsZTogbm9uZTsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLmdMN1lMRnM1NURCRkhHbTBhQWx2YXdcPVw9IHsNCiAgICAgIHdp ZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgcGFkZGluZy1yaWdodDog NDBweDsNCiAgICAgIG92ZXJmbG93LXk6IGF1dG87DQogICAgICBvdmVyZmxvdy14OiBoaWRk ZW47DQogICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsNCiAgICAgIHBvc2l0aW9uOiBy ZWxhdGl2ZTsNCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGNvbnRleHRNZW51LXNsaWRlSW4g ew0KICAgICAgMCUgew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgICB0cmFuc2Zvcm06 IHNjYWxlWSgwLjkzKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICBvcGFjaXR5 OiAxOw0KICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTsNCiAgICAgIH0NCiAgICB9DQog IDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLmVHRTA4ejhhSWZB a0dlOEJ2a2ZlU3dcPVw9IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHot aW5kZXg6IDEwMDAwMDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICAgICAg d2lkdGg6IDMyMHB4Ow0KICAgICAgbWluLXdpZHRoOiAzMjBweDsNCiAgICAgIG1heC13aWR0 aDogMzIwcHg7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgb3V0bGlu ZTogbm9uZTsNCiAgICAgIG92ZXJmbG93LXk6IGF1dG87DQogICAgICB2aXNpYmlsaXR5OiB2 aXNpYmxlOw0KICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87DQogICAgfQ0KDQogICAgLkpQ ZFphOXI4RUhWd08ybnNVeHFTY0FcPVw9IHsNCiAgICAgIHotaW5kZXg6IDEwMDAwMDE7DQog ICAgICBwb3NpdGlvbjogZml4ZWQ7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgdHlw ZT0idGV4dC9jc3MiPg0KICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpc K1FRXD1cPSB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBkaXNwbGF5OiBibG9j azsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBtYXJnaW46IDFweDsN CiAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgICBo ZWlnaHQ6IDMycHg7DQogICAgICBsaW5lLWhlaWdodDogbm9ybWFsOw0KICAgICAgYW5pbWF0 aW9uLW5hbWU6IGNvbnRleHRNZW51SXRlbS1zbGlkZUluOw0KICAgICAgYW5pbWF0aW9uLXRp bWluZy1mdW5jdGlvbjogbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1j b2xvciA4M21zIGxpbmVhcjsNCiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTsNCiAgICAgIG92 ZXJmbG93OiBoaWRkZW47DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgdGV4 dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5xTGJu WHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmFjdGl2ZSwNCiAgICAubzM2NWNzLWJhc2UgLnFM Ym5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06Zm9jdXMsDQogICAgLm8zNjVjcy1iYXNlIC5x TGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmhvdmVyIHsNCiAgICAgIG91dGxpbmU6IG5v bmU7DQogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTY3cyBsaW5lYXI7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFc PVw9OmFjdGl2ZTpmb2N1cywNCiAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gw cXVaXCtRUVw9XD06Zm9jdXM6Zm9jdXMsDQogICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIx SlB0XCt4MHF1WlwrUVFcPVw9OmhvdmVyOmZvY3VzIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNlMGRmZGQ7DQogICAgICBjb2xvcjogIzAwMDsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06YWN0aXZlOmZvY3VzOmZvY3Vz LA0KICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTpmb2N1 czpmb2N1czpmb2N1cywNCiAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVa XCtRUVw9XD06aG92ZXI6Zm9jdXM6Zm9jdXMgew0KICAgICAgb3V0bGluZTogMXB4IGRvdHRl ZDsNCiAgICAgIG91dGxpbmU6IDFweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsN CiAgICAgIG91dGxpbmUtc3R5bGU6IGF1dG87DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVl biBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiB3aGl0ZS1vbi1ibGFjaykgew0KDQogICAgICAu bzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06YWN0aXZlLA0KICAg ICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmZvY3VzLA0K ICAgICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmhvdmVy IHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAgICBj b2xvcjogI2ZmZjsNCiAgICAgIH0NCg0KICAgICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIx SlB0XCt4MHF1WlwrUVFcPVw9OmFjdGl2ZTpmb2N1cywNCiAgICAgIC5vMzY1Y3MtYmFzZSAu cUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTphY3RpdmU6aG92ZXIsDQogICAgICAubzM2 NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06Zm9jdXM6Zm9jdXMsDQog ICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06Zm9jdXM6 aG92ZXIsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9 XD06aG92ZXI6Zm9jdXMsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gw cXVaXCtRUVw9XD06aG92ZXI6aG92ZXIgew0KICAgICAgICBjb2xvcjogIzAwMDsNCiAgICAg ICAgYmFja2dyb3VuZC1jb2xvcjogIzFhZWJmZjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBA bWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7 DQoNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTph Y3RpdmUsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9 XD06Zm9jdXMsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtR UVw9XD06aG92ZXIgew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7 DQogICAgICAgIGNvbG9yOiAjMDAwOw0KICAgICAgfQ0KDQogICAgICAubzM2NWNzLWJhc2Ug LnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06YWN0aXZlOmZvY3VzLA0KICAgICAgLm8z NjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmFjdGl2ZTpob3ZlciwN CiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTpmb2N1 czpmb2N1cywNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FR XD1cPTpmb2N1czpob3ZlciwNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwr eDBxdVpcK1FRXD1cPTpob3Zlcjpmb2N1cywNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhy cnBiMUpQdFwreDBxdVpcK1FRXD1cPTpob3Zlcjpob3ZlciB7DQogICAgICAgIGNvbG9yOiAj ZmZmOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzcwMDZlOw0KICAgICAgfQ0KICAg IH0NCg0KICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpLA0KICAgIChwb2ludGVyOiBjb2Fyc2Up IHsNCg0KICAgICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9 OmZvY3VzLA0KICAgICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFc PVw9OmZvY3VzLXZpc2libGUgew0KICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBoaWdobGln aHQ7DQogICAgICAgIHBhZGRpbmc6IDRweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06bnRoLWNoaWxkKDIpIHsN CiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4wNXM7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9Om50aC1jaGlsZCgzKSB7DQog ICAgICBhbmltYXRpb24tZHVyYXRpb246IDY3bXM7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9Om50aC1jaGlsZChuICsgNCkgew0K ICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA4M21zOw0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPT5sYWJlbCB7DQogICAgICBmb250 LXdlaWdodDogNDAwOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAg ICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5xcWNCNG5XZ3JpMjZ2RkxMMHlITEh3XD1cPSB7DQog ICAgICB0cmFuc2l0aW9uOiBjb2xvciA4M21zIGxpbmVhcjsNCiAgICAgIGRpc3BsYXk6IGlu bGluZS1ibG9jazsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBwYWRk aW5nLXJpZ2h0OiA2cHg7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMnB4Ow0KICAgICAgd2lk dGg6IDIwcHg7DQogICAgICBoZWlnaHQ6IDIwcHg7DQogICAgfQ0KDQogICAgQGtleWZyYW1l cyBjb250ZXh0TWVudUl0ZW0tc2xpZGVJbiB7DQogICAgICAwJSB7DQogICAgICAgIG9wYWNp dHk6IDA7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAg ICAgIH0NCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQog ICAgLk0zcGNCNWV2U0F0WU1vemNrMVdVN0FcPVw9IHsNCiAgICAgIGhlaWdodDogMTAwJTsN CiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICB9 DQoNCiAgICAuXzFRU0s1bFVodzVHa2g3U0R6OTdaUFFcPVw9IHsNCiAgICAgIGhlaWdodDog NDhweDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgfQ0KDQogICAgLnNpVU1PSndudW15 Y3h2c3pCZTN1elFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGluaGVyaXQ7DQogICAgICBmbGV4 OiBpbmhlcml0Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBpbmhlcml0Ow0KICAgICAgb3Jk ZXI6IGluaGVyaXQ7DQogICAgICBhbGlnbi1zZWxmOiBpbmhlcml0Ow0KICAgICAgbWluLXdp ZHRoOiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIC5cL0R5TVlqMmdOZlByWU5iRVdvVjJcL3dc PVw9IHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdv ZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2UgVUkgV2ViIChX ZXN0IEV1cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAgICBCbGlua01h Y1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwgSGVsdmV0aWNh LCBBcmlhbCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7 DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICAg IHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICBwYWRkaW5nLWxlZnQ6IDhweDsNCiAgICAg IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzICFpbXBvcnRhbnQ7DQogICAgICBvdmVyZmxvdzog aGlkZGVuICFpbXBvcnRhbnQ7DQogICAgICBtYXgtd2lkdGg6IDIyMHB4Ow0KICAgICAgY3Vy c29yOiBwb2ludGVyOw0KICAgIH0NCg0KICAgIEBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6 IGFjdGl2ZSksDQogICAgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KDQogICAgICAuXC9E eU1ZajJnTmZQcllOYkVXb1YyXC93XD1cPTpmb2N1cywNCiAgICAgIC5cL0R5TVlqMmdOZlBy WU5iRVdvVjJcL3dcPVw9OmhvdmVyIHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRq dXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0KICAgICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDsNCiAgICAgICAgY29s b3I6IGhpZ2hsaWdodFRleHQgIWltcG9ydGFudDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAu TjlCNVwvTFwvS0hIdlQ5V09CQWIxYmVBXD1cPSB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDEy cHggIWltcG9ydGFudDsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsN CiAgICAgIGp1c3RpZnktY29udGVudDogcmlnaHQgIWltcG9ydGFudDsNCiAgICAgIGRpc3Bs YXk6IGZsZXg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi Pg0KICAgIC5vMzY1Y3MtYmFzZS5veHFnVEMzcFNSaE9mcmdIZllVcmZ3XD1cPSB7DQogICAg ICBwYWRkaW5nLWJvdHRvbTogMnB4Ow0KICAgICAgd2lkdGg6IGF1dG87DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5NUDl5XCtPQ1VRMERzeTZaNkEwUDdxZ1w9XD0gew0KICAgICAg cGFkZGluZzogMTJweCAyMHB4IDEycHggOHB4Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29l VUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAgICAgICJTZWdvZSBVSSBXZWIgKFdl c3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAgIEJsaW5rTWFj U3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBIZWx2ZXRpY2Es IEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsN CiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg ICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3Jh cDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlUzQkJRdVwrMnhoZzB1dWR4c1wvbjhc K2dcPVw9IHsNCiAgICAgIGRpc3BsYXk6ICJpbmxpbmUtYmxvY2siOw0KICAgICAgZm9udC1z aXplOiAxNnB4Ow0KICAgICAgcGFkZGluZy1yaWdodDogMTZweDsNCiAgICAgIHZlcnRpY2Fs LWFsaWduOiBtaWRkbGU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5TaVwrRjFORXls Mzlhemtic3dnN2c4d1w9XD0gew0KICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAuXzIxYjRrQnpIa2RwV0NnQ2dBXCtWUmxRXD1cPSB7DQog ICAgICBsZWZ0OiAxNnB4Ow0KICAgICAgdG9wOiA4cHg7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5GZEM1Q2dOZTJxUUJYR2JPS2xOdWV3XD1cPSB7DQogICAgICBqdXN0aWZ5LWNv bnRlbnQ6IGZsZXgtZW5kOw0KICAgICAgbWF4LXdpZHRoOiA0OHB4Ow0KICAgIH0NCiAgPC9z dHlsZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAubzM2NWNzLWJhc2UgLnJT RG5neTUwQzRoTHZqTjc3UjNkYkFcPVw9IHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9 DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLm8zNjVjcy1i YXNlIC5xTm9cL3NOMjNjaEVCVWUwSDhIbjBIQVw9XD0gew0KICAgICAgcGFkZGluZy10b3A6 IDE0cHg7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDsNCiAgICAgIC13ZWJraXQtYm94 LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTsNCiAgICAgIGJveC1zaGFk b3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5GME85VWgycGU5ZzJBWTBHOGhcL1wrSWdcPVw9IHsNCiAgICAgIGhlaWdodDog MTAwJTsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICB2ZXJ0aWNhbC1hbGln bjogbWlkZGxlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuXzl2REtOTHYycDByTzBK dVBVQWJPMlFcPVw9IHsNCiAgICAgIG91dGxpbmU6IG5vbmU7DQogICAgICB3aWR0aDogMTAw JTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGRpc3BsYXk6IHRhYmxlOw0KICAgICAg dmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQog ICAgICBmb250OiA2MDAgMTRweCBTZWdvZVVJLVNlbWlCb2xkLWZpbmFsLCBTZWdvZSBVSSBT ZW1pYm9sZCwNCiAgICAgICAgU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwgIlNl Z29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwNCiAgICAgICAgLWFwcGxlLXN5 c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBUYWhv bWEsDQogICAgICAgIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5DZFBaZmxUclhXSEVpY3BYWFM2QWxRXD1cPSB7DQogICAgICBo ZWlnaHQ6IDg4cHg7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBiYWNr Z3JvdW5kOiB0cmFuc3BhcmVudDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFy ZW50Ow0KICAgICAgYm9yZGVyLXdpZHRoOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAg IHdpZHRoOiA4OHB4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuXzhFaXlJUWJDMmpk YU8wRU9XRGx1akFcPVw9IHsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB3aWR0 aDogODhweDsNCiAgICAgIGhlaWdodDogODhweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2 ZTsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5fOEVpeUlRYkMyamRhTzBFT1dEbHVqQVw9XD0gLm1zLVBlcnNvbmEgew0KICAg ICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLl84RWl5SVFiQzJqZGFPMEVPV0RsdWpBXD1c PSAubXMtUGVyc29uYSAubXMtSW1hZ2UtaW1hZ2Ugew0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLk1wdnRIbFVr YW92WmN1T2lYQm5lM0FcPVw9IHsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAg IHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIHdpZHRoOiA4OHB4Ow0KICAgICAgaGVpZ2h0 OiA4OHB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNhNmE2YTY7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5NcHZ0SGxVa2Fvdlpj dU9pWEJuZTNBXD1cPTpiZWZvcmUgew0KICAgICAgbWFyZ2luLXRvcDogMTdweDsNCiAgICAg IHBhZGRpbmctcmlnaHQ6IDJweDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLkVUOTBx OWVaOHRjOFpYUEFvNzZZbGdcPVw9IHsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAg ICAgIGZvbnQtc2l6ZTogMzJweDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAg IGxpbmUtaGVpZ2h0OiA4OHB4ICFpbXBvcnRhbnQ7DQogICAgICBjb2xvcjogI2ZmZjsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICB3 aWR0aDogMTAwJTsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLkVUOTBxOWVaOHRjOFpYUEFvNzZZbGdcPVw9OmFjdGl2ZSB7DQogICAgICBj b2xvcjogI2JlYmJiODsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlNhcVZlY1Vqb05i MEtFQmUyMTZiMkFcPVw9IHsNCiAgICAgIG1heC13aWR0aDogMjE0cHg7DQogICAgICB3aGl0 ZS1zcGFjZTogbm93cmFwOw0KICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4Ow0KICAgICAgb3Zl cmZsb3c6IGhpZGRlbjsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICBsaW5l LWhlaWdodDogODhweDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5oTkxpeFRoXCtDbG9QcHkxMG1Zczl0d1w9XD0sDQogICAg Lm8zNjVjcy1iYXNlIC5wV1ZWWHJyTUJZalhwck1qMjZwazhRXD1cPSB7DQogICAgICBkaXNw bGF5OiBibG9jazsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB0ZXh0LW92ZXJm bG93OiBlbGxpcHNpczsNCiAgICAgIGZvbnQ6IDYwMCAxNnB4IFNlZ29lVUktU2VtaUJvbGQt ZmluYWwsIFNlZ29lIFVJIFNlbWlib2xkLA0KICAgICAgICBTZWdvZVVJLVJlZ3VsYXItZmlu YWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLA0K ICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVs dmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1z ZXJpZjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLnBXVlZYcnJNQllqWHByTWoyNnBr OFFcPVw9IHsNCiAgICAgIGZvbnQ6IDE0cHggU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdv ZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwg LWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhl bHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAgIHNhbnMt c2VyaWY7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5cK0J1VVNONUo2WEU0T1FXcFF4 Y2psUVw9XD0gew0KICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5cK0J1VVNONUo2WEU0T1FXcFF4Y2psUVw9XD0gZGl2IHsNCiAgICAgIGxpbmUt aGVpZ2h0OiAzMHB4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuXCtCdVVTTjVKNlhF NE9RV3BReGNqbFFcPVw9IGRpdiBhIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAg IGZvbnQtZmFtaWx5OiBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLA0KICAgICAg ICAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVt LA0KICAgICAgICBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUs IFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlhbCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICAg IHBhZGRpbmc6IDA7DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5cK0J1VVNONUo2WEU0T1FXcFF4Y2psUVw9XD0gZGl2IHsNCiAg ICAgIG1hcmdpbi10b3A6IDRweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4Ow0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAuXCtCdVVTTjVKNlhFNE9RV3BReGNqbFFcPVw9IGRpdjpo b3ZlciB7DQogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLmpuVXFHdGxxT0pGaWJldVNIRVZRXC93XD1cPSB7DQogICAgICBj b2xvcjogIzhhODg4NjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLmRBTk5FVWRcLzZn Y3VzaGN3d280dm1nXD1cPSB7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAgICBtYXJn aW4tcmlnaHQ6IDMwcHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5WWDFFbFBJTXpG TUZ6OUNcL1dpUE5cK0FcPVw9IHsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuZ0Q3RDBJdkIyTEs0 RHRwS0hQXC9rY2dcPVw9IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHJp Z2h0OiAyNHB4Ow0KICAgICAgYm90dG9tOiAyNHB4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAuXC9tT2xXakFxUGYyV3FvUkJ2Ukk2VEFcPVw9IHsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHJpZ2h0OiAyMHB4Ow0KICAgICAgYm90dG9tOiAzOHB4Ow0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuemJZZ1ZaTEprcHdsM0FvT1FXcTdWZ1w9XD0gew0K ICAgICAgd2lkdGg6IDhweDsNCiAgICAgIGhlaWdodDogOHB4Ow0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgei1pbmRleDogMjsNCiAgICAgIHBhZGRpbmctdG9wOiAyMnB4 Ow0KICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5lWmVGb085N2o3dnRJSEE3YTRJUUpRXD1cPSB7DQogICAgICB3aWR0aDogMTZweDsNCiAg ICAgIGhlaWdodDogMTZweDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHot aW5kZXg6IDI7DQogICAgICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgICAgIHBhZGRpbmctdG9w OiA0cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5zWHl0a3FqZGpmMHh2am41VDJS TGVBXD1cPSB7DQogICAgICB3aWR0aDogMTZweDsNCiAgICAgIGhlaWdodDogMTZweDsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHotaW5kZXg6IDI7DQogICAgICBib3Jk ZXItcmFkaXVzOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubFwraE5OOVZV TEtxeEF6YmVpbk9qMlFcPVw9IHsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgbGVmdDogMnB4Ow0KICAgICAgdG9wOiAycHg7DQogICAg fQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgIC5vaGNmWFlo NkxVQnk1RFM1a05ValJRXD1cPSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAg d2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLl84Wlla S3Z4QzhidncxeGdRR1NrdnZBXD1cPSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICBsZWZ0OiAwOw0KICAgICAgdG9wOiAwOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJs b2NrOw0KICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsNCiAgICB9DQoNCiAgICAuTWNcK2Zp QWRKVHVLS1NcK3lKTE4zckRRXD1cPSwNCiAgICAuXzhaWVpLdnhDOGJ2dzF4Z1FHU2t2dkFc PVw9LA0KICAgIC5fOFpZWkt2eEM4YnZ3MXhnUUdTa3Z2QVw9XD0gaW1nIHsNCiAgICAgIHdp ZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5NY1wrZmlB ZEpUdUtLU1wreUpMTjNyRFFcPVw9IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7 DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7DQogICAgICBjb2xvcjogI2ZmZjsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVNl bWlMaWdodC1maW5hbCwgU2Vnb2UgVUkgU2VtaWxpZ2h0LA0KICAgICAgICBTZWdvZVVJLVJl Z3VsYXItZmluYWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIs IFNlZ29lLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJv Ym90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAgSGVsdmV0aWNhLCBBcmlh bCwgc2Fucy1zZXJpZjsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxOTUlOw0KICAgIH0NCg0KICAg IC5PTGxvN1dCWWI3SEpUR2ZHeVZraVdRXD1cPSB7DQogICAgICBmb250LXNpemU6IDEzcHgg IWltcG9ydGFudDsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVJlZ3VsYXItZmluYWws IFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNl Z29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAgICBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90 bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlhbCwNCiAgICAgICAg c2Fucy1zZXJpZjsNCiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWwgIWltcG9ydGFudDsNCiAg ICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAg anVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgfQ0KDQogICAgLkNzYTY5YjFkdWlmS3Br N0RkMWRuWVFcPVw9LA0KICAgIC5PTGxvN1dCWWI3SEpUR2ZHeVZraVdRXD1cPSB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Ow0KICAgICAgYm9y ZGVyOiAxcHggc29saWQ7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgIH0N Cg0KICAgIC5Dc2E2OWIxZHVpZktwazdEZDFkbllRXD1cPSB7DQogICAgICBjb2xvcjogaW5o ZXJpdCAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5sTUhLV053XCtkQ0puTURlOVwrd29P ZUFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsNCiAgICAgIGFsaWdu LWl0ZW1zOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICNhNmE2YTY7DQogICAgICBmb250LXNpemU6IDZlbTsNCiAg ICB9DQoNCiAgICAubE1IS1dOd1wrZENKbk1EZTlcK3dvT2VBXD1cPSwNCiAgICAuQVZ4Tzdu N3hWQzByXCtVcHNHZVBFeWdcPVw9IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7 DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAg IGhlaWdodDogMTAwJTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0KDQogICAg LkFWeE83bjd4VkMwclwrVXBzR2VQRXlnXD1cPSB7DQogICAgICBsaW5lLWhlaWdodDogMSAh aW1wb3J0YW50Ow0KICAgICAgZm9udC1zaXplOiAxOHB4Ow0KICAgICAgbWFyZ2luLXRvcDog MXB4Ow0KICAgIH0NCg0KICAgIC5BVnhPN243eFZDMHJcK1Vwc0dlUEV5Z1w9XD06YmVmb3Jl IHsNCiAgICAgIG1hcmdpbi10b3A6IDAuNGVtOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0 eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAuXzA3dExHUllNXC84OWQ3ZWxhaWJ1ZG13XD1c PSB7DQogICAgICB0b3A6IDEwMCU7DQogICAgICBtYXgtd2lkdGg6IDE4NHB4Ow0KICAgICAg d2lkdGg6IGF1dG8gIWltcG9ydGFudDsNCiAgICAgIHBhZGRpbmc6IDhweCAwOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAuWmZ1dnNnU21QaE1BcXFydjU1eU9NQVw9XD0gew0KICAg ICAgZm9udDogNDAwIDE0cHggU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAg ICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5 c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBO ZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAgIHNhbnMtc2VyaWY7DQog ICAgICBib3JkZXI6IDAgc29saWQgI2Y0ZjRmNDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRl cjsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgcG9zaXRp b246IHJlbGF0aXZlOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwYWRkaW5nOiA0 cHggMCAwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuWmZ1dnNnU21QaE1BcXFydjU1 eU9NQVw9XD06YWN0aXZlLA0KICAgIC5vMzY1Y3MtYmFzZSAuWmZ1dnNnU21QaE1BcXFydjU1 eU9NQVw9XD06aG92ZXIgew0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5aZnV2c2dTbVBoTUFxcXJ2NTV5T01BXD1cPT5z cGFuIHsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxl eDsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAuWmZ1dnNnU21QaE1BcXFydjU1eU9NQVw9XD0+c3Bhbj5kaXYgew0KICAgICAg bWFyZ2luLWxlZnQ6IDRweDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLkRFZktSN0NS OWpUbUIycmhZT0xcL2pnXD1cPSB7DQogICAgICBmb250LWZhbWlseTogU2Vnb2VVSS1SZWd1 bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJv cGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1G b250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWws DQogICAgICAgIHNhbnMtc2VyaWY7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgaGVp Z2h0OiAzNnB4Ow0KICAgICAgcGFkZGluZzogN3B4IDEycHggMDsNCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLm8zNjVjcy1iYXNlIC5fOGtn ZlwvaHduYUc2eURwN1JPYVVUWFFcPVw9IHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLmFsXCtUVDJhSGJ3Z1EwN1lLZ1dzclp3XD1cPSB7DQog ICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLnYwMktFQzh6 cmVOVWRSc2dGS2pJTEFcPVw9IHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAuXzhvS1IyWWdCXC9YZnRmXCtVY1lYQkY4d1w9XD0gew0KICAgICAg ZmxvYXQ6IHJpZ2h0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuVnpORkdIMGNHXCtu ak9iMjF3WGZoaEFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IHRhYmxlOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAudmNmcDc2anlpaFwrRU5WcVFcLzhkZm53XD1cPSB7DQogICAgICBk aXNwbGF5OiB0YWJsZS1jZWxsOw0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLkphbEpTVE41S0w1SzdDY0ljUWt6YkFcPVw9IHsNCiAg ICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9t Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuRGpRM1wrcUtId0c5YlFPT2tMcEhBbHdc PVw9IHsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICB2ZXJ0aWNhbC1hbGln bjogbWlkZGxlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuRWtlN01hR1R5ZDZlOTk0 NTliYjRyZ1w9XD0gew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLlRnSkFzWTI2c1ZIYXB2Q0tVOFhFTkFcPVw9IHsNCiAgICAgIHBvc2l0aW9u OiBhYnNvbHV0ZTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBjbGlwOiByZWN0 KDAgMCAwIDApOw0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICB3aWR0aDogMXB4Ow0KICAg ICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIGJvcmRlcjogMDsN CiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgQGZv bnQtZmFjZSB7DQogICAgICBmb250LWZhbWlseTogU2hlbGxGYWJyaWNNREwySWNvbnM7DQog ICAgICBzcmM6IHVybChkYXRhOmZvbnQvd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlH UmdBQkFBQUFBRWtnQUE0QUFBQUFkVWdBQktqMkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QlBVeTh5QUFBQlJBQUFBRWdBQUFCZ0x1Qi85V050WVhBQUFBR01BQUFCL3dBQUJGcUZsR2Vi WTNaMElBQUFBNHdBQUFBZ0FBQUFLZ25aQ2E5bWNHZHRBQUFEckFBQUFQQUFBQUZaL0o3bWpt ZGhjM0FBQUFTY0FBQUFEQUFBQUF3QUNBQWJaMng1WmdBQUJLZ0FBRDN0QUFCZ0NDdDBidEZv WldGa0FBQkNtQUFBQURZQUFBQTJMUmtDUVdob1pXRUFBRUxRQUFBQUhRQUFBQ1EzeWpCbWFH MTBlQUFBUXZBQUFBQ05BQUFCc0Uycko0eHNiMk5oQUFCRGdBQUFBT2dBQUFEb3dtN2FYRzFo ZUhBQUFFUm9BQUFBSFFBQUFDQUFwd05nYm1GdFpRQUFSSWdBQUFQM0FBQUorcEtYOGxWd2Iz TjBBQUJJZ0FBQUFCUUFBQUFnLzFFQTZuQnlaWEFBQUVpVUFBQUFpUUFBQU5ONHZmSU9lSnhq WU9FSVlwekF3TXJBd0RxTDFaaUJnVkVhUWpOZlpFaGpFdUpnWmVWaVpHSUVBd1lnRUdCQUFO OWdCUVVHaHllemZtUnlnUGtRa2dHc2pnWENVMkJnQUFEU3F3aCtlSnhqWUdCZ1pvQmdHUVpH QmhBekJNaGpCUE5abUMyQTlDbUdCZ1kyQnE4bnM1N2NmUEw5T2NOejd1ZEN6NFdmaXp3WGZT NzJYUHk1MG5QdDUzYlBmWi9uUE05N1h2Szgrbm43ODEzUER6NC8vRUxtaGNPTEtTK212OWo5 a3VHbDVFdjVsNDR2M1Y0V3ZaejVTdTZWOWF2QVZ3MnYrbDlOZTUzek92K04wQnVSTjR2Zk1y MlZmSnYxdHZCdDlkdWF0NjF2ajc4OS9mYk0yN052TDc0Ny9yNzBmZTM3dXZmMUgvbytUUHp3 NTZQMlI0T1A5ejQrL3ZqMDQvT1BMeisrL2xUOXFlNVR3NmVtVDhzLzdmbjA4TlBMejVxZjQ3 K1lmS243MHZTbDdVdlBsMmxmTm4zWjgrWEJ0NUx2QXQvZHYwZC9MLzErOEVmbS8vOE1ERGo4 b3ZoY0MreVhiTEJmcXREOE1nM0ZMNFZvZnNsK25VZFR2MHo2c2hIcUYzNWt2MGhmazU0aFhT M0pLUEZMNG92RWU0blBFdThrL2toOGxQZ2tjVi9pdXNSSmlRVVMweVJtU2t5Um1DQVJKeEVo RVM3K1JmeTJlSWQ0dTNpS3VLQTR1emlUMkVPeHUyS2J4WHJGK0VUZmlkNFVYUzA2UTNTU3lD R1JneUx5SW5MQ0U0U05oR1dFTGdpZEVOb3J0RnRvbzFDcFVKRlF2bENoVUo1Z3BjQlpnV01D aHdXTzh1L2czOEx2elMvTEw4bVhBNFJwZktsQW1NUjdsZmN5N3lYZWk3eHJlV2Z6bHZEbTh1 cnovT0pSNDc3TGZZdjdPdmNsN3JQY203bFhjYmR6ZnVHTTRsVGhGT1Q0d2JHV2d3MlM5b1lM WUdRYmFCY01QQUFBQjJSZkxRQjRuR1BRWWdobEtHQm9ZRmpGeU1EWXdPekFlSURCQVlzSUVB QUFxaHdIbFhpY1hZKy9Uc05BRE1aekpMU0VKMEE2SVoxMUtrT1ZpSjNwaGtzazFDVWxET2Vs Z05SS3BPK0FsSVhGQTgvaWJobnpZZ2pNRWY0dXRyL1ArbnkvYzZmNXlYeDJuS1ZIS2lsV25E ZmhvTlFMRHVydG1mMzVJVS92Tm1WaFROVjVWdmRsd1dvSm9tdE9GL1ZOc0dqSTBQV1dURzBl SDdhY0xXS1h4WTd3MG5EU2hrN3FiUUIycUwvSEhlSlZQSkxGSTRRUzMwL3hmWXhMK3JVc1Zv YlRpeWFzQS9kZXMvT29BVXpGWXhONDlCb1FmOGlrUDNWbkUrTnNPV1hid0U1emdrU2Z5Z0wz UkpxRSswdVBmL1dna3YrRysyM0l2NnRCOVUzYzlCYjBoMkhCZ3JDaGwyZmJVQWthWVBrT2hQ eGt4Z0FCQUFJQUNBQUsvLzhBRDNpY3JYd0plQnZGMmYvT25wSVB5YXY3c0M3TE9pemJzaTFa a3UzNGtPMDR2dUxFanBPUTJEbkpmZDhKdVRlUWhFQXVFc0paSUNraFVPQ0RRcmdKRk5HUEZ0 b21sQ3ZBVjJoTEM3U2wwSzhjSDIxaWFUZi9tVm5KRmc3SDArZjVXOTdkMmQyWjJUbmVlZC9m Kzg0N1E1REV2UVJCNzJZMkVoVEJFVVNNZC9FZUYrKzZsL3BENmtueVNiR0xZRFlPWFgrTW5r REFQNG9nZ0tBZ1dKaUFVQklxb29RNGc1OVNCRjM2TkVFVVBFUGtFK3ovUFVQa0VCUThLM0NZ Z2VIS0t1Q0t1UFQ4OEVsQlhDQkdEa1lRaEJRaENDVFl1UlBtekJJc044UU5FVEZpSFhFdDhT UDRUWjFCcjJQMURPVmhPUzFERmJIdUlxK2I4bWk5UHZpbzJodXBqa1k4V2lZYWc0OUMwWERJ RUlhUkRFYVBGalNDU0xYWEYvTXhRZURUK3JnZ2NCZXhuSS9UcWdEbjRZd3FvTmNaakp6Ull3 ZEd5aGl6ZzNBb0dqUEdxRVlRWTJJZ1pDZjFPaFhwTGdxU2tlcEdVaHRxaE5jZ3ZGZkI1M2FT L1RjQWdEb3V2V095akpWMi9WaXBVY0wvSDB1N3hscE0wanZIQVFXQUpCNEhKZkF0MkpsNUMz YkN0NkRrdUxTUHBHbnlzNm5TRjQ1bWI5TnJ4NHlWUmxPRjZjYlhtcnh4cC9URjFNL2t0MEI5 K1Z1Z25wbzZPdUc2aFdQR0xMeHVRdVlhbTlOUlV0SXhKNWErMHNYL1dXSEU3SXBJdjRmZmds OGMvdHhuM3l4cTl0dkxpa291elM0V3VvcENWc0h3ZFppR0JCaGlpVng0QnluT3FBUmFYZ2w0 UkErSHFUWFVHblZLU0Ftc2tJVGtJMGp0NEprVVFWMGxOWU1YVXZzUUhUTG9wSUEvUWt2NGlG WmlOckVCNXBQdXFYQzY1MXlqN2tHSXRwTWF2WTVVa2JTN3FEaEl3cmVhUnJJWTlpd05leFkr VTlHd1oyblUwekdqaWtJOTc0dlpLVkt3QnQwNm5UdG9UVi9KajBjOWtCWWNCT3hIWi9aMGR1 NDU4NUUwZFBDZ05KUzVBOHloclIrL2ZNK0dlSHpEUFM5L3ZIVWsvTkcyenVzMnpuYXRLN25x MklPRE14NDRkbFhKT3Rmc2pmdG9JU3ZmYjcxU3dyZCtKVjJDQzRLYytlVWZCWUsvYTJselhk L3VHYUhRak4xOWRjMUx1L3p5bUJZSWdZTS9PUEk0T0g1UmZ3QWVuU0FYNEYwYzdBT0pJQW5w Q2VZM1EvQUtJd2tYNFpVaExqNEJ1bWs0YmlXY0J3VnpvQVhjSDJOZ0hxTkdqK3NIN2dFeHFx clU2THBmOXVDSFcycjBWZVpmRnlEdEtXQk5jd2sxUVNpQkh0WlJEeGg0Qm95ZVVjRGFERUd5 SkFrUjB4NnN0d0FFY0FFUUYyZ0NudmVKQlBuTWk1Ky9DTnVOUkkzSFhZSTBPSWJZakdwc2NB QTc1Q2lzR2lEYUtRTkJNZ2VndWpWQk5oVE92RVVrWmdTR01LUTVDdEZaRkZHZXo0dG9Eekkx SHdpaUpKQWNmVUhHWGNTcEtFaVFMTnRlMXVkNDMrRnlPVlRSZ1N1djZ0OHVYWkNTeVQ4K3Qy KzhyYlkvV3VEb0xaZmYyOHNpWlhZcjZiTjZMZVZsd1pvMlg4ZmNDVjJWVmx1d05sYVJiL1Za eXNvcWF0cktZRnp4ZnpLUjgwdkR0ZEVxamRkYTJSMnhkdTU2NUxXLy91TlRxdFVGYyt0REVW WFJ5YlgyQ2RmLzdFOUp3QUI2Uy8vR0s2ZkQ3eFVWeWUvYmFvSmw1UmF2VmZ3Zks4NU5iTENH eDFkYXZacXFhRzI0TkY5KzZIS1FQamx5UlZtWnhXZk5yNGpWQm0zV3lxNEpjOXRYLysvLy92 WFZoM2UyRXdBMlpUL2srUStoSWEwRVBpUXRRSXdiU3ZVUFVOb0xReHliK3NjQVRlQTdnZElP d1BnczBRODdFY2NITHNBcGdSRzRJUE1ZZ205VC9kUkRBNmwvY0N5VmdNbW9oL0FkakFaT0VS UWpjaUxpSGg2WVFBbVlreW1Ta2daU3M2aTdLVXFreElIVXpOUk0xSzJBaERLTkhSeU9HMVBD SjlUZHFWa0RsSlFpWjFJbnFaTURLU3BGb2JnNXc3eklTbmlKRU5GTVRDUUdpYVdRSXduRWZr UVgzODUxUUpEeTJTa2pxUGE1TU5Wd3JpaUFSQkZ6MlptMDJITEo4Z25vakM1RUZkR1lpd1dR VERoWGtHRlVGT2RxcEFETUFHWURHcW1ZUzBYUnhQZHdJZW9wNy9MZHQwOHVyaXQzNW9GN1BO Sk5DdmdIbG5sU1F0V1VqdG95dTBLY29MQ1gxWFpNQVNjVVNxVkNMTUxuZjNyQU1oUlJ1c2xE WlNLU3ArV0kwZ09UYjkrOTNBdDY4cHpsZFpKekpIc0s0QmZTWStpRmd2ZytiaVVLZlljM3py Q0ZWbS9hVWk4SmU3YkdkelkzNzR4dkZabm90RlZybC9wOFM5ZXVtaFlsQmZteGZBYkVjRFF5 bVIydHlqWmo0K0crK2kyYlZpZm5aZVU2OHBoQXFBV04yVjl5djRSOHlrR1VFdk11NTFRVWxP MElCd0FWWUZBL0lJblBjbmhJK3pnM01DS1VFQU1zN0JrSGdIMklYK3A5Z0lNa0VzUGozQWk4 S0o4WWs1aDVjc3U0Y1Z0T3preGZQd3hkc2FHbFlzQW50Vm1zWkxmRkdyNWlQYm9sbjNRMXRV NE1GVG4yUGdrTU9jYWdLVllsOFpaY2pwSjBKamhpcmJYTGcrRERoUGpLdm5LeVZ0cFJQdTdw ZWI0ZUw5aks2cjB4RnlWazVZK3ZVcnhsd3hVaHF3V2M4UTM4MFRkUTBiTCtpckRWUW5hNlls NDlleTB3VUZ5dUJmeXpLbVlLR25Na2ZZNG1qM001SmR1VEw0b3ZsKzhqYThEVjVlTzY4dlBB VmtkUjFjU3hUUzRDOHprQnRobVUyTEM5bW1CN0lXcDJWNVBlWWl3djNaQ1lRU3hJZlVQUTRp WWNnVXRNYU45N3QwMFNOcndxL2ZXZVpiOThjUCs4cURENTl2ZXVuYkR0aW9yNUQzK3laODhu RDgrdnVHSnJhbGZmL21lWExuMTJmMS9tU3ZWVTNQOEg2Y0xoZTRENTFRM1JlZnNmL09XeUd3 RDMvaytxQWxmZGVOODBsQXdsbjNidjBjMmtNanNkdkdiNE14NlhETkdHcEJyZ0FNOUFJTW14 NkFlNzB3dC9FQmpHN0NRZEhzRUFKT2VDTWlITXcycEZZOUhpY01ob01CcG9BcXdZa0ZiUWxi MjlFdzRkZWlyeDI0ZnZ2dXVhcTJkV3RCbTIrdS83Q0JodXpwYTNWLy9mbS9mSFFJbEVDTHpm TUd2SGJoQTgrZHZFVTRjT3NZVDRublIwQUJ3bEI5Y2tmb3NmVGVpdGpTMVljRjNielgxRlI3 NThlRTYyN083YysveDZBY3FmLzNVMjJMWVB6cm9TZlZpdUVzWlBFS3FySWI4SkVFSEljNkpF SGRHSTZvZ0lHZU1laEtuY3ZBNGhaUlJHUGVKQ1hZSTRLMExnbVI4Uzh1aFFFQ1Z0czZvdlhn d1B0dm81Q01XOUZvdDNpTkM2eXN3c2gyU25oTVVoQmdMcFF4UkVnUlFrV0JoSllJbVVFSm5a VnVKdkhRelQxMTRpQkRGdThYb3RWQ0o1MFZ6bTBpSUJEQ0ZDU3NCL01OazFvZ2l1R2NFZXNF cmppQUZpSmFJdUNwSlVCbVd6WFBhdEc0MHFMQjlKTk13UTJZRVJzbVBCS0lBK21nclorYzFM dXZ4Q3crSURFeWNlV056UTMvbU5Xd2lPbGpSMzlxUGJ3WHVpM28zZGNoakhUTDVaUGF1dEJM VVBxbU5KMjB3eUFrK1I3SWRNdDJ2dXB1czZVZlIwRnQrNDc3eHUwMXhYOUo1QitjUGRHNzNw c0J3M2RXbDBkalNSL2xMbTZUZm8yUTAxSThTM2FBUW5NR3JBM1Z3ZFM2T0gwYW9LRTUvNytC MjdFT3piZGNmamM3ZC9QQ2YxVHkzc1hpMVZNSEd5L0d6VEczY01EdDd4eHFiMFZVSElqK1Zr a3llbVB0ZENldEJTL0p5UHQ4dlBra1JXZEh4RmtoTEEwa0VjeVVIS1JHVnNsYkc5SytZeU1p NmZpME9rOWdOYUZVUlJlcGxvcTZOSUZ5QTlBdm1rQUU1SkhrRjhVcEE4SENTMHBXZjI5L2J1 UDdNMGM4MDBaUG9xSGtha0J3OE9JemxNY2ttQ0ZyS1RvR3RLeUVxRXJ4U21lblJnREVDOENV NXg1V3c1cXBtU2hQeWRLMCsrS2I0NUFONmszbVRlVEw1QkJnZWtJUFVHaXN0aUhvbjZ4Z0Zy WGs1VUVSR2lGbWJoemhxUWJqamNFTFVpNkdzREpTUWVlem9EdklmYXE1c1BnL1FCUjUrOWVw dy9SZmpIVmRzaEEwQ0RCMkFWaENSU2VMUlJSQktXbENZc1hoRldENlFQVmhpS295UW9NWk1R aHBVV1FiaEVET0hobUlBUWlwQVArTWZEUThEMFJLWFJzSll3UWd5RGF1Q0R2TDZDQ09NK25F ajB3NXFFOWU3TTRZRUhrNzU2ZnVBZTkzOGtyRWNIZzhKNjJBendRTThwVkhCQlBxU3NnLzZC ZTFhNEFKdEJvQWxoQ0JZY01wc1VBUm5RUmFRcGlnTFVRNzdqRDBYaFpISzRSQUFjR0lKa2tS VFN1RURtUTBpeFVTSXR5T05TUW1DcDVkMW1WR2RPdUNCUUNWSE4vRmxVeDFGU3BBUXhmNWJz aUFlS3FQY0pDb0ZZbkFkS3o2ZHBuM2VqbXNJRFlGMHFsUzZpS0RDWWZYS29TK0doZ1BVUVlj ZUtpTEhLZkZHbXB4R2RqSGRwWVpGd25oeHhVYUFIUGNBanZRZnBBUTRKNXIwaEQxSmRnT2Zp SUZKYUxnN3JKd2pyRkJNdE1BZU1ZR1FkaElSNGVSaXdaUEFLU01NYVl3YlZ5T2dISmVGK21Z WW8wcDc4UEV2VnVESnB4d2dlZVdMZXBPNDBIQUdITUhiSlYwZzZNNFl1eTRMa2o1MUZYTDRt QjN4cXFXSjBHSVZJZTd5OS91YWxzNmFVZ2F1ellJZDVHSFdJWXpCRUtheXlaQkNLT0R1NHJN WmFVVjVtQnA4cFVITkFXdFZ5LytEK2dld0hTZ1QvZlJpa0crbEI2dWhBYWtWcXhRQjFOTFZ5 Z0xxUnVoRXBEdG0zcVpVd0Ntb2ZBT21hTGNmMG53ZjdHOUtsRm1ZQ29PZ0hBQkpkdVhpamVD TWM3QUo0RXhJTDlhWjRpRnc3SUFXWSs0ZXVBRy9qOUFJYStEaDlGVXdQcVVRcjgyVFdCdHl3 U2RsSWx1U2lFVjNHSjk0b0xPMHVLZXVZTVdkR1I1bVF2clp2UnRCdGM3dFEwcjFVdUZHQUZJ UURFeWZ2V3pObllQcjg5UjJKQkF6T0hoaUFRUlFQeFpjenducVRMQk5HdDhNUmF0V1JGUHpC S3o3Qlc5Z08yYmNwRkdYRWxnTDVOb04xbDNuRUd0akFHQUpsdURXSHFJYmtqSnlQUlRxTWov UEZ2Q1RTU0Vad24xSEd2bzBVZ3psNVdqeURVSEZVRTVIQklzM0M1eG9ERFVaUXRSMHdrSHdG Y25YLzBlVk5wbUJMaWRtMFp1a3JBNjlza1Y2LysyN3A5UzB3dUhTTnlWelNFalExTFQvYVh6 Vm5hcGUxL1doMzk5RjJhOWZVMmNsSk5mTzZTaU9WOFo5djg2NGlROGVCOGZYTm0xK1hQamwr WFBvRWhZQ1Jlcll5VXRvMXI2WnhsWGZiejJFSElMaENFeWlyMEd3NXErR3Z5TjhGRlhlbk13 K05GRWt1Z0RDY1Vid3ljbEZBMlI4ZjlVbjZUdStxeGt5WnN2ckdpaXlZby9XL01OWUxvWHEw OTh5SHNucjA0Wm05bmVnT3NBZWhlb1R1b0ViM2JZL2xKR2s3R0xhbG5TQ0tJQXBzSWpxSUtU S0dHaFk3YUdURHJnZzNVcWlYUExqUmpVd01ZM1lsOENDTEtPNHZCcW84U2pqVXc1NW9obXc1 ZHR1a2cwdnFXOWJjTWpWNUF1SHF5S3pkdlo1Mkx5amJlUDF0ZlN0K2RXcWorTk0xWnp1OGJT NXc2eWZHQ290NXpxN2JVMHVwQ2RJem9aVjFFNjVmVk85bm5xNmM1aFZ2U1IwcFh4Umw1anBD VTlZMkZiZVBiWEhTTHpEalZoK2ROUFdXTlMwSXMwKytmZGRjYzI0TzJicXMyOWUrODlGL3o3 d2l4Nkg3dnl0ejFFenZOYk9xVTV2QmdwZnN6c1lsQjNycXQvN0tiZ05ycEVPRjlyc2F4N1lz N3k3aExRN1ZOL2kzRmNxc01VaFA4UlFGYVFTR3dtbWNSS1d0ZXhta1Q0VWhhNFpqbGtycytm cnRuMjRmTzNiN1Q5LytlazkyZU4xYno5eTZ2TDUrK2EzUHZMVnU3ZmxNK1B4cExFSXVqeTZI T1FKSFdqdVNJSk1ZNFdWSWc1QXV6S1NaK3l1N0dablJsU1Fjc0J5M01uVTBkWFF6OVZmcXI1 dEpNN1VTaDFQbXpTZ3V1SmI3Sy9OWEhCZVBiQUNIc1hrenRaSmF1VGtGWDhJVXFhTTRMR09X akMxUGkrd2lzSVpLVWkrck0wclNGV0VnbkJERUJCUTFjUmJLTDRGTUFBSjhMTDNIWXRFaHZn Z0lzY2tEWmRMUUlQa0NsSkYvRVlpMFhJUFBZSjRPb2d3alQ3MHJnK0NnV09jemJRdy9sdUYz UE1iaUxvam5PSml6Zjl6TVNHVG1PRDhjNmNIK0RZZnVtVGJ0bmtNYitvTkNSbDBqc2UzdkVn STZzSGdvSmtvQmhhRWNUMDRqUWk2YjBmRkVBa2RPMi9SWUlpTjNzeEVNcWowRWtpNVovUUd5 TVJPTU9sZzRlaXJjRjR1TEtnR0VVQ1E4VW9oSENNam1CMkZXK3NvU1EvM3V5cW9pNWlIWVd2 RFRDRDBNWVNCRzRyT1VGY1o5NENTYzNBZmNCMmpjYTdNb0VMWVk3V3pmOWNUNzBuWFhTZTgv c2FzOU8wd1Rsei9ENGN2a2pGc2ZUdE15bEROaFNNcnNzQklVaG5RTllkSC9mem1Ec1EyTDJ0 aExWQkx0R2UyRDVWUkFud1Z4cTVFK0xXc2cwUWJnZ213bERMbDlMTVB3WmNHQUpsc1NjeCsv VTVnUldybXdmenFDcTVjdzFwM2V2M0JsYUladzUrTi9zbmdsQ0hCQmEvN1NnZjdwR1FWamV2 L0EwbnlrbWNBWWM0OWNXRERwMXh2bGRDZ0hRR3o4OWFRRkY0N0krVjZBcVJNSml4Y0l1OTRZ blB6eWlKN3k4dVRCTjNZTjI0RlFmVHlRYjdZU1Y2VHRRTmwxUVZBOTZ3eGc3ZUFyVm84eCsv QU5ibmZlTStvZVlucjJVMGZVYnpMNW80NkxEemlpSlVaalNkUUJsbzJjcFdYNVN2RkJSWDYr Z2w2V3J4QWZVT1F2ZGNUOEprcVFiNWFoMUdDWkF0WVk1eEhJNUVHK0xiOFpPVjhReUw4cllU NWlRSkZQZjRweWxHNHkrV01PMGFCbjM4N2NSaDFKZlQ0Qk1DMTlCZXM5QWNra2xvdXBLQzQ5 MHdGN2pxOUdzMmVvaDN3aGVOYnpYQ3dTTGNiQ0F2aUNsQy9JUkZBTUZNRk93VFA3MWZnT2cz RnN6MFJYWk1HU05jMUx6eHlkazArU2xVVXFmVzd6ampnSlFMZ0dnR09nNk1aY1kxNzl6bnAz d0taWDBieE9yOGt0ZFJXb0MyUFdvZ1dMWmxxbnppRC9zUFRuUFZabmJiaGM1NHlIbmQzWG5G NmNhOHBsYmkycTVMaVN5UUVBaWhjM0pSVUFrRk1ldm9MTDU4eEZablc0Y2F4RFdSS0toWHhL WnptYlY2aml3N1YxcGdubkVTNkx3NzROd0RxMkVLdXg1T1ZVRENSVTk0ZzRSQ01TVlFKVnk0 dHJEckZNSTRQclRoa05PazhHOTZnQVp3d1BOeEdpN0JpbVovaFBmMVpSWVN5dHF1OWQybDUr WlhYTnBLaTFldkx5R2k1UHdSU1ZWMWQ0bFNxcmlyWlVtL2Y5VjNHK0ZnREs0STExemFncG4r cnJXTmJoZ1MzemIwT2htbzNQWFZQcG5oU2xCbkxNZ2VZcXBjWG15RWVQYmNIYW1pcDErZUl1 VzJzUkgyUEczU1Q5OFhENzlkZHNXVG12eE9Md3RFeVB0TjZ3ZDdXYlp2TDFacU9XWmpsR29m TWJOZ0RUSTgxWHQ4RFBWaXlhTjMyczMyb003UHZ4d3hOVmhWZnE3RjVOMzA4ZnVMMmhyRTNE amQyOFprbFlhZERtbXowQjNyMzJ1aHV2VzErODlOeTBvaWFieW9UYWppQnFJSy8vSlVZVHlK NEVjMGRONS9WNWNDdEJ5bWZ3bUdmVnN0RUJra3hNbnQ4d01uYUtRaXdBeHZUeG5rYkFFZU9i eFBPNTVseG50Vlc2U1dlc2NvTzNwZU9sMVg3M2ZVYWp2eVpTUms3V0JZMjh0WUFzZFlROU9z R2lsLzdwakR2QkViMkZYWllNTkMvUUhJY1pxcy9sZW96dUtucmpEdlg0Y25HRHYxVTdtRmZq cDI0S3pUQ0QvdHc4aHJsTjZhNGFrOHloM3phNDJHNmxWbkh4MVhXc0Mrcy9jU0xPUGN3bG9D YUxaZ2RselFkVkJkTUNqZkZybGpWSlp0TXNrOFZRallad0tKb3hDeUtHbXpGZFFQQ2F4aElr dDlEdG1YYnIyZlhkUjVvdFVjdVdEMzl4Y2wyY1pZcTkwMjQ3dTM3Q0xTMm1DcFA4akJHL0xt MGZuRDNZWGxwWUZqWlp5MHRMVFdaRGFaVXJNcmF0MlRqMndOck85RnVMdjlwY01hNHVhaSty OVRaTW1OQnA2VHl3dklYYTFiUy9ZLzNaVzZiNXZSVGR0TzdIdi9od2k3UFoyWFFRUHlzdElT bjVtYU5oZTN4T1I2U2syRk5tdDNtTk9Xd2VuNU5URTNCVnVIUTV0S3RqOWNTbTJlMlJnTWRY NFhENERVcWoxUmd1TDQ1NGpQbU1vMzA5MGhmSm9JSmczaUQwVVBzZnNZc1BUNk1PRzloY2FX Tk5tQTNPZVdCSFY5ZU9CK1lrNzhtRTZCazkreGFNR2JOZ1gwL3lua3lJZVFPOXljUkExOVN6 WXhaYzI5TnpMWG92WDBmaDVlK1lOYUc1dzREOTg5UFh0SGZ1ZnZiUFV1ckFBV25vNCtmM2RY ZnRmZTVqd0tHNWh1Yytrb1lPSFpCU0h6NjNwd3VqWnZyZ1ljQjk5T3llenJUL1F0cm1rWXVS QWlIUGNjb0dDamtzR3loUW1JWFNQMk5wU0VLcG43RTFvTkJGUEF1S3pRa3lJRURXQkRUL2lk VDJqRDVsSUN5RW5YQkIvZHVIVzFUSG9USGpBOWhVQnduT2hTWUxETUJGSVZPRFZrbWppODhG M0FwQ25ZcHJIQTVOS3E1V1FueHY1Mm1CdHl1QW9FemRKTDE5bHZ4NTZocnBISmgvVnZ3YnVV TDZBL2dNekJQcnlISVlmZ0tBK2RJNWtVNFlOVW5CYUtRRmpWR2pKZ1VWejZ0RVFVMEdzMHkz QnZMdnFUWFVZWFFWc0tVQTY0Rkc3aTN1RTZLR21FVXNnbHJnTmFqTW1BdGlBWUg0SUVEbGQ4 bmpQdXdDR1hGaDBDTDlBbkZQRHhTRVJaQTUrTEN2aFY1bjFOcUJEZWdNc2lVV21mVmkyaWhT Tkd4SStkQjZFSWhBR01FanozbXhOTWZxOUlVd1I1cDdpOGt0eUdPc09tWGQySVo4ZmV2VXhi VktiWjVCTFhuRUVuY281Q2JmQWI5VEcvSjVwYVZjLzErZG1vYW1XSjdPeXVUeHVYU3lQdURR dVhPdTNwRlhZbklFbEkrU1ZMaklaQ3RnYVpKNVBJYzBTUTlyamFUUHUrT1UrSzVSQy9xblgx ME10UGw1ZWZtdlNRdGVBK0ExOENQcVVtRGhrdmwralZHbDFWQVQ3anQrdEZhaFZJUGZoZHpV VkhjSWZsU2h0TVJzSDBuL1pEU2FmS09tWk42aUJYOXdCUFNhcjc4MkZzQVBGMGkvb1BPWU83 eHVqZDFuc0ZRYlZIb0ZxTldRZmRKRHVUN2ozMjg4OUdYeS9MRy9HWDI1MGtNcmh2YU5hVC9Z MFhGd1hNMkttZ0o3UVlGRFhiTmN0aVZpR3BWdDRqdUpBOFFOb3l6alAyQUs1NkFVY3lNckRq YWlnOHh3VFkvZjBZWnhoSVREbWRRMlVES0MxdEFvb09ZaFJ3R2hmc21CaWIzN2w5UmpKNEt1 L3ZvbCszdG5uSXg2TjNYTDRZa0hsdFJQN2FtWTJoNHQyR3ZvbXJPcURzWHRCMjltMEh6Nm12 eE4xZzIrc2xBcmlnOXJDQkNCWjRBOWlDUDBUWGE3NWx5RjdPaEw2bEVKT3ErN2FvNHJlbklH dXUvdjZ0N2tpY2xoOUc3V3ZWRnoyK1M1NFdxWVVmM2lBeE5ubktRdmpmNWFpaGhWSUtrYmpZ Y1JwV1BZYW9wR05aSWgxMEhkWnhNY3l3RmlaZ1lqdW9lVlppTkF4TTVsVkdhVzgvRVpSaGtM eTFnU2FHVTRDWWNHbWxWa2RLeWV6VFEvTXEyeG45ckNYc05GdnIzTVZ1MHo1Q3FsZjd0S3ZI R2Q5QlBHNEt1MmxYY1V2R1R3aG0zMHg5WktqNW42QW9YRkplS254ZEpwbE94NTJ1eXRzTmlp T3JBSUFLTy91aERsb1FWS3ZwZ1RVRlRwM3lXVktCdXR1MEI2VmU5MVBxcmhVWXd3UkZSL1F1 bkZuMmhkNVZaeE1RcWpka0JwUUFKWXlwd2FrLzVwQUlBdDdETVl2TlUycndPRWMzSVJQZ2hB L0hnZTBtWVp0aWxpU3dQdHBvQU1vU0xoUmlxR1pxMXhEYUdFOVk3eXlhR1pNYk51V1ZiWHMv ZkoxejljYzVmMHJyNUlrdzlBZ1U3SEtoUU55NDlkTWYySmUyOVkxakJiM0ZUVjMrRHUzbnhM ZDlYa2hpSjNmZCtzaFFwQ05XbjczYlBYZmZEeS9WdmJ4TG5VcmMxNzI4b25CVUJPYVVVZzE5 SGtuSDU0ZmpSMjViVjNQVHBqNmFQaVhudE5YNmpueU9xeDl0cStVSGorOU82WUEvRzNPTkhL L1kxN25zZ2h5b2xhb29Ib2x2bWJPd0lMeDNBK0JQWTRId3R2MDJNakVvNFprYmtFbmcxNkQ1 NldjRWNRVUFBZTNnT012QUd6Tk5UdmpLQnpWMWl3alg1eDAxdTh4OUQxcmxEZjFMRnpWaXcy YTJjSE0vRUxxelZrZkc3N2Zmbkp0OGEzNXB2eTRZamJJVFloNHpOWWRsUDN0ZlBIWEwyNVpX OHJUVmdxb0NLc0t3cXUrYUxRVXFWUDdQaUorZzJVUWNmTzJiRjNINCtmNDB1TUhlL3NHdFA4 YUVjZFNBSVMvT0xjaGIwdmcvMGE0Q1NOOGRYVHRnaTVkS2FlSDZYcmllWWhtditqZWlMMER4 bUtYTWVZZzZRNFppY2NFUllMcXQyQ3BqZGc3VHJmRnVvYk8zYk1pa1puN1lDMSs5eHFyVEtl MlhadmZyS1o5MnB2MFhwNThWMWNOOTFlLzV0bGQzeHdGM1hKRWl6U1NiQ05WbjVlYUtrMHZM RDlQdlhyMGRrN090cDN6SXE5YzdycExPODN0cis5YzB6emhkNDdlOG1KZDA0RVNWeXpIeW1P Y3cva2tCSjJzYUNnbUpyR0N0eTlhUnM5b1FROHd5dEpIbERMcFdQb2UrVG5ZZ0hkUTY5TS9w MWh5c1NIeGMzVUoyQTErRnA4Q3VxdlVDZGdFd29rblZWUUxzdStZcnhMaThqU3hXQjdob3RL b0NsbFVoRFFCWXBJZ2hIUS9ES3lQS0FyQ1RrVnV1TFhXTTdIaWJGUVhqNUhGQkE2cUVlaUdk ZzJZbXE2clNITTVER21KSEZESXErQkRNZUZBZzlQQzBTeWZpR0RYb3VtYkJGZkNSc3pVZlZ1 T0pMSWk1cEFSMVJUck5INWRPRzJBQysyNDdhdHFWMWJPM1ZUbDh2U3VtNWF3OVo2NWlQSnRo bWNrZG95QnhubVRWZUpYMzhaNkl3NWYrMFBkRWFkem1objRGZndSSnZMWms4SVF4MUVBbVI1 eHpUeXdYTVg5cjBNdHRLNVBWdHU3aHgvZUZXcm1wR21Talp5c08rcXZzMjltNDI4U0ltbnlN RmVSNnd6OENYS0JHWDJLM1NDZW5RSGJJaW5GUUNHRkVRZVJqbklnWlR4OEhpdUFrUU5Oc0No a1ZNQkFCd21MQVlBSG9Ec3hqSHEvZytsR3ZFMjhLN2twNTlGWi9JV21pMmxTWTZha09wbGMx SVg4alVxMlBuVUEzU2h3NlNrZXYrVS9DMVYxZCtVK3BBK0ExNi91RjVCQUNqUlB5RVpxamMx Z3lVWGs1cThYQlc1bUxxVHRqcXNGRWZLODNJSnFBUEVvUTVnZ3pqTVE1VGd1VG5rcTZYSDFx SDBhVVRwajRheEp4anZNcE5aWnFKUEVkNlE5UENZa205MGFLU2xHb2N4SDhLQlpVaEVwUkpR VkNVb0tLNm9oQVEvRlhLbkF1NlFkQjRlYjhONEtoVk13Y0k3QVNNdlNFd1g4VHdQUUJOSE1E a2xwQVRzWXlIYjdSaEluNFRXdzhBbWhBMElGU25BOGNnRERWdWxhQUtsUkNaektwNUlTRVFp d2NMUHBnaEppSk1mQUNJT1RueGpudGdLUi85Myt4K2xSZENJMFE3Sk13TjJJaG94TW4vVExn MWVOZmpzdkZQNkkyL3pHNHcrRzErZ0JzM083N2RoRC9YekVBZVZPNEdMekRQNGJUeEtLcjZz TDFGTENTZXNiU0k5TG90aHY5UkJhcG9xUzFtam5ZSGlBdEFjSENqZVl0bW9GR3VFQUpSQndz VUk0U2JTM2ZrUWhrRUltZktORk1LUE1FUWxDb0xCUU43WUcvWnVtbDY5OEJrcGRhZHdseVEr czdCNitxYTloOXZ5QXNIeWlxYTl3dG9yUXBOdVBuK05VRGwzb05mVjlmRDhqcHNQYkNtMWpQ VjdCaGV1aUY1ei91Wko2dHpRcmlPM2RTb0lYYUU5SjNMZzdzZk9QRDl3UW5wc0FTZUpnT0lX UENhZEdIait6R04zSDRqazJBdDFpZkp0Uis2Ky80RytQYjg5MHNkUmoxSzJZS043N3VNZHFh dHNkZFByVzdiVytkcXFuWFRxdjdpK0czNjcxeDF6MXZaRkxJQVkxVmQxMzkxWDJoQldzb2Za Qi9ZWEpMRUxraDE4YjQrWkRINDFlRWhkZ0ZvZHRmbUpqYzV5ZzkvTzgrci9WcGY4UU1jOXo2 T2tmajNxdFFLY0ZQVWt6T1cvMWZ5b3NsZjlFSjFsYTQzZlQyS3ZEUlBKRmtSaHZNMW4vUDV5 Sm8raE9KbFVLQTJVZ1pkU1JDNTNnZnVLQ0VJNVA1dFlRVnd0Mjd2QXNDNkQvU1l3T3dJeW56 YktLb3dTYW1RNmVFWWlFRFl6Vk5tMFBqbGFGQTBYR0d6QzdjK2xKMHNOeUIzTTYxT2kyL1Jk TmNvNUhTUDlLTXBkNEhseGpHRk1rU3NjS05acWkzeFZSVVdOZXZFS1owRUJlYisrd2UwSytk d2FiWEVnN0NvYVl3QzNndktpNUFJRzFBT3ZRcHNydmNUbTVMRFNXMHp0TFVVOEQ1cHBXbnFo cU9pV2JqWTNseFduTVJSSi9nUUZ5ZU9HQXVsMzBrc01BOHBRQXZMWEZDbTl4U3B6V2VrOGZG Yks1dVN5b0pTaEpFdWxMblczeFdiMkljZHlqOUZ1b1FiOUVYT2xqaHF3Mm8wZTVPRHRNOXNz VW9GME5BQ2Vaem5JNUJibUZMQlFFVlZJTjNGRGw1N3l4eXhWT3JDSFVTb1lzRGNRaVFTZW1z TnhxVk1jeXpCVTZwUkNBYmFwdEdDaEpIQWNUSHhNb2FCV2tod0pWbkFLNlJoOHdpSGZRN0NN bGVjcjhQd1ZnM3pCQ1RTOURja3BCWCtNSURzcFVNTTBGaWFXRVQvTFdISG9iN0hpME4rdzRt U296b2RIRFkxR1RVWWZnajJOSVNxTjhMaWRRdHFRSXdOazAzWlFHYkRTR1pIdDh3elBjOUpw QzVEc0tQYUV4MXZTdlZnNE9ySDdodVpBZjJEUHY5NStaSHNieDMzclU0bWJkc2Y2MWp5OVhh dk1xMXQyMDVPdnJRbk5ybktOYVdqMmZjZHpjYjhuV20vNm4rYVZ2ZVhlMW9FbGEydnJkbXhj NU9ZTkdrZUowVjN1OWRWTmJTN3FhaXJST2tzTTB2dE5DenQ5dmNLUCs5d3o1ODN1RHVwY3BR WmJTYkd2cG0rTXN5WGlvcVkzMzlBOThhaXd1THZFNitHNHR1MlB2UDJ2UGJCazMvcFVWTGV1 djJPYXI3bGhqS3RxZG1qTmEwL2V0S3d1VDZtMTYvTys2em05MFZGYXlET1Y2dkRFNWVOYUZ2 ZlZGdk44U1d2WVhPc3crUXJWam9wb2hVUHJIZU0zKzJ3YXRxc2cxTFZ3N0t4cmVvdFYxdEs2 cm5Leng1eG45cFI1ekNwSHRkemYySWVJSVBSRUVSeTdlSjRCZTh6b2Vka01id011elBRcE4r TkNQdE5RV3BOenlwdkQvcElLQi9VQlF1QVhaSStaRDB6RmRzUVM3TVVteHBseU9pcEsvT0ht Y3NuSndkeTFoVVdGMkNrdENTa05wUkVFSlc5VXE0MjhVc0R2VXQvZ2J4VFJLM3RnREZNVnNv V0RiQ3RoQTZqMkRSUFlzSmtROFFuV0J0bUpuVUxPVE5SajB4N2NPeWt5YlYxRFFhRFVsNmZq blZVTk5rOXJVNE9UcGxSS1crZUU4WTRwSjdhUEwrMFluRFhZVWVxcWJySUhKNHhyODlBMG8r UmM0L3Y2NU1VeUY2OHJubkpnMGZpMVUxdnNDcjNKa3E4TDJ0d1Z0anlseHFvaFZlOHI2ZnlD SERvdy9iclo0NWIwTllUS1EzVys0a3BicnFyUVp5RTU5ak1GclRHcjJheHhGU0dtd0pFMWFu NGFtWFd5NTBwbGZ5eDV4aHFrd3hrMEs5L0p0a0lxRTVROXVQRHJZUWZnUTFJU3Vmd2k5NnJS YXlFKzNvcmNrOUkrd1NrQzNXVG0rbEE0N2VuNUM2OEY2ZWtvQTlSM0ZpOU5wUFBFVHNYc1FS UjMyMGVqMXoyZytISVJVbCtoY0diYUVZVXo3cWRVM09KRitqL0tBZEdETiszWExXQTdudmti WHBZdHhEaWlLd3RENGhuR2pFVU1uU2hqbU5LNjBkd0JoQ1p1TFJXV2NhU2IxK0xqOG1sSTdr R0VMNGNlZ0loeENncUJCMFB1S1p1ZitzM0xQMTFOVXFTMXB2RFpuNy8xTk5VZ0praUkraElK TWNFUUtEeHljRUxJZmZFQm5MUTBiYVVxZFlkUzJnOUJGeGg3anVMbzJJcVk5S3owdE5TTDVp OGhtb1NBRlNUU1ovZ2tTWHo3Y3p5M21tbURqRmRZMC9mV1hZdW0xU25reWphcWtxNWh6UDN0 Rlg3dHkxdVBmZkxqWTB6eWtsd1lmTUNDbFdMc2ZSNHRML25XU3A2WFpwQjNTZjNnSWZGS2FX SzZHdGxuNFJJQkVUbE1kNG5BNWxsczU1VHI1SVExaXNLeFBaanRUUWxIN1hDTkdpa2o3d3BT QU1NWFBoeEJWQzg3NmZNc3pRM1hDQW9STkY1VVpDbUkwTUsyajE4K2lTanc1TXNmYjF2NXh2 TW5tNlRIY2FISE41MTgvbzJIeWVmek5wejVsL2k0Yit5TXFQVEZuVXVyWm5hVmcxM3puejEx L2VLNEl2WFNNV2xvSGxpRXEzeGI3SnFqZDRrL3I2clRPLzJhR1p3ZzV5am5YajN2OElEY0Jn T0g1MVZmSTdZZStQck1CbkZ2WFgrMVNaejdkMXRzVXVxRnFzR2RkejQ1ajZyUHUyYWxYUCtH MlMxRjFEbGZ0ZEdtNFg0QzJ5QnZ1QjIwUkRWUlE5VERubTBsMm9ueFJEK3hpRmhGck0xb3Np TVdIT2JiT3gwMmhBM3d4ckFkREhlNDNqTVNOTVlpUUkra2MyUzBpNjdXaFZZK3VGME1EOGdU R205amFhRGVxOUg0R2t2TDZqMEZ6SndhLzFEQ1h5T1RDRmxhN2FYSGU2dVhBbVdlTkVJaHRG aVB5UlVlcjY0VmhRZVpYRVpxN0xscVVtbWdkMzNYeEMyVFM4c21iVHhMdThUWmlJWVlRbEpR b3ErOXh1V3U3ZkI0TzJ2ZHhYV2Q3dFFIL3BvYVAzQ21hY3JycmE3MmVzVXJHMWdkK1FUNmlp VEk1enZ1b0lqcys0ZUVzWjlRUklJa1gwcCtGcG01bzZ0OXkwQTRQRk1ZMzdGbFdraWFETzZa NkE1OVRTNlYwdjZoSStOb3hHZjcrOGVSMXAwTDBMLzJzcUgwYmNObjB0WURldy8ycnRsMFZl K05ldzh3RW5MV1RtSGRraEtTeEhjTW5aZWs1ZVFKYVIzVUxYZUF3K0tjNytJTzZUbU5PQ3ov ZzNqZHhHUmlNYkdhMkVVY3VIek5IWVZzL3ZLc21WZkxaK2JicUc4T0syOTJDaFJCRHlub01p dDFPT0xTaC9rdzhoclZzYVVBMlU4YlNRKzhrMjBwN0FjVmZRMXVkME5mUlhBU3VrNEtvbTZF eHdXMHpNSTcwV1dlcyt1T3lWYytkTzMwZkluSEZQUjdXMFhmaXNiR0ZYMFY2RnJnTEtCTytH dFNjWGNUTWpnM3VkMk5GVlpyUmFQNGo0VDRRZUlFdFZxS2g5eC95VytidDZNRFdaaEJRa3BZ V29xUnZ3RVR6LzRxS2dXSTR5L0RRM0pLeFdnQmhrYmJ0MmQyOWRpcjdwa2p0M2REYSthNzZF cFRNMnJJZWZCajd1eVBpM3RPbkpDSTFaQ2huM2VIMmpaT3FheGZzdjh0OEp6NGxNVnNyeDZY dGVZeFNMUVJHMkhybjhxTVVGOW1mam9heStKZG1ja0FaSVBDeXhvUXRVRWxHcTg1STlOamtj N01JVVNHNFFzOTNDMkdZY0NEaHlrcmUyaG5qMkY1d2x4QklLSGEzS3pzdWVyMnFjaDFCQ29l dlpqY2dubnpiLy9GU3VSL1FaSkxuenZZbDB6MDM3SnhZaDY0MXgzU2FNYk9YTnVzYU45OFV2 eEhjUHE0MHZLeEU4YVdtMXpGZWVFSkFWT0p2OVJTTnFPN0FqL1VPOTJxK3BtVkMwazNXczNp SFR1ckJvN205MWpZeitUVkdldi94UDFMR2dDbzZHMHF5MjJsQkNUZitTazNMbTlBUGl5d3Ar Vk9XSEhtK2duSURRUSs2TDMrREhWVDNhS0RrMkJPQTFSODNjeXhtbElmS25reXJDM3JpRVk3 S2gxUUYrSWh1TFZZYnVWeU9FcFgxbEVkSGx2cHNqbU5Xa01lNVhlZDhJdm5FS1hWTHU2dnl6 dmxEam1kcU4rQmtKa05hVml5ZjJLdUlkZlkzRGNyYkNIUzlzSWFMc0c5UXVSRHlWTk0rSWt5 b2hMYlpqTmNRTy9oUFhvZ1l5NnM2RU5TOStCSnljeGlUTjdGeU1wcXBvczRBVUVXTVo0VWFF RzhvM2F3cmNxcFNsc0VhOWRTZDJia0tLUmViRUlDd3RBbXJVZFhQUzZnNFFQam9scVBsaU84 bGlHWXlTdS9ZaTc4OXBYa3F1S0cvbG56SzJVcllPb0xKcGVYRWtnWkkrT3BPQU16cUNQSjh2 WnBaYVd6SjRZQlFINDBJM1V5RWVXd1BsbTJOVmdibm5HekpPY2xmWWlMdWZodmxoMVd5c2Ru VjBENjFWMjJHb2U3dmZpdTkrK2hueERqZ2ZVdDlVc21sSmRQV0ZMZnNqNUFKcVJIUG1kaGNW TVFyRWxYb2ZKS05ic09TSDgvY0QxUTd4V1ZWTHQwUGx5RElxTkVOV0hwUFBqZ1J1bDNzcnpu a0kycEJITGRCcUtQbUN0N05yaGQzOEtZWW1oT0V5cnRlaDBhTDBwZ0RDUGhwZ1JhZHdiUERZ K0pqT3puWFNxRzA4TnhnR3gvVWovYnUrditXWlB2MkRGTkxYWGhNZkFvYXdiN3pXNDNPclBn VWNoNG5kSnA1MFhJaElOaTBhVjdBMVA5SlpNQ0R5VEpjS2N3SnhhYXVxRVY1dklSSDUrMm5M cERvbkxEclozeEtrWHZrZlc5QmN5RHFiKzdRN05QYm02clczaXdYNlpwTlkvek5Vc2J6RzVl SFFJbllOWWg5ek1nbUxxQlBMSDF5MjFidjlxS09IdHNqdERadW1WT1BTUGQ0ZzdWekJyckJR a3lrUnRwN1dvc294UlU0Nko5RStTNThiUVBwUU5pM0d4TWhEMHB0VzU5V0lzY1phamg4Ui9P bXRxeGdUQ1YyUDJ2OHovZDN0YTIvYWZuLzdWN0pQejFMd1JCb2JMNXhqZDRxcWR2R2p0MjAv VHFHMnloVnErM05XVHoxcmJVZW05UUVKZWwyU09IaHdRQmxIaGFiTDcyQ1RQR29KUW9CNVFR WlZBU0gxUGZNZGdRSnpDZXljeWI1a0JxZEVGYUhBUFJ6RlJpSHJFVVNxdE54QTdrMDQ5Vysr SWx2OGkzLy9LMUtIVE1iV2UweUdiZ2N5UGpqUWN5dURDaUN0ajdlTzFsT01obzBRb1ZMb3pu cXlzQUpBazdNSG9nY1lTakZBekJlemhFY1h3ODBVNFBraDRSaW1HYVFONzZRbWJSV3VhcWQ1 cjVQSTc4QzhubGEweU9Jd0JRUXhRbGJWY292cUtvcnhRS2t0RGFUWm84QmZrblVxSFNHTzJm VVFCOGlSWmtSa3F2N3RVYk9hbG53cTdBSy9ubkE4SUV2WjRGei9ac0QveVMwU1BYUHZHOVFi eDIyU08rbC8wOWRFMEt0b3E2MnFvQ1ZhaTJyc0lPQkdmYzJkVGMzQlNQbzFBODN0VHNqSU1Q N0pVd2lpcS9xblpNcFYwU21wdmdLL2xmNkY3dHJGNVY4enZuNnE1VjRwSE8xYzd3cXRnN3ps VWQ0UTFJZjZjRUFnNWs3anZYZ1YvVzVxUHdBejE2SGZnUFhjRmxxOEFwWXZRVDhySW5CUFlC ek5qY2tWNkRFQmtCd3JBZmtZOEdtZ3ZBemc3ZXRFK2NBMkRyQStRTUNPUXlMZzhQS09CaXVK MEE2RFZKcGNXdTl4WHluN0lGQ3BQRFlWSVVzSi95aFQ2OTNVSmYwR3FIWGdRODVSdmFCODRk cEt0VHY1ZitTUk42YjI3cUhiNmcwR01BTDkzTjBNVkc2bnBqTWMzY0RYNWg4RmdMK05Udjhy emsyNUw2T1ZIY0N4cEVMZm5RYzRUc20wV3dBaU1RU2tLRHlvcTlWZEN5RUtoeDRTWFRMQ0VN eVQ3dWFKWGRRd1BrSkdtUXhFdE5oS1FBZFVZQm5CSWZIaUQ3QlRSSTBuZ1VyZjJ4UXEydWs1 aEV6Q0FXeUI0eHNYREVQYnBucU5INDdEdXhxeFlERFZRd2VXNExMU1RnMDFNdFRCeUtvcmlR U016SmNQYk0xVlZYWmphWDFiblNWN0QwY294YmlsQXJ3ck85a2dnTVVzK2R6R01wQVN1SGNa UW5TR1RuaDY0Z2taVWp2b0w0dHlGaENlVnlFNWxJbmQ1M2FKODRCNURpQkNodGJrSTZZeloy ejhGVTBneTEvMzVaenNrcUh4amRER05BV2l0QzdxQ29LU0M2UlN6bkcyb2tWcHJDZUs1Smov QXREejVQcTNyczZwQTdDYXN2M29US0NldE4zZXdPZlpvdUtmYmZTVjNLVmgrbFhTUjhrMGds MENyTWtIc1puVkh5eEQ5SWdkRlZUYzlqNlVQZ1N5a09ObzFvak9BRm1CUWtrR056S2E0NHdp dGhLTnZQUVc3YVJIUVRWeElMb1U2NE1TTTc5YkRFR0xkWHkwWll2UEVLUkpGNGl4Vzhid0V0 MjRIZ09FQ3VENmllWWIwYkg0Z2NaR3M3Q0FNNW9OVzdJaG5URW1LdzZKNUxaSkFCbWJCNGs5 ZDdhbHBxUEU0TG82QXJXdDIyQnFjK29DdUpseHFLSTQyUjRxQ3pxczltTEFrRUN4ZHRvS01p TnBTUUNUSE9sbGFXTUxrS0Zrd1RwTGRabmRHbzRQS1pGeUZqTk5rRFpZVzJRS0JiRXRnRVFr RG5RQTZ6RitTYzg2YTJqZW10OFhrQ0RxY2xoN1RhbjhqUHBXbEZhV08zdjZZbjV2Y0ViSjdD MnVKbjFicDhkcFBVUnhKQ0hQN0lFK1FING04WWI0bEx6VW8zQVNkbnNlaFlSbncvSGlmL0hM RERyOWhzcGFsWjhmZzNjYUFqUFIvWlRBeENmUnUxSzRmR0ZENUJpaGlHaElpU1lLc0Fua096 Z1VhMFQwckdtT1NPWUNZZy8zZ2ZGQWw2TlhEcmZWekVYUUVpdmxpa0NZUmp4ckNSRzZWNVF6 d0UvN3lXT0d6aEJHNWhDS3JnZi9MRkc2US9IMTBId3ZSdGNmZ25pQW1ROW9JbjR3dTkzcEF0 Yis1TWxTMVVYQnl5MVlWQ2RiYnJ0TVdXZ2dKTHNWWlhiQzBvc0Jhek1LWkdwZEpremhadkJs ckNRUElMVWxLSUV2aVNFUnRaa2hYL0xuMkdjMDlremhCa3d0Wk1VSWxYWU9hMXR0QW5VNlo4 RXJMVm9nK2hUMzdNVzR1MVdyZEZyYmE0dGRwaUt3L0hacVl0M2VuMWlsUHdtdjdzbGtSamRG UlRRaTJHNTNRRnhtOXJ6UmpFY3BodUd3RG55MnBieGhnYkZseHk2L0ZXRjErVTNYNUZ2TXZL SjE4OEFrWTFJZFNsNDZnNUVsbU5LUkdDWUErVTV1ZVhCdXlvMFFyZ1grWnNNT2ZUSTgxRzU1 dVRYOE9HMjNXSjJQVTlUU2V0NnhFc3YxUnBOS3FIZW5xa3NOeU9KOFBobVZxVG1tWFZKaTJS OW9tVmVWa0F6N1FhTk1NQWo4L29ncTRRYll6Sm81Q2pxdVhGeGZKTVdUamtBTUJiREhtZEht OW13cWROeE56VXlWT3pyVk9GcGFIU1FyMG5WRWc5ZlIrbzJyNitFQ3JHaFgxalc4UXVHQ3FV WGlxRW1uTGhCWExMTXVuU29WU0hnbHhYN0l2TlAvRGdTMHVYdnZUZ2dma3hWclZPK3IvRDJX WTA4QnRudUR3UXJIWVZoano2RGFzMjRBekVUUnQrUHdkbVdRanE4UWRnaHJQbUtKaDF4YlBD VWtUT0NlY3ExeHZKK29WY0lhR0hvdzU1WWlybG1Ud0U5cFVBMTh4QThURzg0WTJMNXhZcVVy dkZvOHJjRzNQVTZseHdqSHdxbDgvTHZVdjFGK0dpd0ZUTlR6N0dicy9MU2U0bWp5dlZCYm43 Y25LbEhtcTdTckUxYjJnZEZib24rUUNMZkVFaHZrZ1F0M0J4Mk5aNVJFRmEwOU83TWlKVnR1 WEF4dWVDVEFUUFk4dE8xRWlmY0dkR3FnMjRlUnFxYm1pRkE3SThRTjR2a0VUTGh1UFAvR2Jo b2w4L2MzeERTL2ZlSGR1YU80OWRNZTFZVjN6YmpqM1NmaUd6aEJ4Sy9VUWl2VHhDTkNHcFMz MHN0ZTMrMjluSDc5cmYyTGovcnNmUC9tMDNPSk5UR0M0SmxwWUZTMEtGT2NuM3lIZ2lzd285 SVNZd3J4S0lweUZHaWhOcXFMT2lPa3lEdFhvRnRXRGEvMXR1UTRNdjZ4NVhaSFFFYWlTSXQ4 aGhnYndNTmJOeVBlMHJvNU9KVFhZZEJmSmE4TkgzWHAvc2J6ZnNkVGN5TXk1ZjFDQXpYd2NG VE1ZZERTMXZNNENZbkFWMXArbEZrOXRkS1ovUG1RNmJpdUROb1Z4bmdic1NURGVmeHU4ZU03 dUtRc3RoNEZvemZLdkszV3VpVGdRbkxLb1JUMHZ2MlAwbHRUYndYMTNQTFY3MjNQNCs2Zk5L ZDVGSk9zZmw1UllvUUsrNUN0MDlBdS9VOE01VTZiWTQrUnk5dTlLSzhLZUZVVElVamR6RjlG Q0RMS3F3bWlzMU8rdVhUZ3oySDN4dXlkelRIZEk4S0tSOEVac3RvZ05Lc3Rra1ByTktVZW5X VUVRUkxHeUYydzNQbFcxdTB5RWNQcHliWHltZGRjRUNvN3ZUNWlxcHNSSUc5cHBEN2dKNzdy VW1ldGUwUFdzVzFaRjkwdjhVMXBhVTJNQURuVDJURGowdjFzRmFnV3BPbFplamtCNUJ0VE9C WGs2ZGkrNVExWTBhZmFHMXdxMTFlT0ZaQjBDdVBoZDVwcW55MEsxV0l6UXNXYmR2QnJLeHRE VkxDM1VSbTczYVp6VG9nRUo4emlUK2ZKVkc0NjRrMEVyNHZXQjN4VG4yYzR3dzBleUJ6S0du US8xN0kzRWQ4U1BpcDhSenNIdEtRRG1vQWpIUUEvckFJZkFjZUJ2OERud0N2Z1lYZ1VnQ0Vx MXdsSmVNdTJLWnhlTUlWY3BMeXFFdWg5Wlh1eU1ldkpXRmZJT1lOdHJtUXV1Q2FGNWV1eEtE bWhuUzN1RUQrTzlycEdJd0Y1QitxTVdQUUF4bUUwYkdSY2dCZ21CNHVVQXdQUi9HZlFQL2Vq bWtFN2g5a0JqZHNFVGhFTklKWTlYZUNDUlZCSEpDVVkrZE1pS3RrRU82b1l2ejJCbDA2d3N5 eUVjRmZoWHQyUk5EcXFJcmh2YndnUUZZSExTdEQzN0hvRTNvSU9uQ0pKQ3NLVGNxWXlTbWRj ZGNIQk56YzBZM0Y0WjFnTFVEc0xRc0NUOEFteWZtd3BuQ3lzc0g1Vkl4Tm1DbnhnQ1p2OFJR a1NoVUVYY1JWbko4c01Cb0hqT21SWTNoQUN6TjRjOXlSVFF1SXRSam9iSVBNMDJYRGlDMUYz Z29sOVpOd1MvQzRoaTFSaXFzRGVNRHFrUGhHSWdXcDh2Tm9qeVFybzA3allmd3pzV1hrTEls Q3kySXI3aHZldXBvRDYzelN2Y1BTRitQbDM0Q3BvMEh1UVBnaXRRYkErUWoweVVLaUJKRlRo Vm5UcWVtVEJkbmtpZVRGOFZyeU8zanBZbmxnOUY1TDgwcmlsaWJtbGRYajFlWjh6Wit1bEZY clBNVzFVY3FERjlTK3BTemZGcDVUOW5Fd001QWl6UHM3L1llK0xoODh6anlzRmZjM1grdDFK dG5OWmZHSUZ2MDZNZkgzYUVwaHFESGFQS1c2NUYvWTZlRFlSaHpuZ1ZpUklzNUhEYWd0ZXk1 ck1XU3F4T3ZOd1pLeXkzK2FkNnpGdW1PbkNJdHVNVXIvY2hxMFpuQ1V6dktKdm0xd1paUXNh T1FMMSsrL1dDUEtXQ2NzMy81MUlEMEV5OVlrT2RSU2ZlYjM4MVJGK2pVVmJNcU5SVW1tOGZ1 TklIR2doSmRZZER2RjZPM09sdHNDcVlnTjlkV1d4Zy9PMzcxSDFaTlB6M2RRdjdUSXYzYys0 TDN0dFBlbnpXWlQ0ZkRDMUovVEYwWUlGZlBQREVCdkJPKytIeVkydElqOXRVdVc3S3NScG9S WnZZa2J3VDNUSmMySnV2RUozMVUwVzNpKzdUV1hHaFU4NEd5TXUzYWFHdEZrWTZreUlLeXlp cTlwclF5V21nb0xTc3p1TWNIcXBjdG51MERWQTQ0VFJhTEFWUFVGTjRuWGJoMnlldExUYVdH TzZWZi9VakI1ZllmNjc2a3pHR0Fwcnl5UXRlK2ZVejU3UENzNStiZlc3TThwWk5lWFN2T1hQ ZkNBWHBPZU9qTUMxK0d2eGo0WXNFTDQ3OWMrTzcwTHhlQ3B0UWY0bWVicUtML0J0dWVWeHY1 Zk9VSjZhVVRPZWF2RDhDQ2l2UTBjQkk4S2owQnVrVWFkTVBybytpOFVIcUM5aDA0OE83Qzhm QXZQaDMraVUrYWdVbjZtem0rVm53OURxNlE3Z2VtMjZpTzZkSTFmWGVQeitVVWdZR2d0L3Y0 NUxpaHpNanhLaklIOUxnblQ1OVJOZzBzaUs2SU5rVldSRk5IbmIwbEMrM05UckJqdW1TTE5r elByYWRQbTZwczlsaXAyVklXdGNYSGF6bU5JMkRVbDN0TWlEL1gxdTZubGVHd2dvbWZDdXNN aXBCU29XU1lzSGF6eXFncFlDTnpvcmZsajFsVGUyOStkR0I4UzEzWVhOempWeGRGS2tMeEtm WGoxczdzY25oNnZLcldoWHNtM3BzL1p0V1kyL0lka1hEWXJvSnE4WVpLanN2VmFsVmFwckMr b2ZHRU9GYVJxMVU3ZUZPMXBTQkgraTNJNVl1TnAvSXAvVzMzM25idnZUc1BTTDg5OVlKQ1Ey N2JlVXI2NlVPbnp4NlllTS9KazcybnhhV25RZmRwOGNHYzFvRkZnMjE1Tk9vU25iOGhRSE0w YjlacWNqMzFrYkNWVTNJQVFrYkl0VUd1STVjaHlaT2dDdEpqM3BJM2wyaU11U1g5Z1lEQk45 NWJzanlLNllKM09CeDg0KzR1cXk5M3luMFRLd2VsSi9PbEdlQlI4Wk9ma2VkUDU0TUYrWEJZ b3I2Qng2bExYNHIvMG5WV3FMMUdiWVhSMisydm1Fb2RQcHZhRTQ5VFc4OUs3MGwvQXlaeEUr b3BkR0Q3Q2djSTdpT0lmMnlFQjJLSE9ua0ZqQXFrVnhURmxQTEdFK2xsTUI3Z2t0ZUx1SlJB QWJCekZhaXVnUHdOZTA5OTVCRWYxTmM3a3lmUk1rZ1B1Q1FCRDFvTVNjOTAxdXZKS1o2aE8w aDFLbCtaeHhTQTMxT1BTMTlJNzR0UFNlOHhlZXpyek85VGQ0UHpTbzZjeXREeG1vQTR4V1JG YXlOckFtUUgyUkdvUVVzdXJTWnhTcUNFbkoydlpMbWhrM1FwaUVxUGlIT2xSemxXbVU4bU9D NlZpbkxrZzF6YVpnU1F6WWpBK2tZdDN1SG0yOWFOTmlLZWF5ZU5Ianp2RXFUY1lIamxLS2oy UW1VZnpaQ3hHWGptSHhLRzE3RzJzS0dlSzJOQzdNcWVFQ3RkV1ZnZHNMSGdXZFlXcUM0RWM1 SUpaQ3VuNHlDOXZKVWxVQkp4ZUJFc2hVUFJXVzArWDl1c3FLQXRxaWdzckNqU1hpS2dra0pZ dk1qSklRV1R5cjR0YVQ4YnZPY3JKSm0waHlsYTg1VEVhNTdsVmRCb05YUlNRS3RHa2NkMTJq NHMyL2JRVGhHYmlQM0VjZUl4K09pSDluZThiQy9PLzNCL3lQOHcvbkRUcHErVS80Y2VYSHoz UDA0eTlJTXhMbnVnSUxKdXZ2VTZndmEvKzhrUFhjVWYvTXJvcTZ3allkcmVCSHM2anJ6cklY YW0xSGhLSCtsRTJFd2o3MThwZzZETUZxbDRUUzJVOXpBZS9SZlN1a202elJMd2x4YStTdzVk SkJqZHJ1US9yQzN0N1k2eU1iekZZZUVOM29nanVtaXd5N0tpZU83NnZWMTE4enRMTkRhUHRu NU5sQ1dZV2FRWnBTNFBCRXdMd0p2Sk1pWXVTQytxbkZaTktHaXRxcWlvaWpxYzFSNWQ5Y1Ja Z2JGajFzK3E4M2RjT2FhOHRYNU1NVjlyRjQ5UWI2WDlCVDFZdjgwbmRIaDlIdy8wSS92d3lK c0F1TkFrc3NzWVFTNGlFbDdOSnd4QnhZb2hMaEhTS1hFUWJXbEtEcDZpQ09rOVFEd0pCOEY3 YU44emdKNFNLVUU2QlFheDUvYXBVMmtmTVU5Nnp5dFYya2RzNURzY2dZYlNKVmlxVE40YzJx M25sSndubWhWQXVZMzJBKzc0SGw5YWJFSE16TCt3SEhETFcwU0dRWHFoS3VsRDNuSEl3WmI1 U0hhVS9VaEtIanlJdktUa084Q1FUL0oydjBIY3BtMnFMMFVodlY4dFBReFVHalVQd0NSSHNL S2h2TDVSUSs1R1RzTFk3L2F5REE2bU0wOFJ5QmxjVzEzZldtVHdGeUlQNFlkVVhwMHh3RXNQ T1pvcUhDMk4xUnJlN2tOOU1raThCZHVvRFB2Z2U1SFZRUy9MZ1NKNXU5TllXZ3RQNzU1b2pQ blFEcUJHN3E5bWMzSlhub04zbThYZCtYbG1VR0YxdWMyQXA3VDVqZ0xla1Q4VStmS3JyMEFQ M2ZKVjhnV08rUWk5VE82QzhjaHRPQTJvTkp1bGYxSjRaVi9xNkpkZmZwVjZsVzc1TXZrekx1 TURsTmtiVU42dHlaYlpyeW5UaDJnZEFJVU1QM2lsQmgrbUNRcnRBU1dJMkFlZnhWZk1OREdm Rk5EV1RpbThLQlM5cHJDTFA0ekRFdkpySUdTdFBhV3c5Q0NBdlAxZTlwWjk3dXl0K3RBKzJX aGZVQmhtbmtoZXBEbXhteUZxcnJ5NmEraHMxOVZYMW5BTHp3NkZUWUdZRXhCUW5KbnBjT3Ay WGtOK0RzTW1KbnhPRktTRktCYUt6MXBTRnNvODlKZ3pGakNab013N2Q4NC93UTFUeXUzZ3ht VkNMZEFBOWZ0dXlNdmxhWVdNaWdYeE84QjZWWHBsTEN3U1MrRDlFM0h2TmNuV0V4Qk5iM0VM WWo0TytHQU1xREJFQ1R6RUFDR2d0aUtnSklHalRFRDdaWEVFcjNwTld2eTZzN1RVTGkxUUZ6 Z2VkWlFHSENmSXVMMVVWNko2Uk1Vbk54eSs0VEI5NUlhWHBVMnZGTGNYdndLdVoxQTZKcjJE SVBicndxdHV4YkU2SDh4cS9xdDJPN2hkNWRPWHdxeGdSazMyQXRXaktwLzQvT0ViYmdBbmJu aEYydkJ5Y1VmeHkyQi8xbG9MZVI2RnoweWs0RlU1YUNJRk1nVGNqUUxxUmtFc0h5RGZFTjlE KzRPSU1xOUFuVTk2eE9BQStTWW1vd3d0cWRNcmZvdXdqMDlWQmhzQXVYY0JVbnJRamhocEFs T0NiSzhldEg4RTRMQXpxa1FNcGJkN0s1VUVzd1pNa1cyR3pENGdETDNLQ0VPQ2ZKZzFReWNs U0ZCb1Rtc0k4aFYwUlJ1OFhKZ0NZeitvTVVORitnRnBLa21nY3lxQTdZUlpUK0I1aXNhTU5p eEJLM2VtY3hlNCt5QkNXMG9jSVY3QU9DMjkyRGZ0S28rMktJWUROYlAzd2JDN3ZKMDJHa0JJ M2djcUdzdHM5VUdQYkY1c01OcVo3RGxqbGpQaTZWTThRWUN0TWo2b0pLSjlROGhpdkNNVUpl OHF3c2t1MmpCMU9JVFdmVndJbXlkZXVhNUJYMnJSdG5hMjZ0U05QVlA5aTg2KzhOREJKYmFT Y1BtZDh6VmVuYjRNdnVzWTlTNzVxY3FpMnZyTzhSa2xKWkhEczdpOEhMV0d6eU1aZjZ3aFhB eFlhdktCaGJWYWpYbkd0cHZ2ZmZSa05OQzZZbnhnL081SEZ4UTRDNW9ZK2Jabnora0ZCWFox RTBsUlhWcU41NzQvU2tON1VKYnZIcDhSeU02UzlVY2JxdDBrUTAwK3VMQ0dldS80c2M0amV6 ZFY4QVU2cTFWUkhqTFNwWk0yM3Z6WXdxTTNuN2pwbWovTjRvdlZCYnpPV3NobHZVa3RCSUJa Y08vN1cvdnVHRGRqY3ptVnB5QjlkUzMxNVN5cDFodTErZFRZdTU4K3U3SmxiM3phN2NMQ2NS NXdlMldIempHNDd0cnUrYWQzOTVEa1B3eTgvR0JmOTRMVHU4ZVQ1UC9tYU1ENjFqM3gzZWR2 bllReXZrL09lRk9ReW9jWjErS01DM1FvNC9ZVFQvd2FVdkQvQTloN2xVZ0FBQUFBQVFBQUFB U285alp0UXh4ZkR6ejFBQXNJQUFBQUFBQy8vY0dBQUFBQUFONHdTc3ovL0FBQUw4MElBUUFB QUFrQUFnQUFBQUFBQUhpY1kyQmtZT0JnQUFFRGh2OS9HQmowenpJd01xQ0NWQUJJREFPWEFB QUFlSnhqMVdKWXhzSEF3QURFYkZBYWhCdWdtQUVKQStVWmwzSXdNREdqcWNQR3ZvektaMFNX RndieWc0RVkzWHdZbG9UaUJxZytFRmFBcUlmeHdXd0hLTjhCaHprZzh6dUJhclNnYW9DWWlR R2lEOHozQU9JRFNPNDZnTkQ3L3c4T00vRmhCelMzQU0xbGJrRHpCN0k2R0c2QXVjT0FnYUVO U0xNek5EQ0FBSVJrWUlpRzBpQStCd0FOekJtWEFBQUFBQUFBRmdCSUFUZ0JXZ0lBQWlJQ2Rn S2NBMElEV2dOMEE0b0RvQVIyQlJBRmJBWFlCajRHMUFja0I0d0hvZ2Y4Q0lJSXBBaktDT3dK V2dsOENad0ozZ29BQ3F3SzNndGlDN2dMemd2bURCQU1ZQXlvRE5BTkVnMTZEZllPYUE4R0Qy d1FCQkJFRUhZUXFCRUVFY2dTamhNV0UzUVQ2QlJVRkhJVW5CVWVGVzRWd2hYb0ZqNFd2aGNj RjJvWVBoaE9HVVlaakJuNkdvd2JEaHQ0Ry93Y3NoMFNIZFFldEI4ZUgzQWdCQ0JrSVNZaGZD SFVJZm9pa0NNTUk3Z2tYaVQySlhJbHJDWU9KeXdxTENxV0t2b3JGQ3dFTEdZc25pekNMVEF0 ZWkyMExmNHVlQzZnTHdBd0JIaWNZMkJrWUdBb1ptSmprR2NBQVVZd3lRWENqSkVnSmdBU2V3 RUxBQUFBZUp5MVZEK0xIRGNVZjN1NzlsMXdmQVJEd0tXS0VNN0hNbXRmekpuWTFXSEhsYTg1 bXdNM0FlMk1ka1o0ZGlRa2pZY3hMbEs2eU1kSVk4aW5DQW1rVEoxUGtEcFZ5cnozcE5uYjgy N01KWkFkUnZQVDAvdjdlMDhMQUxkSFg4SUk0dThyZkNNZXdTM2NSYndEdS9CTndtT1VQMHQ0 Z3ZqYmhLL0JwMkFUdmc2ZndkdUVkK0ZyK0Q3aFBmZ2Nma240Qmh6Qzd3bmZIUDA4bWlTOEQ0 Yzd2MktVMGVRVDNCVTdmeVk4Z2kvRzV3bnZ3UDc0VGNKamxMOUxlSUw0eDRTdndlM3hid2xm QnpIK0krRmRjSk85aFBmZ2NETDR1UUV2Smo4a2ZIUDhidkpYd3Z2d1l1KzduOTZMbzd2M0hv aFRuVHZqelNLSXg4Wlo0MlRRcHNuRVNWMkxNMTFXd1lzejVaVjdyWXJzcVp3N25ZdlRKOCtP eEluM0t2Z3pWYmExZEpzSG01Sno1VHg2RnZlejQrTjRTb2Z4N0xrcWpSTGFDeW1DazRWYVN2 ZEttSVVJbFZyTHIzU210U1RPemRMS1JpdWZiVTIrQ3NFK25NMjZyc3VXdzNtR05yUFFXMU02 YWF0K3RqQk44TE1MYzk5YVcydFZDRHJJeEV2VGlxWHNSZXNWSm9HSmtWZ0VJM0tuWkZCVFVX aHZhOWxQaFd3S1laM0cweHhWRkg2bEYxYTVwUTRCM2MxN0xxTFd1V3JJRng1NFlkd0FGaFJo dWxtcWRhWm84ekFWeER6YVRzbG1DS0FiMFZVNnI5WXk2ekNvYnZLNkxiQk5xK3hOVS9maVFO OFJham5IWEM3VTBjUEhzbVgxUWplbGNNb0g3QlN4ZWhHQXpGZStIakVEQnhxakJMV2tGamlO VVF2VE5iV1J4V1gyWktSS09TckhZQ2hjMjJEYklBcEZaWkpPcFdwN21WRWN4cVpQNnRRUWRJ ajhWSHF1TWVmczZ0Mkc5eURnQ083Q1BYaUE2QlEwNU9EQWdNZDNBUUZsanhFNXZQTzBTcFJv UkExa2VISUNOVDRDemxCV1FvVm5ubmNLdndxMVgrTmFvT1pUdEp2am5ueFRqQ2Y0ejNMRTlw NDF5WTZzU21qUm4wVE5xMWhjUmVlYzgvQXBad0gzTVp0amZOWnRCOHQxdStlY2pjRlZvQTVW SmZFTnpFQ0IwaVZuK1FwbHhCS2RWS3k3amIrUzl5MHlPR2puK0YzaVhtSk9tdG5LL2dYenhI TkE2VU9ZNGRQeGs2Ry9EKzJ6RkdlR3VHY3ZKZnV4NktGSDZZSzlVYld6cmRFOTUyeXhJNXI3 S0ZZVzFQdVhYSk5nSm5yOHRzeGRaQ0l5Tm1pVHpIRFZEaldvRGdWVDNCZXNaN25qUFV1SUQ0 cGp1VFBSTms5ZVZOcEw5bTI1cjFSejRET3ltbk1lUXlkcXJvaXNocnlpaGVjdXVBM0pZbFhE OUVwZHRid3YwQ2JIL1pUNWlqTWY0MDVYY1Q2c1FQTWtkc3hUanV0MnpycFVLV25uV0UzTGMx ZHM1WjVzYWtZSHFIOEh2elNoODhUTE51OHhoLy9LN1lYM2dqMlZLSE04eHlIZHFXRld0MVV3 Uk4vTTY5SGFERkFsc1piQThZWmJRUDVqclFWS09xN2M4SzM4Mk96SlMxT2x1QzhtcmJHcWlG dStXUzFiVXJaRE53Yy9wRm56VGY3bkdZMy9qRTNxeklYMzRZYm94RExORCtVN1o2WmpiLytI dS8wM2hzYzRtZ0I0bkdOZ1pnQ0QvMzRNNVF5WW9CZ0FLWjBDTzNpYzI4Q2d6YkNKa1pOSm0z RVRGNGpjenRXYUcycXJ5c0NodlowN05kaEJUd2JFNG9ud3NOQ1FCTEY0bmMyMTVZVkJMRDRk RlJrUkhoQ0xYMDVDbUk4RHhCTGc0K0ZrWndHeEJNRUF4QkxhTUtFZ3dBRElZdGpPQ0RlYUNX NDBNOXhvRnJqUnJIQ2oyZVFrb1Vhenc0M21nQnZOQ1RkNmt6QWp1L1lHQmdYWDJrd0pGd0RF QVNnYUFBQUEpOw0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGZvbnQtc3R5bGU6 IG5vcm1hbDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVNldHRpbmdz OmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5tcy1JY29uLS1SaW5nZXI6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUhlbHA6YmVmb3JlIHsNCiAgICAg IGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUJ1 c2luZXNzQ2VudHJhbExvZ286YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0t Q2xpcGNoYW1wTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DbG91 ZFBDTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1EZWZlbmRlckxv Z286YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRGVzaWduZXJMb2dvOmJl Zm9yZSwNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUVkaXRvckxvZ286YmVmb3JlLA0K ICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRmFtaWx5U2FmZXR5TG9nbzpiZWZvcmUsDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Mb29wTG9nbzpiZWZvcmUsDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1NaWNyb3NvZnQzNjVMb2dvOmJlZm9yZSwNCiAgICAubzM2NWNz LWJhc2UgLm1zLUljb24tLU1vcmVBcHBzTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNl IC5tcy1JY29uLS1Qb3dlclBhZ2VzTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5t cy1JY29uLS1Qcml2YWN5TG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29u LS1SZXdhcmRzTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1WaXZh QW1wbGlmeUxvZ286YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVml2YUVu Z2FnZUxvZ286YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVml2YUdvYWxz TG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1WaXZhSG9tZUxvZ286 YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVml2YUluc2lnaHRzTG9nbzpi ZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1WaXZhTGVhcm5pbmdMb2dvOmJl Zm9yZSwNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVZpdmFQdWxzZUxvZ286YmVmb3Jl LA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVml2YVRvcGljc0xvZ286YmVmb3JlLA0K ICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tV2FmZmxlT2ZmaWNlMzY1OmJlZm9yZSB7DQog ICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29u LS1TZWFyY2g6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm1zLUljb24tLUNvbnRhY3Q6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6 ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUN1c3RvbWVyVm9p Y2VMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5tcy1JY29uLS1MaXN0c0xvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6 ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUFkZEluOmJlZm9y ZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5t cy1JY29uLS1BZG1pbkFMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1BZG1pblBMb2dvOmJlZm9yZSB7DQog ICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29u LS1BbmFseXRpY3NMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1BbGFybUNsb2NrOmJlZm9yZSB7DQogICAg ICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1C YWNrOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1CaW5nTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8i Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tQm9va2luZ3NMb2dvOmJl Zm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5tcy1JY29uLS1CdXNpbmVzc0NlbnRlckxvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6 ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNhbGVuZGFyOmJl Zm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5tcy1JY29uLS1DYW1lcmE6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNhcmV0U29saWREb3duOmJlZm9yZSB7 DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1J Y29uLS1DaGFydDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tQ2hhdENpcmNsZUFycm93OmJlZm9yZSB7DQogICAg ICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1D aGF0Q2lyY2xlQ2hlY2s6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNoYXRDaXJjbGVDbG9jazpiZWZvcmUgew0K ICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNv bi0tQ2hhdENpcmNsZU1pbnVzOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DaGVja01hcms6YmVmb3JlIHsNCiAg ICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24t LUNoZXZyb25Eb3duTWVkOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DaGV2cm9uTGVmdDpiZWZvcmUgew0KICAg ICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0t Q2hldnJvblJpZ2h0OmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DaGV2cm9uVXBNZWQ6YmVmb3JlIHsNCiAgICAg IGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNo cm9tZUNsb3NlOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DaXJjbGVGaWxsOmJlZm9yZSB7DQogICAgICBjb250 ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DbGFzc05v dGVib29rTG9nbzMyOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DbGFzc3Jvb21Mb2dvOmJlZm9yZSB7DQogICAg ICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1D bGVhcjpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAubXMtSWNvbi0tRGVsZXRlOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1EZWx2ZUxvZ286YmVmb3Jl IHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1z LUljb24tLURpYW1vbmQ6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLURvY3NMb2dvSW52ZXJzZTpiZWZvcmUgew0K ICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNv bi0tRG93bmxvYWQ6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUR5bmFtaWNTTUJMb2dvOmJlZm9yZSB7DQogICAg ICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1E eW5hbWljczM2NUxvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUVtb2ppMjpiZWZvcmUgew0KICAgICAgY29u dGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRXhjZWxM b2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1FdmVudDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRXZlbnRUb0RvTG9nbzpiZWZv cmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtSWNvbi0tRmVhdHVyZUZsYWdzTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8i Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRm9sZGVySG9yaXpvbnRh bDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAubXMtSWNvbi0tRmlsZUFTUFg6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUZvcndhcmQ6YmVmb3JlIHsN CiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUlj b24tLUZ1bGxDaXJjbGVNYXNrOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1HYWxsYXRpbkxvZ286YmVmb3JlIHsN CiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUlj b24tLUdsb2JhbE5hdkJ1dHRvbjpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tR2xvYmU6YmVmb3JlIHsNCiAgICAg IGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUhl bHBNaXJyb3JlZDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tSGlzdG9yeTpiZWZvcmUgew0KICAgICAgY29udGVu dDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tSW5mbzpiZWZv cmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtSWNvbi0tS2FpemFsYUxvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUxpZ2h0YnVsYjpiZWZvcmUgew0K ICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNv bi0tTVNOTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tTWFpbDpiZWZvcmUgew0KICAgICAgY29udGVudDog Ij8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tTWljcm9zb2Z0Rmxv d0xvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLm1zLUljb24tLU1pY3Jvc29mdFN0YWZmaHViTG9nbzpiZWZvcmUgew0KICAg ICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0t TW9yZTpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAubXMtSWNvbi0tTW9yZVZlcnRpY2FsOmJlZm9yZSB7DQogICAgICBjb250ZW50 OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1NMzY1SW52b2lj aW5nTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubXMtSWNvbi0tTmF2aWdhdGVFeHRlcm5hbElubGluZTpiZWZvcmUgew0K ICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNv bi0tTmV3czpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubXMtSWNvbi0tTm9ucHJvZml0TG9nbzMyOmJlZm9yZSB7DQogICAgICBj b250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1PZmZp Y2VBZGRpbnNMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1PZmZpY2VDaGF0OmJlZm9yZSB7DQogICAgICBj b250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1PZmZp Y2VDaGF0U29saWQ6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLU9mZmljZUZvcm1zTG9nbzpiZWZvcmUgew0KICAg ICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0t T2ZmaWNlTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tT2ZmaWNlVmlkZW9Mb2dvOmJlZm9yZSB7DQogICAg ICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1P bmVEcml2ZTpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubXMtSWNvbi0tT25lTm90ZUxvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRl bnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLU91dGxvb2tM b2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1QYWdlOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1QYXJhdHVyZUxvZ286YmVmb3Jl IHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1z LUljb24tLVBlb3BsZTpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tUGhvbmU6YmVmb3JlIHsNCiAgICAgIGNvbnRl bnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVBpbm5lZDpi ZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubXMtSWNvbi0tUGxhbm5lckxvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVBvcEV4cGFuZDpiZWZvcmUg ew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMt SWNvbi0tUG93ZXJBcHBzTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tUG93ZXJCSUxvZ286YmVmb3JlIHsN CiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUlj b24tLVBvd2VyUG9pbnRMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Qcm9qZWN0TG9nbzMyOmJlZm9yZSB7 DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1J Y29uLS1Qcm90ZWN0aW9uQ2VudGVyTG9nbzMyOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAi PyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1RdWlja05vdGU6YmVm b3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm1zLUljb24tLVNlY3VyaXR5TG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tU2hhcmVwb2ludExvZ286YmVm b3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm1zLUljb24tLVNreXBlRm9yQnVzaW5lc3NMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50 OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Ta3lwZUxvZ286 YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm1zLUljb24tLVNvY2lhbExpc3RlbmluZ0xvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRl bnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVN0YWZmTm90 ZWJvb2tMb2dvMzI6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVN0b3JlTG9nbzpiZWZvcmUgew0KICAgICAgY29u dGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tU3RyZWFt TG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAubXMtSWNvbi0tU3dheUxvZ28zMjpiZWZvcmUgew0KICAgICAgY29udGVudDog Ij8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVGFza0xvZ286YmVm b3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm1zLUljb24tLVRlYW1zTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVG9Eb0xvZ29JbnZlcnNlOmJlZm9y ZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5t cy1JY29uLS1Ub0RvTG9nb091dGxpbmU6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVRvZ2dsZUJvcmRlcjpiZWZv cmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtSWNvbi0tVG9nZ2xlVGh1bWI6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVVua25vd25Tb2xpZDpiZWZvcmUg ew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMt SWNvbi0tVW5waW46YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVZpZGVvOmJlZm9yZSB7DQogICAgICBjb250ZW50 OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1WaXNpb0xvZ286 YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm1zLUljb24tLVdhcm5pbmc6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVdoaXRlYm9hcmRMb2dvOmJlZm9y ZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5t cy1JY29uLS1Xb3JkTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tWWFtbWVyTG9nbzpiZWZvcmUgew0KICAg ICAgY29udGVudDogIj8iOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRl eHQvY3NzIiBqMmM9IiI+DQogICAgLm8zNjVzeC1uYXZiYXIgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9w Ow0KICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsNCiAgICAgIGJhY2tncm91bmQt aW1hZ2U6IG5vbmU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtYXBwTmFt ZSwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1hcHBOYW1lOnZpc2l0ZWQgew0KICAgICAg Y29sb3I6ICNmZmZmZmY7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWFwcEJyYW5kTGluayB7DQogICAgICBj b2xvcjogdHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt YnV0dG9uIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1ub25JbnRl cmFjdGl2ZUJ1dHRvbiB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt d2FmZmxlIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1iYWRnZSB7 DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYz YWU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtc2h5SGVhZGVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQoNCg0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LWhpZ2hDb250cmFzdEJ1dHRvbiB7DQogICAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAg IGNvbG9yOiBibGFjazsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25l Ow0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsNCiAgICAgIH0NCg0KICAgICAg QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiB3aGl0ZS1vbi1ibGFjaykg ew0KICAgICAgICBjb2xvcjogd2hpdGU7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFk anVzdDogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7DQogICAgICB9 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtYWN0aXZlQnV0dG9uIHsNCiAg ICAgIGNvbG9yOiAjMjUyNDIzOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjJmMTsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1hY2NlbnQtbGluayB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LWFjY2VudC1mb250IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYz YWU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtYWNjZW50LWJhY2tncm91 bmQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1hY2NlbnQtYm9yZGVyIHsNCiAgICAgIGJvcmRlci1jb2xv cjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrZXIt bGluaywNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrZXItbGluazpob3ZlciwNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrZXItbGluazp2aXNpdGVkLA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LWRhcmtlci1ob3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjMDA0ZDg4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmtlci1m b250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmtlci1ob3Zlci1mb250OmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjMDA0ZDg4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LWRhcmtlci1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRh cmtlci1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMwMDRkODg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya2VyLWJv cmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrZXItaG92ZXItYm9yZGVyOmhv dmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNGQ4ODsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1kYXJrLWxpbmssDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt ZGFyay1saW5rOmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmstbGluazp2 aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmstaG92ZXItbGluazpob3Zl ciB7DQogICAgICBjb2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1kYXJrLWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFyay1ob3Zl ci1mb250OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LWRhcmstYmFja2dyb3VuZCwNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1kYXJrLWhvdmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1k YXJrLWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrLWhvdmVyLWJvcmRl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDYzYWU7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya0FsdC1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LWRhcmtBbHQtbGluazpob3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1k YXJrQWx0LWxpbms6dmlzaXRlZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrQWx0 LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDYzYWU7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya0FsdC1mb250LA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LWRhcmtBbHQtaG92ZXItZm9udDpob3ZlciB7DQogICAgICBjb2xvcjogIzAw NjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrQWx0LWJhY2tn cm91bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya0FsdC1ob3Zlci1iYWNrZ3Jv dW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYzYWU7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya0FsdC1ib3JkZXIsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtZGFya0FsdC1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9y ZGVyLWNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4 LXByaW1hcnktbGluaywNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1wcmltYXJ5LWxpbms6 aG92ZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtcHJpbWFyeS1saW5rOnZpc2l0ZWQs DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtcHJpbWFyeS1ob3Zlci1saW5rOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LXByaW1hcnktZm9udCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1wcmltYXJ5LWhv dmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtcHJpbWFyeS1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3Mt YmFzZSAubzM2NXN4LXByaW1hcnktaG92ZXItYmFja2dyb3VuZDpob3ZlciB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LXByaW1hcnktYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXByaW1h cnktaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1zZWNvbmRhcnktbGluaywNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1zZWNvbmRhcnktbGluazpob3ZlciwNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1zZWNvbmRhcnktbGluazp2aXNpdGVkLA0KICAgIC5vMzY1Y3Mt YmFzZSAubzM2NXN4LXNlY29uZGFyeS1ob3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjM2E5OGUwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXNlY29uZGFy eS1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXNlY29uZGFyeS1ob3Zlci1mb250 OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjM2E5OGUwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAubzM2NXN4LXNlY29uZGFyeS1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICMzYTk4ZTA7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtc2Vjb25kYXJ5LWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1zZWNvbmRh cnktaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzNhOThlMDsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC10ZXJ0aWFyeS1saW5rLA0KICAg IC5vMzY1Y3MtYmFzZSAubzM2NXN4LXRlcnRpYXJ5LWxpbms6aG92ZXIsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtdGVydGlhcnktbGluazp2aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LXRlcnRpYXJ5LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICM5 ZmM2ZTQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtdGVydGlhcnktZm9u dCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC10ZXJ0aWFyeS1ob3Zlci1mb250OmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjOWZjNmU0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LXRlcnRpYXJ5LWJhY2tncm91bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt dGVydGlhcnktaG92ZXItYmFja2dyb3VuZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjOWZjNmU0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXRlcnRp YXJ5LWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC10ZXJ0aWFyeS1ob3Zlci1i b3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjOWZjNmU0Ow0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0LWxpbmssDQogICAgLm8zNjVjcy1iYXNl IC5vMzY1c3gtbGlnaHQtbGluazpob3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1s aWdodC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHQtaG92 ZXItbGluazpob3ZlciB7DQogICAgICBjb2xvcjogI2RjZWNmOTsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1saWdodC1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LWxpZ2h0LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICNkY2VjZjk7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHQtYmFja2dyb3VuZCwNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1saWdodC1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2VjZjk7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbGlnaHQtYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4 LWxpZ2h0LWhvdmVyLWJvcmRlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNkY2Vj Zjk7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHRlci1saW5rLA0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXItbGluazpob3ZlciwNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1saWdodGVyLWxpbms6dmlzaXRlZCwNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1saWdodGVyLWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICNm NGY5ZmQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHRlci1mb250 LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXItaG92ZXItZm9udDpob3ZlciB7 DQogICAgICBjb2xvcjogI2Y0ZjlmZDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8z NjVzeC1saWdodGVyLWJhY2tncm91bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGln aHRlci1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICNmNGY5ZmQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHRlci1i b3JkZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHRlci1ob3Zlci1ib3JkZXI6 aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZjRmOWZkOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXJBbHQtbGluaywNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1saWdodGVyQWx0LWxpbms6aG92ZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbGlnaHRlckFsdC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt bGlnaHRlckFsdC1ob3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZjRmOWZkOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXJBbHQtZm9udCwNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1saWdodGVyQWx0LWhvdmVyLWZvbnQ6aG92ZXIgew0K ICAgICAgY29sb3I6ICNmNGY5ZmQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbGlnaHRlckFsdC1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxp Z2h0ZXJBbHQtaG92ZXItYmFja2dyb3VuZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZjRmOWZkOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0 ZXJBbHQtYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXJBbHQtaG92 ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2Y0ZjlmZDsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmQtbGluaywN CiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmQtbGluazpob3Zl ciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmQtbGluazp2 aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZC1o b3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZC1mb250LA0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZC1ob3Zlci1mb250OmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZC1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZC1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kLWJvcmRlciwNCiAgICAubzM2NWNz LWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmQtaG92ZXItYm9yZGVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmRBbHQtbGluaywNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmRBbHQtbGluazpob3ZlciwNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmRBbHQtbGluazp2aXNpdGVkLA0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFsdC1ob3Zlci1s aW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFsdC1mb250LA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFsdC1ob3Zlci1mb250OmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFsdC1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3Mt YmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFsdC1ob3Zlci1iYWNrZ3JvdW5kOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kQWx0LWJvcmRlciwNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmRBbHQtaG92ZXItYm9y ZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXN0YXRpY0FjY2VudC1saW5rLA0KICAg IC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc3RhdGljQWNjZW50LWxpbms6aG92ZXIs DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zdGF0aWNBY2NlbnQtbGluazp2 aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc3RhdGljQWNjZW50 LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDYzYWU7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zdGF0aWNBY2NlbnQtZm9udCwNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXN0YXRpY0FjY2VudC1ob3Zlci1mb250 OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAubzM2NXN4LW5ldXRyYWwtc3RhdGljQWNjZW50LWJhY2tncm91bmQsDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zdGF0aWNBY2NlbnQtaG92ZXItYmFja2dyb3Vu ZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc3RhdGljQWNjZW50LWJvcmRlciwN CiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXN0YXRpY0FjY2VudC1ob3Zlci1i b3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtYWNjZW50LWxpbmssDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1hY2NlbnQtbGluazpob3ZlciwNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWFjY2VudC1saW5rOnZpc2l0ZWQsDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1hY2NlbnQtaG92ZXItbGluazpob3ZlciB7DQog ICAgICBjb2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1uZXV0cmFsLWFjY2VudC1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRy YWwtYWNjZW50LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDYzYWU7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1hY2NlbnQtYmFja2dy b3VuZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWFjY2VudC1ob3Zlci1i YWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYzYWU7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1hY2NlbnQtYm9yZGVy LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtYWNjZW50LWhvdmVyLWJvcmRl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDYzYWU7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodC1saW5rLA0KICAgIC5vMzY1Y3Mt YmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHQtbGluazpob3ZlciwNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWxpbms6dmlzaXRlZCwNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29s b3I6ICNlMWRmZGQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJh bC1saWdodC1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHQt aG92ZXItZm9udDpob3ZlciB7DQogICAgICBjb2xvcjogI2UxZGZkZDsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWJhY2tncm91bmQsDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodC1ob3Zlci1iYWNrZ3JvdW5kOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWRmZGQ7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodC1ib3JkZXIsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodC1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjZTFkZmRkOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LW5ldXRyYWwtbGlnaHRBbHQtbGluaywNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1uZXV0cmFsLWxpZ2h0QWx0LWxpbms6aG92ZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbmV1dHJhbC1saWdodEFsdC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5v MzY1c3gtbmV1dHJhbC1saWdodEFsdC1ob3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjZWRlYmU5Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwt bGlnaHRBbHQtZm9udCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0 QWx0LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICNlZGViZTk7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodEFsdC1iYWNrZ3JvdW5k LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRBbHQtaG92ZXItYmFj a2dyb3VuZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlYmU5Ow0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRBbHQtYm9yZGVy LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRBbHQtaG92ZXItYm9y ZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2VkZWJlOTsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXItbGluaywNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXItbGluazpob3ZlciwNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXItbGluazp2aXNpdGVkLA0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlci1ob3Zlci1saW5rOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjZjNmMmYxOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LW5ldXRyYWwtbGlnaHRlci1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5l dXRyYWwtbGlnaHRlci1ob3Zlci1mb250OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZjNmMmYx Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlci1i YWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlci1o b3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Yy ZjE7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVy LWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXItaG92 ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2YzZjJmMTsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXJBbHQtbGluaywN CiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXJBbHQtbGluazpob3Zl ciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXJBbHQtbGluazp2 aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlckFsdC1o b3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmFmOWY4Ow0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlckFsdC1mb250LA0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlckFsdC1ob3Zlci1mb250OmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjZmFmOWY4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LW5ldXRyYWwtbGlnaHRlckFsdC1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlckFsdC1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWY5Zjg7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVyQWx0LWJvcmRlciwNCiAgICAubzM2NWNz LWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXJBbHQtaG92ZXItYm9yZGVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogI2ZhZjlmODsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1uZXV0cmFsLWRhcmstbGluaywNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1uZXV0cmFsLWRhcmstbGluazpob3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1u ZXV0cmFsLWRhcmstbGluazp2aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5l dXRyYWwtZGFyay1ob3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMjUyNDIzOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZGFyay1mb250LA0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZGFyay1ob3Zlci1mb250OmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjMjUyNDIzOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LW5ldXRyYWwtZGFyay1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LW5ldXRyYWwtZGFyay1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICMyNTI0MjM7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbmV1dHJhbC1kYXJrLWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0 cmFsLWRhcmstaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzI1 MjQyMzsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXByaW1h cnktbGluaywNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXByaW1hcnktbGlu azpob3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXByaW1hcnktbGlu azp2aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtcHJpbWFyeS1o b3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYmViYmI4Ow0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtcHJpbWFyeS1mb250LA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtcHJpbWFyeS1ob3Zlci1mb250OmhvdmVyIHsNCiAg ICAgIGNvbG9yOiAjYmViYmI4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4 LW5ldXRyYWwtcHJpbWFyeS1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4 LW5ldXRyYWwtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNiZWJiYjg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbmV1dHJhbC1wcmltYXJ5LWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1u ZXV0cmFsLXByaW1hcnktaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xv cjogI2JlYmJiODsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFs LXNlY29uZGFyeS1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc2Vj b25kYXJ5LWxpbms6aG92ZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1z ZWNvbmRhcnktbGluazp2aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRy YWwtc2Vjb25kYXJ5LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICM0ODQ2NDQ7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zZWNvbmRhcnkt Zm9udCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXNlY29uZGFyeS1ob3Zl ci1mb250OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNDg0NjQ0Ow0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQsDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3Vu ZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg0NjQ0Ow0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc2Vjb25kYXJ5LWJvcmRlciwNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXNlY29uZGFyeS1ob3Zlci1ib3JkZXI6 aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjNDg0NjQ0Ow0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtdGVydGlhcnktbGluaywNCiAgICAubzM2NWNz LWJhc2UgLm8zNjVzeC1uZXV0cmFsLXRlcnRpYXJ5LWxpbms6aG92ZXIsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbmV1dHJhbC10ZXJ0aWFyeS1saW5rOnZpc2l0ZWQsDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC10ZXJ0aWFyeS1ob3Zlci1saW5rOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjNjA1ZTVjOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LW5ldXRyYWwtdGVydGlhcnktZm9udCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1u ZXV0cmFsLXRlcnRpYXJ5LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICM2MDVl NWM7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC10ZXJ0aWFy eS1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtdGVydGlh cnktaG92ZXItYmFja2dyb3VuZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj NjA1ZTVjOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtdGVy dGlhcnktYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtdGVydGlh cnktaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzYwNWU1YzsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWRhcmtSZWQtbGlu aywNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWRhcmtSZWQtbGluazpob3Zl ciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWRhcmtSZWQtbGluazp2aXNp dGVkLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZGFya1JlZC1ob3Zlci1s aW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYTgwMDAwOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZGFya1JlZC1mb250LA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LW5ldXRyYWwtZGFya1JlZC1ob3Zlci1mb250OmhvdmVyIHsNCiAgICAgIGNv bG9yOiAjYTgwMDAwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRy YWwtZGFya1JlZC1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRy YWwtZGFya1JlZC1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNhODAwMDA7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1 dHJhbC1kYXJrUmVkLWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFs LWRhcmtSZWQtaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2E4 MDAwMDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1hcHBCcmFuZExpbms6 Zm9jdXMgew0KICAgICAgb3V0bGluZTogI2ZmZmZmZiAxcHggc29saWQ7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtYnV0dG9uOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj ZmZmZmZmOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGQ4ODsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1idXR0b24gOmZvY3VzIHsNCiAgICAgIGNvbG9yOiAj ZmZmZmZmOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGQ4ODsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1idXR0b246YWN0aXZlIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICMwMDRkODg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt YnV0dG9uOmZvY3VzIHsNCiAgICAgIG91dGxpbmU6ICNmZmZmZmYgMXB4IHNvbGlkOw0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5vbkludGVyYWN0aXZlQnV0dG9uOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KDQogICAgICBiYWNrZ3JvdW5kQ29sb3Ig ew0KICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICB9DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbm9uSW50ZXJhY3RpdmVCdXR0b24gOmZvY3VzIHsNCiAg ICAgIGNvbG9yOiAjZmZmZmZmOw0KDQogICAgICBiYWNrZ3JvdW5kQ29sb3Igew0KICAgICAg ICBjb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtbm9uSW50ZXJhY3RpdmVCdXR0b246YWN0aXZlIHsNCiAgICAgIGJhY2tn cm91bmRDb2xvciB7DQogICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIH0NCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1ub25JbnRlcmFjdGl2ZUJ1dHRvbjpm b2N1cyB7DQogICAgICBvdXRsaW5lIHsNCiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50Ow0K ICAgICAgfQ0KICAgIH0NCg0KICAgIC5vMzY1c3gtc2VhcmNoQm94SW5hY3RpdmU6aG92ZXIg ew0KICAgICAgY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LWhpZ2hDb250cmFzdEJ1dHRvbiB7DQogICAgICAvKiBEZWZpbmUgdGhlIGNv bW1vbiBzdHlsZXMgZm9yIGJvdGggaGlnaCBjb250cmFzdCBtb2RlcyAqLw0KICAgICAgLyog QWRkIHlvdXIgY29tbW9uIHN0eWxlcyBoZXJlICovDQoNCiAgICAgIC8qIERlZmluZSB0aGUg aG92ZXIgc3R5bGVzIGZvciBoaWdoIGNvbnRyYXN0ICovDQogICAgICAmOmhvdmVyIHsNCiAg ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhZWJmZjsNCiAgICAgICAgLyogV2hpdGUtb24t YmxhY2sgaGlnaCBjb250cmFzdCBtb2RlICovDQogICAgICB9DQogICAgfQ0KDQogICAgLyog VXNlIGEgc2VwYXJhdGUgcnVsZSBmb3IgdGhlIGJsYWNrLW9uLXdoaXRlIGhpZ2ggY29udHJh c3QgbW9kZSAqLw0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDog YmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWhpZ2hDb250 cmFzdEJ1dHRvbjpob3ZlciB7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNzAwNmU7 DQogICAgICB9DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtaGlnaENvbnRy YXN0QnV0dG9uIDpmb2N1cyB7DQogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gt Y29udHJhc3Q6IHdoaXRlLW9uLWJsYWNrKSB7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMxYWViZmY7DQogICAgICB9DQoNCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xv cjogIzM3MDA2ZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1hY3RpdmVCdXR0b246Zm9jdXMgew0KICAgICAgb3V0bGluZTogIzAwNzhkNCAxcHggc29s aWQ7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yZXMtMS5j ZG4ub2ZmaWNlLm5ldC9zaGVsbHV4L3N1aXRldXguc2hlbGwucGx1cy5hMjA1NGNhNmQ5NTgy MjI0ZWQ2OS5qcyIgY3Jvc3NvcmlnaW49ImFub255bW91cyINCiAgICBhc3luYz0iIj48L3Nj cmlwdD4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAubzM2NWNzLWJhc2UgLm94 YkYyTHlLd1ZCXC9hNVwrNGd0bWtmZ1w9XD0gew0KICAgICAgZGlzcGxheTogLW1zLWZsZXhi b3g7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBy b3c7DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgYm9yZGVyOiAxcHggc29s aWQgaHNsYSgwLCAwJSwgMTAwJSwgMCk7DQogICAgICBib3gtc2hhZG93OiAwIDFweCAycHgg MCByZ2JhKDAsIDAsIDAsIDAuMSk7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0K ICAgICAgd2lkdGg6IDI3NnB4Ow0KICAgICAgcGFkZGluZy1sZWZ0OiAwOw0KICAgICAgYWxp Z24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgICBtYXJnaW46IDAgMCAxN3B4IDE2cHg7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vMzY1Y3MtYmFzZSAub3hiRjJMeUt3VkJc L2E1XCs0Z3Rta2ZnXD1cPSB7DQogICAgICBtYXJnaW4tbGVmdDogMDsNCiAgICAgIG1hcmdp bi1yaWdodDogMTZweDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm94YkYyTHlLd1ZC XC9hNVwrNGd0bWtmZ1w9XD06aG92ZXIgew0KICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAw IDhweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpOw0KICAgICAgYm94LXNoYWRvdzogMCA4 cHggMTZweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm94YkYyTHlLd1ZCXC9hNVwrNGd0bWtmZ1w9XD0+YnV0dG9uIHsNCiAgICAgIG1pbi13 aWR0aDogMzBweDsNCiAgICAgIHdpZHRoOiAzMHB4Ow0KICAgICAgaGVpZ2h0OiAzNnB4Ow0K ICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4Ow0KICAgICAgcGFkZGluZy1yaWdodDogMTBweDsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgYm9yZGVyOiBu b25lOw0KICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5veGJGMkx5S3dWQlwvYTVcKzRndG1rZmdcPVw9PmlucHV0OjotbXMtY2xl YXIgew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm94YkYyTHlLd1ZCXC9hNVwrNGd0bWtmZ1w9XD0+aW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWNh bmNlbC1idXR0b24sDQogICAgLm8zNjVjcy1iYXNlIC5veGJGMkx5S3dWQlwvYTVcKzRndG1r ZmdcPVw9PmlucHV0Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLA0KICAgIC5vMzY1Y3Mt YmFzZSAub3hiRjJMeUt3VkJcL2E1XCs0Z3Rta2ZnXD1cPT5pbnB1dDo6LXdlYmtpdC1zZWFy Y2gtcmVzdWx0cy1idXR0b24sDQogICAgLm8zNjVjcy1iYXNlIC5veGJGMkx5S3dWQlwvYTVc KzRndG1rZmdcPVw9PmlucHV0Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24g ew0KICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICAgICAgZGlzcGxheTogbm9u ZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm94YkYyTHlLd1ZCXC9hNVwrNGd0bWtm Z1w9XD0gLmo2QnZOcENGOTBYaUt4dTBGN3NaendcPVw9IHsNCiAgICAgIHdpZHRoOiAyNTBw eDsNCiAgICAgIGhlaWdodDogMzJweDsNCiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50 Ow0KICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgICBib3JkZXI6IG5vbmU7 DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIGZvbnQ6IDEzcHggU2Vnb2VVSS1SZWd1 bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJv cGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1G b250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWws DQogICAgICAgIHNhbnMtc2VyaWY7DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsN CiAgICAgIHBhZGRpbmctbGVmdDogNXB4Ow0KICAgICAgb3V0bGluZTogbm9uZTsNCiAgICAg IG1hcmdpbjogMC4xZW07DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5veGJGMkx5S3dW QlwvYTVcKzRndG1rZmdcPVw9IC5qNkJ2TnBDRjkwWGlLeHUwRjdzWnp3XD1cPTotaW50ZXJu YWwtYXV0b2ZpbGwtc2VsZWN0ZWQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNw YXJlbnQgIWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm94YkYyTHlL d1ZCXC9hNVwrNGd0bWtmZ1w9XD06Zm9jdXMgew0KICAgICAgY3Vyc29yOiB0ZXh0Ow0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubkhrN0xFU0FmSVd0V3lEOWY3SU05Z1w9XD0gew0K ICAgICAgbWFyZ2luOiAwIDAgNXB4IDE2cHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5 bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgIC5vMzY1Y3MtYmFzZSAuVGxBZGxVcldkMFo2XC9U dGVLSlNRaWdcPVw9IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLlRsQWRsVXJXZDBaNlwvVHRlS0pTUWlnXD1cPSAuXzFacVVFYlpL alVNcmpRV29ac2VnNmdcPVw9IHsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVJlZ3Vs YXItZmluYWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9w ZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAgICBCbGlua01hY1N5c3RlbUZv bnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlhbCwN CiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICAgIGZvbnQtc2l6ZTogMTBweDsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAgICAgaGVpZ2h0OiAx NnB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7DQogICAgICBib3JkZXItcmFkaXVzOiAx ZW07DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgdGV4dC1hbGlnbjog Y2VudGVyOw0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdo LWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAg ICAgIC5vMzY1Y3MtYmFzZSAuVGxBZGxVcldkMFo2XC9UdGVLSlNRaWdcPVw9IC5fMVpxVUVi WktqVU1yalFXb1pzZWc2Z1w9XD0gew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1 c3Q6IG5vbmU7DQogICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICAg IGJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50Ow0KICAgICAgICBjb2xv cjogaGlnaGxpZ2h0VGV4dCAhaW1wb3J0YW50Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAuVGxBZGxVcldkMFo2XC9UdGVLSlNRaWdcPVw9IC5fNTZFdXlNRDJzb0Ux XC9nS1hCWTBxOWdcPVw9IHsNCiAgICAgIHRvcDogN3B4Ow0KICAgICAgd2lkdGg6IDhweDsN CiAgICAgIGhlaWdodDogOHB4Ow0KICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsNCiAg ICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlRs QWRsVXJXZDBaNlwvVHRlS0pTUWlnXD1cPSAuXCtPTFBOSUY2QjVrS29BOTdKM3ZWcHdcPVw9 IHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLk5zelVndHpEZngwdDFQUXJ1Y212bkFcPVw9 IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0KICAgIC5jNlFFNnEwaW15cVpQ aUh5TFBtOVlBXD1cPSB7DQogICAgICBmb250LWZhbWlseTogU2Vnb2VVSS1SZWd1bGFyLWZp bmFsLCBTZWdvZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbiki LCBTZWdvZSwgLWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBS b2JvdG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAg ICAgIHNhbnMtc2VyaWY7DQogICAgfQ0KDQogICAgLnVHQXg0Q2JSaFwrakVhTWRmNEV0djd3 XD1cPSB7DQogICAgICBmb250LWZhbWlseTogU2Vnb2VVSS1TZW1pQm9sZC1maW5hbCwgU2Vn b2UgVUkgU2VtaWJvbGQsDQogICAgICAgIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2Ug VUksICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1h cHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1 ZSwgVGFob21hLA0KICAgICAgICBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOw0KICAg ICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICB9DQoNCiAgICAudm1PNXJZdnRWcm1zeWJtM1FK RkpVd1w9XD0gew0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29lVUktTGlnaHQtZmluYWwsIFNl Z29lIFVJIExpZ2h0LCBTZWdvZVVJLVJlZ3VsYXItZmluYWwsDQogICAgICAgIFNlZ29lIFVJ LCAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVt LA0KICAgICAgICBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUs IFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlhbCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICB9 DQoNCiAgICAuUThxSGtxVGhaM0hDd1Bta1wrbTJiRlFcPVw9IHsNCiAgICAgIGZvbnQtZmFt aWx5OiBTZWdvZVVJLVNlbWlMaWdodC1maW5hbCwgU2Vnb2UgVUkgU2VtaWxpZ2h0LA0KICAg ICAgICBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChX ZXN0IEV1cm9wZWFuKSIsIFNlZ29lLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01h Y1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAg SGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsNCiAgICB9DQoNCiAgICAuaURtMldUcXBN Z3d6YkJTU1JsYnVvZ1w9XD0gew0KICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBTZWdvZVVJ LVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLCBTZWdvZSwgVGFob21hLA0KICAgICAgICBIZWx2 ZXRpY2EsIHNhbnMtc2VyaWY7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0i dGV4dC9jc3MiPg0KICAgIC5MT0g2NW1ITkQ1VXVKOWI1TU9QSXlnXD1cPSB7DQogICAgICBo ZWlnaHQ6IGNhbGMoMTAwdmggLSAxMTVweCk7DQogICAgfQ0KDQogICAgLkVqa0J0cEVWR1lR SzFxXC90ZDZtaGRnXD1cPSB7DQogICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMTNweCk7 DQogICAgfQ0KDQogICAgLnNiVVwrOWNzdTdvMjFzaWxyNm1qbWd3XD1cPSB7DQogICAgICBo ZWlnaHQ6IGNhbGMoMTAwdmggLSA3M3B4KTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLlRhU3VxbHlKNU1TcVRRYlhUZVMzdFFcPVw9IHsN CiAgICAgIGZvbnQtZmFtaWx5OiBTaGVsbEZhYnJpY01ETDJJY29uc0xpdGUsIFNoZWxsRmFi cmljTURMMkljb25zOw0KICAgICAgbGluZS1oZWlnaHQ6IDE7DQogICAgfQ0KDQogICAgLlRh U3VxbHlKNU1TcVRRYlhUZVMzdFFcPVw9IC5vMzY1Y3MtYmFzZSBbY2xhc3MqPSIgbXMtSWNv bi0tIl06YmVmb3JlLA0KICAgIC5UYVN1cWx5SjVNU3FUUWJYVGVTM3RRXD1cPSAubzM2NWNz LWJhc2UgW2NsYXNzXj0ibXMtSWNvbi0tIl06YmVmb3JlIHsNCiAgICAgIGZvbnQtZmFtaWx5 OiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIC5IS0hzbndQRDlhc2dDWVwvMXJodnVxd1w9XD0s DQogICAgLkk0bmo4YWZNTGpXcEoyVU91ZDg4emdcPVw9IHsNCiAgICAgIGhlaWdodDogMTAw JTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAg LlwvRnprWWNYN3F2bm9FTWFVdFY5MjJBXD1cPSwNCiAgICAuaE5SdlR2d1ZPc0RFcnhBZHdh aVpHUVw9XD0gew0KICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3A7DQogICAg ICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogdG9wOw0KICAgICAgdHJhbnNmb3JtLW9yaWdpbjog dG9wOw0KICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMThzOw0KICAgICAg YW5pbWF0aW9uLWR1cmF0aW9uOiAwLjE4czsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRp bWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgICAg YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIs IDEpOw0KICAgIH0NCg0KICAgIC5NcVA5Y3R0eFdcL2s2ZlA5S0JmdkpYd1w9XD0sDQogICAg LnRxcTF0bDNPSG9mXCs5eG9mYnd1cjRxXD1cPSB7DQogICAgICB3aWR0aDogMTAwJTsNCiAg ICAgIGhlaWdodDogOHB4Ow0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgZGlz cGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAudHFxMXRsM09Ib2ZcKzl4b2Zid3VyNHFcPVw9 IHsNCiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICAgICAgY3Vyc29yOiBwb2lu dGVyOw0KICAgIH0NCg0KICAgIC50cXExdGwzT0hvZlwrOXhvZmJ3dXI0cVw9XD06aG92ZXIg ew0KICAgICAgb3BhY2l0eTogMC40Ow0KICAgICAgYmFja2dyb3VuZDogIzQwNDA0MDsNCiAg ICB9DQoNCiAgICAubVlybEh2clNSNTdmOVJnalpEYXBSZ1w9XD0gew0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgbGVmdDogNDcuODElOw0KICAgICAgcmlnaHQ6IDQ3Ljgx JTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgICAgIHdpZHRoOiAxNHB4Ow0KICAg ICAgaGVpZ2h0OiAycHg7DQogICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7DQogICAgICBwb2lu dGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQoNCiAgICAuREpOUmV6dDdkQXBYSU9TRHFtR0Vs d1w9XD0gew0KICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogaGVhZGVyU2xpZGVJbkZy YW1lczsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBoZWFkZXJTbGlkZUluRnJhbWVzOw0KICAg IH0NCg0KICAgIC5RVTBDZGdJTFVtMFlvUFwrU0NlNDM3Z1w9XD0gew0KICAgICAgLXdlYmtp dC1hbmltYXRpb24tbmFtZTogaGVhZGVyU2xpZGVPdXRGcmFtZXM7DQogICAgICBhbmltYXRp b24tbmFtZTogaGVhZGVyU2xpZGVPdXRGcmFtZXM7DQogICAgfQ0KDQogICAgLklDU2diUHZj dVlJTVltaldEVlpqeVFcPVw9IHsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdv cmtsb2FkRGl2U2xpZGVJbkZyYW1lczsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiB3b3JrbG9h ZERpdlNsaWRlSW5GcmFtZXM7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJk czsNCiAgICB9DQoNCiAgICAucHNFWU1HZmN0bU1rYkJRYVFxR3dEZ1w9XD0gew0KICAgICAg LXdlYmtpdC1hbmltYXRpb24tbmFtZTogd29ya2xvYWREaXZTbGlkZU91dEZyYW1lczsNCiAg ICAgIGFuaW1hdGlvbi1uYW1lOiB3b3JrbG9hZERpdlNsaWRlT3V0RnJhbWVzOw0KICAgICAg YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7DQogICAgfQ0KDQogICAgQC13ZWJraXQt a2V5ZnJhbWVzIGhlYWRlclNsaWRlSW5GcmFtZXMgew0KICAgICAgMCUgew0KICAgICAgICBo ZWlnaHQ6IDhweDsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgLXdlYmtpdC10cmFu c2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjk1 KTsNCiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsNCiAgICAgIH0NCg0KICAgICAg dG8gew0KICAgICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAg ICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsNCiAgICAgICAgLW1zLXRyYW5zZm9y bTogc2NhbGUoMSk7DQogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7DQogICAgICB9DQog ICAgfQ0KDQogICAgQGtleWZyYW1lcyBoZWFkZXJTbGlkZUluRnJhbWVzIHsNCiAgICAgIDAl IHsNCiAgICAgICAgaGVpZ2h0OiA4cHg7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAg IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsNCiAgICAgICAgLW1zLXRyYW5zZm9y bTogc2NhbGUoMC45NSk7DQogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7DQogICAg ICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgICBvcGFj aXR5OiAxOw0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7DQogICAgICAg IC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEp Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEAtd2Via2l0LWtleWZyYW1lcyBoZWFkZXJTbGlk ZU91dEZyYW1lcyB7DQogICAgICAwJSB7DQogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7 DQogICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgIGhlaWdodDogNDhweDsNCiAgICAg ICAgb3BhY2l0eTogMTsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOw0K ICAgICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTsNCiAgICAgICAgdHJhbnNmb3JtOiBz Y2FsZSgxKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB2aXNpYmlsaXR5OiBo aWRkZW47DQogICAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICAgIGhlaWdodDogOHB4Ow0K ICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUo MC45NSk7DQogICAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgICB0 cmFuc2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFt ZXMgaGVhZGVyU2xpZGVPdXRGcmFtZXMgew0KICAgICAgMCUgew0KICAgICAgICB2aXNpYmls aXR5OiB2aXNpYmxlOw0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBoZWlnaHQ6 IDQ4cHg7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt OiBzY2FsZSgxKTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7DQogICAgICAg IHRyYW5zZm9ybTogc2NhbGUoMSk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAg dmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgICBkaXNwbGF5OiBub25lOw0KICAgICAgICBo ZWlnaHQ6IDhweDsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgLXdlYmtpdC10cmFu c2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjk1 KTsNCiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsNCiAgICAgIH0NCiAgICB9DQoN CiAgICBALXdlYmtpdC1rZXlmcmFtZXMgd29ya2xvYWREaXZTbGlkZUluRnJhbWVzIHsNCiAg ICAgIDAlIHsNCiAgICAgICAgaGVpZ2h0OiA4cHg7DQogICAgICAgIG1pbi1oZWlnaHQ6IDhw eDsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICBoZWlnaHQ6IDQ4cHg7DQogICAg ICAgIG1pbi1oZWlnaHQ6IDQ4cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1l cyB3b3JrbG9hZERpdlNsaWRlSW5GcmFtZXMgew0KICAgICAgMCUgew0KICAgICAgICBoZWln aHQ6IDhweDsNCiAgICAgICAgbWluLWhlaWdodDogOHB4Ow0KICAgICAgfQ0KDQogICAgICB0 byB7DQogICAgICAgIGhlaWdodDogNDhweDsNCiAgICAgICAgbWluLWhlaWdodDogNDhweDsN CiAgICAgIH0NCiAgICB9DQoNCiAgICBALXdlYmtpdC1rZXlmcmFtZXMgd29ya2xvYWREaXZT bGlkZU91dEZyYW1lcyB7DQogICAgICAwJSB7DQogICAgICAgIGhlaWdodDogNDhweDsNCiAg ICAgICAgbWluLWhlaWdodDogNDhweDsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAg ICBoZWlnaHQ6IDhweDsNCiAgICAgICAgbWluLWhlaWdodDogOHB4Ow0KICAgICAgfQ0KICAg IH0NCg0KICAgIEBrZXlmcmFtZXMgd29ya2xvYWREaXZTbGlkZU91dEZyYW1lcyB7DQogICAg ICAwJSB7DQogICAgICAgIGhlaWdodDogNDhweDsNCiAgICAgICAgbWluLWhlaWdodDogNDhw eDsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICBoZWlnaHQ6IDhweDsNCiAgICAg ICAgbWluLWhlaWdodDogOHB4Ow0KICAgICAgfQ0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHNj cmlwdCBzcmM9Imh0dHBzOi8vcmVzLTEuY2RuLm9mZmljZS5uZXQvc2hlbGx1eC9zdWl0ZXV4 LnNoZWxsLm90ZWxsb2dnaW5nLmZjNWY1YjgzNjBiZDhjMmY3ZGE1LmpzIg0KICAgIGNyb3Nz b3JpZ2luPSJhbm9ueW1vdXMiIGFzeW5jPSIiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IHNyYz0i aHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5ldC9zaGVsbHV4L3N1aXRldXguc2hlbGwubWFz dC43MmU2ZjJjMDYxYTUxNGVmNWQ3Yi5qcyIgY3Jvc3NvcmlnaW49ImFub255bW91cyINCiAg ICBhc3luYz0iIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBjaGFyc2V0PSJ1dGYtOCINCiAgICBz cmM9Imh0dHBzOi8vcmVzLTEuY2RuLm9mZmljZS5uZXQvZmlsZXMvb2RzcC13ZWItcHJvZF8y MDIzLTEwLTIwLjAwNS9vZGNsaWdodHNwZWVkd2VicGFjay5tYW5pZmVzdC83MjkuanMiDQog ICAgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+DQogIDxzdHlsZSBkYXRhLWxv YWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLk9uZVVwLXBkZiB7DQogICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7DQogICAg ICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgLm9kLU9uZVVwUGRm LXRodW1ibmFpbCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7 DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICBib3R0b206IDA7DQog ICAgICBvdmVyZmxvdy15OiBzY3JvbGw7DQogICAgICBvcGFjaXR5OiAxOw0KICAgICAgdmlz aWJpbGl0eTogdmlzaWJsZTsNCiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjY3bXMgbGlu ZWFyIDI2N21zLCB2aXNpYmlsaXR5IDBzIGxpbmVhciA1MzRtczsNCiAgICB9DQoNCiAgICAu T25lVXAtcGRmLS1sb2FkZWQgLm9kLU9uZVVwUGRmLXRodW1ibmFpbCB7DQogICAgICBvcGFj aXR5OiAwOw0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5vZC1P bmVVcFBkZi1jb250YWluZXIgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAg dG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9t OiAwOw0KICAgIH0NCg0KICAgIC5vZC1PbmVVcFBkZi1jb250YWluZXIgZGl2W3JvbGU9Im1l bnViYXIiXSB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgfQ0KDQogICAgLk9uZVVw LWNvbW1hbmRCYXIsDQogICAgLk9uZVVwLWNvbnRlbnQgew0KICAgICAgdHJhbnNpdGlvbjog bm9uZSAhaW1wb3J0YW50Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9h ZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAucm9vdF9lYjQ1ZjM5NyB7DQogICAgICB3 aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIHBvc2l0aW9uOiByZWxh dGl2ZTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0KICA8L3N0eWxlPg0KICA8 c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIGh0bWxbZGlyPSJs dHIiXSAuc2F2ZUJ0bl9hMDhkOTNkOCB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5zYXZlQnRuX2EwOGQ5M2Q4IHsNCiAgICAg IHBhZGRpbmctcmlnaHQ6IDE2cHg7DQogICAgfQ0KDQogICAgLmZpbGVIZWFkZXJfYTA4ZDkz ZDggew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMt ZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtbXMtZmxleC13cmFwOiBu b3dyYXA7DQogICAgICBmbGV4LXdyYXA6IG5vd3JhcDsNCiAgICAgIHRleHQtYWxpZ246IGNl bnRlcjsNCiAgICAgIHBhZGRpbmc6IDEwcHg7DQogICAgfQ0KDQogICAgLmZpbGVIZWFkZXJf YTA4ZDkzZDg+KiB7DQogICAgICBwYWRkaW5nOiAwIDRweDsNCiAgICB9DQoNCiAgICAuZmls ZUhlYWRlcl9hMDhkOTNkOCAuZmlsZVRpdGxlX2EwOGQ5M2Q4IHsNCiAgICAgIGRpc3BsYXk6 IC13ZWJraXQtaW5saW5lLWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJv eDsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgLXdlYmtpdC1ib3gtcGFj azogY2VudGVyOw0KICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOw0KICAgICAganVzdGlm eS1jb250ZW50OiBjZW50ZXI7DQogICAgICBtYXgtd2lkdGg6IDIwMHB4Ow0KICAgICAgbGlu ZS1oZWlnaHQ6IDE7DQogICAgfQ0KDQogICAgLmZpbGVIZWFkZXJfYTA4ZDkzZDggLmZpbGVU aXRsZV9hMDhkOTNkOD5kaXYgew0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICB9 DQoNCiAgICAuZmlsZUhlYWRlcl9hMDhkOTNkOCAuZmlsZVRpdGxlX2EwOGQ5M2Q4IC5maWxl TmFtZV9hMDhkOTNkOCB7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgdGV4dC1v dmVyZmxvdzogZWxsaXBzaXM7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5maWxl SGVhZGVyX2EwOGQ5M2Q4IC5maWxlVGl0bGVfYTA4ZDkzZDggLmZpbGVOYW1lX2EwOGQ5M2Q4 IHsNCiAgICAgIG1hcmdpbi1yaWdodDogNHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJy dGwiXSAuZmlsZUhlYWRlcl9hMDhkOTNkOCAuZmlsZVRpdGxlX2EwOGQ5M2Q4IC5maWxlTmFt ZV9hMDhkOTNkOCB7DQogICAgICBtYXJnaW4tbGVmdDogNHB4Ow0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICBodG1s W2Rpcj0ibHRyIl0gLnNhdmVCdG5fOWEwNWU4NzYgew0KICAgICAgcGFkZGluZy1sZWZ0OiAx NnB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuc2F2ZUJ0bl85YTA1ZTg3NiB7 DQogICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4Ow0KICAgIH0NCg0KICAgIC50aXRsZV85YTA1 ZTg3NiB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBtYXgtd2lkdGg6 IDIwMHB4Ow0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIG92ZXJmbG93OiBo aWRkZW47DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICB9DQoNCiAgICAu cmlnaHREaXZpZGVyXzlhMDVlODc2IHsNCiAgICAgIGhlaWdodDogMTZweDsNCiAgICAgIG1h cmdpbjogMCAyMHB4Ow0KICAgIH0NCg0KICAgIC5zZWxlY3Rpb25Db3VudGVyXzlhMDVlODc2 IHsNCiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94Ow0KICAgICAgZGlzcGxheTogLW1zLWZs ZXhib3g7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgLXdlYmtpdC1ib3gtYWxpZ246 IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7DQogICAgICBhbGlnbi1p dGVtczogY2VudGVyOw0KICAgIH0NCg0KICAgIC5jbG9zZUJ1dHRvbl85YTA1ZTg3NiB7DQog ICAgICBjb2xvcjogaW5oZXJpdDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRh LWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgI3ByaW50Q29udGFpbmVyXzJlNThk OTRkIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgQG1lZGlhIHByaW50 IHsNCiAgICAgIGJvZHkgew0KICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCiAg ICAgIH0NCg0KICAgICAgYm9keVtkYXRhLXBkZnByaW50aW5nXT4qIHsNCiAgICAgICAgZGlz cGxheTogbm9uZTsNCiAgICAgIH0NCg0KICAgICAgI3ByaW50Q29udGFpbmVyXzJlNThkOTRk IHsNCiAgICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICAgIGhlaWdodDogMTAwJTsNCiAg ICAgIH0NCg0KICAgICAgI3ByaW50Q29udGFpbmVyXzJlNThkOTRkPmRpdiB7DQogICAgICAg IGRpc3BsYXk6IC13ZWJraXQtYm94Ow0KICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsN CiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2 ZXJ0aWNhbDsNCiAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQogICAg ICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgICBmbGV4LWRpcmVjdGlv bjogY29sdW1uOw0KICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7DQogICAgICAg IC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsNCiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50 ZXI7DQogICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAgIC1tcy1m bGV4LWFsaWduOiBjZW50ZXI7DQogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAg ICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICAgIHBhZ2Ut YnJlYWstYWZ0ZXI6IGFsd2F5czsNCiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lk Ow0KICAgICAgfQ0KDQogICAgICAjcHJpbnRDb250YWluZXJfMmU1OGQ5NGQ+ZGl2IGltZyB7 DQogICAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgICAgbWF4LWhlaWdodDogMTAwJTsN CiAgICAgIH0NCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVk LXN0eWxlcz0idHJ1ZSI+DQogICAgLnNjcmVlblJlYWRlcl83ZjFhZWU4ZSB7DQogICAgICBw b3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB3aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAx cHg7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgb3Zl cmZsb3c6IGhpZGRlbjsNCiAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7DQogICAgICBi b3JkZXI6IDA7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1l ZC1zdHlsZXM9InRydWUiPg0KICAgIC5wZGZPdXRlcl9jYTk3MmM5MyB7DQogICAgICBkaXNw bGF5OiAtd2Via2l0LWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAg ZGlzcGxheTogZmxleDsNCiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7DQog ICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsNCiAgICAgIC1tcy1mbGV4LWRp cmVjdGlvbjogY29sdW1uOw0KICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAg IGhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAucGRmVmlld2VyX2NhOTcyYzkzIHsNCiAg ICAgIC13ZWJraXQtYm94LWZsZXg6IDE7DQogICAgICAtbXMtZmxleDogMSAxIDBweDsNCiAg ICAgIGZsZXg6IDEgMSAwOw0KICAgICAgb3ZlcmZsb3c6IGF1dG87DQogICAgICB3aWR0aDog MTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5v bmU7DQogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgLW1zLXVzZXIt c2VsZWN0OiBub25lOw0KICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgfQ0KDQogICAg LnBkZkNvbnRlbnRfY2E5NzJjOTMgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAg ICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIG1pbi13aWR0aDogMTAwJTsNCiAgICAgIG1p bi1oZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLmZpbGxTaXplX2NhOTcyYzkzIHsNCiAg ICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5o aWRkZW5fY2E5NzJjOTMgew0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIH0NCiAg PC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAg ICAucGFnZV9hMGZiNjA0MSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBs ZWZ0OiA1MCU7DQogICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDAp Ow0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAucGFnZVRleHRfYTBmYjYw NDEgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDEwMCU7DQog ICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1s b2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5yb290X2Y0YmVmNDk1IHsNCiAgICAg IHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5saW5r X2Y0YmVmNDk1IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB9DQoNCiAgICAu bGlua19mNGJlZjQ5NSBhIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAg IHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgdmVydGljYWwtYWxp Z246IHRvcDsNCiAgICB9DQoNCiAgICAubGlua19mNGJlZjQ5NSBhOmhvdmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuMik7DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAg IC5yb290XzljMmY1NTJhIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIC5w YWdlXzljMmY1NTJhIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6 IDUwJTsNCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7DQog ICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsNCiAgICAgIC13ZWJraXQtYm94 LXNoYWRvdzogMCAwLjNweCAwLjlweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSwNCiAgICAgICAg MCAxLjZweCAzLjZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMyk7DQogICAgICBib3gtc2hhZG93 OiAwIDAuM3B4IDAuOXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpLA0KICAgICAgICAwIDEuNnB4 IDMuNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEzKTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnJvb3RfOGQ3NDQ2 YTQgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIH0NCg0KICAgIC5yb290Xzhk NzQ0NmE0IGNhbnZhcyB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB3aWR0 aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnNwaW5uZXJfMTYw ZjkxZGMgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogNTAlOw0K ICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsNCiAgICAgIHRy YW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApOw0KICAgICAgYm90dG9tOiAxN3B4Ow0KICAg ICAgbWF4LXdpZHRoOiA1MCU7DQogICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7DQogICAgICBi b3JkZXItcmFkaXVzOiAzM3B4Ow0KICAgICAgei1pbmRleDogOTk7DQogICAgfQ0KICA8L3N0 eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5y b290XzhiYTUzNzRjIHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGRpc3BsYXk6IC13 ZWJraXQtYm94Ow0KICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7DQogICAgICBkaXNwbGF5 OiBmbGV4Ow0KICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsNCiAgICAgIC13 ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9u OiBjb2x1bW47DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgIH0NCg0KICAg IC5tYWluV3JhcHBlcl84YmE1Mzc0YyB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQog ICAgICAtd2Via2l0LWJveC1mbGV4OiAxOw0KICAgICAgLW1zLWZsZXg6IDE7DQogICAgICBm bGV4OiAxOw0KICAgIH0NCg0KICAgIC5zYXZlTW9kYWxfOGJhNTM3NGMgew0KICAgICAgcG9z aXRpb246IGFic29sdXRlOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgd2lkdGg6IDEwMCU7 DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAs IDAuMik7DQogICAgfQ0KDQogICAgLm1haW5fOGJhNTM3NGMgew0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAg PHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuYm90dG9tVG9v bEFyZWFfZmIwY2UzMDEgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVm dDogNTAlOw0KICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsN CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApOw0KICAgICAgYm90dG9tOiAx N3B4Ow0KICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMt ZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtd2Via2l0LWJveC1vcmll bnQ6IHZlcnRpY2FsOw0KICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQog ICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGZsZXgtZGlyZWN0aW9u OiBjb2x1bW47DQogICAgICBnYXA6IDE2cHg7DQogICAgICAtd2Via2l0LWJveC1hbGlnbjog Y2VudGVyOw0KICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsNCiAgICAgIGFsaWduLWl0 ZW1zOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLnBsYWNlQm90dG9tVG9vbE9uVG9wX2ZiMGNl MzAxIHsNCiAgICAgIHotaW5kZXg6IDk5Ow0KICAgIH0NCg0KICAgIC5pbmtCYXJfZmIwY2Uz MDEgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiA1MCU7DQogICAg ICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOw0KICAgICAgdHJhbnNm b3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7DQogICAgICBsZWZ0OiAyMHB4Ow0KICAgIH0NCiAg PC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAg ICAud3JhcHBlcl82MTZhYmNiMCB7DQogICAgICBwYWRkaW5nOiAwIDEwcHg7DQogICAgICB6 LWluZGV4OiA5OTsNCiAgICAgIHdpZHRoOiAzNTJweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6 IDRweDsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsN CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOw0KICAgICAgdHJhbnNm b3JtLW9yaWdpbjogY2VudGVyOw0KICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsNCiAg ICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlLCAtd2Via2l0LXRy YW5zZm9ybSAzMDBtcyBlYXNlOw0KICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBl YXNlLCAtd2Via2l0LXRyYW5zZm9ybSAzMDBtcyBlYXNlOw0KICAgICAgdHJhbnNpdGlvbjog dHJhbnNmb3JtIDMwMG1zIGVhc2UsIG9wYWNpdHkgMzAwbXMgZWFzZTsNCiAgICAgIHRyYW5z aXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlLCBvcGFjaXR5IDMwMG1zIGVhc2UsDQogICAg ICAgIC13ZWJraXQtdHJhbnNmb3JtIDMwMG1zIGVhc2U7DQogICAgICAtd2Via2l0LWFuaW1h dGlvbjogdG9vbHRpcFNob3dfNjE2YWJjYjAgMzAwbXMgZWFzZSAxOw0KICAgICAgYW5pbWF0 aW9uOiB0b29sdGlwU2hvd182MTZhYmNiMCAzMDBtcyBlYXNlIDE7DQogICAgfQ0KDQogICAg LmhpZGRlbl82MTZhYmNiMCB7DQogICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkg MzAwbXMgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMzAwbXMgZWFzZTsNCiAgICAgIHRyYW5z aXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMzAwbXMgZWFz ZTsNCiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlLCBvcGFjaXR5IDMw MG1zIGVhc2U7DQogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXMgZWFzZSwgb3Bh Y2l0eSAzMDBtcyBlYXNlLA0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybSAzMDBtcyBlYXNl Ow0KICAgICAgLXdlYmtpdC1hbmltYXRpb246IHRvb2x0aXBIaWRlXzYxNmFiY2IwIDMwMG1z IGVhc2UgZm9yd2FyZHMgMTsNCiAgICAgIGFuaW1hdGlvbjogdG9vbHRpcEhpZGVfNjE2YWJj YjAgMzAwbXMgZWFzZSBmb3J3YXJkcyAxOw0KICAgIH0NCg0KICAgIC5kaXNwbGF5Tm9uZV82 MTZhYmNiMCB7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIEAtd2Via2l0 LWtleWZyYW1lcyByb3RhdGluZ182MTZhYmNiMCB7DQogICAgICBmcm9tIHsNCiAgICAgICAg LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgICAgICAgdHJhbnNmb3JtOiBy b3RhdGUoMGRlZyk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgLXdlYmtpdC10 cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOw0KICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgz NjBkZWcpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgcm90YXRpbmdfNjE2 YWJjYjAgew0KICAgICAgZnJvbSB7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3Rh dGUoMGRlZyk7DQogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOw0KICAgICAgfQ0K DQogICAgICB0byB7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVn KTsNCiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAucm90YXRlXzYxNmFiY2IwIHsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBy b3RhdGluZ182MTZhYmNiMCAxcyBsaW5lYXIgaW5maW5pdGU7DQogICAgICBhbmltYXRpb246 IHJvdGF0aW5nXzYxNmFiY2IwIDFzIGxpbmVhciBpbmZpbml0ZTsNCiAgICB9DQoNCiAgICAu dG9hc3RJbmZvXzYxNmFiY2IwIHsNCiAgICAgIGdhcDogOHB4Ow0KICAgICAgcGFkZGluZzog NnB4IDRweDsNCiAgICB9DQoNCiAgICAudG9hc3RMZWFkSWNvbkNvbnRhaW5lcl82MTZhYmNi MCwNCiAgICAudG9hc3RQb3N0SWNvbkNvbnRhaW5lcl82MTZhYmNiMCB7DQogICAgICB3aWR0 aDogMjRweDsNCiAgICAgIGhlaWdodDogMzBweDsNCiAgICAgIGRpc3BsYXk6IC13ZWJraXQt Ym94Ow0KICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7DQogICAgICBkaXNwbGF5OiBmbGV4 Ow0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOw0KICAgICAgLW1zLWZsZXgtcGFj azogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAtd2Vi a2l0LWJveC1hbGlnbjogY2VudGVyOw0KICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsN CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLnRvYXN0TGVhZElj b25Db250YWluZXJfNjE2YWJjYjAgew0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIH0N Cg0KICAgIC50b2FzdFBvc3RJY29uQ29udGFpbmVyXzYxNmFiY2IwIHsNCiAgICAgIGZvbnQt c2l6ZTogMTRweDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGJvcmRlci1yYWRp dXM6IDVweDsNCiAgICB9DQoNCiAgICAudG9hc3RUZXh0XzYxNmFiY2IwIHsNCiAgICAgIHBh ZGRpbmc6IDRweCAwOw0KICAgIH0NCg0KICAgIEAtd2Via2l0LWtleWZyYW1lcyB0b29sdGlw U2hvd182MTZhYmNiMCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAg ICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApOw0KICAg ICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApOw0KICAgICAgfQ0KICAg IH0NCg0KICAgIEBrZXlmcmFtZXMgdG9vbHRpcFNob3dfNjE2YWJjYjAgew0KICAgICAgZnJv bSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0 cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUz ZCgwLCAxMDAlLCAwKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBALXdlYmtpdC1rZXlmcmFt ZXMgdG9vbHRpcEhpZGVfNjE2YWJjYjAgew0KICAgICAgdG8gew0KICAgICAgICBvcGFjaXR5 OiAwOw0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsNCiAg ICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOw0KICAgICAgfQ0KICAgIH0NCg0K ICAgIEBrZXlmcmFtZXMgdG9vbHRpcEhpZGVfNjE2YWJjYjAgew0KICAgICAgdG8gew0KICAg ICAgICBvcGFjaXR5OiAwOw0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl WSgxMDAlKTsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOw0KICAgICAg fQ0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVz PSJ0cnVlIj4NCiAgICAudG9vbEljb25fNjQwMjQ1YTIgew0KICAgICAgaGVpZ2h0OiAwOw0K ICAgICAgcGFkZGluZzogMTVweCAyMHB4Ow0KICAgICAgbWFyZ2luOiBjYWxjKDdweCkgMDsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgICB9DQoNCiAgICAubWVudUljb25fNjQw MjQ1YTIgew0KICAgICAgaGVpZ2h0OiAwOw0KICAgICAgcGFkZGluZzogMTVweCBjYWxjKDhw eCk7DQogICAgICBtYXJnaW46IGNhbGMoN3B4KSAwOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAg PHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuaW5wdXRXcmFw cGVyXzlhZmI0MTc1IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGhl aWdodDogMTAwJTsNCiAgICB9DQoNCiAgICBpbnB1dCB7DQogICAgICBoZWlnaHQ6IDI0cHg7 DQogICAgICBib3JkZXI6IDFweCBzb2xpZDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICIjZmZmZmZmIjsNCiAgICAgIGNvbG9yOiAiIzMy MzEzMCI7DQogICAgfQ0KDQogICAgaW5wdXQ6Zm9jdXMgew0KICAgICAgb3V0bGluZTogbm9u ZTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxl cz0idHJ1ZSI+DQogICAgLnJvb3RfNDcwODBiZDQgew0KICAgICAgZGlzcGxheTogLXdlYmtp dC1pbmxpbmUtYm94Ow0KICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94Ow0KICAg ICAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogICAgICAtd2Via2l0LWJveC1hbGlnbjogY2Vu dGVyOw0KICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsNCiAgICAgIGFsaWduLWl0ZW1z OiBjZW50ZXI7DQogICAgICBwYWRkaW5nOiAwIDEwcHg7DQogICAgICB3aGl0ZS1zcGFjZTog bm93cmFwOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgYm90dG9tOiBjYWxjKDYx cHgpOw0KICAgICAgYm9yZGVyLXJhZGl1czogMjFweCAyMXB4IDAgMDsNCiAgICAgIGJvcmRl ci1ib3R0b206IDFweCBzb2xpZDsNCiAgICB9DQoNCiAgICAuZmFkZU91dF80NzA4MGJkNCB7 DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgICBvcGFjaXR5OiAwOw0KICAgICAg LXdlYmtpdC10cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciAzMDBtcywgb3BhY2l0 eSAzMDBtczsNCiAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDMwMG1z LCBvcGFjaXR5IDMwMG1zOw0KICAgIH0NCg0KICAgIC5mYWRlSW5fNDcwODBiZDQgew0KICAg ICAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgICAtd2Vi a2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDBzLCBvcGFjaXR5IDE1MG1z Ow0KICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsIG9wYWNpdHkg MTUwbXM7DQogICAgfQ0KDQogICAgLmtleXdvcmRfNDcwODBiZDQgew0KICAgICAgZGlzcGxh eTogaW5saW5lLXRhYmxlOw0KICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsNCiAg ICAgIGJvcmRlci1zcGFjaW5nOiA4cHg7DQogICAgfQ0KDQogICAgLmtleXdvcmRfNDcwODBi ZDQgaW5wdXQgew0KICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIHdpZHRoOiAx MDAlOw0KICAgICAgdGV4dC1pbmRlbnQ6IDVweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i bHRyIl0gLmtleXdvcmRfNDcwODBiZDQgaW5wdXQgew0KICAgICAgcGFkZGluZy1sZWZ0OiA0 cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5rZXl3b3JkXzQ3MDgwYmQ0IGlu cHV0IHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0ibHRyIl0gLmtleXdvcmRfNDcwODBiZDQgaW5wdXQgew0KICAgICAgcGFkZGluZy1yaWdo dDogMnB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAua2V5d29yZF80NzA4MGJk NCBpbnB1dCB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDJweDsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0ibHRyIl0gLmtleXdvcmRfNDcwODBiZDQgaW5wdXQgew0KICAgICAgdGV4dC1hbGln bjogbGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmtleXdvcmRfNDcwODBi ZDQgaW5wdXQgew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgLmtl eXdvcmRfNDcwODBiZDQgLnJlc3VsdF80NzA4MGJkNCB7DQogICAgICBkaXNwbGF5OiB0YWJs ZS1jZWxsOw0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJsdHIiXSAua2V5d29yZF80NzA4MGJkNCAucmVzdWx0XzQ3MDgwYmQ0IHsNCiAgICAg IHBhZGRpbmctbGVmdDogMTBweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmtl eXdvcmRfNDcwODBiZDQgLnJlc3VsdF80NzA4MGJkNCB7DQogICAgICBwYWRkaW5nLXJpZ2h0 OiAxMHB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQt c3R5bGVzPSJ0cnVlIj4NCiAgICAucm9vdF83MTlkMzMwZSB7DQogICAgICBkaXNwbGF5OiAt d2Via2l0LWlubGluZS1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7 DQogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgIC13ZWJraXQtYm94LWFsaWdu OiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24t aXRlbXM6IGNlbnRlcjsNCiAgICAgIHBhZGRpbmc6IDAgMTBweDsNCiAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBib3JkZXItcmFk aXVzOiAzM3B4Ow0KICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwcHggMC42cHgg MS44cHggcmdiYSgwLCAwLCAwLCAwLjEpLA0KICAgICAgICAwcHggMy4ycHggNy4ycHggcmdi YSgwLCAwLCAwLCAwLjEzKTsNCiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwLjZweCAx LjhweCByZ2JhKDAsIDAsIDAsIDAuMSksDQogICAgICAgIDBweCAzLjJweCA3LjJweCByZ2Jh KDAsIDAsIDAsIDAuMTMpOw0KICAgIH0NCg0KICAgIC5mYWRlT3V0XzcxOWQzMzBlIHsNCiAg ICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgIG9wYWNpdHk6IDA7DQogICAgICAtd2Vi a2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDMwMG1zLCBvcGFjaXR5IDMw MG1zOw0KICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIgMzAwbXMsIG9w YWNpdHkgMzAwbXM7DQogICAgfQ0KDQogICAgLmZhZGVJbl83MTlkMzMwZSB7DQogICAgICB2 aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgb3BhY2l0eTogMTsNCiAgICAgIC13ZWJraXQt dHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsIG9wYWNpdHkgMTUwbXM7DQog ICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciAwcywgb3BhY2l0eSAxNTBt czsNCiAgICB9DQoNCiAgICAucGFnaW5hdGlvbl83MTlkMzMwZSB7DQogICAgICBkaXNwbGF5 OiBpbmxpbmUtdGFibGU7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5wYWdpbmF0 aW9uXzcxOWQzMzBlIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAucGFnaW5hdGlvbl83MTlkMzMwZSB7DQogICAgICBtYXJnaW4t cmlnaHQ6IDEwcHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5wYWdpbmF0aW9u XzcxOWQzMzBlIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5wYWdpbmF0aW9uXzcxOWQzMzBlIHsNCiAgICAgIHBhZGRpbmct bGVmdDogMTBweDsNCiAgICB9DQoNCiAgICAucGFnaW5hdGlvbl83MTlkMzMwZSBpbnB1dCB7 DQogICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOw0KICAgICAgd2lkdGg6IDMwcHg7DQogICAg ICBwYWRkaW5nOiAwIDJweDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICB9DQoN CiAgICAucGFnaW5hdGlvbl83MTlkMzMwZSAuc3RhdHVzXzcxOWQzMzBlIHsNCiAgICAgIGRp c3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgfQ0K DQogICAgLnNsYXNoXzcxOWQzMzBlIHsNCiAgICAgIHBhZGRpbmc6IDAgNXB4Ow0KICAgIH0N Cg0KICAgIC5leHBhbmRlZF83MTlkMzMwZSB7DQogICAgICBib3JkZXItcmFkaXVzOiAwIDAg MjFweCAyMXB4Ow0KICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOw0KICAgICAgYm94 LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICAuc2hhZG93Qm94XzcxOWQzMzBlIHsNCiAg ICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMHB4IDAuNnB4IDEuOHB4IHJnYmEoMCwg MCwgMCwgMC4xKSwNCiAgICAgICAgMHB4IDMuMnB4IDcuMnB4IHJnYmEoMCwgMCwgMCwgMC4x Myk7DQogICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMC42cHggMS44cHggcmdiYSgwLCAw LCAwLCAwLjEpLA0KICAgICAgICAwcHggMy4ycHggNy4ycHggcmdiYSgwLCAwLCAwLCAwLjEz KTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDIxcHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8 c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5lbnRlclBhbmVs XzI3MDQzNDAzIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDUw JTsNCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7DQogICAg ICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsNCiAgICAgIHRvcDogNTAlOw0KICAg ICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICAgIHRy YW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KICAgICAgdGV4dC1hbGlnbjogY2Vu dGVyOw0KICAgIH0NCg0KICAgIC5wcm9tcHRfMjcwNDM0MDMgew0KICAgICAgbWFyZ2luLWJv dHRvbTogMTBweDsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICB9DQogIDwvc3R5bGU+ DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kUGRm Vmlld2VyX2E0NmUxMTJiIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAx MDAlOw0KICAgIH0NCiAgPC9zdHlsZT4NCjwvaGVhZD4NCg0KPGJvZHk+DQogIDxub3Njcmlw dD5Zb3UgbmVlZCB0byBlbmFibGUgSmF2YVNjcmlwdCB0byBydW4gdGhpcyBhcHAuPC9ub3Nj cmlwdD4NCiAgPGRpdiBpZD0icm9vdCI+PC9kaXY+DQo8L2JvZHk+DQoNCjxzY3JpcHQgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgLyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBs ZWFzZSBzZWUgbWFpbi4yMTljZGQzNy5qcy5MSUNFTlNFLnR4dCAqLw0KICAoKCkgPT4gew0K ICAgICJ1c2Ugc3RyaWN0IjsNCiAgICB2YXIgZSA9IHsNCiAgICAgIDExMDogKGUsIHQsIG4p ID0+IHsNCiAgICAgICAgdmFyIHIgPSBuKDMwOSksDQogICAgICAgICAgbyA9IHsNCiAgICAg ICAgICAgIGNoaWxkQ29udGV4dFR5cGVzOiAhMCwNCiAgICAgICAgICAgIGNvbnRleHRUeXBl OiAhMCwNCiAgICAgICAgICAgIGNvbnRleHRUeXBlczogITAsDQogICAgICAgICAgICBkZWZh dWx0UHJvcHM6ICEwLA0KICAgICAgICAgICAgZGlzcGxheU5hbWU6ICEwLA0KICAgICAgICAg ICAgZ2V0RGVmYXVsdFByb3BzOiAhMCwNCiAgICAgICAgICAgIGdldERlcml2ZWRTdGF0ZUZy b21FcnJvcjogITAsDQogICAgICAgICAgICBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM6ICEw LA0KICAgICAgICAgICAgbWl4aW5zOiAhMCwNCiAgICAgICAgICAgIHByb3BUeXBlczogITAs DQogICAgICAgICAgICB0eXBlOiAhMCwNCiAgICAgICAgICB9LA0KICAgICAgICAgIGEgPSB7 IG5hbWU6ICEwLCBsZW5ndGg6ICEwLCBwcm90b3R5cGU6ICEwLCBjYWxsZXI6ICEwLCBjYWxs ZWU6ICEwLCBhcmd1bWVudHM6ICEwLCBhcml0eTogITAgfSwNCiAgICAgICAgICBpID0geyAk JHR5cGVvZjogITAsIGNvbXBhcmU6ICEwLCBkZWZhdWx0UHJvcHM6ICEwLCBkaXNwbGF5TmFt ZTogITAsIHByb3BUeXBlczogITAsIHR5cGU6ICEwIH0sDQogICAgICAgICAgbCA9IHt9Ow0K ICAgICAgICBmdW5jdGlvbiBzKGUpIHsNCiAgICAgICAgICByZXR1cm4gci5pc01lbW8oZSkg PyBpIDogbFtlLiQkdHlwZW9mXSB8fCBvOw0KICAgICAgICB9DQogICAgICAgIChsW3IuRm9y d2FyZFJlZl0gPSB7ICQkdHlwZW9mOiAhMCwgcmVuZGVyOiAhMCwgZGVmYXVsdFByb3BzOiAh MCwgZGlzcGxheU5hbWU6ICEwLCBwcm9wVHlwZXM6ICEwIH0pLCAobFtyLk1lbW9dID0gaSk7 DQogICAgICAgIHZhciB1ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5LA0KICAgICAgICAgIGMg PSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcywNCiAgICAgICAgICBkID0gT2JqZWN0Lmdl dE93blByb3BlcnR5U3ltYm9scywNCiAgICAgICAgICBmID0gT2JqZWN0LmdldE93blByb3Bl cnR5RGVzY3JpcHRvciwNCiAgICAgICAgICBwID0gT2JqZWN0LmdldFByb3RvdHlwZU9mLA0K ICAgICAgICAgIGggPSBPYmplY3QucHJvdG90eXBlOw0KICAgICAgICBlLmV4cG9ydHMgPSBm dW5jdGlvbiBlKHQsIG4sIHIpIHsNCiAgICAgICAgICBpZiAoInN0cmluZyIgIT09IHR5cGVv ZiBuKSB7DQogICAgICAgICAgICBpZiAoaCkgew0KICAgICAgICAgICAgICB2YXIgbyA9IHAo bik7DQogICAgICAgICAgICAgIG8gJiYgbyAhPT0gaCAmJiBlKHQsIG8sIHIpOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgdmFyIGkgPSBjKG4pOw0KICAgICAgICAgICAgZCAmJiAo aSA9IGkuY29uY2F0KGQobikpKTsNCiAgICAgICAgICAgIGZvciAodmFyIGwgPSBzKHQpLCBt ID0gcyhuKSwgZyA9IDA7IGcgPCBpLmxlbmd0aDsgKytnKSB7DQogICAgICAgICAgICAgIHZh ciB2ID0gaVtnXTsNCiAgICAgICAgICAgICAgaWYgKCFhW3ZdICYmICghciB8fCAhclt2XSkg JiYgKCFtIHx8ICFtW3ZdKSAmJiAoIWwgfHwgIWxbdl0pKSB7DQogICAgICAgICAgICAgICAg dmFyIHkgPSBmKG4sIHYpOw0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg ICAgICB1KHQsIHYsIHkpOw0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGIpIHsgfQ0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIHJl dHVybiB0Ow0KICAgICAgICB9Ow0KICAgICAgfSwNCiAgICAgIDc0NjogKGUsIHQpID0+IHsN CiAgICAgICAgdmFyIG4gPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgU3ltYm9sICYmIFN5bWJv bC5mb3IsDQogICAgICAgICAgciA9IG4gPyBTeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50Iikg OiA2MDEwMywNCiAgICAgICAgICBvID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIp IDogNjAxMDYsDQogICAgICAgICAgYSA9IG4gPyBTeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVu dCIpIDogNjAxMDcsDQogICAgICAgICAgaSA9IG4gPyBTeW1ib2wuZm9yKCJyZWFjdC5zdHJp Y3RfbW9kZSIpIDogNjAxMDgsDQogICAgICAgICAgbCA9IG4gPyBTeW1ib2wuZm9yKCJyZWFj dC5wcm9maWxlciIpIDogNjAxMTQsDQogICAgICAgICAgcyA9IG4gPyBTeW1ib2wuZm9yKCJy ZWFjdC5wcm92aWRlciIpIDogNjAxMDksDQogICAgICAgICAgdSA9IG4gPyBTeW1ib2wuZm9y KCJyZWFjdC5jb250ZXh0IikgOiA2MDExMCwNCiAgICAgICAgICBjID0gbiA/IFN5bWJvbC5m b3IoInJlYWN0LmFzeW5jX21vZGUiKSA6IDYwMTExLA0KICAgICAgICAgIGQgPSBuID8gU3lt Ym9sLmZvcigicmVhY3QuY29uY3VycmVudF9tb2RlIikgOiA2MDExMSwNCiAgICAgICAgICBm ID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIikgOiA2MDExMiwNCiAgICAg ICAgICBwID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIikgOiA2MDExMywNCiAg ICAgICAgICBoID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSA6IDYw MTIwLA0KICAgICAgICAgIG0gPSBuID8gU3ltYm9sLmZvcigicmVhY3QubWVtbyIpIDogNjAx MTUsDQogICAgICAgICAgZyA9IG4gPyBTeW1ib2wuZm9yKCJyZWFjdC5sYXp5IikgOiA2MDEx NiwNCiAgICAgICAgICB2ID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LmJsb2NrIikgOiA2MDEy MSwNCiAgICAgICAgICB5ID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LmZ1bmRhbWVudGFsIikg OiA2MDExNywNCiAgICAgICAgICBiID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LnJlc3BvbmRl ciIpIDogNjAxMTgsDQogICAgICAgICAgdyA9IG4gPyBTeW1ib2wuZm9yKCJyZWFjdC5zY29w ZSIpIDogNjAxMTk7DQogICAgICAgIGZ1bmN0aW9uIHgoZSkgew0KICAgICAgICAgIGlmICgi b2JqZWN0IiA9PT0gdHlwZW9mIGUgJiYgbnVsbCAhPT0gZSkgew0KICAgICAgICAgICAgdmFy IHQgPSBlLiQkdHlwZW9mOw0KICAgICAgICAgICAgc3dpdGNoICh0KSB7DQogICAgICAgICAg ICAgIGNhc2UgcjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKChlID0gZS50eXBlKSkgew0K ICAgICAgICAgICAgICAgICAgY2FzZSBjOg0KICAgICAgICAgICAgICAgICAgY2FzZSBkOg0K ICAgICAgICAgICAgICAgICAgY2FzZSBhOg0KICAgICAgICAgICAgICAgICAgY2FzZSBsOg0K ICAgICAgICAgICAgICAgICAgY2FzZSBpOg0KICAgICAgICAgICAgICAgICAgY2FzZSBwOg0K ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgICAgICAgICAgIGRlZmF1 bHQ6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGUgPSBlICYmIGUuJCR0eXBlb2Yp KSB7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSB1Og0KICAgICAgICAgICAgICAgICAg ICAgIGNhc2UgZjoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIGc6DQogICAgICAgICAg ICAgICAgICAgICAgY2FzZSBtOg0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgczoNCiAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICAgICAgICAgICAgICAg IGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsNCiAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgY2FzZSBv Og0KICAgICAgICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAg IH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBTKGUpIHsNCiAgICAgICAgICByZXR1 cm4geChlKSA9PT0gZDsNCiAgICAgICAgfQ0KICAgICAgICAodC5Bc3luY01vZGUgPSBjKSwN CiAgICAgICAgICAodC5Db25jdXJyZW50TW9kZSA9IGQpLA0KICAgICAgICAgICh0LkNvbnRl eHRDb25zdW1lciA9IHUpLA0KICAgICAgICAgICh0LkNvbnRleHRQcm92aWRlciA9IHMpLA0K ICAgICAgICAgICh0LkVsZW1lbnQgPSByKSwNCiAgICAgICAgICAodC5Gb3J3YXJkUmVmID0g ZiksDQogICAgICAgICAgKHQuRnJhZ21lbnQgPSBhKSwNCiAgICAgICAgICAodC5MYXp5ID0g ZyksDQogICAgICAgICAgKHQuTWVtbyA9IG0pLA0KICAgICAgICAgICh0LlBvcnRhbCA9IG8p LA0KICAgICAgICAgICh0LlByb2ZpbGVyID0gbCksDQogICAgICAgICAgKHQuU3RyaWN0TW9k ZSA9IGkpLA0KICAgICAgICAgICh0LlN1c3BlbnNlID0gcCksDQogICAgICAgICAgKHQuaXNB c3luY01vZGUgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIFMoZSkgfHwg eChlKSA9PT0gYzsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC5pc0NvbmN1cnJlbnRN b2RlID0gUyksDQogICAgICAgICAgKHQuaXNDb250ZXh0Q29uc3VtZXIgPSBmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgICAgcmV0dXJuIHgoZSkgPT09IHU7DQogICAgICAgICAgfSksDQog ICAgICAgICAgKHQuaXNDb250ZXh0UHJvdmlkZXIgPSBmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgICAgcmV0dXJuIHgoZSkgPT09IHM7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQu aXNFbGVtZW50ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAib2JqZWN0 IiA9PT0gdHlwZW9mIGUgJiYgbnVsbCAhPT0gZSAmJiBlLiQkdHlwZW9mID09PSByOw0KICAg ICAgICAgIH0pLA0KICAgICAgICAgICh0LmlzRm9yd2FyZFJlZiA9IGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gZjsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICAodC5pc0ZyYWdtZW50ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVy biB4KGUpID09PSBhOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LmlzTGF6eSA9IGZ1 bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gZzsNCiAgICAgICAg ICB9KSwNCiAgICAgICAgICAodC5pc01lbW8gPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAg ICAgcmV0dXJuIHgoZSkgPT09IG07DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuaXNQ b3J0YWwgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIHgoZSkgPT09IG87 DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuaXNQcm9maWxlciA9IGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gbDsNCiAgICAgICAgICB9KSwNCiAg ICAgICAgICAodC5pc1N0cmljdE1vZGUgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAg cmV0dXJuIHgoZSkgPT09IGk7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuaXNTdXNw ZW5zZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gcDsN CiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC5pc1ZhbGlkRWxlbWVudFR5cGUgPSBmdW5j dGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgInN0cmlu ZyIgPT09IHR5cGVvZiBlIHx8DQogICAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVv ZiBlIHx8DQogICAgICAgICAgICAgIGUgPT09IGEgfHwNCiAgICAgICAgICAgICAgZSA9PT0g ZCB8fA0KICAgICAgICAgICAgICBlID09PSBsIHx8DQogICAgICAgICAgICAgIGUgPT09IGkg fHwNCiAgICAgICAgICAgICAgZSA9PT0gcCB8fA0KICAgICAgICAgICAgICBlID09PSBoIHx8 DQogICAgICAgICAgICAgICgib2JqZWN0IiA9PT0gdHlwZW9mIGUgJiYNCiAgICAgICAgICAg ICAgICBudWxsICE9PSBlICYmDQogICAgICAgICAgICAgICAgKGUuJCR0eXBlb2YgPT09IGcg fHwgZS4kJHR5cGVvZiA9PT0gbSB8fCBlLiQkdHlwZW9mID09PSBzIHx8IGUuJCR0eXBlb2Yg PT09IHUgfHwgZS4kJHR5cGVvZiA9PT0gZiB8fCBlLiQkdHlwZW9mID09PSB5IHx8IGUuJCR0 eXBlb2YgPT09IGIgfHwgZS4kJHR5cGVvZiA9PT0gdyB8fCBlLiQkdHlwZW9mID09PSB2KSkN CiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudHlwZU9mID0g eCk7DQogICAgICB9LA0KICAgICAgMzA5OiAoZSwgdCwgbikgPT4gew0KICAgICAgICBlLmV4 cG9ydHMgPSBuKDc0Nik7DQogICAgICB9LA0KICAgICAgNDYzOiAoZSwgdCwgbikgPT4gew0K ICAgICAgICB2YXIgciA9IG4oNzkxKSwNCiAgICAgICAgICBvID0gbigyOTYpOw0KICAgICAg ICBmdW5jdGlvbiBhKGUpIHsNCiAgICAgICAgICBmb3IgKHZhciB0ID0gImh0dHBzOi8vcmVh Y3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PSIgKyBlLCBuID0g MTsgbiA8IGFyZ3VtZW50cy5sZW5ndGg7IG4rKykgdCArPSAiJmFyZ3NbXT0iICsgZW5jb2Rl VVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSk7DQogICAgICAgICAgcmV0dXJuICJNaW5pZmll ZCBSZWFjdCBlcnJvciAjIiArIGUgKyAiOyB2aXNpdCAiICsgdCArICIgZm9yIHRoZSBmdWxs IG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBm dWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiI7DQogICAgICAg IH0NCiAgICAgICAgdmFyIGkgPSBuZXcgU2V0KCksDQogICAgICAgICAgbCA9IHt9Ow0KICAg ICAgICBmdW5jdGlvbiBzKGUsIHQpIHsNCiAgICAgICAgICB1KGUsIHQpLCB1KGUgKyAiQ2Fw dHVyZSIsIHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHUoZSwgdCkgew0KICAg ICAgICAgIGZvciAobFtlXSA9IHQsIGUgPSAwOyBlIDwgdC5sZW5ndGg7IGUrKykgaS5hZGQo dFtlXSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGMgPSAhKCJ1bmRlZmluZWQiID09PSB0 eXBlb2Ygd2luZG93IHx8ICJ1bmRlZmluZWQiID09PSB0eXBlb2Ygd2luZG93LmRvY3VtZW50 IHx8ICJ1bmRlZmluZWQiID09PSB0eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1l bnQpLA0KICAgICAgICAgIGQgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LA0K ICAgICAgICAgIGYgPSAvXls6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUw MEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3 MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAt XHVGRkZEXVs6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJG Rlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZc dTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXC0u MC05XHUwMEI3XHUwMzAwLVx1MDM2Rlx1MjAzRi1cdTIwNDBdKiQvLA0KICAgICAgICAgIHAg PSB7fSwNCiAgICAgICAgICBoID0ge307DQogICAgICAgIGZ1bmN0aW9uIG0oZSwgdCwgbiwg ciwgbywgYSwgaSkgew0KICAgICAgICAgICh0aGlzLmFjY2VwdHNCb29sZWFucyA9IDIgPT09 IHQgfHwgMyA9PT0gdCB8fCA0ID09PSB0KSwNCiAgICAgICAgICAgICh0aGlzLmF0dHJpYnV0 ZU5hbWUgPSByKSwNCiAgICAgICAgICAgICh0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZSA9IG8p LA0KICAgICAgICAgICAgKHRoaXMubXVzdFVzZVByb3BlcnR5ID0gbiksDQogICAgICAgICAg ICAodGhpcy5wcm9wZXJ0eU5hbWUgPSBlKSwNCiAgICAgICAgICAgICh0aGlzLnR5cGUgPSB0 KSwNCiAgICAgICAgICAgICh0aGlzLnNhbml0aXplVVJMID0gYSksDQogICAgICAgICAgICAo dGhpcy5yZW1vdmVFbXB0eVN0cmluZyA9IGkpOw0KICAgICAgICB9DQogICAgICAgIHZhciBn ID0ge307DQogICAgICAgICJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZh dWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRh YmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGUiLnNwbGl0KCIgIiku Zm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgIGdbZV0gPSBuZXcgbShlLCAwLCAh MSwgZSwgbnVsbCwgITEsICExKTsNCiAgICAgICAgfSksDQogICAgICAgICAgWw0KICAgICAg ICAgICAgWyJhY2NlcHRDaGFyc2V0IiwgImFjY2VwdC1jaGFyc2V0Il0sDQogICAgICAgICAg ICBbImNsYXNzTmFtZSIsICJjbGFzcyJdLA0KICAgICAgICAgICAgWyJodG1sRm9yIiwgImZv ciJdLA0KICAgICAgICAgICAgWyJodHRwRXF1aXYiLCAiaHR0cC1lcXVpdiJdLA0KICAgICAg ICAgIF0uZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgdmFyIHQgPSBlWzBd Ow0KICAgICAgICAgICAgZ1t0XSA9IG5ldyBtKHQsIDEsICExLCBlWzFdLCBudWxsLCAhMSwg ITEpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIFsiY29udGVudEVkaXRhYmxlIiwgImRy YWdnYWJsZSIsICJzcGVsbENoZWNrIiwgInZhbHVlIl0uZm9yRWFjaChmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgICAgZ1tlXSA9IG5ldyBtKGUsIDIsICExLCBlLnRvTG93ZXJDYXNlKCks IG51bGwsICExLCAhMSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgWyJhdXRvUmV2ZXJz ZSIsICJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiwgImZvY3VzYWJsZSIsICJwcmVzZXJ2 ZUFscGhhIl0uZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgZ1tlXSA9IG5l dyBtKGUsIDIsICExLCBlLCBudWxsLCAhMSwgITEpOw0KICAgICAgICAgIH0pLA0KICAgICAg ICAgICJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xz IGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZGlzYWJs ZVJlbW90ZVBsYXliYWNrIGZvcm1Ob1ZhbGlkYXRlIGhpZGRlbiBsb29wIG5vTW9kdWxlIG5v VmFsaWRhdGUgb3BlbiBwbGF5c0lubGluZSByZWFkT25seSByZXF1aXJlZCByZXZlcnNlZCBz Y29wZWQgc2VhbWxlc3MgaXRlbVNjb3BlIg0KICAgICAgICAgICAgLnNwbGl0KCIgIikNCiAg ICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGdbZV0g PSBuZXcgbShlLCAzLCAhMSwgZS50b0xvd2VyQ2FzZSgpLCBudWxsLCAhMSwgITEpOw0KICAg ICAgICAgICAgfSksDQogICAgICAgICAgWyJjaGVja2VkIiwgIm11bHRpcGxlIiwgIm11dGVk IiwgInNlbGVjdGVkIl0uZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgZ1tl XSA9IG5ldyBtKGUsIDMsICEwLCBlLCBudWxsLCAhMSwgITEpOw0KICAgICAgICAgIH0pLA0K ICAgICAgICAgIFsiY2FwdHVyZSIsICJkb3dubG9hZCJdLmZvckVhY2goZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgIGdbZV0gPSBuZXcgbShlLCA0LCAhMSwgZSwgbnVsbCwgITEsICEx KTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBbImNvbHMiLCAicm93cyIsICJzaXplIiwg InNwYW4iXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBnW2VdID0gbmV3 IG0oZSwgNiwgITEsIGUsIG51bGwsICExLCAhMSk7DQogICAgICAgICAgfSksDQogICAgICAg ICAgWyJyb3dTcGFuIiwgInN0YXJ0Il0uZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgICAgZ1tlXSA9IG5ldyBtKGUsIDUsICExLCBlLnRvTG93ZXJDYXNlKCksIG51bGwsICEx LCAhMSk7DQogICAgICAgICAgfSk7DQogICAgICAgIHZhciB2ID0gL1tcLTpdKFthLXpdKS9n Ow0KICAgICAgICBmdW5jdGlvbiB5KGUpIHsNCiAgICAgICAgICByZXR1cm4gZVsxXS50b1Vw cGVyQ2FzZSgpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGIoZSwgdCwgbiwgcikg ew0KICAgICAgICAgIHZhciBvID0gZy5oYXNPd25Qcm9wZXJ0eSh0KSA/IGdbdF0gOiBudWxs Ow0KICAgICAgICAgIChudWxsICE9PSBvID8gMCAhPT0gby50eXBlIDogciB8fCAhKDIgPCB0 Lmxlbmd0aCkgfHwgKCJvIiAhPT0gdFswXSAmJiAiTyIgIT09IHRbMF0pIHx8ICgibiIgIT09 IHRbMV0gJiYgIk4iICE9PSB0WzFdKSkgJiYNCiAgICAgICAgICAgICgoZnVuY3Rpb24gKGUs IHQsIG4sIHIpIHsNCiAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgIG51bGwg PT09IHQgfHwNCiAgICAgICAgICAgICAgICAidW5kZWZpbmVkIiA9PT0gdHlwZW9mIHQgfHwN CiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAg ICAgICAgIGlmIChudWxsICE9PSBuICYmIDAgPT09IG4udHlwZSkgcmV0dXJuICExOw0KICAg ICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgdCkgew0KICAgICAgICAgICAgICAgICAg ICBjYXNlICJmdW5jdGlvbiI6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6 DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICAgICAgICAgICAg ICBjYXNlICJib29sZWFuIjoNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXIgJiYg KG51bGwgIT09IG4gPyAhbi5hY2NlcHRzQm9vbGVhbnMgOiAiZGF0YS0iICE9PSAoZSA9IGUu dG9Mb3dlckNhc2UoKS5zbGljZSgwLCA1KSkgJiYgImFyaWEtIiAhPT0gZSk7DQogICAgICAg ICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEx Ow0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pKGUsIHQsIG4sIHIp DQogICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICByZXR1cm4gITA7DQogICAgICAg ICAgICAgIGlmIChyKSByZXR1cm4gITE7DQogICAgICAgICAgICAgIGlmIChudWxsICE9PSBu KQ0KICAgICAgICAgICAgICAgIHN3aXRjaCAobi50eXBlKSB7DQogICAgICAgICAgICAgICAg ICBjYXNlIDM6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAhdDsNCiAgICAgICAgICAg ICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICExID09PSB0Ow0K ICAgICAgICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4g aXNOYU4odCk7DQogICAgICAgICAgICAgICAgICBjYXNlIDY6DQogICAgICAgICAgICAgICAg ICAgIHJldHVybiBpc05hTih0KSB8fCAxID4gdDsNCiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgIHJldHVybiAhMTsNCiAgICAgICAgICAgIH0pKHQsIG4sIG8sIHIpICYmIChu ID0gbnVsbCksDQogICAgICAgICAgICAgIHIgfHwgbnVsbCA9PT0gbw0KICAgICAgICAgICAg ICAgID8gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICByZXR1cm4gISFkLmNh bGwoaCwgZSkgfHwgKCFkLmNhbGwocCwgZSkgJiYgKGYudGVzdChlKSA/IChoW2VdID0gITAp IDogKChwW2VdID0gITApLCAhMSkpKTsNCiAgICAgICAgICAgICAgICB9KSh0KSAmJiAobnVs bCA9PT0gbiA/IGUucmVtb3ZlQXR0cmlidXRlKHQpIDogZS5zZXRBdHRyaWJ1dGUodCwgIiIg KyBuKSkNCiAgICAgICAgICAgICAgICA6IG8ubXVzdFVzZVByb3BlcnR5DQogICAgICAgICAg ICAgICAgICA/IChlW28ucHJvcGVydHlOYW1lXSA9IG51bGwgPT09IG4gPyAzICE9PSBvLnR5 cGUgJiYgIiIgOiBuKQ0KICAgICAgICAgICAgICAgICAgOiAoKHQgPSBvLmF0dHJpYnV0ZU5h bWUpLA0KICAgICAgICAgICAgICAgICAgICAociA9IG8uYXR0cmlidXRlTmFtZXNwYWNlKSwN CiAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gbiA/IGUucmVtb3ZlQXR0cmlidXRlKHQp IDogKChuID0gMyA9PT0gKG8gPSBvLnR5cGUpIHx8ICg0ID09PSBvICYmICEwID09PSBuKSA/ ICIiIDogIiIgKyBuKSwgciA/IGUuc2V0QXR0cmlidXRlTlMociwgdCwgbikgOiBlLnNldEF0 dHJpYnV0ZSh0LCBuKSkpKTsNCiAgICAgICAgfQ0KICAgICAgICAiYWNjZW50LWhlaWdodCBh bGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdo dCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJw b2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50 LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxv b2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXpl LWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWln aHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVu dGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRl cmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1t aWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBw YWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNo YXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBv c2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tl LWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRl cmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRl Y29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10 aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxw aGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3It ZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3Bh Y2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiDQogICAgICAgICAgLnNw bGl0KCIgIikNCiAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAg ICAgdmFyIHQgPSBlLnJlcGxhY2UodiwgeSk7DQogICAgICAgICAgICBnW3RdID0gbmV3IG0o dCwgMSwgITEsIGUsIG51bGwsICExLCAhMSk7DQogICAgICAgICAgfSksDQogICAgICAgICAg InhsaW5rOmFjdHVhdGUgeGxpbms6YXJjcm9sZSB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxp bms6dGl0bGUgeGxpbms6dHlwZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICB2YXIgdCA9IGUucmVwbGFjZSh2LCB5KTsNCiAgICAgICAgICAgIGdb dF0gPSBuZXcgbSh0LCAxLCAhMSwgZSwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsi LCAhMSwgITEpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIFsieG1sOmJhc2UiLCAieG1s OmxhbmciLCAieG1sOnNwYWNlIl0uZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAg ICAgdmFyIHQgPSBlLnJlcGxhY2UodiwgeSk7DQogICAgICAgICAgICBnW3RdID0gbmV3IG0o dCwgMSwgITEsIGUsICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCAh MSwgITEpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIFsidGFiSW5kZXgiLCAiY3Jvc3NP cmlnaW4iXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBnW2VdID0gbmV3 IG0oZSwgMSwgITEsIGUudG9Mb3dlckNhc2UoKSwgbnVsbCwgITEsICExKTsNCiAgICAgICAg ICB9KSwNCiAgICAgICAgICAoZy54bGlua0hyZWYgPSBuZXcgbSgieGxpbmtIcmVmIiwgMSwg ITEsICJ4bGluazpocmVmIiwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCAhMCwg ITEpKSwNCiAgICAgICAgICBbInNyYyIsICJocmVmIiwgImFjdGlvbiIsICJmb3JtQWN0aW9u Il0uZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgZ1tlXSA9IG5ldyBtKGUs IDEsICExLCBlLnRvTG93ZXJDYXNlKCksIG51bGwsICEwLCAhMCk7DQogICAgICAgICAgfSk7 DQogICAgICAgIHZhciB3ID0gci5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9Z T1VfV0lMTF9CRV9GSVJFRCwNCiAgICAgICAgICB4ID0gU3ltYm9sLmZvcigicmVhY3QuZWxl bWVudCIpLA0KICAgICAgICAgIFMgPSBTeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSwNCiAg ICAgICAgICBrID0gU3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSwNCiAgICAgICAgICBF ID0gU3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSwNCiAgICAgICAgICBDID0gU3lt Ym9sLmZvcigicmVhY3QucHJvZmlsZXIiKSwNCiAgICAgICAgICBSID0gU3ltYm9sLmZvcigi cmVhY3QucHJvdmlkZXIiKSwNCiAgICAgICAgICBfID0gU3ltYm9sLmZvcigicmVhY3QuY29u dGV4dCIpLA0KICAgICAgICAgIFAgPSBTeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIp LA0KICAgICAgICAgIE8gPSBTeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLA0KICAgICAg ICAgIE4gPSBTeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0IiksDQogICAgICAgICAg VCA9IFN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSwNCiAgICAgICAgICBBID0gU3ltYm9sLmZv cigicmVhY3QubGF6eSIpOw0KICAgICAgICBTeW1ib2wuZm9yKCJyZWFjdC5zY29wZSIpLCBT eW1ib2wuZm9yKCJyZWFjdC5kZWJ1Z190cmFjZV9tb2RlIik7DQogICAgICAgIHZhciBNID0g U3ltYm9sLmZvcigicmVhY3Qub2Zmc2NyZWVuIik7DQogICAgICAgIFN5bWJvbC5mb3IoInJl YWN0LmxlZ2FjeV9oaWRkZW4iKSwgU3ltYm9sLmZvcigicmVhY3QuY2FjaGUiKSwgU3ltYm9s LmZvcigicmVhY3QudHJhY2luZ19tYXJrZXIiKTsNCiAgICAgICAgdmFyIHogPSBTeW1ib2wu aXRlcmF0b3I7DQogICAgICAgIGZ1bmN0aW9uIGooZSkgew0KICAgICAgICAgIHJldHVybiBu dWxsID09PSBlIHx8ICJvYmplY3QiICE9PSB0eXBlb2YgZSA/IG51bGwgOiAiZnVuY3Rpb24i ID09PSB0eXBlb2YgKGUgPSAoeiAmJiBlW3pdKSB8fCBlWyJAQGl0ZXJhdG9yIl0pID8gZSA6 IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEksDQogICAgICAgICAgTCA9IE9iamVj dC5hc3NpZ247DQogICAgICAgIGZ1bmN0aW9uIEYoZSkgew0KICAgICAgICAgIGlmICh2b2lk IDAgPT09IEkpDQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICB0aHJvdyBFcnJv cigpOw0KICAgICAgICAgICAgfSBjYXRjaCAobikgew0KICAgICAgICAgICAgICB2YXIgdCA9 IG4uc3RhY2sudHJpbSgpLm1hdGNoKC9cbiggKihhdCApPykvKTsNCiAgICAgICAgICAgICAg SSA9ICh0ICYmIHRbMV0pIHx8ICIiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIHJldHVy biAiXG4iICsgSSArIGU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEIgPSAhMTsNCiAgICAg ICAgZnVuY3Rpb24gRChlLCB0KSB7DQogICAgICAgICAgaWYgKCFlIHx8IEIpIHJldHVybiAi IjsNCiAgICAgICAgICBCID0gITA7DQogICAgICAgICAgdmFyIG4gPSBFcnJvci5wcmVwYXJl U3RhY2tUcmFjZTsNCiAgICAgICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHZvaWQg MDsNCiAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgaWYgKHQpDQogICAgICAgICAgICAg IGlmICgNCiAgICAgICAgICAgICAgICAoKHQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAg ICAgICAgICB0aHJvdyBFcnJvcigpOw0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCAicHJvcHMiLCB7 DQogICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAg ICAgICAgICAgIHRocm93IEVycm9yKCk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAg ICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICJvYmplY3QiID09PSB0eXBl b2YgUmVmbGVjdCAmJiBSZWZsZWN0LmNvbnN0cnVjdCkNCiAgICAgICAgICAgICAgKSB7DQog ICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIFJlZmxlY3QuY29uc3Ry dWN0KHQsIFtdKTsNCiAgICAgICAgICAgICAgICB9IGNhdGNoICh1KSB7DQogICAgICAgICAg ICAgICAgICB2YXIgciA9IHU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IFJlZmxlY3QuY29uc3RydWN0KGUsIFtdLCB0KTsNCiAgICAgICAgICAgICAgfSBlbHNlIHsN CiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgdC5jYWxsKCk7DQog ICAgICAgICAgICAgICAgfSBjYXRjaCAodSkgew0KICAgICAgICAgICAgICAgICAgciA9IHU7 DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGUuY2FsbCh0LnByb3RvdHlw ZSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAg ICB0cnkgew0KICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7DQogICAgICAgICAgICAg IH0gY2F0Y2ggKHUpIHsNCiAgICAgICAgICAgICAgICByID0gdTsNCiAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICBlKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSBjYXRj aCAodSkgew0KICAgICAgICAgICAgaWYgKHUgJiYgciAmJiAic3RyaW5nIiA9PT0gdHlwZW9m IHUuc3RhY2spIHsNCiAgICAgICAgICAgICAgZm9yICh2YXIgbyA9IHUuc3RhY2suc3BsaXQo IlxuIiksIGEgPSByLnN0YWNrLnNwbGl0KCJcbiIpLCBpID0gby5sZW5ndGggLSAxLCBsID0g YS5sZW5ndGggLSAxOyAxIDw9IGkgJiYgMCA8PSBsICYmIG9baV0gIT09IGFbbF07KSBsLS07 DQogICAgICAgICAgICAgIGZvciAoOyAxIDw9IGkgJiYgMCA8PSBsOyBpLS0sIGwtLSkNCiAg ICAgICAgICAgICAgICBpZiAob1tpXSAhPT0gYVtsXSkgew0KICAgICAgICAgICAgICAgICAg aWYgKDEgIT09IGkgfHwgMSAhPT0gbCkNCiAgICAgICAgICAgICAgICAgICAgZG8gew0KICAg ICAgICAgICAgICAgICAgICAgIGlmICgoaS0tLCAwID4gLS1sIHx8IG9baV0gIT09IGFbbF0p KSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcyA9ICJcbiIgKyBvW2ldLnJlcGxh Y2UoIiBhdCBuZXcgIiwgIiBhdCAiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biBlLmRpc3BsYXlOYW1lICYmIHMuaW5jbHVkZXMoIjxhbm9ueW1vdXM+IikgJiYgKHMgPSBz LnJlcGxhY2UoIjxhbm9ueW1vdXM+IiwgZS5kaXNwbGF5TmFtZSkpLCBzOw0KICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoMSA8PSBpICYm IDAgPD0gbCk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICB9DQogICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIChC ID0gITEpLCAoRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBuKTsNCiAgICAgICAgICB9DQog ICAgICAgICAgcmV0dXJuIChlID0gZSA/IGUuZGlzcGxheU5hbWUgfHwgZS5uYW1lIDogIiIp ID8gRihlKSA6ICIiOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFUoZSkgew0KICAg ICAgICAgIHN3aXRjaCAoZS50YWcpIHsNCiAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAg ICAgICAgcmV0dXJuIEYoZS50eXBlKTsNCiAgICAgICAgICAgIGNhc2UgMTY6DQogICAgICAg ICAgICAgIHJldHVybiBGKCJMYXp5Iik7DQogICAgICAgICAgICBjYXNlIDEzOg0KICAgICAg ICAgICAgICByZXR1cm4gRigiU3VzcGVuc2UiKTsNCiAgICAgICAgICAgIGNhc2UgMTk6DQog ICAgICAgICAgICAgIHJldHVybiBGKCJTdXNwZW5zZUxpc3QiKTsNCiAgICAgICAgICAgIGNh c2UgMDoNCiAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgIGNhc2UgMTU6DQogICAg ICAgICAgICAgIHJldHVybiAoZSA9IEQoZS50eXBlLCAhMSkpOw0KICAgICAgICAgICAgY2Fz ZSAxMToNCiAgICAgICAgICAgICAgcmV0dXJuIChlID0gRChlLnR5cGUucmVuZGVyLCAhMSkp Ow0KICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICByZXR1cm4gKGUgPSBEKGUu dHlwZSwgITApKTsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgIHJldHVy biAiIjsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVyhlKSB7 DQogICAgICAgICAgaWYgKG51bGwgPT0gZSkgcmV0dXJuIG51bGw7DQogICAgICAgICAgaWYg KCJmdW5jdGlvbiIgPT09IHR5cGVvZiBlKSByZXR1cm4gZS5kaXNwbGF5TmFtZSB8fCBlLm5h bWUgfHwgbnVsbDsNCiAgICAgICAgICBpZiAoInN0cmluZyIgPT09IHR5cGVvZiBlKSByZXR1 cm4gZTsNCiAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAgICAgIGNhc2UgazoNCiAg ICAgICAgICAgICAgcmV0dXJuICJGcmFnbWVudCI7DQogICAgICAgICAgICBjYXNlIFM6DQog ICAgICAgICAgICAgIHJldHVybiAiUG9ydGFsIjsNCiAgICAgICAgICAgIGNhc2UgQzoNCiAg ICAgICAgICAgICAgcmV0dXJuICJQcm9maWxlciI7DQogICAgICAgICAgICBjYXNlIEU6DQog ICAgICAgICAgICAgIHJldHVybiAiU3RyaWN0TW9kZSI7DQogICAgICAgICAgICBjYXNlIE86 DQogICAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2UiOw0KICAgICAgICAgICAgY2FzZSBO Og0KICAgICAgICAgICAgICByZXR1cm4gIlN1c3BlbnNlTGlzdCI7DQogICAgICAgICAgfQ0K ICAgICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIGUpDQogICAgICAgICAgICBzd2l0 Y2ggKGUuJCR0eXBlb2YpIHsNCiAgICAgICAgICAgICAgY2FzZSBfOg0KICAgICAgICAgICAg ICAgIHJldHVybiAoZS5kaXNwbGF5TmFtZSB8fCAiQ29udGV4dCIpICsgIi5Db25zdW1lciI7 DQogICAgICAgICAgICAgIGNhc2UgUjoNCiAgICAgICAgICAgICAgICByZXR1cm4gKGUuX2Nv bnRleHQuZGlzcGxheU5hbWUgfHwgIkNvbnRleHQiKSArICIuUHJvdmlkZXIiOw0KICAgICAg ICAgICAgICBjYXNlIFA6DQogICAgICAgICAgICAgICAgdmFyIHQgPSBlLnJlbmRlcjsNCiAg ICAgICAgICAgICAgICByZXR1cm4gKGUgPSBlLmRpc3BsYXlOYW1lKSB8fCAoZSA9ICIiICE9 PSAoZSA9IHQuZGlzcGxheU5hbWUgfHwgdC5uYW1lIHx8ICIiKSA/ICJGb3J3YXJkUmVmKCIg KyBlICsgIikiIDogIkZvcndhcmRSZWYiKSwgZTsNCiAgICAgICAgICAgICAgY2FzZSBUOg0K ICAgICAgICAgICAgICAgIHJldHVybiBudWxsICE9PSAodCA9IGUuZGlzcGxheU5hbWUgfHwg bnVsbCkgPyB0IDogVyhlLnR5cGUpIHx8ICJNZW1vIjsNCiAgICAgICAgICAgICAgY2FzZSBB Og0KICAgICAgICAgICAgICAgICh0ID0gZS5fcGF5bG9hZCksIChlID0gZS5faW5pdCk7DQog ICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIHJldHVybiBXKGUodCkp Ow0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKG4pIHsgfQ0KICAgICAgICAgICAgfQ0KICAg ICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFYoZSkg ew0KICAgICAgICAgIHZhciB0ID0gZS50eXBlOw0KICAgICAgICAgIHN3aXRjaCAoZS50YWcp IHsNCiAgICAgICAgICAgIGNhc2UgMjQ6DQogICAgICAgICAgICAgIHJldHVybiAiQ2FjaGUi Ow0KICAgICAgICAgICAgY2FzZSA5Og0KICAgICAgICAgICAgICByZXR1cm4gKHQuZGlzcGxh eU5hbWUgfHwgIkNvbnRleHQiKSArICIuQ29uc3VtZXIiOw0KICAgICAgICAgICAgY2FzZSAx MDoNCiAgICAgICAgICAgICAgcmV0dXJuICh0Ll9jb250ZXh0LmRpc3BsYXlOYW1lIHx8ICJD b250ZXh0IikgKyAiLlByb3ZpZGVyIjsNCiAgICAgICAgICAgIGNhc2UgMTg6DQogICAgICAg ICAgICAgIHJldHVybiAiRGVoeWRyYXRlZEZyYWdtZW50IjsNCiAgICAgICAgICAgIGNhc2Ug MTE6DQogICAgICAgICAgICAgIHJldHVybiAoZSA9IChlID0gdC5yZW5kZXIpLmRpc3BsYXlO YW1lIHx8IGUubmFtZSB8fCAiIiksIHQuZGlzcGxheU5hbWUgfHwgKCIiICE9PSBlID8gIkZv cndhcmRSZWYoIiArIGUgKyAiKSIgOiAiRm9yd2FyZFJlZiIpOw0KICAgICAgICAgICAgY2Fz ZSA3Og0KICAgICAgICAgICAgICByZXR1cm4gIkZyYWdtZW50IjsNCiAgICAgICAgICAgIGNh c2UgNToNCiAgICAgICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgICAgICBjYXNlIDQ6DQog ICAgICAgICAgICAgIHJldHVybiAiUG9ydGFsIjsNCiAgICAgICAgICAgIGNhc2UgMzoNCiAg ICAgICAgICAgICAgcmV0dXJuICJSb290IjsNCiAgICAgICAgICAgIGNhc2UgNjoNCiAgICAg ICAgICAgICAgcmV0dXJuICJUZXh0IjsNCiAgICAgICAgICAgIGNhc2UgMTY6DQogICAgICAg ICAgICAgIHJldHVybiBXKHQpOw0KICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAg ICByZXR1cm4gdCA9PT0gRSA/ICJTdHJpY3RNb2RlIiA6ICJNb2RlIjsNCiAgICAgICAgICAg IGNhc2UgMjI6DQogICAgICAgICAgICAgIHJldHVybiAiT2Zmc2NyZWVuIjsNCiAgICAgICAg ICAgIGNhc2UgMTI6DQogICAgICAgICAgICAgIHJldHVybiAiUHJvZmlsZXIiOw0KICAgICAg ICAgICAgY2FzZSAyMToNCiAgICAgICAgICAgICAgcmV0dXJuICJTY29wZSI7DQogICAgICAg ICAgICBjYXNlIDEzOg0KICAgICAgICAgICAgICByZXR1cm4gIlN1c3BlbnNlIjsNCiAgICAg ICAgICAgIGNhc2UgMTk6DQogICAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2VMaXN0IjsN CiAgICAgICAgICAgIGNhc2UgMjU6DQogICAgICAgICAgICAgIHJldHVybiAiVHJhY2luZ01h cmtlciI7DQogICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICBjYXNlIDA6DQogICAg ICAgICAgICBjYXNlIDE3Og0KICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgY2Fz ZSAxNDoNCiAgICAgICAgICAgIGNhc2UgMTU6DQogICAgICAgICAgICAgIGlmICgiZnVuY3Rp b24iID09PSB0eXBlb2YgdCkgcmV0dXJuIHQuZGlzcGxheU5hbWUgfHwgdC5uYW1lIHx8IG51 bGw7DQogICAgICAgICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIHQpIHJldHVybiB0 Ow0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBIKGUpIHsNCiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBlKSB7DQog ICAgICAgICAgICBjYXNlICJib29sZWFuIjoNCiAgICAgICAgICAgIGNhc2UgIm51bWJlciI6 DQogICAgICAgICAgICBjYXNlICJzdHJpbmciOg0KICAgICAgICAgICAgY2FzZSAidW5kZWZp bmVkIjoNCiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6DQogICAgICAgICAgICAgIHJldHVy biBlOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgcmV0dXJuICIiOw0K ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBxKGUpIHsNCiAgICAg ICAgICB2YXIgdCA9IGUudHlwZTsNCiAgICAgICAgICByZXR1cm4gKGUgPSBlLm5vZGVOYW1l KSAmJiAiaW5wdXQiID09PSBlLnRvTG93ZXJDYXNlKCkgJiYgKCJjaGVja2JveCIgPT09IHQg fHwgInJhZGlvIiA9PT0gdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gJChlKSB7 DQogICAgICAgICAgZS5fdmFsdWVUcmFja2VyIHx8DQogICAgICAgICAgICAoZS5fdmFsdWVU cmFja2VyID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHZhciB0ID0gcShlKSA/ ICJjaGVja2VkIiA6ICJ2YWx1ZSIsDQogICAgICAgICAgICAgICAgbiA9IE9iamVjdC5nZXRP d25Qcm9wZXJ0eURlc2NyaXB0b3IoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHQpLA0KICAg ICAgICAgICAgICAgIHIgPSAiIiArIGVbdF07DQogICAgICAgICAgICAgIGlmICghZS5oYXNP d25Qcm9wZXJ0eSh0KSAmJiAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIG4gJiYgImZ1bmN0aW9u IiA9PT0gdHlwZW9mIG4uZ2V0ICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBuLnNldCkgew0K ICAgICAgICAgICAgICAgIHZhciBvID0gbi5nZXQsDQogICAgICAgICAgICAgICAgICBhID0g bi5zZXQ7DQogICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgIE9i amVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0LCB7DQogICAgICAgICAgICAgICAgICAgIGNvbmZp Z3VyYWJsZTogITAsDQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0K ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvLmNhbGwodGhpcyk7DQogICAgICAgICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgICAgICAgICAociA9ICIiICsgZSksIGEuY2FsbCh0aGlzLCBlKTsN CiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHQsIHsgZW51bWVyYWJsZTog bi5lbnVtZXJhYmxlIH0pLA0KICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiByOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBz ZXRWYWx1ZTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICByID0gIiIg KyBlOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBzdG9w VHJhY2tpbmc6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAoZS5fdmFs dWVUcmFja2VyID0gbnVsbCksIGRlbGV0ZSBlW3RdOw0KICAgICAgICAgICAgICAgICAgICB9 LA0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIH0pKGUpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBLKGUpIHsNCiAgICAgICAgICBpZiAoIWUpIHJldHVybiAhMTsNCiAgICAgICAgICB2YXIg dCA9IGUuX3ZhbHVlVHJhY2tlcjsNCiAgICAgICAgICBpZiAoIXQpIHJldHVybiAhMDsNCiAg ICAgICAgICB2YXIgbiA9IHQuZ2V0VmFsdWUoKSwNCiAgICAgICAgICAgIHIgPSAiIjsNCiAg ICAgICAgICByZXR1cm4gZSAmJiAociA9IHEoZSkgPyAoZS5jaGVja2VkID8gInRydWUiIDog ImZhbHNlIikgOiBlLnZhbHVlKSwgKGUgPSByKSAhPT0gbiAmJiAodC5zZXRWYWx1ZShlKSwg ITApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFEoZSkgew0KICAgICAgICAgIGlm ICgidW5kZWZpbmVkIiA9PT0gdHlwZW9mIChlID0gZSB8fCAoInVuZGVmaW5lZCIgIT09IHR5 cGVvZiBkb2N1bWVudCA/IGRvY3VtZW50IDogdm9pZCAwKSkpIHJldHVybiBudWxsOw0KICAg ICAgICAgIHRyeSB7DQogICAgICAgICAgICByZXR1cm4gZS5hY3RpdmVFbGVtZW50IHx8IGUu Ym9keTsNCiAgICAgICAgICB9IGNhdGNoICh0KSB7DQogICAgICAgICAgICByZXR1cm4gZS5i b2R5Ow0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBHKGUsIHQp IHsNCiAgICAgICAgICB2YXIgbiA9IHQuY2hlY2tlZDsNCiAgICAgICAgICByZXR1cm4gTCh7 fSwgdCwgeyBkZWZhdWx0Q2hlY2tlZDogdm9pZCAwLCBkZWZhdWx0VmFsdWU6IHZvaWQgMCwg dmFsdWU6IHZvaWQgMCwgY2hlY2tlZDogbnVsbCAhPSBuID8gbiA6IGUuX3dyYXBwZXJTdGF0 ZS5pbml0aWFsQ2hlY2tlZCB9KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBZKGUs IHQpIHsNCiAgICAgICAgICB2YXIgbiA9IG51bGwgPT0gdC5kZWZhdWx0VmFsdWUgPyAiIiA6 IHQuZGVmYXVsdFZhbHVlLA0KICAgICAgICAgICAgciA9IG51bGwgIT0gdC5jaGVja2VkID8g dC5jaGVja2VkIDogdC5kZWZhdWx0Q2hlY2tlZDsNCiAgICAgICAgICAobiA9IEgobnVsbCAh PSB0LnZhbHVlID8gdC52YWx1ZSA6IG4pKSwgKGUuX3dyYXBwZXJTdGF0ZSA9IHsgaW5pdGlh bENoZWNrZWQ6IHIsIGluaXRpYWxWYWx1ZTogbiwgY29udHJvbGxlZDogImNoZWNrYm94IiA9 PT0gdC50eXBlIHx8ICJyYWRpbyIgPT09IHQudHlwZSA/IG51bGwgIT0gdC5jaGVja2VkIDog bnVsbCAhPSB0LnZhbHVlIH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFgoZSwg dCkgew0KICAgICAgICAgIG51bGwgIT0gKHQgPSB0LmNoZWNrZWQpICYmIGIoZSwgImNoZWNr ZWQiLCB0LCAhMSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWihlLCB0KSB7DQog ICAgICAgICAgWChlLCB0KTsNCiAgICAgICAgICB2YXIgbiA9IEgodC52YWx1ZSksDQogICAg ICAgICAgICByID0gdC50eXBlOw0KICAgICAgICAgIGlmIChudWxsICE9IG4pICJudW1iZXIi ID09PSByID8gKCgwID09PSBuICYmICIiID09PSBlLnZhbHVlKSB8fCBlLnZhbHVlICE9IG4p ICYmIChlLnZhbHVlID0gIiIgKyBuKSA6IGUudmFsdWUgIT09ICIiICsgbiAmJiAoZS52YWx1 ZSA9ICIiICsgbik7DQogICAgICAgICAgZWxzZSBpZiAoInN1Ym1pdCIgPT09IHIgfHwgInJl c2V0IiA9PT0gcikgcmV0dXJuIHZvaWQgZS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIik7DQog ICAgICAgICAgdC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKSA/IGVlKGUsIHQudHlwZSwgbikg OiB0Lmhhc093blByb3BlcnR5KCJkZWZhdWx0VmFsdWUiKSAmJiBlZShlLCB0LnR5cGUsIEgo dC5kZWZhdWx0VmFsdWUpKSwgbnVsbCA9PSB0LmNoZWNrZWQgJiYgbnVsbCAhPSB0LmRlZmF1 bHRDaGVja2VkICYmIChlLmRlZmF1bHRDaGVja2VkID0gISF0LmRlZmF1bHRDaGVja2VkKTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBKKGUsIHQsIG4pIHsNCiAgICAgICAgICBp ZiAodC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKSB8fCB0Lmhhc093blByb3BlcnR5KCJkZWZh dWx0VmFsdWUiKSkgew0KICAgICAgICAgICAgdmFyIHIgPSB0LnR5cGU7DQogICAgICAgICAg ICBpZiAoISgoInN1Ym1pdCIgIT09IHIgJiYgInJlc2V0IiAhPT0gcikgfHwgKHZvaWQgMCAh PT0gdC52YWx1ZSAmJiBudWxsICE9PSB0LnZhbHVlKSkpIHJldHVybjsNCiAgICAgICAgICAg ICh0ID0gIiIgKyBlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlKSwgbiB8fCB0ID09PSBl LnZhbHVlIHx8IChlLnZhbHVlID0gdCksIChlLmRlZmF1bHRWYWx1ZSA9IHQpOw0KICAgICAg ICAgIH0NCiAgICAgICAgICAiIiAhPT0gKG4gPSBlLm5hbWUpICYmIChlLm5hbWUgPSAiIiks IChlLmRlZmF1bHRDaGVja2VkID0gISFlLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWQp LCAiIiAhPT0gbiAmJiAoZS5uYW1lID0gbik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gZWUoZSwgdCwgbikgew0KICAgICAgICAgICgibnVtYmVyIiA9PT0gdCAmJiBRKGUub3du ZXJEb2N1bWVudCkgPT09IGUpIHx8IChudWxsID09IG4gPyAoZS5kZWZhdWx0VmFsdWUgPSAi IiArIGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUpIDogZS5kZWZhdWx0VmFsdWUgIT09 ICIiICsgbiAmJiAoZS5kZWZhdWx0VmFsdWUgPSAiIiArIG4pKTsNCiAgICAgICAgfQ0KICAg ICAgICB2YXIgdGUgPSBBcnJheS5pc0FycmF5Ow0KICAgICAgICBmdW5jdGlvbiBuZShlLCB0 LCBuLCByKSB7DQogICAgICAgICAgaWYgKCgoZSA9IGUub3B0aW9ucyksIHQpKSB7DQogICAg ICAgICAgICB0ID0ge307DQogICAgICAgICAgICBmb3IgKHZhciBvID0gMDsgbyA8IG4ubGVu Z3RoOyBvKyspIHRbIiQiICsgbltvXV0gPSAhMDsNCiAgICAgICAgICAgIGZvciAobiA9IDA7 IG4gPCBlLmxlbmd0aDsgbisrKSAobyA9IHQuaGFzT3duUHJvcGVydHkoIiQiICsgZVtuXS52 YWx1ZSkpLCBlW25dLnNlbGVjdGVkICE9PSBvICYmIChlW25dLnNlbGVjdGVkID0gbyksIG8g JiYgciAmJiAoZVtuXS5kZWZhdWx0U2VsZWN0ZWQgPSAhMCk7DQogICAgICAgICAgfSBlbHNl IHsNCiAgICAgICAgICAgIGZvciAobiA9ICIiICsgSChuKSwgdCA9IG51bGwsIG8gPSAwOyBv IDwgZS5sZW5ndGg7IG8rKykgew0KICAgICAgICAgICAgICBpZiAoZVtvXS52YWx1ZSA9PT0g bikgcmV0dXJuIChlW29dLnNlbGVjdGVkID0gITApLCB2b2lkIChyICYmIChlW29dLmRlZmF1 bHRTZWxlY3RlZCA9ICEwKSk7DQogICAgICAgICAgICAgIG51bGwgIT09IHQgfHwgZVtvXS5k aXNhYmxlZCB8fCAodCA9IGVbb10pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbnVs bCAhPT0gdCAmJiAodC5zZWxlY3RlZCA9ICEwKTsNCiAgICAgICAgICB9DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gcmUoZSwgdCkgew0KICAgICAgICAgIGlmIChudWxsICE9IHQu ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHRocm93IEVycm9yKGEoOTEpKTsNCiAgICAgICAg ICByZXR1cm4gTCh7fSwgdCwgeyB2YWx1ZTogdm9pZCAwLCBkZWZhdWx0VmFsdWU6IHZvaWQg MCwgY2hpbGRyZW46ICIiICsgZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSB9KTsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBvZShlLCB0KSB7DQogICAgICAgICAgdmFyIG4g PSB0LnZhbHVlOw0KICAgICAgICAgIGlmIChudWxsID09IG4pIHsNCiAgICAgICAgICAgIGlm ICgoKG4gPSB0LmNoaWxkcmVuKSwgKHQgPSB0LmRlZmF1bHRWYWx1ZSksIG51bGwgIT0gbikp IHsNCiAgICAgICAgICAgICAgaWYgKG51bGwgIT0gdCkgdGhyb3cgRXJyb3IoYSg5MikpOw0K ICAgICAgICAgICAgICBpZiAodGUobikpIHsNCiAgICAgICAgICAgICAgICBpZiAoMSA8IG4u bGVuZ3RoKSB0aHJvdyBFcnJvcihhKDkzKSk7DQogICAgICAgICAgICAgICAgbiA9IG5bMF07 DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgdCA9IG47DQogICAgICAgICAgICB9 DQogICAgICAgICAgICBudWxsID09IHQgJiYgKHQgPSAiIiksIChuID0gdCk7DQogICAgICAg ICAgfQ0KICAgICAgICAgIGUuX3dyYXBwZXJTdGF0ZSA9IHsgaW5pdGlhbFZhbHVlOiBIKG4p IH07DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYWUoZSwgdCkgew0KICAgICAgICAg IHZhciBuID0gSCh0LnZhbHVlKSwNCiAgICAgICAgICAgIHIgPSBIKHQuZGVmYXVsdFZhbHVl KTsNCiAgICAgICAgICBudWxsICE9IG4gJiYgKChuID0gIiIgKyBuKSAhPT0gZS52YWx1ZSAm JiAoZS52YWx1ZSA9IG4pLCBudWxsID09IHQuZGVmYXVsdFZhbHVlICYmIGUuZGVmYXVsdFZh bHVlICE9PSBuICYmIChlLmRlZmF1bHRWYWx1ZSA9IG4pKSwgbnVsbCAhPSByICYmIChlLmRl ZmF1bHRWYWx1ZSA9ICIiICsgcik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaWUo ZSkgew0KICAgICAgICAgIHZhciB0ID0gZS50ZXh0Q29udGVudDsNCiAgICAgICAgICB0ID09 PSBlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlICYmICIiICE9PSB0ICYmIG51bGwgIT09 IHQgJiYgKGUudmFsdWUgPSB0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBsZShl KSB7DQogICAgICAgICAgc3dpdGNoIChlKSB7DQogICAgICAgICAgICBjYXNlICJzdmciOg0K ICAgICAgICAgICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsNCiAg ICAgICAgICAgIGNhc2UgIm1hdGgiOg0KICAgICAgICAgICAgICByZXR1cm4gImh0dHA6Ly93 d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAg ICAgICAgICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjsNCiAg ICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gc2UoZSwgdCkgew0KICAg ICAgICAgIHJldHVybiBudWxsID09IGUgfHwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0 bWwiID09PSBlID8gbGUodCkgOiAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciID09PSBl ICYmICJmb3JlaWduT2JqZWN0IiA9PT0gdCA/ICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho dG1sIiA6IGU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVlLA0KICAgICAgICAgIGNlLA0K ICAgICAgICAgIGRlID0NCiAgICAgICAgICAgICgoY2UgPSBmdW5jdGlvbiAoZSwgdCkgew0K ICAgICAgICAgICAgICBpZiAoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAhPT0gZS5u YW1lc3BhY2VVUkkgfHwgImlubmVySFRNTCIgaW4gZSkgZS5pbm5lckhUTUwgPSB0Ow0KICAg ICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmb3IgKCh1ZSA9IHVlIHx8IGRv Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUwgPSAiPHN2Zz4iICsgdC52 YWx1ZU9mKCkudG9TdHJpbmcoKSArICI8L3N2Zz4iLCB0ID0gdWUuZmlyc3RDaGlsZDsgZS5m aXJzdENoaWxkOykgZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpOw0KICAgICAgICAgICAg ICAgIGZvciAoOyB0LmZpcnN0Q2hpbGQ7KSBlLmFwcGVuZENoaWxkKHQuZmlyc3RDaGlsZCk7 DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAidW5k ZWZpbmVkIiAhPT0gdHlwZW9mIE1TQXBwICYmIE1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0 aW9uDQogICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAoZSwgdCwgbiwgcikgew0KICAgICAg ICAgICAgICAgICAgTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24gKCkg ew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2UoZSwgdCk7DQogICAgICAgICAgICAg ICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgOiBjZSk7DQog ICAgICAgIGZ1bmN0aW9uIGZlKGUsIHQpIHsNCiAgICAgICAgICBpZiAodCkgew0KICAgICAg ICAgICAgdmFyIG4gPSBlLmZpcnN0Q2hpbGQ7DQogICAgICAgICAgICBpZiAobiAmJiBuID09 PSBlLmxhc3RDaGlsZCAmJiAzID09PSBuLm5vZGVUeXBlKSByZXR1cm4gdm9pZCAobi5ub2Rl VmFsdWUgPSB0KTsNCiAgICAgICAgICB9DQogICAgICAgICAgZS50ZXh0Q29udGVudCA9IHQ7 DQogICAgICAgIH0NCiAgICAgICAgdmFyIHBlID0gew0KICAgICAgICAgIGFuaW1hdGlvbkl0 ZXJhdGlvbkNvdW50OiAhMCwNCiAgICAgICAgICBhc3BlY3RSYXRpbzogITAsDQogICAgICAg ICAgYm9yZGVySW1hZ2VPdXRzZXQ6ICEwLA0KICAgICAgICAgIGJvcmRlckltYWdlU2xpY2U6 ICEwLA0KICAgICAgICAgIGJvcmRlckltYWdlV2lkdGg6ICEwLA0KICAgICAgICAgIGJveEZs ZXg6ICEwLA0KICAgICAgICAgIGJveEZsZXhHcm91cDogITAsDQogICAgICAgICAgYm94T3Jk aW5hbEdyb3VwOiAhMCwNCiAgICAgICAgICBjb2x1bW5Db3VudDogITAsDQogICAgICAgICAg Y29sdW1uczogITAsDQogICAgICAgICAgZmxleDogITAsDQogICAgICAgICAgZmxleEdyb3c6 ICEwLA0KICAgICAgICAgIGZsZXhQb3NpdGl2ZTogITAsDQogICAgICAgICAgZmxleFNocmlu azogITAsDQogICAgICAgICAgZmxleE5lZ2F0aXZlOiAhMCwNCiAgICAgICAgICBmbGV4T3Jk ZXI6ICEwLA0KICAgICAgICAgIGdyaWRBcmVhOiAhMCwNCiAgICAgICAgICBncmlkUm93OiAh MCwNCiAgICAgICAgICBncmlkUm93RW5kOiAhMCwNCiAgICAgICAgICBncmlkUm93U3Bhbjog ITAsDQogICAgICAgICAgZ3JpZFJvd1N0YXJ0OiAhMCwNCiAgICAgICAgICBncmlkQ29sdW1u OiAhMCwNCiAgICAgICAgICBncmlkQ29sdW1uRW5kOiAhMCwNCiAgICAgICAgICBncmlkQ29s dW1uU3BhbjogITAsDQogICAgICAgICAgZ3JpZENvbHVtblN0YXJ0OiAhMCwNCiAgICAgICAg ICBmb250V2VpZ2h0OiAhMCwNCiAgICAgICAgICBsaW5lQ2xhbXA6ICEwLA0KICAgICAgICAg IGxpbmVIZWlnaHQ6ICEwLA0KICAgICAgICAgIG9wYWNpdHk6ICEwLA0KICAgICAgICAgIG9y ZGVyOiAhMCwNCiAgICAgICAgICBvcnBoYW5zOiAhMCwNCiAgICAgICAgICB0YWJTaXplOiAh MCwNCiAgICAgICAgICB3aWRvd3M6ICEwLA0KICAgICAgICAgIHpJbmRleDogITAsDQogICAg ICAgICAgem9vbTogITAsDQogICAgICAgICAgZmlsbE9wYWNpdHk6ICEwLA0KICAgICAgICAg IGZsb29kT3BhY2l0eTogITAsDQogICAgICAgICAgc3RvcE9wYWNpdHk6ICEwLA0KICAgICAg ICAgIHN0cm9rZURhc2hhcnJheTogITAsDQogICAgICAgICAgc3Ryb2tlRGFzaG9mZnNldDog ITAsDQogICAgICAgICAgc3Ryb2tlTWl0ZXJsaW1pdDogITAsDQogICAgICAgICAgc3Ryb2tl T3BhY2l0eTogITAsDQogICAgICAgICAgc3Ryb2tlV2lkdGg6ICEwLA0KICAgICAgICB9LA0K ICAgICAgICAgIGhlID0gWyJXZWJraXQiLCAibXMiLCAiTW96IiwgIk8iXTsNCiAgICAgICAg ZnVuY3Rpb24gbWUoZSwgdCwgbikgew0KICAgICAgICAgIHJldHVybiBudWxsID09IHQgfHwg ImJvb2xlYW4iID09PSB0eXBlb2YgdCB8fCAiIiA9PT0gdCA/ICIiIDogbiB8fCAibnVtYmVy IiAhPT0gdHlwZW9mIHQgfHwgMCA9PT0gdCB8fCAocGUuaGFzT3duUHJvcGVydHkoZSkgJiYg cGVbZV0pID8gKCIiICsgdCkudHJpbSgpIDogdCArICJweCI7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gZ2UoZSwgdCkgew0KICAgICAgICAgIGZvciAodmFyIG4gaW4gKChlID0g ZS5zdHlsZSksIHQpKQ0KICAgICAgICAgICAgaWYgKHQuaGFzT3duUHJvcGVydHkobikpIHsN CiAgICAgICAgICAgICAgdmFyIHIgPSAwID09PSBuLmluZGV4T2YoIi0tIiksDQogICAgICAg ICAgICAgICAgbyA9IG1lKG4sIHRbbl0sIHIpOw0KICAgICAgICAgICAgICAiZmxvYXQiID09 PSBuICYmIChuID0gImNzc0Zsb2F0IiksIHIgPyBlLnNldFByb3BlcnR5KG4sIG8pIDogKGVb bl0gPSBvKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBPYmplY3Qua2V5 cyhwZSkuZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgIGhlLmZvckVhY2goZnVu Y3Rpb24gKHQpIHsNCiAgICAgICAgICAgICh0ID0gdCArIGUuY2hhckF0KDApLnRvVXBwZXJD YXNlKCkgKyBlLnN1YnN0cmluZygxKSksIChwZVt0XSA9IHBlW2VdKTsNCiAgICAgICAgICB9 KTsNCiAgICAgICAgfSk7DQogICAgICAgIHZhciB2ZSA9IEwoeyBtZW51aXRlbTogITAgfSwg eyBhcmVhOiAhMCwgYmFzZTogITAsIGJyOiAhMCwgY29sOiAhMCwgZW1iZWQ6ICEwLCBocjog ITAsIGltZzogITAsIGlucHV0OiAhMCwga2V5Z2VuOiAhMCwgbGluazogITAsIG1ldGE6ICEw LCBwYXJhbTogITAsIHNvdXJjZTogITAsIHRyYWNrOiAhMCwgd2JyOiAhMCB9KTsNCiAgICAg ICAgZnVuY3Rpb24geWUoZSwgdCkgew0KICAgICAgICAgIGlmICh0KSB7DQogICAgICAgICAg ICBpZiAodmVbZV0gJiYgKG51bGwgIT0gdC5jaGlsZHJlbiB8fCBudWxsICE9IHQuZGFuZ2Vy b3VzbHlTZXRJbm5lckhUTUwpKSB0aHJvdyBFcnJvcihhKDEzNywgZSkpOw0KICAgICAgICAg ICAgaWYgKG51bGwgIT0gdC5kYW5nZXJvdXNseVNldElubmVySFRNTCkgew0KICAgICAgICAg ICAgICBpZiAobnVsbCAhPSB0LmNoaWxkcmVuKSB0aHJvdyBFcnJvcihhKDYwKSk7DQogICAg ICAgICAgICAgIGlmICgib2JqZWN0IiAhPT0gdHlwZW9mIHQuZGFuZ2Vyb3VzbHlTZXRJbm5l ckhUTUwgfHwgISgiX19odG1sIiBpbiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSkgdGhy b3cgRXJyb3IoYSg2MSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKG51bGwg IT0gdC5zdHlsZSAmJiAib2JqZWN0IiAhPT0gdHlwZW9mIHQuc3R5bGUpIHRocm93IEVycm9y KGEoNjIpKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYmUo ZSwgdCkgew0KICAgICAgICAgIGlmICgtMSA9PT0gZS5pbmRleE9mKCItIikpIHJldHVybiAi c3RyaW5nIiA9PT0gdHlwZW9mIHQuaXM7DQogICAgICAgICAgc3dpdGNoIChlKSB7DQogICAg ICAgICAgICBjYXNlICJhbm5vdGF0aW9uLXhtbCI6DQogICAgICAgICAgICBjYXNlICJjb2xv ci1wcm9maWxlIjoNCiAgICAgICAgICAgIGNhc2UgImZvbnQtZmFjZSI6DQogICAgICAgICAg ICBjYXNlICJmb250LWZhY2Utc3JjIjoNCiAgICAgICAgICAgIGNhc2UgImZvbnQtZmFjZS11 cmkiOg0KICAgICAgICAgICAgY2FzZSAiZm9udC1mYWNlLWZvcm1hdCI6DQogICAgICAgICAg ICBjYXNlICJmb250LWZhY2UtbmFtZSI6DQogICAgICAgICAgICBjYXNlICJtaXNzaW5nLWds eXBoIjoNCiAgICAgICAgICAgICAgcmV0dXJuICExOw0KICAgICAgICAgICAgZGVmYXVsdDoN CiAgICAgICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg ICAgICB2YXIgd2UgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiB4ZShlKSB7DQogICAgICAg ICAgcmV0dXJuIChlID0gZS50YXJnZXQgfHwgZS5zcmNFbGVtZW50IHx8IHdpbmRvdykuY29y cmVzcG9uZGluZ1VzZUVsZW1lbnQgJiYgKGUgPSBlLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50 KSwgMyA9PT0gZS5ub2RlVHlwZSA/IGUucGFyZW50Tm9kZSA6IGU7DQogICAgICAgIH0NCiAg ICAgICAgdmFyIFNlID0gbnVsbCwNCiAgICAgICAgICBrZSA9IG51bGwsDQogICAgICAgICAg RWUgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBDZShlKSB7DQogICAgICAgICAgaWYgKChl ID0gd28oZSkpKSB7DQogICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiAhPT0gdHlwZW9mIFNl KSB0aHJvdyBFcnJvcihhKDI4MCkpOw0KICAgICAgICAgICAgdmFyIHQgPSBlLnN0YXRlTm9k ZTsNCiAgICAgICAgICAgIHQgJiYgKCh0ID0gU28odCkpLCBTZShlLnN0YXRlTm9kZSwgZS50 eXBlLCB0KSk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFJl KGUpIHsNCiAgICAgICAgICBrZSA/IChFZSA/IEVlLnB1c2goZSkgOiAoRWUgPSBbZV0pKSA6 IChrZSA9IGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIF9lKCkgew0KICAgICAg ICAgIGlmIChrZSkgew0KICAgICAgICAgICAgdmFyIGUgPSBrZSwNCiAgICAgICAgICAgICAg dCA9IEVlOw0KICAgICAgICAgICAgaWYgKCgoRWUgPSBrZSA9IG51bGwpLCBDZShlKSwgdCkp IGZvciAoZSA9IDA7IGUgPCB0Lmxlbmd0aDsgZSsrKSBDZSh0W2VdKTsNCiAgICAgICAgICB9 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUGUoZSwgdCkgew0KICAgICAgICAgIHJl dHVybiBlKHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE9lKCkgeyB9DQogICAg ICAgIHZhciBOZSA9ICExOw0KICAgICAgICBmdW5jdGlvbiBUZShlLCB0LCBuKSB7DQogICAg ICAgICAgaWYgKE5lKSByZXR1cm4gZSh0LCBuKTsNCiAgICAgICAgICBOZSA9ICEwOw0KICAg ICAgICAgIHRyeSB7DQogICAgICAgICAgICByZXR1cm4gUGUoZSwgdCwgbik7DQogICAgICAg ICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIChOZSA9ICExKSwgKG51bGwgIT09IGtlIHx8 IG51bGwgIT09IEVlKSAmJiAoT2UoKSwgX2UoKSk7DQogICAgICAgICAgfQ0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIEFlKGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IGUuc3Rh dGVOb2RlOw0KICAgICAgICAgIGlmIChudWxsID09PSBuKSByZXR1cm4gbnVsbDsNCiAgICAg ICAgICB2YXIgciA9IFNvKG4pOw0KICAgICAgICAgIGlmIChudWxsID09PSByKSByZXR1cm4g bnVsbDsNCiAgICAgICAgICBuID0gclt0XTsNCiAgICAgICAgICBlOiBzd2l0Y2ggKHQpIHsN CiAgICAgICAgICAgIGNhc2UgIm9uQ2xpY2siOg0KICAgICAgICAgICAgY2FzZSAib25DbGlj a0NhcHR1cmUiOg0KICAgICAgICAgICAgY2FzZSAib25Eb3VibGVDbGljayI6DQogICAgICAg ICAgICBjYXNlICJvbkRvdWJsZUNsaWNrQ2FwdHVyZSI6DQogICAgICAgICAgICBjYXNlICJv bk1vdXNlRG93biI6DQogICAgICAgICAgICBjYXNlICJvbk1vdXNlRG93bkNhcHR1cmUiOg0K ICAgICAgICAgICAgY2FzZSAib25Nb3VzZU1vdmUiOg0KICAgICAgICAgICAgY2FzZSAib25N b3VzZU1vdmVDYXB0dXJlIjoNCiAgICAgICAgICAgIGNhc2UgIm9uTW91c2VVcCI6DQogICAg ICAgICAgICBjYXNlICJvbk1vdXNlVXBDYXB0dXJlIjoNCiAgICAgICAgICAgIGNhc2UgIm9u TW91c2VFbnRlciI6DQogICAgICAgICAgICAgIChyID0gIXIuZGlzYWJsZWQpIHx8IChyID0g ISgiYnV0dG9uIiA9PT0gKGUgPSBlLnR5cGUpIHx8ICJpbnB1dCIgPT09IGUgfHwgInNlbGVj dCIgPT09IGUgfHwgInRleHRhcmVhIiA9PT0gZSkpLCAoZSA9ICFyKTsNCiAgICAgICAgICAg ICAgYnJlYWsgZTsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgIGUgPSAh MTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKGUpIHJldHVybiBudWxsOw0KICAgICAg ICAgIGlmIChuICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBuKSB0aHJvdyBFcnJvcihhKDIz MSwgdCwgdHlwZW9mIG4pKTsNCiAgICAgICAgICByZXR1cm4gbjsNCiAgICAgICAgfQ0KICAg ICAgICB2YXIgTWUgPSAhMTsNCiAgICAgICAgaWYgKGMpDQogICAgICAgICAgdHJ5IHsNCiAg ICAgICAgICAgIHZhciB6ZSA9IHt9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3Bl cnR5KHplLCAicGFzc2l2ZSIsIHsNCiAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7 DQogICAgICAgICAgICAgICAgTWUgPSAhMDsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIs IHplLCB6ZSksDQogICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0 ZXN0IiwgemUsIHplKTsNCiAgICAgICAgICB9IGNhdGNoIChjZSkgew0KICAgICAgICAgICAg TWUgPSAhMTsNCiAgICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGplKGUsIHQsIG4sIHIs IG8sIGEsIGksIGwsIHMpIHsNCiAgICAgICAgICB2YXIgdSA9IEFycmF5LnByb3RvdHlwZS5z bGljZS5jYWxsKGFyZ3VtZW50cywgMyk7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAg IHQuYXBwbHkobiwgdSk7DQogICAgICAgICAgfSBjYXRjaCAoYykgew0KICAgICAgICAgICAg dGhpcy5vbkVycm9yKGMpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIg SWUgPSAhMSwNCiAgICAgICAgICBMZSA9IG51bGwsDQogICAgICAgICAgRmUgPSAhMSwNCiAg ICAgICAgICBCZSA9IG51bGwsDQogICAgICAgICAgRGUgPSB7DQogICAgICAgICAgICBvbkVy cm9yOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAoSWUgPSAhMCksIChMZSA9IGUp Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBVZShl LCB0LCBuLCByLCBvLCBhLCBpLCBsLCBzKSB7DQogICAgICAgICAgKEllID0gITEpLCAoTGUg PSBudWxsKSwgamUuYXBwbHkoRGUsIGFyZ3VtZW50cyk7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gV2UoZSkgew0KICAgICAgICAgIHZhciB0ID0gZSwNCiAgICAgICAgICAgIG4g PSBlOw0KICAgICAgICAgIGlmIChlLmFsdGVybmF0ZSkgZm9yICg7IHQucmV0dXJuOykgdCA9 IHQucmV0dXJuOw0KICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZSA9IHQ7DQogICAg ICAgICAgICBkbyB7DQogICAgICAgICAgICAgIDAgIT09ICg0MDk4ICYgKHQgPSBlKS5mbGFn cykgJiYgKG4gPSB0LnJldHVybiksIChlID0gdC5yZXR1cm4pOw0KICAgICAgICAgICAgfSB3 aGlsZSAoZSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiAzID09PSB0LnRhZyA/ IG4gOiBudWxsOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFZlKGUpIHsNCiAgICAg ICAgICBpZiAoMTMgPT09IGUudGFnKSB7DQogICAgICAgICAgICB2YXIgdCA9IGUubWVtb2l6 ZWRTdGF0ZTsNCiAgICAgICAgICAgIGlmICgobnVsbCA9PT0gdCAmJiBudWxsICE9PSAoZSA9 IGUuYWx0ZXJuYXRlKSAmJiAodCA9IGUubWVtb2l6ZWRTdGF0ZSksIG51bGwgIT09IHQpKSBy ZXR1cm4gdC5kZWh5ZHJhdGVkOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gbnVs bDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBIZShlKSB7DQogICAgICAgICAgaWYg KFdlKGUpICE9PSBlKSB0aHJvdyBFcnJvcihhKDE4OCkpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIHFlKGUpIHsNCiAgICAgICAgICByZXR1cm4gbnVsbCAhPT0NCiAgICAgICAg ICAgIChlID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHZhciB0ID0gZS5hbHRl cm5hdGU7DQogICAgICAgICAgICAgIGlmICghdCkgew0KICAgICAgICAgICAgICAgIGlmIChu dWxsID09PSAodCA9IFdlKGUpKSkgdGhyb3cgRXJyb3IoYSgxODgpKTsNCiAgICAgICAgICAg ICAgICByZXR1cm4gdCAhPT0gZSA/IG51bGwgOiBlOw0KICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgIGZvciAodmFyIG4gPSBlLCByID0gdDsgOykgew0KICAgICAgICAgICAgICAg IHZhciBvID0gbi5yZXR1cm47DQogICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IG8pIGJy ZWFrOw0KICAgICAgICAgICAgICAgIHZhciBpID0gby5hbHRlcm5hdGU7DQogICAgICAgICAg ICAgICAgaWYgKG51bGwgPT09IGkpIHsNCiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9 PSAociA9IG8ucmV0dXJuKSkgew0KICAgICAgICAgICAgICAgICAgICBuID0gcjsNCiAgICAg ICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg aWYgKG8uY2hpbGQgPT09IGkuY2hpbGQpIHsNCiAgICAgICAgICAgICAgICAgIGZvciAoaSA9 IG8uY2hpbGQ7IGk7KSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChpID09PSBuKSByZXR1 cm4gSGUobyksIGU7DQogICAgICAgICAgICAgICAgICAgIGlmIChpID09PSByKSByZXR1cm4g SGUobyksIHQ7DQogICAgICAgICAgICAgICAgICAgIGkgPSBpLnNpYmxpbmc7DQogICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihhKDE4OCkpOw0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobi5yZXR1cm4gIT09IHIu cmV0dXJuKSAobiA9IG8pLCAociA9IGkpOw0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAg ICAgICAgICAgICAgICAgZm9yICh2YXIgbCA9ICExLCBzID0gby5jaGlsZDsgczspIHsNCiAg ICAgICAgICAgICAgICAgICAgaWYgKHMgPT09IG4pIHsNCiAgICAgICAgICAgICAgICAgICAg ICAobCA9ICEwKSwgKG4gPSBvKSwgKHIgPSBpKTsNCiAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAo cyA9PT0gcikgew0KICAgICAgICAgICAgICAgICAgICAgIChsID0gITApLCAociA9IG8pLCAo biA9IGkpOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIHMgPSBzLnNpYmxpbmc7DQogICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICBpZiAoIWwpIHsNCiAgICAgICAgICAgICAg ICAgICAgZm9yIChzID0gaS5jaGlsZDsgczspIHsNCiAgICAgICAgICAgICAgICAgICAgICBp ZiAocyA9PT0gbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgKGwgPSAhMCksIChuID0g aSksIChyID0gbyk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT09IHIpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIChsID0gITApLCAociA9IGkpLCAobiA9IG8pOw0K ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgIHMgPSBzLnNpYmxpbmc7DQogICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFsKSB0aHJvdyBFcnJvcihhKDE4 OSkpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICBpZiAobi5hbHRlcm5hdGUgIT09IHIpIHRocm93IEVycm9yKGEoMTkwKSk7DQog ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKDMgIT09IG4udGFnKSB0aHJvdyBF cnJvcihhKDE4OCkpOw0KICAgICAgICAgICAgICByZXR1cm4gbi5zdGF0ZU5vZGUuY3VycmVu dCA9PT0gbiA/IGUgOiB0Ow0KICAgICAgICAgICAgfSkoZSkpDQogICAgICAgICAgICA/ICRl KGUpDQogICAgICAgICAgICA6IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g JGUoZSkgew0KICAgICAgICAgIGlmICg1ID09PSBlLnRhZyB8fCA2ID09PSBlLnRhZykgcmV0 dXJuIGU7DQogICAgICAgICAgZm9yIChlID0gZS5jaGlsZDsgbnVsbCAhPT0gZTspIHsNCiAg ICAgICAgICAgIHZhciB0ID0gJGUoZSk7DQogICAgICAgICAgICBpZiAobnVsbCAhPT0gdCkg cmV0dXJuIHQ7DQogICAgICAgICAgICBlID0gZS5zaWJsaW5nOw0KICAgICAgICAgIH0NCiAg ICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgS2UgPSBvLnVu c3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssDQogICAgICAgICAgUWUgPSBvLnVuc3RhYmxlX2Nh bmNlbENhbGxiYWNrLA0KICAgICAgICAgIEdlID0gby51bnN0YWJsZV9zaG91bGRZaWVsZCwN CiAgICAgICAgICBZZSA9IG8udW5zdGFibGVfcmVxdWVzdFBhaW50LA0KICAgICAgICAgIFhl ID0gby51bnN0YWJsZV9ub3csDQogICAgICAgICAgWmUgPSBvLnVuc3RhYmxlX2dldEN1cnJl bnRQcmlvcml0eUxldmVsLA0KICAgICAgICAgIEplID0gby51bnN0YWJsZV9JbW1lZGlhdGVQ cmlvcml0eSwNCiAgICAgICAgICBldCA9IG8udW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3Jp dHksDQogICAgICAgICAgdHQgPSBvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LA0KICAgICAg ICAgIG50ID0gby51bnN0YWJsZV9Mb3dQcmlvcml0eSwNCiAgICAgICAgICBydCA9IG8udW5z dGFibGVfSWRsZVByaW9yaXR5LA0KICAgICAgICAgIG90ID0gbnVsbCwNCiAgICAgICAgICBh dCA9IG51bGw7DQogICAgICAgIHZhciBpdCA9IE1hdGguY2x6MzINCiAgICAgICAgICA/IE1h dGguY2x6MzINCiAgICAgICAgICA6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1 cm4gKGUgPj4+PSAwKSwgMCA9PT0gZSA/IDMyIDogKDMxIC0gKChsdChlKSAvIHN0KSB8IDAp KSB8IDA7DQogICAgICAgICAgfSwNCiAgICAgICAgICBsdCA9IE1hdGgubG9nLA0KICAgICAg ICAgIHN0ID0gTWF0aC5MTjI7DQogICAgICAgIHZhciB1dCA9IDY0LA0KICAgICAgICAgIGN0 ID0gNDE5NDMwNDsNCiAgICAgICAgZnVuY3Rpb24gZHQoZSkgew0KICAgICAgICAgIHN3aXRj aCAoZSAmIC1lKSB7DQogICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgIHJldHVy biAxOw0KICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgICByZXR1cm4gMjsNCiAg ICAgICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAgcmV0dXJuIDQ7DQogICAgICAgICAg ICBjYXNlIDg6DQogICAgICAgICAgICAgIHJldHVybiA4Ow0KICAgICAgICAgICAgY2FzZSAx NjoNCiAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KICAgICAgICAgICAgY2FzZSAzMjoNCiAg ICAgICAgICAgICAgcmV0dXJuIDMyOw0KICAgICAgICAgICAgY2FzZSA2NDoNCiAgICAgICAg ICAgIGNhc2UgMTI4Og0KICAgICAgICAgICAgY2FzZSAyNTY6DQogICAgICAgICAgICBjYXNl IDUxMjoNCiAgICAgICAgICAgIGNhc2UgMTAyNDoNCiAgICAgICAgICAgIGNhc2UgMjA0ODoN CiAgICAgICAgICAgIGNhc2UgNDA5NjoNCiAgICAgICAgICAgIGNhc2UgODE5MjoNCiAgICAg ICAgICAgIGNhc2UgMTYzODQ6DQogICAgICAgICAgICBjYXNlIDMyNzY4Og0KICAgICAgICAg ICAgY2FzZSA2NTUzNjoNCiAgICAgICAgICAgIGNhc2UgMTMxMDcyOg0KICAgICAgICAgICAg Y2FzZSAyNjIxNDQ6DQogICAgICAgICAgICBjYXNlIDUyNDI4ODoNCiAgICAgICAgICAgIGNh c2UgMTA0ODU3NjoNCiAgICAgICAgICAgIGNhc2UgMjA5NzE1MjoNCiAgICAgICAgICAgICAg cmV0dXJuIDQxOTQyNDAgJiBlOw0KICAgICAgICAgICAgY2FzZSA0MTk0MzA0Og0KICAgICAg ICAgICAgY2FzZSA4Mzg4NjA4Og0KICAgICAgICAgICAgY2FzZSAxNjc3NzIxNjoNCiAgICAg ICAgICAgIGNhc2UgMzM1NTQ0MzI6DQogICAgICAgICAgICBjYXNlIDY3MTA4ODY0Og0KICAg ICAgICAgICAgICByZXR1cm4gMTMwMDIzNDI0ICYgZTsNCiAgICAgICAgICAgIGNhc2UgMTM0 MjE3NzI4Og0KICAgICAgICAgICAgICByZXR1cm4gMTM0MjE3NzI4Ow0KICAgICAgICAgICAg Y2FzZSAyNjg0MzU0NTY6DQogICAgICAgICAgICAgIHJldHVybiAyNjg0MzU0NTY7DQogICAg ICAgICAgICBjYXNlIDUzNjg3MDkxMjoNCiAgICAgICAgICAgICAgcmV0dXJuIDUzNjg3MDkx MjsNCiAgICAgICAgICAgIGNhc2UgMTA3Mzc0MTgyNDoNCiAgICAgICAgICAgICAgcmV0dXJu IDEwNzM3NDE4MjQ7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1 cm4gZTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZnQoZSwg dCkgew0KICAgICAgICAgIHZhciBuID0gZS5wZW5kaW5nTGFuZXM7DQogICAgICAgICAgaWYg KDAgPT09IG4pIHJldHVybiAwOw0KICAgICAgICAgIHZhciByID0gMCwNCiAgICAgICAgICAg IG8gPSBlLnN1c3BlbmRlZExhbmVzLA0KICAgICAgICAgICAgYSA9IGUucGluZ2VkTGFuZXMs DQogICAgICAgICAgICBpID0gMjY4NDM1NDU1ICYgbjsNCiAgICAgICAgICBpZiAoMCAhPT0g aSkgew0KICAgICAgICAgICAgdmFyIGwgPSBpICYgfm87DQogICAgICAgICAgICAwICE9PSBs ID8gKHIgPSBkdChsKSkgOiAwICE9PSAoYSAmPSBpKSAmJiAociA9IGR0KGEpKTsNCiAgICAg ICAgICB9IGVsc2UgMCAhPT0gKGkgPSBuICYgfm8pID8gKHIgPSBkdChpKSkgOiAwICE9PSBh ICYmIChyID0gZHQoYSkpOw0KICAgICAgICAgIGlmICgwID09PSByKSByZXR1cm4gMDsNCiAg ICAgICAgICBpZiAoMCAhPT0gdCAmJiB0ICE9PSByICYmIDAgPT09ICh0ICYgbykgJiYgKChv ID0gciAmIC1yKSA+PSAoYSA9IHQgJiAtdCkgfHwgKDE2ID09PSBvICYmIDAgIT09ICg0MTk0 MjQwICYgYSkpKSkgcmV0dXJuIHQ7DQogICAgICAgICAgaWYgKCgwICE9PSAoNCAmIHIpICYm IChyIHw9IDE2ICYgbiksIDAgIT09ICh0ID0gZS5lbnRhbmdsZWRMYW5lcykpKSBmb3IgKGUg PSBlLmVudGFuZ2xlbWVudHMsIHQgJj0gcjsgMCA8IHQ7KSAobyA9IDEgPDwgKG4gPSAzMSAt IGl0KHQpKSksIChyIHw9IGVbbl0pLCAodCAmPSB+byk7DQogICAgICAgICAgcmV0dXJuIHI7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcHQoZSwgdCkgew0KICAgICAgICAgIHN3 aXRjaCAoZSkgew0KICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgY2FzZSAyOg0K ICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICByZXR1cm4gdCArIDI1MDsNCiAg ICAgICAgICAgIGNhc2UgODoNCiAgICAgICAgICAgIGNhc2UgMTY6DQogICAgICAgICAgICBj YXNlIDMyOg0KICAgICAgICAgICAgY2FzZSA2NDoNCiAgICAgICAgICAgIGNhc2UgMTI4Og0K ICAgICAgICAgICAgY2FzZSAyNTY6DQogICAgICAgICAgICBjYXNlIDUxMjoNCiAgICAgICAg ICAgIGNhc2UgMTAyNDoNCiAgICAgICAgICAgIGNhc2UgMjA0ODoNCiAgICAgICAgICAgIGNh c2UgNDA5NjoNCiAgICAgICAgICAgIGNhc2UgODE5MjoNCiAgICAgICAgICAgIGNhc2UgMTYz ODQ6DQogICAgICAgICAgICBjYXNlIDMyNzY4Og0KICAgICAgICAgICAgY2FzZSA2NTUzNjoN CiAgICAgICAgICAgIGNhc2UgMTMxMDcyOg0KICAgICAgICAgICAgY2FzZSAyNjIxNDQ6DQog ICAgICAgICAgICBjYXNlIDUyNDI4ODoNCiAgICAgICAgICAgIGNhc2UgMTA0ODU3NjoNCiAg ICAgICAgICAgIGNhc2UgMjA5NzE1MjoNCiAgICAgICAgICAgICAgcmV0dXJuIHQgKyA1ZTM7 DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAg ICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGh0KGUpIHsNCiAgICAgICAg ICByZXR1cm4gMCAhPT0gKGUgPSAtMTA3Mzc0MTgyNSAmIGUucGVuZGluZ0xhbmVzKSA/IGUg OiAxMDczNzQxODI0ICYgZSA/IDEwNzM3NDE4MjQgOiAwOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIG10KCkgew0KICAgICAgICAgIHZhciBlID0gdXQ7DQogICAgICAgICAgcmV0 dXJuIDAgPT09ICg0MTk0MjQwICYgKHV0IDw8PSAxKSkgJiYgKHV0ID0gNjQpLCBlOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGd0KGUpIHsNCiAgICAgICAgICBmb3IgKHZhciB0 ID0gW10sIG4gPSAwOyAzMSA+IG47IG4rKykgdC5wdXNoKGUpOw0KICAgICAgICAgIHJldHVy biB0Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHZ0KGUsIHQsIG4pIHsNCiAgICAg ICAgICAoZS5wZW5kaW5nTGFuZXMgfD0gdCksIDUzNjg3MDkxMiAhPT0gdCAmJiAoKGUuc3Vz cGVuZGVkTGFuZXMgPSAwKSwgKGUucGluZ2VkTGFuZXMgPSAwKSksICgoZSA9IGUuZXZlbnRU aW1lcylbKHQgPSAzMSAtIGl0KHQpKV0gPSBuKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiB5dChlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSAoZS5lbnRhbmdsZWRMYW5lcyB8 PSB0KTsNCiAgICAgICAgICBmb3IgKGUgPSBlLmVudGFuZ2xlbWVudHM7IG47KSB7DQogICAg ICAgICAgICB2YXIgciA9IDMxIC0gaXQobiksDQogICAgICAgICAgICAgIG8gPSAxIDw8IHI7 DQogICAgICAgICAgICAobyAmIHQpIHwgKGVbcl0gJiB0KSAmJiAoZVtyXSB8PSB0KSwgKG4g Jj0gfm8pOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYnQgPSAwOw0K ICAgICAgICBmdW5jdGlvbiB3dChlKSB7DQogICAgICAgICAgcmV0dXJuIDEgPCAoZSAmPSAt ZSkgPyAoNCA8IGUgPyAoMCAhPT0gKDI2ODQzNTQ1NSAmIGUpID8gMTYgOiA1MzY4NzA5MTIp IDogNCkgOiAxOw0KICAgICAgICB9DQogICAgICAgIHZhciB4dCwNCiAgICAgICAgICBTdCwN CiAgICAgICAgICBrdCwNCiAgICAgICAgICBFdCwNCiAgICAgICAgICBDdCwNCiAgICAgICAg ICBSdCA9ICExLA0KICAgICAgICAgIF90ID0gW10sDQogICAgICAgICAgUHQgPSBudWxsLA0K ICAgICAgICAgIE90ID0gbnVsbCwNCiAgICAgICAgICBOdCA9IG51bGwsDQogICAgICAgICAg VHQgPSBuZXcgTWFwKCksDQogICAgICAgICAgQXQgPSBuZXcgTWFwKCksDQogICAgICAgICAg TXQgPSBbXSwNCiAgICAgICAgICB6dCA9ICJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNl bCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwg cG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRp b25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRl eHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQg c3VibWl0Ii5zcGxpdCgNCiAgICAgICAgICAgICIgIg0KICAgICAgICAgICk7DQogICAgICAg IGZ1bmN0aW9uIGp0KGUsIHQpIHsNCiAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAg ICAgIGNhc2UgImZvY3VzaW4iOg0KICAgICAgICAgICAgY2FzZSAiZm9jdXNvdXQiOg0KICAg ICAgICAgICAgICBQdCA9IG51bGw7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgY2FzZSAiZHJhZ2VudGVyIjoNCiAgICAgICAgICAgIGNhc2UgImRyYWdsZWF2ZSI6DQog ICAgICAgICAgICAgIE90ID0gbnVsbDsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICBjYXNlICJtb3VzZW92ZXIiOg0KICAgICAgICAgICAgY2FzZSAibW91c2VvdXQiOg0K ICAgICAgICAgICAgICBOdCA9IG51bGw7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgY2FzZSAicG9pbnRlcm92ZXIiOg0KICAgICAgICAgICAgY2FzZSAicG9pbnRlcm91 dCI6DQogICAgICAgICAgICAgIFR0LmRlbGV0ZSh0LnBvaW50ZXJJZCk7DQogICAgICAgICAg ICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZ290cG9pbnRlcmNhcHR1cmUiOg0KICAg ICAgICAgICAgY2FzZSAibG9zdHBvaW50ZXJjYXB0dXJlIjoNCiAgICAgICAgICAgICAgQXQu ZGVsZXRlKHQucG9pbnRlcklkKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gSXQoZSwgdCwgbiwgciwgbywgYSkgew0KICAgICAgICAgIHJldHVybiBudWxs ID09PSBlIHx8IGUubmF0aXZlRXZlbnQgIT09IGENCiAgICAgICAgICAgID8gKChlID0geyBi bG9ja2VkT246IHQsIGRvbUV2ZW50TmFtZTogbiwgZXZlbnRTeXN0ZW1GbGFnczogciwgbmF0 aXZlRXZlbnQ6IGEsIHRhcmdldENvbnRhaW5lcnM6IFtvXSB9KSwgbnVsbCAhPT0gdCAmJiBu dWxsICE9PSAodCA9IHdvKHQpKSAmJiBTdCh0KSwgZSkNCiAgICAgICAgICAgIDogKChlLmV2 ZW50U3lzdGVtRmxhZ3MgfD0gciksICh0ID0gZS50YXJnZXRDb250YWluZXJzKSwgbnVsbCAh PT0gbyAmJiAtMSA9PT0gdC5pbmRleE9mKG8pICYmIHQucHVzaChvKSwgZSk7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gTHQoZSkgew0KICAgICAgICAgIHZhciB0ID0gYm8oZS50 YXJnZXQpOw0KICAgICAgICAgIGlmIChudWxsICE9PSB0KSB7DQogICAgICAgICAgICB2YXIg biA9IFdlKHQpOw0KICAgICAgICAgICAgaWYgKG51bGwgIT09IG4pDQogICAgICAgICAgICAg IGlmICgxMyA9PT0gKHQgPSBuLnRhZykpIHsNCiAgICAgICAgICAgICAgICBpZiAobnVsbCAh PT0gKHQgPSBWZShuKSkpDQogICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgICAgICAgICAoZS5ibG9ja2VkT24gPSB0KSwNCiAgICAgICAgICAgICAgICAgICAgdm9p ZCBDdChlLnByaW9yaXR5LCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAg a3Qobik7DQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICApOw0K ICAgICAgICAgICAgICB9IGVsc2UgaWYgKDMgPT09IHQgJiYgbi5zdGF0ZU5vZGUuY3VycmVu dC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCkgcmV0dXJuIHZvaWQgKGUuYmxvY2tlZE9u ID0gMyA9PT0gbi50YWcgPyBuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIDogbnVsbCk7DQog ICAgICAgICAgfQ0KICAgICAgICAgIGUuYmxvY2tlZE9uID0gbnVsbDsNCiAgICAgICAgfQ0K ICAgICAgICBmdW5jdGlvbiBGdChlKSB7DQogICAgICAgICAgaWYgKG51bGwgIT09IGUuYmxv Y2tlZE9uKSByZXR1cm4gITE7DQogICAgICAgICAgZm9yICh2YXIgdCA9IGUudGFyZ2V0Q29u dGFpbmVyczsgMCA8IHQubGVuZ3RoOykgew0KICAgICAgICAgICAgdmFyIG4gPSBHdChlLmRv bUV2ZW50TmFtZSwgZS5ldmVudFN5c3RlbUZsYWdzLCB0WzBdLCBlLm5hdGl2ZUV2ZW50KTsN CiAgICAgICAgICAgIGlmIChudWxsICE9PSBuKSByZXR1cm4gbnVsbCAhPT0gKHQgPSB3byhu KSkgJiYgU3QodCksIChlLmJsb2NrZWRPbiA9IG4pLCAhMTsNCiAgICAgICAgICAgIHZhciBy ID0gbmV3IChuID0gZS5uYXRpdmVFdmVudCkuY29uc3RydWN0b3Iobi50eXBlLCBuKTsNCiAg ICAgICAgICAgICh3ZSA9IHIpLCBuLnRhcmdldC5kaXNwYXRjaEV2ZW50KHIpLCAod2UgPSBu dWxsKSwgdC5zaGlmdCgpOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gITA7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gQnQoZSwgdCwgbikgew0KICAgICAgICAgIEZ0 KGUpICYmIG4uZGVsZXRlKHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIER0KCkg ew0KICAgICAgICAgIChSdCA9ICExKSwgbnVsbCAhPT0gUHQgJiYgRnQoUHQpICYmIChQdCA9 IG51bGwpLCBudWxsICE9PSBPdCAmJiBGdChPdCkgJiYgKE90ID0gbnVsbCksIG51bGwgIT09 IE50ICYmIEZ0KE50KSAmJiAoTnQgPSBudWxsKSwgVHQuZm9yRWFjaChCdCksIEF0LmZvckVh Y2goQnQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFV0KGUsIHQpIHsNCiAgICAg ICAgICBlLmJsb2NrZWRPbiA9PT0gdCAmJiAoKGUuYmxvY2tlZE9uID0gbnVsbCksIFJ0IHx8 ICgoUnQgPSAhMCksIG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhvLnVuc3RhYmxlX05v cm1hbFByaW9yaXR5LCBEdCkpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBXdChl KSB7DQogICAgICAgICAgZnVuY3Rpb24gdCh0KSB7DQogICAgICAgICAgICByZXR1cm4gVXQo dCwgZSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmICgwIDwgX3QubGVuZ3RoKSB7DQog ICAgICAgICAgICBVdChfdFswXSwgZSk7DQogICAgICAgICAgICBmb3IgKHZhciBuID0gMTsg biA8IF90Lmxlbmd0aDsgbisrKSB7DQogICAgICAgICAgICAgIHZhciByID0gX3Rbbl07DQog ICAgICAgICAgICAgIHIuYmxvY2tlZE9uID09PSBlICYmIChyLmJsb2NrZWRPbiA9IG51bGwp Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgICBmb3IgKG51bGwgIT09 IFB0ICYmIFV0KFB0LCBlKSwgbnVsbCAhPT0gT3QgJiYgVXQoT3QsIGUpLCBudWxsICE9PSBO dCAmJiBVdChOdCwgZSksIFR0LmZvckVhY2godCksIEF0LmZvckVhY2godCksIG4gPSAwOyBu IDwgTXQubGVuZ3RoOyBuKyspIChyID0gTXRbbl0pLmJsb2NrZWRPbiA9PT0gZSAmJiAoci5i bG9ja2VkT24gPSBudWxsKTsNCiAgICAgICAgICBmb3IgKDsgMCA8IE10Lmxlbmd0aCAmJiBu dWxsID09PSAobiA9IE10WzBdKS5ibG9ja2VkT247KSBMdChuKSwgbnVsbCA9PT0gbi5ibG9j a2VkT24gJiYgTXQuc2hpZnQoKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgVnQgPSB3LlJl YWN0Q3VycmVudEJhdGNoQ29uZmlnLA0KICAgICAgICAgIEh0ID0gITA7DQogICAgICAgIGZ1 bmN0aW9uIHF0KGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICB2YXIgbyA9IGJ0LA0KICAgICAg ICAgICAgYSA9IFZ0LnRyYW5zaXRpb247DQogICAgICAgICAgVnQudHJhbnNpdGlvbiA9IG51 bGw7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIChidCA9IDEpLCBLdChlLCB0LCBu LCByKTsNCiAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgKGJ0ID0gbyksIChW dC50cmFuc2l0aW9uID0gYSk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uICR0KGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICB2YXIgbyA9IGJ0LA0KICAgICAg ICAgICAgYSA9IFZ0LnRyYW5zaXRpb247DQogICAgICAgICAgVnQudHJhbnNpdGlvbiA9IG51 bGw7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIChidCA9IDQpLCBLdChlLCB0LCBu LCByKTsNCiAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgKGJ0ID0gbyksIChW dC50cmFuc2l0aW9uID0gYSk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIEt0KGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICBpZiAoSHQpIHsNCiAgICAgICAg ICAgIHZhciBvID0gR3QoZSwgdCwgbiwgcik7DQogICAgICAgICAgICBpZiAobnVsbCA9PT0g bykgSHIoZSwgdCwgciwgUXQsIG4pLCBqdChlLCByKTsNCiAgICAgICAgICAgIGVsc2UgaWYg KA0KICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUsIHQsIG4sIHIsIG8pIHsNCiAgICAgICAg ICAgICAgICBzd2l0Y2ggKHQpIHsNCiAgICAgICAgICAgICAgICAgIGNhc2UgImZvY3VzaW4i Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFB0ID0gSXQoUHQsIGUsIHQsIG4sIHIs IG8pKSwgITA7DQogICAgICAgICAgICAgICAgICBjYXNlICJkcmFnZW50ZXIiOg0KICAgICAg ICAgICAgICAgICAgICByZXR1cm4gKE90ID0gSXQoT3QsIGUsIHQsIG4sIHIsIG8pKSwgITA7 DQogICAgICAgICAgICAgICAgICBjYXNlICJtb3VzZW92ZXIiOg0KICAgICAgICAgICAgICAg ICAgICByZXR1cm4gKE50ID0gSXQoTnQsIGUsIHQsIG4sIHIsIG8pKSwgITA7DQogICAgICAg ICAgICAgICAgICBjYXNlICJwb2ludGVyb3ZlciI6DQogICAgICAgICAgICAgICAgICAgIHZh ciBhID0gby5wb2ludGVySWQ7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBUdC5zZXQo YSwgSXQoVHQuZ2V0KGEpIHx8IG51bGwsIGUsIHQsIG4sIHIsIG8pKSwgITA7DQogICAgICAg ICAgICAgICAgICBjYXNlICJnb3Rwb2ludGVyY2FwdHVyZSI6DQogICAgICAgICAgICAgICAg ICAgIHJldHVybiAoYSA9IG8ucG9pbnRlcklkKSwgQXQuc2V0KGEsIEl0KEF0LmdldChhKSB8 fCBudWxsLCBlLCB0LCBuLCByLCBvKSksICEwOw0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICByZXR1cm4gITE7DQogICAgICAgICAgICAgIH0pKG8sIGUsIHQsIG4sIHIp DQogICAgICAgICAgICApDQogICAgICAgICAgICAgIHIuc3RvcFByb3BhZ2F0aW9uKCk7DQog ICAgICAgICAgICBlbHNlIGlmICgoanQoZSwgciksIDQgJiB0ICYmIC0xIDwgenQuaW5kZXhP ZihlKSkpIHsNCiAgICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IG87KSB7DQogICAgICAg ICAgICAgICAgdmFyIGEgPSB3byhvKTsNCiAgICAgICAgICAgICAgICBpZiAoKG51bGwgIT09 IGEgJiYgeHQoYSksIG51bGwgPT09IChhID0gR3QoZSwgdCwgbiwgcikpICYmIEhyKGUsIHQs IHIsIFF0LCBuKSwgYSA9PT0gbykpIGJyZWFrOw0KICAgICAgICAgICAgICAgIG8gPSBhOw0K ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIG51bGwgIT09IG8gJiYgci5zdG9wUHJv cGFnYXRpb24oKTsNCiAgICAgICAgICAgIH0gZWxzZSBIcihlLCB0LCByLCBudWxsLCBuKTsN CiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIFF0ID0gbnVsbDsNCiAgICAg ICAgZnVuY3Rpb24gR3QoZSwgdCwgbiwgcikgew0KICAgICAgICAgIGlmICgoKFF0ID0gbnVs bCksIG51bGwgIT09IChlID0gYm8oKGUgPSB4ZShyKSkpKSkpDQogICAgICAgICAgICBpZiAo bnVsbCA9PT0gKHQgPSBXZShlKSkpIGUgPSBudWxsOw0KICAgICAgICAgICAgZWxzZSBpZiAo MTMgPT09IChuID0gdC50YWcpKSB7DQogICAgICAgICAgICAgIGlmIChudWxsICE9PSAoZSA9 IFZlKHQpKSkgcmV0dXJuIGU7DQogICAgICAgICAgICAgIGUgPSBudWxsOw0KICAgICAgICAg ICAgfSBlbHNlIGlmICgzID09PSBuKSB7DQogICAgICAgICAgICAgIGlmICh0LnN0YXRlTm9k ZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKSByZXR1cm4gMyA9PT0gdC50 YWcgPyB0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvIDogbnVsbDsNCiAgICAgICAgICAgICAg ZSA9IG51bGw7DQogICAgICAgICAgICB9IGVsc2UgdCAhPT0gZSAmJiAoZSA9IG51bGwpOw0K ICAgICAgICAgIHJldHVybiAoUXQgPSBlKSwgbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBZdChlKSB7DQogICAgICAgICAgc3dpdGNoIChlKSB7DQogICAgICAgICAgICBj YXNlICJjYW5jZWwiOg0KICAgICAgICAgICAgY2FzZSAiY2xpY2siOg0KICAgICAgICAgICAg Y2FzZSAiY2xvc2UiOg0KICAgICAgICAgICAgY2FzZSAiY29udGV4dG1lbnUiOg0KICAgICAg ICAgICAgY2FzZSAiY29weSI6DQogICAgICAgICAgICBjYXNlICJjdXQiOg0KICAgICAgICAg ICAgY2FzZSAiYXV4Y2xpY2siOg0KICAgICAgICAgICAgY2FzZSAiZGJsY2xpY2siOg0KICAg ICAgICAgICAgY2FzZSAiZHJhZ2VuZCI6DQogICAgICAgICAgICBjYXNlICJkcmFnc3RhcnQi Og0KICAgICAgICAgICAgY2FzZSAiZHJvcCI6DQogICAgICAgICAgICBjYXNlICJmb2N1c2lu IjoNCiAgICAgICAgICAgIGNhc2UgImZvY3Vzb3V0IjoNCiAgICAgICAgICAgIGNhc2UgImlu cHV0IjoNCiAgICAgICAgICAgIGNhc2UgImludmFsaWQiOg0KICAgICAgICAgICAgY2FzZSAi a2V5ZG93biI6DQogICAgICAgICAgICBjYXNlICJrZXlwcmVzcyI6DQogICAgICAgICAgICBj YXNlICJrZXl1cCI6DQogICAgICAgICAgICBjYXNlICJtb3VzZWRvd24iOg0KICAgICAgICAg ICAgY2FzZSAibW91c2V1cCI6DQogICAgICAgICAgICBjYXNlICJwYXN0ZSI6DQogICAgICAg ICAgICBjYXNlICJwYXVzZSI6DQogICAgICAgICAgICBjYXNlICJwbGF5IjoNCiAgICAgICAg ICAgIGNhc2UgInBvaW50ZXJjYW5jZWwiOg0KICAgICAgICAgICAgY2FzZSAicG9pbnRlcmRv d24iOg0KICAgICAgICAgICAgY2FzZSAicG9pbnRlcnVwIjoNCiAgICAgICAgICAgIGNhc2Ug InJhdGVjaGFuZ2UiOg0KICAgICAgICAgICAgY2FzZSAicmVzZXQiOg0KICAgICAgICAgICAg Y2FzZSAicmVzaXplIjoNCiAgICAgICAgICAgIGNhc2UgInNlZWtlZCI6DQogICAgICAgICAg ICBjYXNlICJzdWJtaXQiOg0KICAgICAgICAgICAgY2FzZSAidG91Y2hjYW5jZWwiOg0KICAg ICAgICAgICAgY2FzZSAidG91Y2hlbmQiOg0KICAgICAgICAgICAgY2FzZSAidG91Y2hzdGFy dCI6DQogICAgICAgICAgICBjYXNlICJ2b2x1bWVjaGFuZ2UiOg0KICAgICAgICAgICAgY2Fz ZSAiY2hhbmdlIjoNCiAgICAgICAgICAgIGNhc2UgInNlbGVjdGlvbmNoYW5nZSI6DQogICAg ICAgICAgICBjYXNlICJ0ZXh0SW5wdXQiOg0KICAgICAgICAgICAgY2FzZSAiY29tcG9zaXRp b25zdGFydCI6DQogICAgICAgICAgICBjYXNlICJjb21wb3NpdGlvbmVuZCI6DQogICAgICAg ICAgICBjYXNlICJjb21wb3NpdGlvbnVwZGF0ZSI6DQogICAgICAgICAgICBjYXNlICJiZWZv cmVibHVyIjoNCiAgICAgICAgICAgIGNhc2UgImFmdGVyYmx1ciI6DQogICAgICAgICAgICBj YXNlICJiZWZvcmVpbnB1dCI6DQogICAgICAgICAgICBjYXNlICJibHVyIjoNCiAgICAgICAg ICAgIGNhc2UgImZ1bGxzY3JlZW5jaGFuZ2UiOg0KICAgICAgICAgICAgY2FzZSAiZm9jdXMi Og0KICAgICAgICAgICAgY2FzZSAiaGFzaGNoYW5nZSI6DQogICAgICAgICAgICBjYXNlICJw b3BzdGF0ZSI6DQogICAgICAgICAgICBjYXNlICJzZWxlY3QiOg0KICAgICAgICAgICAgY2Fz ZSAic2VsZWN0c3RhcnQiOg0KICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAg IGNhc2UgImRyYWciOg0KICAgICAgICAgICAgY2FzZSAiZHJhZ2VudGVyIjoNCiAgICAgICAg ICAgIGNhc2UgImRyYWdleGl0IjoNCiAgICAgICAgICAgIGNhc2UgImRyYWdsZWF2ZSI6DQog ICAgICAgICAgICBjYXNlICJkcmFnb3ZlciI6DQogICAgICAgICAgICBjYXNlICJtb3VzZW1v dmUiOg0KICAgICAgICAgICAgY2FzZSAibW91c2VvdXQiOg0KICAgICAgICAgICAgY2FzZSAi bW91c2VvdmVyIjoNCiAgICAgICAgICAgIGNhc2UgInBvaW50ZXJtb3ZlIjoNCiAgICAgICAg ICAgIGNhc2UgInBvaW50ZXJvdXQiOg0KICAgICAgICAgICAgY2FzZSAicG9pbnRlcm92ZXIi Og0KICAgICAgICAgICAgY2FzZSAic2Nyb2xsIjoNCiAgICAgICAgICAgIGNhc2UgInRvZ2ds ZSI6DQogICAgICAgICAgICBjYXNlICJ0b3VjaG1vdmUiOg0KICAgICAgICAgICAgY2FzZSAi d2hlZWwiOg0KICAgICAgICAgICAgY2FzZSAibW91c2VlbnRlciI6DQogICAgICAgICAgICBj YXNlICJtb3VzZWxlYXZlIjoNCiAgICAgICAgICAgIGNhc2UgInBvaW50ZXJlbnRlciI6DQog ICAgICAgICAgICBjYXNlICJwb2ludGVybGVhdmUiOg0KICAgICAgICAgICAgICByZXR1cm4g NDsNCiAgICAgICAgICAgIGNhc2UgIm1lc3NhZ2UiOg0KICAgICAgICAgICAgICBzd2l0Y2gg KFplKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlIEplOg0KICAgICAgICAgICAgICAgICAg cmV0dXJuIDE7DQogICAgICAgICAgICAgICAgY2FzZSBldDoNCiAgICAgICAgICAgICAgICAg IHJldHVybiA0Ow0KICAgICAgICAgICAgICAgIGNhc2UgdHQ6DQogICAgICAgICAgICAgICAg Y2FzZSBudDoNCiAgICAgICAgICAgICAgICAgIHJldHVybiAxNjsNCiAgICAgICAgICAgICAg ICBjYXNlIHJ0Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIDUzNjg3MDkxMjsNCiAgICAg ICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1 cm4gMTY7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBYdCA9IG51bGws DQogICAgICAgICAgWnQgPSBudWxsLA0KICAgICAgICAgIEp0ID0gbnVsbDsNCiAgICAgICAg ZnVuY3Rpb24gZW4oKSB7DQogICAgICAgICAgaWYgKEp0KSByZXR1cm4gSnQ7DQogICAgICAg ICAgdmFyIGUsDQogICAgICAgICAgICB0LA0KICAgICAgICAgICAgbiA9IFp0LA0KICAgICAg ICAgICAgciA9IG4ubGVuZ3RoLA0KICAgICAgICAgICAgbyA9ICJ2YWx1ZSIgaW4gWHQgPyBY dC52YWx1ZSA6IFh0LnRleHRDb250ZW50LA0KICAgICAgICAgICAgYSA9IG8ubGVuZ3RoOw0K ICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCByICYmIG5bZV0gPT09IG9bZV07IGUrKyk7DQog ICAgICAgICAgdmFyIGkgPSByIC0gZTsNCiAgICAgICAgICBmb3IgKHQgPSAxOyB0IDw9IGkg JiYgbltyIC0gdF0gPT09IG9bYSAtIHRdOyB0KyspOw0KICAgICAgICAgIHJldHVybiAoSnQg PSBvLnNsaWNlKGUsIDEgPCB0ID8gMSAtIHQgOiB2b2lkIDApKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiB0bihlKSB7DQogICAgICAgICAgdmFyIHQgPSBlLmtleUNvZGU7DQog ICAgICAgICAgcmV0dXJuICJjaGFyQ29kZSIgaW4gZSA/IDAgPT09IChlID0gZS5jaGFyQ29k ZSkgJiYgMTMgPT09IHQgJiYgKGUgPSAxMykgOiAoZSA9IHQpLCAxMCA9PT0gZSAmJiAoZSA9 IDEzKSwgMzIgPD0gZSB8fCAxMyA9PT0gZSA/IGUgOiAwOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIG5uKCkgew0KICAgICAgICAgIHJldHVybiAhMDsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBybigpIHsNCiAgICAgICAgICByZXR1cm4gITE7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gb24oZSkgew0KICAgICAgICAgIGZ1bmN0aW9uIHQodCwgbiwg ciwgbywgYSkgew0KICAgICAgICAgICAgZm9yICh2YXIgaSBpbiAoKHRoaXMuX3JlYWN0TmFt ZSA9IHQpLCAodGhpcy5fdGFyZ2V0SW5zdCA9IHIpLCAodGhpcy50eXBlID0gbiksICh0aGlz Lm5hdGl2ZUV2ZW50ID0gbyksICh0aGlzLnRhcmdldCA9IGEpLCAodGhpcy5jdXJyZW50VGFy Z2V0ID0gbnVsbCksIGUpKQ0KICAgICAgICAgICAgICBlLmhhc093blByb3BlcnR5KGkpICYm ICgodCA9IGVbaV0pLCAodGhpc1tpXSA9IHQgPyB0KG8pIDogb1tpXSkpOw0KICAgICAgICAg ICAgcmV0dXJuICh0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IChudWxsICE9IG8uZGVmYXVs dFByZXZlbnRlZCA/IG8uZGVmYXVsdFByZXZlbnRlZCA6ICExID09PSBvLnJldHVyblZhbHVl KSA/IG5uIDogcm4pLCAodGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJuKSwgdGhpczsN CiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIEwodC5wcm90 b3R5cGUsIHsNCiAgICAgICAgICAgICAgcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uICgpIHsN CiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRQcmV2ZW50ZWQgPSAhMDsNCiAgICAgICAg ICAgICAgICB2YXIgZSA9IHRoaXMubmF0aXZlRXZlbnQ7DQogICAgICAgICAgICAgICAgZSAm JiAoZS5wcmV2ZW50RGVmYXVsdCA/IGUucHJldmVudERlZmF1bHQoKSA6ICJ1bmtub3duIiAh PT0gdHlwZW9mIGUucmV0dXJuVmFsdWUgJiYgKGUucmV0dXJuVmFsdWUgPSAhMSksICh0aGlz LmlzRGVmYXVsdFByZXZlbnRlZCA9IG5uKSk7DQogICAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAgIHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAg IHZhciBlID0gdGhpcy5uYXRpdmVFdmVudDsNCiAgICAgICAgICAgICAgICBlICYmIChlLnN0 b3BQcm9wYWdhdGlvbiA/IGUuc3RvcFByb3BhZ2F0aW9uKCkgOiAidW5rbm93biIgIT09IHR5 cGVvZiBlLmNhbmNlbEJ1YmJsZSAmJiAoZS5jYW5jZWxCdWJibGUgPSAhMCksICh0aGlzLmlz UHJvcGFnYXRpb25TdG9wcGVkID0gbm4pKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAg ICAgICAgcGVyc2lzdDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICBpc1BlcnNp c3RlbnQ6IG5uLA0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICB0DQogICAgICAgICAg KTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYW4sDQogICAgICAgICAgbG4sDQogICAgICAg ICAgc24sDQogICAgICAgICAgdW4gPSB7DQogICAgICAgICAgICBldmVudFBoYXNlOiAwLA0K ICAgICAgICAgICAgYnViYmxlczogMCwNCiAgICAgICAgICAgIGNhbmNlbGFibGU6IDAsDQog ICAgICAgICAgICB0aW1lU3RhbXA6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHJl dHVybiBlLnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpOw0KICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgIGRlZmF1bHRQcmV2ZW50ZWQ6IDAsDQogICAgICAgICAgICBpc1RydXN0ZWQ6IDAs DQogICAgICAgICAgfSwNCiAgICAgICAgICBjbiA9IG9uKHVuKSwNCiAgICAgICAgICBkbiA9 IEwoe30sIHVuLCB7IHZpZXc6IDAsIGRldGFpbDogMCB9KSwNCiAgICAgICAgICBmbiA9IG9u KGRuKSwNCiAgICAgICAgICBwbiA9IEwoe30sIGRuLCB7DQogICAgICAgICAgICBzY3JlZW5Y OiAwLA0KICAgICAgICAgICAgc2NyZWVuWTogMCwNCiAgICAgICAgICAgIGNsaWVudFg6IDAs DQogICAgICAgICAgICBjbGllbnRZOiAwLA0KICAgICAgICAgICAgcGFnZVg6IDAsDQogICAg ICAgICAgICBwYWdlWTogMCwNCiAgICAgICAgICAgIGN0cmxLZXk6IDAsDQogICAgICAgICAg ICBzaGlmdEtleTogMCwNCiAgICAgICAgICAgIGFsdEtleTogMCwNCiAgICAgICAgICAgIG1l dGFLZXk6IDAsDQogICAgICAgICAgICBnZXRNb2RpZmllclN0YXRlOiBDbiwNCiAgICAgICAg ICAgIGJ1dHRvbjogMCwNCiAgICAgICAgICAgIGJ1dHRvbnM6IDAsDQogICAgICAgICAgICBy ZWxhdGVkVGFyZ2V0OiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gdm9p ZCAwID09PSBlLnJlbGF0ZWRUYXJnZXQgPyAoZS5mcm9tRWxlbWVudCA9PT0gZS5zcmNFbGVt ZW50ID8gZS50b0VsZW1lbnQgOiBlLmZyb21FbGVtZW50KSA6IGUucmVsYXRlZFRhcmdldDsN CiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBtb3ZlbWVudFg6IGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICAgIHJldHVybiAibW92ZW1lbnRYIiBpbiBlID8gZS5tb3ZlbWVudFgg OiAoZSAhPT0gc24gJiYgKHNuICYmICJtb3VzZW1vdmUiID09PSBlLnR5cGUgPyAoKGFuID0g ZS5zY3JlZW5YIC0gc24uc2NyZWVuWCksIChsbiA9IGUuc2NyZWVuWSAtIHNuLnNjcmVlblkp KSA6IChsbiA9IGFuID0gMCksIChzbiA9IGUpKSwgYW4pOw0KICAgICAgICAgICAgfSwNCiAg ICAgICAgICAgIG1vdmVtZW50WTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgcmV0 dXJuICJtb3ZlbWVudFkiIGluIGUgPyBlLm1vdmVtZW50WSA6IGxuOw0KICAgICAgICAgICAg fSwNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBobiA9IG9uKHBuKSwNCiAgICAgICAgICBt biA9IG9uKEwoe30sIHBuLCB7IGRhdGFUcmFuc2ZlcjogMCB9KSksDQogICAgICAgICAgZ24g PSBvbihMKHt9LCBkbiwgeyByZWxhdGVkVGFyZ2V0OiAwIH0pKSwNCiAgICAgICAgICB2biA9 IG9uKEwoe30sIHVuLCB7IGFuaW1hdGlvbk5hbWU6IDAsIGVsYXBzZWRUaW1lOiAwLCBwc2V1 ZG9FbGVtZW50OiAwIH0pKSwNCiAgICAgICAgICB5biA9IEwoe30sIHVuLCB7DQogICAgICAg ICAgICBjbGlwYm9hcmREYXRhOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1 cm4gImNsaXBib2FyZERhdGEiIGluIGUgPyBlLmNsaXBib2FyZERhdGEgOiB3aW5kb3cuY2xp cGJvYXJkRGF0YTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSksDQogICAgICAgICAg Ym4gPSBvbih5biksDQogICAgICAgICAgd24gPSBvbihMKHt9LCB1biwgeyBkYXRhOiAwIH0p KSwNCiAgICAgICAgICB4biA9IHsNCiAgICAgICAgICAgIEVzYzogIkVzY2FwZSIsDQogICAg ICAgICAgICBTcGFjZWJhcjogIiAiLA0KICAgICAgICAgICAgTGVmdDogIkFycm93TGVmdCIs DQogICAgICAgICAgICBVcDogIkFycm93VXAiLA0KICAgICAgICAgICAgUmlnaHQ6ICJBcnJv d1JpZ2h0IiwNCiAgICAgICAgICAgIERvd246ICJBcnJvd0Rvd24iLA0KICAgICAgICAgICAg RGVsOiAiRGVsZXRlIiwNCiAgICAgICAgICAgIFdpbjogIk9TIiwNCiAgICAgICAgICAgIE1l bnU6ICJDb250ZXh0TWVudSIsDQogICAgICAgICAgICBBcHBzOiAiQ29udGV4dE1lbnUiLA0K ICAgICAgICAgICAgU2Nyb2xsOiAiU2Nyb2xsTG9jayIsDQogICAgICAgICAgICBNb3pQcmlu dGFibGVLZXk6ICJVbmlkZW50aWZpZWQiLA0KICAgICAgICAgIH0sDQogICAgICAgICAgU24g PSB7DQogICAgICAgICAgICA4OiAiQmFja3NwYWNlIiwNCiAgICAgICAgICAgIDk6ICJUYWIi LA0KICAgICAgICAgICAgMTI6ICJDbGVhciIsDQogICAgICAgICAgICAxMzogIkVudGVyIiwN CiAgICAgICAgICAgIDE2OiAiU2hpZnQiLA0KICAgICAgICAgICAgMTc6ICJDb250cm9sIiwN CiAgICAgICAgICAgIDE4OiAiQWx0IiwNCiAgICAgICAgICAgIDE5OiAiUGF1c2UiLA0KICAg ICAgICAgICAgMjA6ICJDYXBzTG9jayIsDQogICAgICAgICAgICAyNzogIkVzY2FwZSIsDQog ICAgICAgICAgICAzMjogIiAiLA0KICAgICAgICAgICAgMzM6ICJQYWdlVXAiLA0KICAgICAg ICAgICAgMzQ6ICJQYWdlRG93biIsDQogICAgICAgICAgICAzNTogIkVuZCIsDQogICAgICAg ICAgICAzNjogIkhvbWUiLA0KICAgICAgICAgICAgMzc6ICJBcnJvd0xlZnQiLA0KICAgICAg ICAgICAgMzg6ICJBcnJvd1VwIiwNCiAgICAgICAgICAgIDM5OiAiQXJyb3dSaWdodCIsDQog ICAgICAgICAgICA0MDogIkFycm93RG93biIsDQogICAgICAgICAgICA0NTogIkluc2VydCIs DQogICAgICAgICAgICA0NjogIkRlbGV0ZSIsDQogICAgICAgICAgICAxMTI6ICJGMSIsDQog ICAgICAgICAgICAxMTM6ICJGMiIsDQogICAgICAgICAgICAxMTQ6ICJGMyIsDQogICAgICAg ICAgICAxMTU6ICJGNCIsDQogICAgICAgICAgICAxMTY6ICJGNSIsDQogICAgICAgICAgICAx MTc6ICJGNiIsDQogICAgICAgICAgICAxMTg6ICJGNyIsDQogICAgICAgICAgICAxMTk6ICJG OCIsDQogICAgICAgICAgICAxMjA6ICJGOSIsDQogICAgICAgICAgICAxMjE6ICJGMTAiLA0K ICAgICAgICAgICAgMTIyOiAiRjExIiwNCiAgICAgICAgICAgIDEyMzogIkYxMiIsDQogICAg ICAgICAgICAxNDQ6ICJOdW1Mb2NrIiwNCiAgICAgICAgICAgIDE0NTogIlNjcm9sbExvY2si LA0KICAgICAgICAgICAgMjI0OiAiTWV0YSIsDQogICAgICAgICAgfSwNCiAgICAgICAgICBr biA9IHsgQWx0OiAiYWx0S2V5IiwgQ29udHJvbDogImN0cmxLZXkiLCBNZXRhOiAibWV0YUtl eSIsIFNoaWZ0OiAic2hpZnRLZXkiIH07DQogICAgICAgIGZ1bmN0aW9uIEVuKGUpIHsNCiAg ICAgICAgICB2YXIgdCA9IHRoaXMubmF0aXZlRXZlbnQ7DQogICAgICAgICAgcmV0dXJuIHQu Z2V0TW9kaWZpZXJTdGF0ZSA/IHQuZ2V0TW9kaWZpZXJTdGF0ZShlKSA6ICEhKGUgPSBrbltl XSkgJiYgISF0W2VdOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIENuKCkgew0KICAg ICAgICAgIHJldHVybiBFbjsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgUm4gPSBMKHt9LCBk biwgew0KICAgICAgICAgIGtleTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGlmIChl LmtleSkgew0KICAgICAgICAgICAgICB2YXIgdCA9IHhuW2Uua2V5XSB8fCBlLmtleTsNCiAg ICAgICAgICAgICAgaWYgKCJVbmlkZW50aWZpZWQiICE9PSB0KSByZXR1cm4gdDsNCiAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAia2V5cHJlc3MiID09PSBlLnR5cGUgPyAo MTMgPT09IChlID0gdG4oZSkpID8gIkVudGVyIiA6IFN0cmluZy5mcm9tQ2hhckNvZGUoZSkp IDogImtleWRvd24iID09PSBlLnR5cGUgfHwgImtleXVwIiA9PT0gZS50eXBlID8gU25bZS5r ZXlDb2RlXSB8fCAiVW5pZGVudGlmaWVkIiA6ICIiOw0KICAgICAgICAgIH0sDQogICAgICAg ICAgY29kZTogMCwNCiAgICAgICAgICBsb2NhdGlvbjogMCwNCiAgICAgICAgICBjdHJsS2V5 OiAwLA0KICAgICAgICAgIHNoaWZ0S2V5OiAwLA0KICAgICAgICAgIGFsdEtleTogMCwNCiAg ICAgICAgICBtZXRhS2V5OiAwLA0KICAgICAgICAgIHJlcGVhdDogMCwNCiAgICAgICAgICBs b2NhbGU6IDAsDQogICAgICAgICAgZ2V0TW9kaWZpZXJTdGF0ZTogQ24sDQogICAgICAgICAg Y2hhckNvZGU6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gImtleXByZXNz IiA9PT0gZS50eXBlID8gdG4oZSkgOiAwOw0KICAgICAgICAgIH0sDQogICAgICAgICAga2V5 Q29kZTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAia2V5ZG93biIgPT09 IGUudHlwZSB8fCAia2V5dXAiID09PSBlLnR5cGUgPyBlLmtleUNvZGUgOiAwOw0KICAgICAg ICAgIH0sDQogICAgICAgICAgd2hpY2g6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBy ZXR1cm4gImtleXByZXNzIiA9PT0gZS50eXBlID8gdG4oZSkgOiAia2V5ZG93biIgPT09IGUu dHlwZSB8fCAia2V5dXAiID09PSBlLnR5cGUgPyBlLmtleUNvZGUgOiAwOw0KICAgICAgICAg IH0sDQogICAgICAgIH0pLA0KICAgICAgICAgIF9uID0gb24oUm4pLA0KICAgICAgICAgIFBu ID0gb24oTCh7fSwgcG4sIHsgcG9pbnRlcklkOiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwLCBw cmVzc3VyZTogMCwgdGFuZ2VudGlhbFByZXNzdXJlOiAwLCB0aWx0WDogMCwgdGlsdFk6IDAs IHR3aXN0OiAwLCBwb2ludGVyVHlwZTogMCwgaXNQcmltYXJ5OiAwIH0pKSwNCiAgICAgICAg ICBPbiA9IG9uKEwoe30sIGRuLCB7IHRvdWNoZXM6IDAsIHRhcmdldFRvdWNoZXM6IDAsIGNo YW5nZWRUb3VjaGVzOiAwLCBhbHRLZXk6IDAsIG1ldGFLZXk6IDAsIGN0cmxLZXk6IDAsIHNo aWZ0S2V5OiAwLCBnZXRNb2RpZmllclN0YXRlOiBDbiB9KSksDQogICAgICAgICAgTm4gPSBv bihMKHt9LCB1biwgeyBwcm9wZXJ0eU5hbWU6IDAsIGVsYXBzZWRUaW1lOiAwLCBwc2V1ZG9F bGVtZW50OiAwIH0pKSwNCiAgICAgICAgICBUbiA9IEwoe30sIHBuLCB7DQogICAgICAgICAg ICBkZWx0YVg6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHJldHVybiAiZGVsdGFY IiBpbiBlID8gZS5kZWx0YVggOiAid2hlZWxEZWx0YVgiIGluIGUgPyAtZS53aGVlbERlbHRh WCA6IDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZGVsdGFZOiBmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgICAgICByZXR1cm4gImRlbHRhWSIgaW4gZSA/IGUuZGVsdGFZIDog IndoZWVsRGVsdGFZIiBpbiBlID8gLWUud2hlZWxEZWx0YVkgOiAid2hlZWxEZWx0YSIgaW4g ZSA/IC1lLndoZWVsRGVsdGEgOiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGRl bHRhWjogMCwNCiAgICAgICAgICAgIGRlbHRhTW9kZTogMCwNCiAgICAgICAgICB9KSwNCiAg ICAgICAgICBBbiA9IG9uKFRuKSwNCiAgICAgICAgICBNbiA9IFs5LCAxMywgMjcsIDMyXSwN CiAgICAgICAgICB6biA9IGMgJiYgIkNvbXBvc2l0aW9uRXZlbnQiIGluIHdpbmRvdywNCiAg ICAgICAgICBqbiA9IG51bGw7DQogICAgICAgIGMgJiYgImRvY3VtZW50TW9kZSIgaW4gZG9j dW1lbnQgJiYgKGpuID0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTsNCiAgICAgICAgdmFyIElu ID0gYyAmJiAiVGV4dEV2ZW50IiBpbiB3aW5kb3cgJiYgIWpuLA0KICAgICAgICAgIExuID0g YyAmJiAoIXpuIHx8IChqbiAmJiA4IDwgam4gJiYgMTEgPj0gam4pKSwNCiAgICAgICAgICBG biA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLA0KICAgICAgICAgIEJuID0gITE7DQogICAg ICAgIGZ1bmN0aW9uIERuKGUsIHQpIHsNCiAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAg ICAgICAgIGNhc2UgImtleXVwIjoNCiAgICAgICAgICAgICAgcmV0dXJuIC0xICE9PSBNbi5p bmRleE9mKHQua2V5Q29kZSk7DQogICAgICAgICAgICBjYXNlICJrZXlkb3duIjoNCiAgICAg ICAgICAgICAgcmV0dXJuIDIyOSAhPT0gdC5rZXlDb2RlOw0KICAgICAgICAgICAgY2FzZSAi a2V5cHJlc3MiOg0KICAgICAgICAgICAgY2FzZSAibW91c2Vkb3duIjoNCiAgICAgICAgICAg IGNhc2UgImZvY3Vzb3V0IjoNCiAgICAgICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICAg ICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgcmV0dXJuICExOw0KICAgICAgICAgIH0NCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBVbihlKSB7DQogICAgICAgICAgcmV0dXJuICJv YmplY3QiID09PSB0eXBlb2YgKGUgPSBlLmRldGFpbCkgJiYgImRhdGEiIGluIGUgPyBlLmRh dGEgOiBudWxsOw0KICAgICAgICB9DQogICAgICAgIHZhciBXbiA9ICExOw0KICAgICAgICB2 YXIgVm4gPSB7IGNvbG9yOiAhMCwgZGF0ZTogITAsIGRhdGV0aW1lOiAhMCwgImRhdGV0aW1l LWxvY2FsIjogITAsIGVtYWlsOiAhMCwgbW9udGg6ICEwLCBudW1iZXI6ICEwLCBwYXNzd29y ZDogITAsIHJhbmdlOiAhMCwgc2VhcmNoOiAhMCwgdGVsOiAhMCwgdGV4dDogITAsIHRpbWU6 ICEwLCB1cmw6ICEwLCB3ZWVrOiAhMCB9Ow0KICAgICAgICBmdW5jdGlvbiBIbihlKSB7DQog ICAgICAgICAgdmFyIHQgPSBlICYmIGUubm9kZU5hbWUgJiYgZS5ub2RlTmFtZS50b0xvd2Vy Q2FzZSgpOw0KICAgICAgICAgIHJldHVybiAiaW5wdXQiID09PSB0ID8gISFWbltlLnR5cGVd IDogInRleHRhcmVhIiA9PT0gdDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBxbihl LCB0LCBuLCByKSB7DQogICAgICAgICAgUmUociksIDAgPCAodCA9ICRyKHQsICJvbkNoYW5n ZSIpKS5sZW5ndGggJiYgKChuID0gbmV3IGNuKCJvbkNoYW5nZSIsICJjaGFuZ2UiLCBudWxs LCBuLCByKSksIGUucHVzaCh7IGV2ZW50OiBuLCBsaXN0ZW5lcnM6IHQgfSkpOw0KICAgICAg ICB9DQogICAgICAgIHZhciAkbiA9IG51bGwsDQogICAgICAgICAgS24gPSBudWxsOw0KICAg ICAgICBmdW5jdGlvbiBRbihlKSB7DQogICAgICAgICAgRnIoZSwgMCk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gR24oZSkgew0KICAgICAgICAgIGlmIChLKHhvKGUpKSkgcmV0 dXJuIGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWW4oZSwgdCkgew0KICAgICAg ICAgIGlmICgiY2hhbmdlIiA9PT0gZSkgcmV0dXJuIHQ7DQogICAgICAgIH0NCiAgICAgICAg dmFyIFhuID0gITE7DQogICAgICAgIGlmIChjKSB7DQogICAgICAgICAgdmFyIFpuOw0KICAg ICAgICAgIGlmIChjKSB7DQogICAgICAgICAgICB2YXIgSm4gPSAib25pbnB1dCIgaW4gZG9j dW1lbnQ7DQogICAgICAgICAgICBpZiAoIUpuKSB7DQogICAgICAgICAgICAgIHZhciBlciA9 IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICBlci5zZXRB dHRyaWJ1dGUoIm9uaW5wdXQiLCAicmV0dXJuOyIpLCAoSm4gPSAiZnVuY3Rpb24iID09PSB0 eXBlb2YgZXIub25pbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBabiA9IEpu Ow0KICAgICAgICAgIH0gZWxzZSBabiA9ICExOw0KICAgICAgICAgIFhuID0gWm4gJiYgKCFk b2N1bWVudC5kb2N1bWVudE1vZGUgfHwgOSA8IGRvY3VtZW50LmRvY3VtZW50TW9kZSk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gdHIoKSB7DQogICAgICAgICAgJG4gJiYgKCRu LmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIiwgbnIpLCAoS24gPSAkbiA9IG51bGwp KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBucihlKSB7DQogICAgICAgICAgaWYg KCJ2YWx1ZSIgPT09IGUucHJvcGVydHlOYW1lICYmIEduKEtuKSkgew0KICAgICAgICAgICAg dmFyIHQgPSBbXTsNCiAgICAgICAgICAgIHFuKHQsIEtuLCBlLCB4ZShlKSksIFRlKFFuLCB0 KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcnIoZSwgdCwg bikgew0KICAgICAgICAgICJmb2N1c2luIiA9PT0gZSA/ICh0cigpLCAoS24gPSBuKSwgKCRu ID0gdCkuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLCBucikpIDogImZvY3Vzb3V0 IiA9PT0gZSAmJiB0cigpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG9yKGUpIHsN CiAgICAgICAgICBpZiAoInNlbGVjdGlvbmNoYW5nZSIgPT09IGUgfHwgImtleXVwIiA9PT0g ZSB8fCAia2V5ZG93biIgPT09IGUpIHJldHVybiBHbihLbik7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gYXIoZSwgdCkgew0KICAgICAgICAgIGlmICgiY2xpY2siID09PSBlKSBy ZXR1cm4gR24odCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaXIoZSwgdCkgew0K ICAgICAgICAgIGlmICgiaW5wdXQiID09PSBlIHx8ICJjaGFuZ2UiID09PSBlKSByZXR1cm4g R24odCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxyID0NCiAgICAgICAgICAiZnVuY3Rp b24iID09PSB0eXBlb2YgT2JqZWN0LmlzDQogICAgICAgICAgICA/IE9iamVjdC5pcw0KICAg ICAgICAgICAgOiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICByZXR1cm4gKGUg PT09IHQgJiYgKDAgIT09IGUgfHwgMSAvIGUgPT09IDEgLyB0KSkgfHwgKGUgIT09IGUgJiYg dCAhPT0gdCk7DQogICAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBzcihlLCB0KSB7 DQogICAgICAgICAgaWYgKGxyKGUsIHQpKSByZXR1cm4gITA7DQogICAgICAgICAgaWYgKCJv YmplY3QiICE9PSB0eXBlb2YgZSB8fCBudWxsID09PSBlIHx8ICJvYmplY3QiICE9PSB0eXBl b2YgdCB8fCBudWxsID09PSB0KSByZXR1cm4gITE7DQogICAgICAgICAgdmFyIG4gPSBPYmpl Y3Qua2V5cyhlKSwNCiAgICAgICAgICAgIHIgPSBPYmplY3Qua2V5cyh0KTsNCiAgICAgICAg ICBpZiAobi5sZW5ndGggIT09IHIubGVuZ3RoKSByZXR1cm4gITE7DQogICAgICAgICAgZm9y IChyID0gMDsgciA8IG4ubGVuZ3RoOyByKyspIHsNCiAgICAgICAgICAgIHZhciBvID0gblty XTsNCiAgICAgICAgICAgIGlmICghZC5jYWxsKHQsIG8pIHx8ICFscihlW29dLCB0W29dKSkg cmV0dXJuICExOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gITA7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gdXIoZSkgew0KICAgICAgICAgIGZvciAoOyBlICYmIGUu Zmlyc3RDaGlsZDspIGUgPSBlLmZpcnN0Q2hpbGQ7DQogICAgICAgICAgcmV0dXJuIGU7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gY3IoZSwgdCkgew0KICAgICAgICAgIHZhciBu LA0KICAgICAgICAgICAgciA9IHVyKGUpOw0KICAgICAgICAgIGZvciAoZSA9IDA7IHI7KSB7 DQogICAgICAgICAgICBpZiAoMyA9PT0gci5ub2RlVHlwZSkgew0KICAgICAgICAgICAgICBp ZiAoKChuID0gZSArIHIudGV4dENvbnRlbnQubGVuZ3RoKSwgZSA8PSB0ICYmIG4gPj0gdCkp IHJldHVybiB7IG5vZGU6IHIsIG9mZnNldDogdCAtIGUgfTsNCiAgICAgICAgICAgICAgZSA9 IG47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlOiB7DQogICAgICAgICAgICAgIGZv ciAoOyByOykgew0KICAgICAgICAgICAgICAgIGlmIChyLm5leHRTaWJsaW5nKSB7DQogICAg ICAgICAgICAgICAgICByID0gci5uZXh0U2libGluZzsNCiAgICAgICAgICAgICAgICAgIGJy ZWFrIGU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHIgPSByLnBhcmVu dE5vZGU7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgciA9IHZvaWQgMDsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIHIgPSB1cihyKTsNCiAgICAgICAgICB9DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZHIoZSwgdCkgew0KICAgICAgICAgIHJldHVybiAo DQogICAgICAgICAgICAhKCFlIHx8ICF0KSAmJiAoZSA9PT0gdCB8fCAoKCFlIHx8IDMgIT09 IGUubm9kZVR5cGUpICYmICh0ICYmIDMgPT09IHQubm9kZVR5cGUgPyBkcihlLCB0LnBhcmVu dE5vZGUpIDogImNvbnRhaW5zIiBpbiBlID8gZS5jb250YWlucyh0KSA6ICEhZS5jb21wYXJl RG9jdW1lbnRQb3NpdGlvbiAmJiAhISgxNiAmIGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24o dCkpKSkpDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBmcigp IHsNCiAgICAgICAgICBmb3IgKHZhciBlID0gd2luZG93LCB0ID0gUSgpOyB0IGluc3RhbmNl b2YgZS5IVE1MSUZyYW1lRWxlbWVudDspIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAg ICAgICAgIHZhciBuID0gInN0cmluZyIgPT09IHR5cGVvZiB0LmNvbnRlbnRXaW5kb3cubG9j YXRpb24uaHJlZjsNCiAgICAgICAgICAgIH0gY2F0Y2ggKHIpIHsNCiAgICAgICAgICAgICAg biA9ICExOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCFuKSBicmVhazsNCiAg ICAgICAgICAgIHQgPSBRKChlID0gdC5jb250ZW50V2luZG93KS5kb2N1bWVudCk7DQogICAg ICAgICAgfQ0KICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIHByKGUpIHsNCiAgICAgICAgICB2YXIgdCA9IGUgJiYgZS5ub2RlTmFtZSAmJiBlLm5v ZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgcmV0dXJuIHQgJiYgKCgiaW5wdXQi ID09PSB0ICYmICgidGV4dCIgPT09IGUudHlwZSB8fCAic2VhcmNoIiA9PT0gZS50eXBlIHx8 ICJ0ZWwiID09PSBlLnR5cGUgfHwgInVybCIgPT09IGUudHlwZSB8fCAicGFzc3dvcmQiID09 PSBlLnR5cGUpKSB8fCAidGV4dGFyZWEiID09PSB0IHx8ICJ0cnVlIiA9PT0gZS5jb250ZW50 RWRpdGFibGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGhyKGUpIHsNCiAgICAg ICAgICB2YXIgdCA9IGZyKCksDQogICAgICAgICAgICBuID0gZS5mb2N1c2VkRWxlbSwNCiAg ICAgICAgICAgIHIgPSBlLnNlbGVjdGlvblJhbmdlOw0KICAgICAgICAgIGlmICh0ICE9PSBu ICYmIG4gJiYgbi5vd25lckRvY3VtZW50ICYmIGRyKG4ub3duZXJEb2N1bWVudC5kb2N1bWVu dEVsZW1lbnQsIG4pKSB7DQogICAgICAgICAgICBpZiAobnVsbCAhPT0gciAmJiBwcihuKSkN CiAgICAgICAgICAgICAgaWYgKCgodCA9IHIuc3RhcnQpLCB2b2lkIDAgPT09IChlID0gci5l bmQpICYmIChlID0gdCksICJzZWxlY3Rpb25TdGFydCIgaW4gbikpIChuLnNlbGVjdGlvblN0 YXJ0ID0gdCksIChuLnNlbGVjdGlvbkVuZCA9IE1hdGgubWluKGUsIG4udmFsdWUubGVuZ3Ro KSk7DQogICAgICAgICAgICAgIGVsc2UgaWYgKChlID0gKCh0ID0gbi5vd25lckRvY3VtZW50 IHx8IGRvY3VtZW50KSAmJiB0LmRlZmF1bHRWaWV3KSB8fCB3aW5kb3cpLmdldFNlbGVjdGlv bikgew0KICAgICAgICAgICAgICAgIGUgPSBlLmdldFNlbGVjdGlvbigpOw0KICAgICAgICAg ICAgICAgIHZhciBvID0gbi50ZXh0Q29udGVudC5sZW5ndGgsDQogICAgICAgICAgICAgICAg ICBhID0gTWF0aC5taW4oci5zdGFydCwgbyk7DQogICAgICAgICAgICAgICAgKHIgPSB2b2lk IDAgPT09IHIuZW5kID8gYSA6IE1hdGgubWluKHIuZW5kLCBvKSksICFlLmV4dGVuZCAmJiBh ID4gciAmJiAoKG8gPSByKSwgKHIgPSBhKSwgKGEgPSBvKSksIChvID0gY3IobiwgYSkpOw0K ICAgICAgICAgICAgICAgIHZhciBpID0gY3Iobiwgcik7DQogICAgICAgICAgICAgICAgbyAm Jg0KICAgICAgICAgICAgICAgICAgaSAmJg0KICAgICAgICAgICAgICAgICAgKDEgIT09IGUu cmFuZ2VDb3VudCB8fCBlLmFuY2hvck5vZGUgIT09IG8ubm9kZSB8fCBlLmFuY2hvck9mZnNl dCAhPT0gby5vZmZzZXQgfHwgZS5mb2N1c05vZGUgIT09IGkubm9kZSB8fCBlLmZvY3VzT2Zm c2V0ICE9PSBpLm9mZnNldCkgJiYNCiAgICAgICAgICAgICAgICAgICgodCA9IHQuY3JlYXRl UmFuZ2UoKSkuc2V0U3RhcnQoby5ub2RlLCBvLm9mZnNldCksIGUucmVtb3ZlQWxsUmFuZ2Vz KCksIGEgPiByID8gKGUuYWRkUmFuZ2UodCksIGUuZXh0ZW5kKGkubm9kZSwgaS5vZmZzZXQp KSA6ICh0LnNldEVuZChpLm5vZGUsIGkub2Zmc2V0KSwgZS5hZGRSYW5nZSh0KSkpOw0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICBmb3IgKHQgPSBbXSwgZSA9IG47IChlID0gZS5w YXJlbnROb2RlKTspIDEgPT09IGUubm9kZVR5cGUgJiYgdC5wdXNoKHsgZWxlbWVudDogZSwg bGVmdDogZS5zY3JvbGxMZWZ0LCB0b3A6IGUuc2Nyb2xsVG9wIH0pOw0KICAgICAgICAgICAg Zm9yICgiZnVuY3Rpb24iID09PSB0eXBlb2Ygbi5mb2N1cyAmJiBuLmZvY3VzKCksIG4gPSAw OyBuIDwgdC5sZW5ndGg7IG4rKykgKChlID0gdFtuXSkuZWxlbWVudC5zY3JvbGxMZWZ0ID0g ZS5sZWZ0KSwgKGUuZWxlbWVudC5zY3JvbGxUb3AgPSBlLnRvcCk7DQogICAgICAgICAgfQ0K ICAgICAgICB9DQogICAgICAgIHZhciBtciA9IGMgJiYgImRvY3VtZW50TW9kZSIgaW4gZG9j dW1lbnQgJiYgMTEgPj0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlLA0KICAgICAgICAgIGdyID0g bnVsbCwNCiAgICAgICAgICB2ciA9IG51bGwsDQogICAgICAgICAgeXIgPSBudWxsLA0KICAg ICAgICAgIGJyID0gITE7DQogICAgICAgIGZ1bmN0aW9uIHdyKGUsIHQsIG4pIHsNCiAgICAg ICAgICB2YXIgciA9IG4ud2luZG93ID09PSBuID8gbi5kb2N1bWVudCA6IDkgPT09IG4ubm9k ZVR5cGUgPyBuIDogbi5vd25lckRvY3VtZW50Ow0KICAgICAgICAgIGJyIHx8DQogICAgICAg ICAgICBudWxsID09IGdyIHx8DQogICAgICAgICAgICBnciAhPT0gUShyKSB8fA0KICAgICAg ICAgICAgKCJzZWxlY3Rpb25TdGFydCIgaW4gKHIgPSBncikgJiYgcHIocikNCiAgICAgICAg ICAgICAgPyAociA9IHsgc3RhcnQ6IHIuc2VsZWN0aW9uU3RhcnQsIGVuZDogci5zZWxlY3Rp b25FbmQgfSkNCiAgICAgICAgICAgICAgOiAociA9IHsgYW5jaG9yTm9kZTogKHIgPSAoKHIu b3duZXJEb2N1bWVudCAmJiByLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIHx8IHdpbmRv dykuZ2V0U2VsZWN0aW9uKCkpLmFuY2hvck5vZGUsIGFuY2hvck9mZnNldDogci5hbmNob3JP ZmZzZXQsIGZvY3VzTm9kZTogci5mb2N1c05vZGUsIGZvY3VzT2Zmc2V0OiByLmZvY3VzT2Zm c2V0IH0pLA0KICAgICAgICAgICAgICAoeXIgJiYgc3IoeXIsIHIpKSB8fCAoKHlyID0gciks IDAgPCAociA9ICRyKHZyLCAib25TZWxlY3QiKSkubGVuZ3RoICYmICgodCA9IG5ldyBjbigi b25TZWxlY3QiLCAic2VsZWN0IiwgbnVsbCwgdCwgbikpLCBlLnB1c2goeyBldmVudDogdCwg bGlzdGVuZXJzOiByIH0pLCAodC50YXJnZXQgPSBncikpKSk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24geHIoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0ge307DQogICAgICAg ICAgcmV0dXJuIChuW2UudG9Mb3dlckNhc2UoKV0gPSB0LnRvTG93ZXJDYXNlKCkpLCAoblsi V2Via2l0IiArIGVdID0gIndlYmtpdCIgKyB0KSwgKG5bIk1veiIgKyBlXSA9ICJtb3oiICsg dCksIG47DQogICAgICAgIH0NCiAgICAgICAgdmFyIFNyID0gew0KICAgICAgICAgIGFuaW1h dGlvbmVuZDogeHIoIkFuaW1hdGlvbiIsICJBbmltYXRpb25FbmQiKSwNCiAgICAgICAgICBh bmltYXRpb25pdGVyYXRpb246IHhyKCJBbmltYXRpb24iLCAiQW5pbWF0aW9uSXRlcmF0aW9u IiksDQogICAgICAgICAgYW5pbWF0aW9uc3RhcnQ6IHhyKCJBbmltYXRpb24iLCAiQW5pbWF0 aW9uU3RhcnQiKSwNCiAgICAgICAgICB0cmFuc2l0aW9uZW5kOiB4cigiVHJhbnNpdGlvbiIs ICJUcmFuc2l0aW9uRW5kIiksDQogICAgICAgIH0sDQogICAgICAgICAga3IgPSB7fSwNCiAg ICAgICAgICBFciA9IHt9Ow0KICAgICAgICBmdW5jdGlvbiBDcihlKSB7DQogICAgICAgICAg aWYgKGtyW2VdKSByZXR1cm4ga3JbZV07DQogICAgICAgICAgaWYgKCFTcltlXSkgcmV0dXJu IGU7DQogICAgICAgICAgdmFyIHQsDQogICAgICAgICAgICBuID0gU3JbZV07DQogICAgICAg ICAgZm9yICh0IGluIG4pIGlmIChuLmhhc093blByb3BlcnR5KHQpICYmIHQgaW4gRXIpIHJl dHVybiAoa3JbZV0gPSBuW3RdKTsNCiAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgfQ0K ICAgICAgICBjICYmDQogICAgICAgICAgKChFciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo ImRpdiIpLnN0eWxlKSwNCiAgICAgICAgICAgICJBbmltYXRpb25FdmVudCIgaW4gd2luZG93 IHx8IChkZWxldGUgU3IuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbiwgZGVsZXRlIFNyLmFuaW1h dGlvbml0ZXJhdGlvbi5hbmltYXRpb24sIGRlbGV0ZSBTci5hbmltYXRpb25zdGFydC5hbmlt YXRpb24pLA0KICAgICAgICAgICAgIlRyYW5zaXRpb25FdmVudCIgaW4gd2luZG93IHx8IGRl bGV0ZSBTci50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pOw0KICAgICAgICB2YXIgUnIgPSBD cigiYW5pbWF0aW9uZW5kIiksDQogICAgICAgICAgX3IgPSBDcigiYW5pbWF0aW9uaXRlcmF0 aW9uIiksDQogICAgICAgICAgUHIgPSBDcigiYW5pbWF0aW9uc3RhcnQiKSwNCiAgICAgICAg ICBPciA9IENyKCJ0cmFuc2l0aW9uZW5kIiksDQogICAgICAgICAgTnIgPSBuZXcgTWFwKCks DQogICAgICAgICAgVHIgPSAiYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxh eVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5k IGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3Ag ZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRl ckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9h ZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1v dXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1 c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUg cG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSBy ZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1l VXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNj cm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWwiLnNwbGl0KA0KICAgICAgICAg ICAgIiAiDQogICAgICAgICAgKTsNCiAgICAgICAgZnVuY3Rpb24gQXIoZSwgdCkgew0KICAg ICAgICAgIE5yLnNldChlLCB0KSwgcyh0LCBbZV0pOw0KICAgICAgICB9DQogICAgICAgIGZv ciAodmFyIE1yID0gMDsgTXIgPCBUci5sZW5ndGg7IE1yKyspIHsNCiAgICAgICAgICB2YXIg enIgPSBUcltNcl07DQogICAgICAgICAgQXIoenIudG9Mb3dlckNhc2UoKSwgIm9uIiArICh6 clswXS50b1VwcGVyQ2FzZSgpICsgenIuc2xpY2UoMSkpKTsNCiAgICAgICAgfQ0KICAgICAg ICBBcihSciwgIm9uQW5pbWF0aW9uRW5kIiksDQogICAgICAgICAgQXIoX3IsICJvbkFuaW1h dGlvbkl0ZXJhdGlvbiIpLA0KICAgICAgICAgIEFyKFByLCAib25BbmltYXRpb25TdGFydCIp LA0KICAgICAgICAgIEFyKCJkYmxjbGljayIsICJvbkRvdWJsZUNsaWNrIiksDQogICAgICAg ICAgQXIoImZvY3VzaW4iLCAib25Gb2N1cyIpLA0KICAgICAgICAgIEFyKCJmb2N1c291dCIs ICJvbkJsdXIiKSwNCiAgICAgICAgICBBcihPciwgIm9uVHJhbnNpdGlvbkVuZCIpLA0KICAg ICAgICAgIHUoIm9uTW91c2VFbnRlciIsIFsibW91c2VvdXQiLCAibW91c2VvdmVyIl0pLA0K ICAgICAgICAgIHUoIm9uTW91c2VMZWF2ZSIsIFsibW91c2VvdXQiLCAibW91c2VvdmVyIl0p LA0KICAgICAgICAgIHUoIm9uUG9pbnRlckVudGVyIiwgWyJwb2ludGVyb3V0IiwgInBvaW50 ZXJvdmVyIl0pLA0KICAgICAgICAgIHUoIm9uUG9pbnRlckxlYXZlIiwgWyJwb2ludGVyb3V0 IiwgInBvaW50ZXJvdmVyIl0pLA0KICAgICAgICAgIHMoIm9uQ2hhbmdlIiwgImNoYW5nZSBj bGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hh bmdlIi5zcGxpdCgiICIpKSwNCiAgICAgICAgICBzKCJvblNlbGVjdCIsICJmb2N1c291dCBj b250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91 c2V1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLA0KICAgICAgICAgIHMoIm9uQmVm b3JlSW5wdXQiLCBbImNvbXBvc2l0aW9uZW5kIiwgImtleXByZXNzIiwgInRleHRJbnB1dCIs ICJwYXN0ZSJdKSwNCiAgICAgICAgICBzKCJvbkNvbXBvc2l0aW9uRW5kIiwgImNvbXBvc2l0 aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxp dCgiICIpKSwNCiAgICAgICAgICBzKCJvbkNvbXBvc2l0aW9uU3RhcnQiLCAiY29tcG9zaXRp b25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3Bs aXQoIiAiKSksDQogICAgICAgICAgcygib25Db21wb3NpdGlvblVwZGF0ZSIsICJjb21wb3Np dGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIu c3BsaXQoIiAiKSk7DQogICAgICAgIHZhciBqciA9ICJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0 aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxv YWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBw cm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3Bl bmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZyIuc3BsaXQoDQogICAgICAgICAg IiAiDQogICAgICAgICksDQogICAgICAgICAgSXIgPSBuZXcgU2V0KCJjYW5jZWwgY2xvc2Ug aW52YWxpZCBsb2FkIHNjcm9sbCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KGpyKSk7DQog ICAgICAgIGZ1bmN0aW9uIExyKGUsIHQsIG4pIHsNCiAgICAgICAgICB2YXIgciA9IGUudHlw ZSB8fCAidW5rbm93bi1ldmVudCI7DQogICAgICAgICAgKGUuY3VycmVudFRhcmdldCA9IG4p LA0KICAgICAgICAgICAgKGZ1bmN0aW9uIChlLCB0LCBuLCByLCBvLCBpLCBsLCBzLCB1KSB7 DQogICAgICAgICAgICAgIGlmICgoVWUuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgSWUpKSB7 DQogICAgICAgICAgICAgICAgaWYgKCFJZSkgdGhyb3cgRXJyb3IoYSgxOTgpKTsNCiAgICAg ICAgICAgICAgICB2YXIgYyA9IExlOw0KICAgICAgICAgICAgICAgIChJZSA9ICExKSwgKExl ID0gbnVsbCksIEZlIHx8ICgoRmUgPSAhMCksIChCZSA9IGMpKTsNCiAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgfSkociwgdCwgdm9pZCAwLCBlKSwNCiAgICAgICAgICAgIChlLmN1 cnJlbnRUYXJnZXQgPSBudWxsKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBGcihl LCB0KSB7DQogICAgICAgICAgdCA9IDAgIT09ICg0ICYgdCk7DQogICAgICAgICAgZm9yICh2 YXIgbiA9IDA7IG4gPCBlLmxlbmd0aDsgbisrKSB7DQogICAgICAgICAgICB2YXIgciA9IGVb bl0sDQogICAgICAgICAgICAgIG8gPSByLmV2ZW50Ow0KICAgICAgICAgICAgciA9IHIubGlz dGVuZXJzOw0KICAgICAgICAgICAgZTogew0KICAgICAgICAgICAgICB2YXIgYSA9IHZvaWQg MDsNCiAgICAgICAgICAgICAgaWYgKHQpDQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9 IHIubGVuZ3RoIC0gMTsgMCA8PSBpOyBpLS0pIHsNCiAgICAgICAgICAgICAgICAgIHZhciBs ID0gcltpXSwNCiAgICAgICAgICAgICAgICAgICAgcyA9IGwuaW5zdGFuY2UsDQogICAgICAg ICAgICAgICAgICAgIHUgPSBsLmN1cnJlbnRUYXJnZXQ7DQogICAgICAgICAgICAgICAgICBp ZiAoKChsID0gbC5saXN0ZW5lciksIHMgIT09IGEgJiYgby5pc1Byb3BhZ2F0aW9uU3RvcHBl ZCgpKSkgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgIExyKG8sIGwsIHUpLCAoYSA9IHMp Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAg ICAgIGZvciAoaSA9IDA7IGkgPCByLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAg ICBpZiAoKChzID0gKGwgPSByW2ldKS5pbnN0YW5jZSksICh1ID0gbC5jdXJyZW50VGFyZ2V0 KSwgKGwgPSBsLmxpc3RlbmVyKSwgcyAhPT0gYSAmJiBvLmlzUHJvcGFnYXRpb25TdG9wcGVk KCkpKSBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgTHIobywgbCwgdSksIChhID0gcyk7 DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAg ICAgICBpZiAoRmUpIHRocm93ICgoZSA9IEJlKSwgKEZlID0gITEpLCAoQmUgPSBudWxsKSwg ZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gQnIoZSwgdCkgew0KICAgICAgICAg IHZhciBuID0gdFtnb107DQogICAgICAgICAgdm9pZCAwID09PSBuICYmIChuID0gdFtnb10g PSBuZXcgU2V0KCkpOw0KICAgICAgICAgIHZhciByID0gZSArICJfX2J1YmJsZSI7DQogICAg ICAgICAgbi5oYXMocikgfHwgKFZyKHQsIGUsIDIsICExKSwgbi5hZGQocikpOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIERyKGUsIHQsIG4pIHsNCiAgICAgICAgICB2YXIgciA9 IDA7DQogICAgICAgICAgdCAmJiAociB8PSA0KSwgVnIobiwgZSwgciwgdCk7DQogICAgICAg IH0NCiAgICAgICAgdmFyIFVyID0gIl9yZWFjdExpc3RlbmluZyIgKyBNYXRoLnJhbmRvbSgp LnRvU3RyaW5nKDM2KS5zbGljZSgyKTsNCiAgICAgICAgZnVuY3Rpb24gV3IoZSkgew0KICAg ICAgICAgIGlmICghZVtVcl0pIHsNCiAgICAgICAgICAgIChlW1VyXSA9ICEwKSwNCiAgICAg ICAgICAgICAgaS5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgInNl bGVjdGlvbmNoYW5nZSIgIT09IHQgJiYgKElyLmhhcyh0KSB8fCBEcih0LCAhMSwgZSksIERy KHQsICEwLCBlKSk7DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdmFyIHQgPSA5 ID09PSBlLm5vZGVUeXBlID8gZSA6IGUub3duZXJEb2N1bWVudDsNCiAgICAgICAgICAgIG51 bGwgPT09IHQgfHwgdFtVcl0gfHwgKCh0W1VyXSA9ICEwKSwgRHIoInNlbGVjdGlvbmNoYW5n ZSIsICExLCB0KSk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IFZyKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICBzd2l0Y2ggKFl0KHQpKSB7DQogICAgICAg ICAgICBjYXNlIDE6DQogICAgICAgICAgICAgIHZhciBvID0gcXQ7DQogICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICBvID0gJHQ7DQog ICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAg ICAgbyA9IEt0Ow0KICAgICAgICAgIH0NCiAgICAgICAgICAobiA9IG8uYmluZChudWxsLCB0 LCBuLCBlKSksDQogICAgICAgICAgICAobyA9IHZvaWQgMCksDQogICAgICAgICAgICAhTWUg fHwgKCJ0b3VjaHN0YXJ0IiAhPT0gdCAmJiAidG91Y2htb3ZlIiAhPT0gdCAmJiAid2hlZWwi ICE9PSB0KSB8fCAobyA9ICEwKSwNCiAgICAgICAgICAgIHIgPyAodm9pZCAwICE9PSBvID8g ZS5hZGRFdmVudExpc3RlbmVyKHQsIG4sIHsgY2FwdHVyZTogITAsIHBhc3NpdmU6IG8gfSkg OiBlLmFkZEV2ZW50TGlzdGVuZXIodCwgbiwgITApKSA6IHZvaWQgMCAhPT0gbyA/IGUuYWRk RXZlbnRMaXN0ZW5lcih0LCBuLCB7IHBhc3NpdmU6IG8gfSkgOiBlLmFkZEV2ZW50TGlzdGVu ZXIodCwgbiwgITEpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEhyKGUsIHQsIG4s IHIsIG8pIHsNCiAgICAgICAgICB2YXIgYSA9IHI7DQogICAgICAgICAgaWYgKDAgPT09ICgx ICYgdCkgJiYgMCA9PT0gKDIgJiB0KSAmJiBudWxsICE9PSByKQ0KICAgICAgICAgICAgZTog Zm9yICg7IDspIHsNCiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IHIpIHJldHVybjsNCiAg ICAgICAgICAgICAgdmFyIGkgPSByLnRhZzsNCiAgICAgICAgICAgICAgaWYgKDMgPT09IGkg fHwgNCA9PT0gaSkgew0KICAgICAgICAgICAgICAgIHZhciBsID0gci5zdGF0ZU5vZGUuY29u dGFpbmVySW5mbzsNCiAgICAgICAgICAgICAgICBpZiAobCA9PT0gbyB8fCAoOCA9PT0gbC5u b2RlVHlwZSAmJiBsLnBhcmVudE5vZGUgPT09IG8pKSBicmVhazsNCiAgICAgICAgICAgICAg ICBpZiAoNCA9PT0gaSkNCiAgICAgICAgICAgICAgICAgIGZvciAoaSA9IHIucmV0dXJuOyBu dWxsICE9PSBpOykgew0KICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IGkudGFnOw0KICAg ICAgICAgICAgICAgICAgICBpZiAoKDMgPT09IHMgfHwgNCA9PT0gcykgJiYgKChzID0gaS5z dGF0ZU5vZGUuY29udGFpbmVySW5mbykgPT09IG8gfHwgKDggPT09IHMubm9kZVR5cGUgJiYg cy5wYXJlbnROb2RlID09PSBvKSkpIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgaSA9 IGkucmV0dXJuOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGZvciAo OyBudWxsICE9PSBsOykgew0KICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IChpID0g Ym8obCkpKSByZXR1cm47DQogICAgICAgICAgICAgICAgICBpZiAoNSA9PT0gKHMgPSBpLnRh ZykgfHwgNiA9PT0gcykgew0KICAgICAgICAgICAgICAgICAgICByID0gYSA9IGk7DQogICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlIGU7DQogICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICBsID0gbC5wYXJlbnROb2RlOw0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByID0gci5yZXR1cm47DQogICAgICAgICAg ICB9DQogICAgICAgICAgVGUoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdmFyIHIgPSBh LA0KICAgICAgICAgICAgICBvID0geGUobiksDQogICAgICAgICAgICAgIGkgPSBbXTsNCiAg ICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgICAgdmFyIGwgPSBOci5nZXQoZSk7DQogICAg ICAgICAgICAgIGlmICh2b2lkIDAgIT09IGwpIHsNCiAgICAgICAgICAgICAgICB2YXIgcyA9 IGNuLA0KICAgICAgICAgICAgICAgICAgdSA9IGU7DQogICAgICAgICAgICAgICAgc3dpdGNo IChlKSB7DQogICAgICAgICAgICAgICAgICBjYXNlICJrZXlwcmVzcyI6DQogICAgICAgICAg ICAgICAgICAgIGlmICgwID09PSB0bihuKSkgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAg IGNhc2UgImtleWRvd24iOg0KICAgICAgICAgICAgICAgICAgY2FzZSAia2V5dXAiOg0KICAg ICAgICAgICAgICAgICAgICBzID0gX247DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0K ICAgICAgICAgICAgICAgICAgY2FzZSAiZm9jdXNpbiI6DQogICAgICAgICAgICAgICAgICAg ICh1ID0gImZvY3VzIiksIChzID0gZ24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsN CiAgICAgICAgICAgICAgICAgIGNhc2UgImZvY3Vzb3V0IjoNCiAgICAgICAgICAgICAgICAg ICAgKHUgPSAiYmx1ciIpLCAocyA9IGduKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7 DQogICAgICAgICAgICAgICAgICBjYXNlICJiZWZvcmVibHVyIjoNCiAgICAgICAgICAgICAg ICAgIGNhc2UgImFmdGVyYmx1ciI6DQogICAgICAgICAgICAgICAgICAgIHMgPSBnbjsNCiAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICBjYXNlICJjbGlj ayI6DQogICAgICAgICAgICAgICAgICAgIGlmICgyID09PSBuLmJ1dHRvbikgYnJlYWsgZTsN CiAgICAgICAgICAgICAgICAgIGNhc2UgImF1eGNsaWNrIjoNCiAgICAgICAgICAgICAgICAg IGNhc2UgImRibGNsaWNrIjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlZG93biI6 DQogICAgICAgICAgICAgICAgICBjYXNlICJtb3VzZW1vdmUiOg0KICAgICAgICAgICAgICAg ICAgY2FzZSAibW91c2V1cCI6DQogICAgICAgICAgICAgICAgICBjYXNlICJtb3VzZW91dCI6 DQogICAgICAgICAgICAgICAgICBjYXNlICJtb3VzZW92ZXIiOg0KICAgICAgICAgICAgICAg ICAgY2FzZSAiY29udGV4dG1lbnUiOg0KICAgICAgICAgICAgICAgICAgICBzID0gaG47DQog ICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgY2FzZSAiZHJh ZyI6DQogICAgICAgICAgICAgICAgICBjYXNlICJkcmFnZW5kIjoNCiAgICAgICAgICAgICAg ICAgIGNhc2UgImRyYWdlbnRlciI6DQogICAgICAgICAgICAgICAgICBjYXNlICJkcmFnZXhp dCI6DQogICAgICAgICAgICAgICAgICBjYXNlICJkcmFnbGVhdmUiOg0KICAgICAgICAgICAg ICAgICAgY2FzZSAiZHJhZ292ZXIiOg0KICAgICAgICAgICAgICAgICAgY2FzZSAiZHJhZ3N0 YXJ0IjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgImRyb3AiOg0KICAgICAgICAgICAgICAg ICAgICBzID0gbW47DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAg ICAgICAgY2FzZSAidG91Y2hjYW5jZWwiOg0KICAgICAgICAgICAgICAgICAgY2FzZSAidG91 Y2hlbmQiOg0KICAgICAgICAgICAgICAgICAgY2FzZSAidG91Y2htb3ZlIjoNCiAgICAgICAg ICAgICAgICAgIGNhc2UgInRvdWNoc3RhcnQiOg0KICAgICAgICAgICAgICAgICAgICBzID0g T247DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgY2Fz ZSBScjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgX3I6DQogICAgICAgICAgICAgICAgICBj YXNlIFByOg0KICAgICAgICAgICAgICAgICAgICBzID0gdm47DQogICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgY2FzZSBPcjoNCiAgICAgICAgICAgICAg ICAgICAgcyA9IE5uOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg ICAgICAgIGNhc2UgInNjcm9sbCI6DQogICAgICAgICAgICAgICAgICAgIHMgPSBmbjsNCiAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICBjYXNlICJ3aGVl bCI6DQogICAgICAgICAgICAgICAgICAgIHMgPSBBbjsNCiAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgICAgICBjYXNlICJjb3B5IjoNCiAgICAgICAgICAgICAg ICAgIGNhc2UgImN1dCI6DQogICAgICAgICAgICAgICAgICBjYXNlICJwYXN0ZSI6DQogICAg ICAgICAgICAgICAgICAgIHMgPSBibjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQog ICAgICAgICAgICAgICAgICBjYXNlICJnb3Rwb2ludGVyY2FwdHVyZSI6DQogICAgICAgICAg ICAgICAgICBjYXNlICJsb3N0cG9pbnRlcmNhcHR1cmUiOg0KICAgICAgICAgICAgICAgICAg Y2FzZSAicG9pbnRlcmNhbmNlbCI6DQogICAgICAgICAgICAgICAgICBjYXNlICJwb2ludGVy ZG93biI6DQogICAgICAgICAgICAgICAgICBjYXNlICJwb2ludGVybW92ZSI6DQogICAgICAg ICAgICAgICAgICBjYXNlICJwb2ludGVyb3V0IjoNCiAgICAgICAgICAgICAgICAgIGNhc2Ug InBvaW50ZXJvdmVyIjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgInBvaW50ZXJ1cCI6DQog ICAgICAgICAgICAgICAgICAgIHMgPSBQbjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgdmFyIGMgPSAwICE9PSAoNCAmIHQpLA0KICAgICAgICAgICAgICAgICAgZCA9 ICFjICYmICJzY3JvbGwiID09PSBlLA0KICAgICAgICAgICAgICAgICAgZiA9IGMgPyAobnVs bCAhPT0gbCA/IGwgKyAiQ2FwdHVyZSIgOiBudWxsKSA6IGw7DQogICAgICAgICAgICAgICAg YyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIHAsIGggPSByOyBudWxsICE9PSBo Oykgew0KICAgICAgICAgICAgICAgICAgdmFyIG0gPSAocCA9IGgpLnN0YXRlTm9kZTsNCiAg ICAgICAgICAgICAgICAgIGlmICgoNSA9PT0gcC50YWcgJiYgbnVsbCAhPT0gbSAmJiAoKHAg PSBtKSwgbnVsbCAhPT0gZiAmJiBudWxsICE9IChtID0gQWUoaCwgZikpICYmIGMucHVzaChx cihoLCBtLCBwKSkpLCBkKSkgYnJlYWs7DQogICAgICAgICAgICAgICAgICBoID0gaC5yZXR1 cm47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIDAgPCBjLmxlbmd0aCAm JiAoKGwgPSBuZXcgcyhsLCB1LCBudWxsLCBuLCBvKSksIGkucHVzaCh7IGV2ZW50OiBsLCBs aXN0ZW5lcnM6IGMgfSkpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBpZiAoMCA9PT0gKDcgJiB0KSkgew0KICAgICAgICAgICAgICBpZiAoDQogICAg ICAgICAgICAgICAgKChzID0gIm1vdXNlb3V0IiA9PT0gZSB8fCAicG9pbnRlcm91dCIgPT09 IGUpLA0KICAgICAgICAgICAgICAgICAgKCEobCA9ICJtb3VzZW92ZXIiID09PSBlIHx8ICJw b2ludGVyb3ZlciIgPT09IGUpIHx8IG4gPT09IHdlIHx8ICEodSA9IG4ucmVsYXRlZFRhcmdl dCB8fCBuLmZyb21FbGVtZW50KSB8fCAoIWJvKHUpICYmICF1W21vXSkpICYmDQogICAgICAg ICAgICAgICAgICAocyB8fCBsKSAmJg0KICAgICAgICAgICAgICAgICAgKChsID0gby53aW5k b3cgPT09IG8gPyBvIDogKGwgPSBvLm93bmVyRG9jdW1lbnQpID8gbC5kZWZhdWx0VmlldyB8 fCBsLnBhcmVudFdpbmRvdyA6IHdpbmRvdyksDQogICAgICAgICAgICAgICAgICAgIHMgPyAo KHMgPSByKSwgbnVsbCAhPT0gKHUgPSAodSA9IG4ucmVsYXRlZFRhcmdldCB8fCBuLnRvRWxl bWVudCkgPyBibyh1KSA6IG51bGwpICYmICh1ICE9PSAoZCA9IFdlKHUpKSB8fCAoNSAhPT0g dS50YWcgJiYgNiAhPT0gdS50YWcpKSAmJiAodSA9IG51bGwpKSA6ICgocyA9IG51bGwpLCAo dSA9IHIpKSwNCiAgICAgICAgICAgICAgICAgICAgcyAhPT0gdSkpDQogICAgICAgICAgICAg ICkgew0KICAgICAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICAgICgoYyA9IGhu KSwNCiAgICAgICAgICAgICAgICAgICAgKG0gPSAib25Nb3VzZUxlYXZlIiksDQogICAgICAg ICAgICAgICAgICAgIChmID0gIm9uTW91c2VFbnRlciIpLA0KICAgICAgICAgICAgICAgICAg ICAoaCA9ICJtb3VzZSIpLA0KICAgICAgICAgICAgICAgICAgICAoInBvaW50ZXJvdXQiICE9 PSBlICYmICJwb2ludGVyb3ZlciIgIT09IGUpIHx8ICgoYyA9IFBuKSwgKG0gPSAib25Qb2lu dGVyTGVhdmUiKSwgKGYgPSAib25Qb2ludGVyRW50ZXIiKSwgKGggPSAicG9pbnRlciIpKSwN CiAgICAgICAgICAgICAgICAgICAgKGQgPSBudWxsID09IHMgPyBsIDogeG8ocykpLA0KICAg ICAgICAgICAgICAgICAgICAocCA9IG51bGwgPT0gdSA/IGwgOiB4byh1KSksDQogICAgICAg ICAgICAgICAgICAgICgobCA9IG5ldyBjKG0sIGggKyAibGVhdmUiLCBzLCBuLCBvKSkudGFy Z2V0ID0gZCksDQogICAgICAgICAgICAgICAgICAgIChsLnJlbGF0ZWRUYXJnZXQgPSBwKSwN CiAgICAgICAgICAgICAgICAgICAgKG0gPSBudWxsKSwNCiAgICAgICAgICAgICAgICAgICAg Ym8obykgPT09IHIgJiYgKCgoYyA9IG5ldyBjKGYsIGggKyAiZW50ZXIiLCB1LCBuLCBvKSku dGFyZ2V0ID0gcCksIChjLnJlbGF0ZWRUYXJnZXQgPSBkKSwgKG0gPSBjKSksDQogICAgICAg ICAgICAgICAgICAgIChkID0gbSksDQogICAgICAgICAgICAgICAgICAgIHMgJiYgdSkNCiAg ICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICBlOiB7DQogICAgICAgICAgICAg ICAgICAgIGZvciAoZiA9IHUsIGggPSAwLCBwID0gYyA9IHM7IHA7IHAgPSBLcihwKSkgaCsr Ow0KICAgICAgICAgICAgICAgICAgICBmb3IgKHAgPSAwLCBtID0gZjsgbTsgbSA9IEtyKG0p KSBwKys7DQogICAgICAgICAgICAgICAgICAgIGZvciAoOyAwIDwgaCAtIHA7KSAoYyA9IEty KGMpKSwgaC0tOw0KICAgICAgICAgICAgICAgICAgICBmb3IgKDsgMCA8IHAgLSBoOykgKGYg PSBLcihmKSksIHAtLTsNCiAgICAgICAgICAgICAgICAgICAgZm9yICg7IGgtLTspIHsNCiAg ICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PT0gZiB8fCAobnVsbCAhPT0gZiAmJiBjID09 PSBmLmFsdGVybmF0ZSkpIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgICAgKGMgPSBL cihjKSksIChmID0gS3IoZikpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgIGMgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIGVsc2UgYyA9IG51bGw7DQogICAgICAgICAgICAgICAgbnVsbCAhPT0gcyAmJiBRcihp LCBsLCBzLCBjLCAhMSksIG51bGwgIT09IHUgJiYgbnVsbCAhPT0gZCAmJiBRcihpLCBkLCB1 LCBjLCAhMCk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKCJzZWxlY3Qi ID09PSAocyA9IChsID0gciA/IHhvKHIpIDogd2luZG93KS5ub2RlTmFtZSAmJiBsLm5vZGVO YW1lLnRvTG93ZXJDYXNlKCkpIHx8ICgiaW5wdXQiID09PSBzICYmICJmaWxlIiA9PT0gbC50 eXBlKSkgdmFyIGcgPSBZbjsNCiAgICAgICAgICAgICAgZWxzZSBpZiAoSG4obCkpDQogICAg ICAgICAgICAgICAgaWYgKFhuKSBnID0gaXI7DQogICAgICAgICAgICAgICAgZWxzZSB7DQog ICAgICAgICAgICAgICAgICBnID0gb3I7DQogICAgICAgICAgICAgICAgICB2YXIgdiA9IHJy Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgZWxzZSAocyA9IGwubm9kZU5h bWUpICYmICJpbnB1dCIgPT09IHMudG9Mb3dlckNhc2UoKSAmJiAoImNoZWNrYm94IiA9PT0g bC50eXBlIHx8ICJyYWRpbyIgPT09IGwudHlwZSkgJiYgKGcgPSBhcik7DQogICAgICAgICAg ICAgIHN3aXRjaCAoDQogICAgICAgICAgICAgIChnICYmIChnID0gZyhlLCByKSkgPyBxbihp LCBnLCBuLCBvKSA6ICh2ICYmIHYoZSwgbCwgciksICJmb2N1c291dCIgPT09IGUgJiYgKHYg PSBsLl93cmFwcGVyU3RhdGUpICYmIHYuY29udHJvbGxlZCAmJiAibnVtYmVyIiA9PT0gbC50 eXBlICYmIGVlKGwsICJudW1iZXIiLCBsLnZhbHVlKSksICh2ID0gciA/IHhvKHIpIDogd2lu ZG93KSwgZSkNCiAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZm9j dXNpbiI6DQogICAgICAgICAgICAgICAgICAoSG4odikgfHwgInRydWUiID09PSB2LmNvbnRl bnRFZGl0YWJsZSkgJiYgKChnciA9IHYpLCAodnIgPSByKSwgKHlyID0gbnVsbCkpOw0KICAg ICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZm9jdXNvdXQi Og0KICAgICAgICAgICAgICAgICAgeXIgPSB2ciA9IGdyID0gbnVsbDsNCiAgICAgICAgICAg ICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlZG93biI6DQogICAg ICAgICAgICAgICAgICBiciA9ICEwOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg ICAgICAgICAgICAgY2FzZSAiY29udGV4dG1lbnUiOg0KICAgICAgICAgICAgICAgIGNhc2Ug Im1vdXNldXAiOg0KICAgICAgICAgICAgICAgIGNhc2UgImRyYWdlbmQiOg0KICAgICAgICAg ICAgICAgICAgKGJyID0gITEpLCB3cihpLCBuLCBvKTsNCiAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInNlbGVjdGlvbmNoYW5nZSI6DQogICAgICAg ICAgICAgICAgICBpZiAobXIpIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImtleWRv d24iOg0KICAgICAgICAgICAgICAgIGNhc2UgImtleXVwIjoNCiAgICAgICAgICAgICAgICAg IHdyKGksIG4sIG8pOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHZhciB5Ow0K ICAgICAgICAgICAgICBpZiAoem4pDQogICAgICAgICAgICAgICAgZTogew0KICAgICAgICAg ICAgICAgICAgc3dpdGNoIChlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNvbXBv c2l0aW9uc3RhcnQiOg0KICAgICAgICAgICAgICAgICAgICAgIHZhciBiID0gIm9uQ29tcG9z aXRpb25TdGFydCI7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAg ICAgICAgICAgICAgY2FzZSAiY29tcG9zaXRpb25lbmQiOg0KICAgICAgICAgICAgICAgICAg ICAgIGIgPSAib25Db21wb3NpdGlvbkVuZCI7DQogICAgICAgICAgICAgICAgICAgICAgYnJl YWsgZTsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY29tcG9zaXRpb251cGRhdGUiOg0K ICAgICAgICAgICAgICAgICAgICAgIGIgPSAib25Db21wb3NpdGlvblVwZGF0ZSI7DQogICAg ICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgIGIgPSB2b2lkIDA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICBlbHNlIFduID8gRG4oZSwgbikgJiYgKGIgPSAib25Db21wb3NpdGlvbkVuZCIpIDog ImtleWRvd24iID09PSBlICYmIDIyOSA9PT0gbi5rZXlDb2RlICYmIChiID0gIm9uQ29tcG9z aXRpb25TdGFydCIpOw0KICAgICAgICAgICAgICBiICYmDQogICAgICAgICAgICAgICAgKExu ICYmICJrbyIgIT09IG4ubG9jYWxlICYmIChXbiB8fCAib25Db21wb3NpdGlvblN0YXJ0IiAh PT0gYiA/ICJvbkNvbXBvc2l0aW9uRW5kIiA9PT0gYiAmJiBXbiAmJiAoeSA9IGVuKCkpIDog KChadCA9ICJ2YWx1ZSIgaW4gKFh0ID0gbykgPyBYdC52YWx1ZSA6IFh0LnRleHRDb250ZW50 KSwgKFduID0gITApKSksDQogICAgICAgICAgICAgICAgICAwIDwgKHYgPSAkcihyLCBiKSku bGVuZ3RoICYmICgoYiA9IG5ldyB3bihiLCBlLCBudWxsLCBuLCBvKSksIGkucHVzaCh7IGV2 ZW50OiBiLCBsaXN0ZW5lcnM6IHYgfSksIHkgPyAoYi5kYXRhID0geSkgOiBudWxsICE9PSAo eSA9IFVuKG4pKSAmJiAoYi5kYXRhID0geSkpKSwNCiAgICAgICAgICAgICAgICAoeSA9IElu DQogICAgICAgICAgICAgICAgICA/IChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAg ICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjb21w b3NpdGlvbmVuZCI6DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVW4odCk7DQog ICAgICAgICAgICAgICAgICAgICAgY2FzZSAia2V5cHJlc3MiOg0KICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIDMyICE9PSB0LndoaWNoID8gbnVsbCA6ICgoQm4gPSAhMCksIEZu KTsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0SW5wdXQiOg0KICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIChlID0gdC5kYXRhKSA9PT0gRm4gJiYgQm4gPyBudWxs IDogZTsNCiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgIH0pKGUsIG4pDQogICAgICAgICAgICAgICAgICA6IChmdW5jdGlvbiAoZSwg dCkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoV24pIHJldHVybiAiY29tcG9zaXRpb25l bmQiID09PSBlIHx8ICghem4gJiYgRG4oZSwgdCkpID8gKChlID0gZW4oKSksIChKdCA9IFp0 ID0gWHQgPSBudWxsKSwgKFduID0gITEpLCBlKSA6IG51bGw7DQogICAgICAgICAgICAgICAg ICAgIHN3aXRjaCAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInBhc3RlIjoN CiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAia2V5cHJlc3Mi Og0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodC5jdHJsS2V5IHx8IHQuYWx0S2V5 IHx8IHQubWV0YUtleSkgfHwgKHQuY3RybEtleSAmJiB0LmFsdEtleSkpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKHQuY2hhciAmJiAxIDwgdC5jaGFyLmxlbmd0aCkgcmV0 dXJuIHQuY2hhcjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQud2hpY2gpIHJl dHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHQud2hpY2gpOw0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAg ICAgICAgICAgICAgICAgY2FzZSAiY29tcG9zaXRpb25lbmQiOg0KICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIExuICYmICJrbyIgIT09IHQubG9jYWxlID8gbnVsbCA6IHQuZGF0 YTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfSkoZSwgbikp ICYmDQogICAgICAgICAgICAgICAgMCA8IChyID0gJHIociwgIm9uQmVmb3JlSW5wdXQiKSku bGVuZ3RoICYmDQogICAgICAgICAgICAgICAgKChvID0gbmV3IHduKCJvbkJlZm9yZUlucHV0 IiwgImJlZm9yZWlucHV0IiwgbnVsbCwgbiwgbykpLCBpLnB1c2goeyBldmVudDogbywgbGlz dGVuZXJzOiByIH0pLCAoby5kYXRhID0geSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgRnIoaSwgdCk7DQogICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gcXIoZSwgdCwgbikgew0KICAgICAgICAgIHJldHVybiB7IGluc3RhbmNlOiBlLCBsaXN0 ZW5lcjogdCwgY3VycmVudFRhcmdldDogbiB9Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uICRyKGUsIHQpIHsNCiAgICAgICAgICBmb3IgKHZhciBuID0gdCArICJDYXB0dXJlIiwg ciA9IFtdOyBudWxsICE9PSBlOykgew0KICAgICAgICAgICAgdmFyIG8gPSBlLA0KICAgICAg ICAgICAgICBhID0gby5zdGF0ZU5vZGU7DQogICAgICAgICAgICA1ID09PSBvLnRhZyAmJiBu dWxsICE9PSBhICYmICgobyA9IGEpLCBudWxsICE9IChhID0gQWUoZSwgbikpICYmIHIudW5z aGlmdChxcihlLCBhLCBvKSksIG51bGwgIT0gKGEgPSBBZShlLCB0KSkgJiYgci5wdXNoKHFy KGUsIGEsIG8pKSksIChlID0gZS5yZXR1cm4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICBy ZXR1cm4gcjsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBLcihlKSB7DQogICAgICAg ICAgaWYgKG51bGwgPT09IGUpIHJldHVybiBudWxsOw0KICAgICAgICAgIGRvIHsNCiAgICAg ICAgICAgIGUgPSBlLnJldHVybjsNCiAgICAgICAgICB9IHdoaWxlIChlICYmIDUgIT09IGUu dGFnKTsNCiAgICAgICAgICByZXR1cm4gZSB8fCBudWxsOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIFFyKGUsIHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICBmb3IgKHZhciBhID0g dC5fcmVhY3ROYW1lLCBpID0gW107IG51bGwgIT09IG4gJiYgbiAhPT0gcjspIHsNCiAgICAg ICAgICAgIHZhciBsID0gbiwNCiAgICAgICAgICAgICAgcyA9IGwuYWx0ZXJuYXRlLA0KICAg ICAgICAgICAgICB1ID0gbC5zdGF0ZU5vZGU7DQogICAgICAgICAgICBpZiAobnVsbCAhPT0g cyAmJiBzID09PSByKSBicmVhazsNCiAgICAgICAgICAgIDUgPT09IGwudGFnICYmIG51bGwg IT09IHUgJiYgKChsID0gdSksIG8gPyBudWxsICE9IChzID0gQWUobiwgYSkpICYmIGkudW5z aGlmdChxcihuLCBzLCBsKSkgOiBvIHx8IChudWxsICE9IChzID0gQWUobiwgYSkpICYmIGku cHVzaChxcihuLCBzLCBsKSkpKSwgKG4gPSBuLnJldHVybik7DQogICAgICAgICAgfQ0KICAg ICAgICAgIDAgIT09IGkubGVuZ3RoICYmIGUucHVzaCh7IGV2ZW50OiB0LCBsaXN0ZW5lcnM6 IGkgfSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEdyID0gL1xyXG4/L2csDQogICAgICAg ICAgWXIgPSAvXHUwMDAwfFx1RkZGRC9nOw0KICAgICAgICBmdW5jdGlvbiBYcihlKSB7DQog ICAgICAgICAgcmV0dXJuICgic3RyaW5nIiA9PT0gdHlwZW9mIGUgPyBlIDogIiIgKyBlKS5y ZXBsYWNlKEdyLCAiXG4iKS5yZXBsYWNlKFlyLCAiIik7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gWnIoZSwgdCwgbikgew0KICAgICAgICAgIGlmICgoKHQgPSBYcih0KSksIFhy KGUpICE9PSB0ICYmIG4pKSB0aHJvdyBFcnJvcihhKDQyNSkpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIEpyKCkgeyB9DQogICAgICAgIHZhciBlbyA9IG51bGwsDQogICAgICAg ICAgdG8gPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBubyhlLCB0KSB7DQogICAgICAgICAg cmV0dXJuICgNCiAgICAgICAgICAgICJ0ZXh0YXJlYSIgPT09IGUgfHwNCiAgICAgICAgICAg ICJub3NjcmlwdCIgPT09IGUgfHwNCiAgICAgICAgICAgICJzdHJpbmciID09PSB0eXBlb2Yg dC5jaGlsZHJlbiB8fA0KICAgICAgICAgICAgIm51bWJlciIgPT09IHR5cGVvZiB0LmNoaWxk cmVuIHx8DQogICAgICAgICAgICAoIm9iamVjdCIgPT09IHR5cGVvZiB0LmRhbmdlcm91c2x5 U2V0SW5uZXJIVE1MICYmIG51bGwgIT09IHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYg bnVsbCAhPSB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCkNCiAgICAgICAgICAp Ow0KICAgICAgICB9DQogICAgICAgIHZhciBybyA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBz ZXRUaW1lb3V0ID8gc2V0VGltZW91dCA6IHZvaWQgMCwNCiAgICAgICAgICBvbyA9ICJmdW5j dGlvbiIgPT09IHR5cGVvZiBjbGVhclRpbWVvdXQgPyBjbGVhclRpbWVvdXQgOiB2b2lkIDAs DQogICAgICAgICAgYW8gPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgUHJvbWlzZSA/IFByb21p c2UgOiB2b2lkIDAsDQogICAgICAgICAgaW8gPQ0KICAgICAgICAgICAgImZ1bmN0aW9uIiA9 PT0gdHlwZW9mIHF1ZXVlTWljcm90YXNrDQogICAgICAgICAgICAgID8gcXVldWVNaWNyb3Rh c2sNCiAgICAgICAgICAgICAgOiAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIGFvDQogICAgICAg ICAgICAgICAgPyBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgcmV0dXJuIGFv LnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChsbyk7DQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgIDogcm87DQogICAgICAgIGZ1bmN0aW9uIGxvKGUpIHsNCiAgICAg ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHRocm93IGU7DQog ICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gc28oZSwgdCkgew0K ICAgICAgICAgIHZhciBuID0gdCwNCiAgICAgICAgICAgIHIgPSAwOw0KICAgICAgICAgIGRv IHsNCiAgICAgICAgICAgIHZhciBvID0gbi5uZXh0U2libGluZzsNCiAgICAgICAgICAgIGlm ICgoZS5yZW1vdmVDaGlsZChuKSwgbyAmJiA4ID09PSBvLm5vZGVUeXBlKSkNCiAgICAgICAg ICAgICAgaWYgKCIvJCIgPT09IChuID0gby5kYXRhKSkgew0KICAgICAgICAgICAgICAgIGlm ICgwID09PSByKSByZXR1cm4gZS5yZW1vdmVDaGlsZChvKSwgdm9pZCBXdCh0KTsNCiAgICAg ICAgICAgICAgICByLS07DQogICAgICAgICAgICAgIH0gZWxzZSAoIiQiICE9PSBuICYmICIk PyIgIT09IG4gJiYgIiQhIiAhPT0gbikgfHwgcisrOw0KICAgICAgICAgICAgbiA9IG87DQog ICAgICAgICAgfSB3aGlsZSAobik7DQogICAgICAgICAgV3QodCk7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gdW8oZSkgew0KICAgICAgICAgIGZvciAoOyBudWxsICE9IGU7IGUg PSBlLm5leHRTaWJsaW5nKSB7DQogICAgICAgICAgICB2YXIgdCA9IGUubm9kZVR5cGU7DQog ICAgICAgICAgICBpZiAoMSA9PT0gdCB8fCAzID09PSB0KSBicmVhazsNCiAgICAgICAgICAg IGlmICg4ID09PSB0KSB7DQogICAgICAgICAgICAgIGlmICgiJCIgPT09ICh0ID0gZS5kYXRh KSB8fCAiJCEiID09PSB0IHx8ICIkPyIgPT09IHQpIGJyZWFrOw0KICAgICAgICAgICAgICBp ZiAoIi8kIiA9PT0gdCkgcmV0dXJuIG51bGw7DQogICAgICAgICAgICB9DQogICAgICAgICAg fQ0KICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGNv KGUpIHsNCiAgICAgICAgICBlID0gZS5wcmV2aW91c1NpYmxpbmc7DQogICAgICAgICAgZm9y ICh2YXIgdCA9IDA7IGU7KSB7DQogICAgICAgICAgICBpZiAoOCA9PT0gZS5ub2RlVHlwZSkg ew0KICAgICAgICAgICAgICB2YXIgbiA9IGUuZGF0YTsNCiAgICAgICAgICAgICAgaWYgKCIk IiA9PT0gbiB8fCAiJCEiID09PSBuIHx8ICIkPyIgPT09IG4pIHsNCiAgICAgICAgICAgICAg ICBpZiAoMCA9PT0gdCkgcmV0dXJuIGU7DQogICAgICAgICAgICAgICAgdC0tOw0KICAgICAg ICAgICAgICB9IGVsc2UgIi8kIiA9PT0gbiAmJiB0Kys7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBlID0gZS5wcmV2aW91c1NpYmxpbmc7DQogICAgICAgICAgfQ0KICAgICAgICAg IHJldHVybiBudWxsOw0KICAgICAgICB9DQogICAgICAgIHZhciBmbyA9IE1hdGgucmFuZG9t KCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLA0KICAgICAgICAgIHBvID0gIl9fcmVhY3RGaWJl ciQiICsgZm8sDQogICAgICAgICAgaG8gPSAiX19yZWFjdFByb3BzJCIgKyBmbywNCiAgICAg ICAgICBtbyA9ICJfX3JlYWN0Q29udGFpbmVyJCIgKyBmbywNCiAgICAgICAgICBnbyA9ICJf X3JlYWN0RXZlbnRzJCIgKyBmbywNCiAgICAgICAgICB2byA9ICJfX3JlYWN0TGlzdGVuZXJz JCIgKyBmbywNCiAgICAgICAgICB5byA9ICJfX3JlYWN0SGFuZGxlcyQiICsgZm87DQogICAg ICAgIGZ1bmN0aW9uIGJvKGUpIHsNCiAgICAgICAgICB2YXIgdCA9IGVbcG9dOw0KICAgICAg ICAgIGlmICh0KSByZXR1cm4gdDsNCiAgICAgICAgICBmb3IgKHZhciBuID0gZS5wYXJlbnRO b2RlOyBuOykgew0KICAgICAgICAgICAgaWYgKCh0ID0gblttb10gfHwgbltwb10pKSB7DQog ICAgICAgICAgICAgIGlmICgoKG4gPSB0LmFsdGVybmF0ZSksIG51bGwgIT09IHQuY2hpbGQg fHwgKG51bGwgIT09IG4gJiYgbnVsbCAhPT0gbi5jaGlsZCkpKQ0KICAgICAgICAgICAgICAg IGZvciAoZSA9IGNvKGUpOyBudWxsICE9PSBlOykgew0KICAgICAgICAgICAgICAgICAgaWYg KChuID0gZVtwb10pKSByZXR1cm4gbjsNCiAgICAgICAgICAgICAgICAgIGUgPSBjbyhlKTsN CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgbiA9IChlID0gbikucGFyZW50Tm9kZTsNCiAgICAgICAgICB9 DQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g d28oZSkgew0KICAgICAgICAgIHJldHVybiAhKGUgPSBlW3BvXSB8fCBlW21vXSkgfHwgKDUg IT09IGUudGFnICYmIDYgIT09IGUudGFnICYmIDEzICE9PSBlLnRhZyAmJiAzICE9PSBlLnRh ZykgPyBudWxsIDogZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB4byhlKSB7DQog ICAgICAgICAgaWYgKDUgPT09IGUudGFnIHx8IDYgPT09IGUudGFnKSByZXR1cm4gZS5zdGF0 ZU5vZGU7DQogICAgICAgICAgdGhyb3cgRXJyb3IoYSgzMykpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIFNvKGUpIHsNCiAgICAgICAgICByZXR1cm4gZVtob10gfHwgbnVsbDsN CiAgICAgICAgfQ0KICAgICAgICB2YXIga28gPSBbXSwNCiAgICAgICAgICBFbyA9IC0xOw0K ICAgICAgICBmdW5jdGlvbiBDbyhlKSB7DQogICAgICAgICAgcmV0dXJuIHsgY3VycmVudDog ZSB9Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFJvKGUpIHsNCiAgICAgICAgICAw ID4gRW8gfHwgKChlLmN1cnJlbnQgPSBrb1tFb10pLCAoa29bRW9dID0gbnVsbCksIEVvLS0p Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIF9vKGUsIHQpIHsNCiAgICAgICAgICBF bysrLCAoa29bRW9dID0gZS5jdXJyZW50KSwgKGUuY3VycmVudCA9IHQpOw0KICAgICAgICB9 DQogICAgICAgIHZhciBQbyA9IHt9LA0KICAgICAgICAgIE9vID0gQ28oUG8pLA0KICAgICAg ICAgIE5vID0gQ28oITEpLA0KICAgICAgICAgIFRvID0gUG87DQogICAgICAgIGZ1bmN0aW9u IEFvKGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IGUudHlwZS5jb250ZXh0VHlwZXM7DQog ICAgICAgICAgaWYgKCFuKSByZXR1cm4gUG87DQogICAgICAgICAgdmFyIHIgPSBlLnN0YXRl Tm9kZTsNCiAgICAgICAgICBpZiAociAmJiByLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5t YXNrZWRDaGlsZENvbnRleHQgPT09IHQpIHJldHVybiByLl9fcmVhY3RJbnRlcm5hbE1lbW9p emVkTWFza2VkQ2hpbGRDb250ZXh0Ow0KICAgICAgICAgIHZhciBvLA0KICAgICAgICAgICAg YSA9IHt9Ow0KICAgICAgICAgIGZvciAobyBpbiBuKSBhW29dID0gdFtvXTsNCiAgICAgICAg ICByZXR1cm4gciAmJiAoKChlID0gZS5zdGF0ZU5vZGUpLl9fcmVhY3RJbnRlcm5hbE1lbW9p emVkVW5tYXNrZWRDaGlsZENvbnRleHQgPSB0KSwgKGUuX19yZWFjdEludGVybmFsTWVtb2l6 ZWRNYXNrZWRDaGlsZENvbnRleHQgPSBhKSksIGE7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gTW8oZSkgew0KICAgICAgICAgIHJldHVybiBudWxsICE9PSAoZSA9IGUuY2hpbGRD b250ZXh0VHlwZXMpICYmIHZvaWQgMCAhPT0gZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiB6bygpIHsNCiAgICAgICAgICBSbyhObyksIFJvKE9vKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBqbyhlLCB0LCBuKSB7DQogICAgICAgICAgaWYgKE9vLmN1cnJlbnQg IT09IFBvKSB0aHJvdyBFcnJvcihhKDE2OCkpOw0KICAgICAgICAgIF9vKE9vLCB0KSwgX28o Tm8sIG4pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIElvKGUsIHQsIG4pIHsNCiAg ICAgICAgICB2YXIgciA9IGUuc3RhdGVOb2RlOw0KICAgICAgICAgIGlmICgoKHQgPSB0LmNo aWxkQ29udGV4dFR5cGVzKSwgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHIuZ2V0Q2hpbGRDb250 ZXh0KSkgcmV0dXJuIG47DQogICAgICAgICAgZm9yICh2YXIgbyBpbiAociA9IHIuZ2V0Q2hp bGRDb250ZXh0KCkpKSBpZiAoIShvIGluIHQpKSB0aHJvdyBFcnJvcihhKDEwOCwgVihlKSB8 fCAiVW5rbm93biIsIG8pKTsNCiAgICAgICAgICByZXR1cm4gTCh7fSwgbiwgcik7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTG8oZSkgew0KICAgICAgICAgIHJldHVybiAoZSA9 ICgoZSA9IGUuc3RhdGVOb2RlKSAmJiBlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2Vk Q2hpbGRDb250ZXh0KSB8fCBQbyksIChUbyA9IE9vLmN1cnJlbnQpLCBfbyhPbywgZSksIF9v KE5vLCBOby5jdXJyZW50KSwgITA7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRm8o ZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gZS5zdGF0ZU5vZGU7DQogICAgICAgICAg aWYgKCFyKSB0aHJvdyBFcnJvcihhKDE2OSkpOw0KICAgICAgICAgIG4gPyAoKGUgPSBJbyhl LCB0LCBUbykpLCAoci5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4 dCA9IGUpLCBSbyhObyksIFJvKE9vKSwgX28oT28sIGUpKSA6IFJvKE5vKSwgX28oTm8sIG4p Ow0KICAgICAgICB9DQogICAgICAgIHZhciBCbyA9IG51bGwsDQogICAgICAgICAgRG8gPSAh MSwNCiAgICAgICAgICBVbyA9ICExOw0KICAgICAgICBmdW5jdGlvbiBXbyhlKSB7DQogICAg ICAgICAgbnVsbCA9PT0gQm8gPyAoQm8gPSBbZV0pIDogQm8ucHVzaChlKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBWbygpIHsNCiAgICAgICAgICBpZiAoIVVvICYmIG51bGwg IT09IEJvKSB7DQogICAgICAgICAgICBVbyA9ICEwOw0KICAgICAgICAgICAgdmFyIGUgPSAw LA0KICAgICAgICAgICAgICB0ID0gYnQ7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICB2YXIgbiA9IEJvOw0KICAgICAgICAgICAgICBmb3IgKGJ0ID0gMTsgZSA8IG4ubGVu Z3RoOyBlKyspIHsNCiAgICAgICAgICAgICAgICB2YXIgciA9IG5bZV07DQogICAgICAgICAg ICAgICAgZG8gew0KICAgICAgICAgICAgICAgICAgciA9IHIoITApOw0KICAgICAgICAgICAg ICAgIH0gd2hpbGUgKG51bGwgIT09IHIpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgIChCbyA9IG51bGwpLCAoRG8gPSAhMSk7DQogICAgICAgICAgICB9IGNhdGNoIChvKSB7 DQogICAgICAgICAgICAgIHRocm93IChudWxsICE9PSBCbyAmJiAoQm8gPSBCby5zbGljZShl ICsgMSkpLCBLZShKZSwgVm8pLCBvKTsNCiAgICAgICAgICAgIH0gZmluYWxseSB7DQogICAg ICAgICAgICAgIChidCA9IHQpLCAoVW8gPSAhMSk7DQogICAgICAgICAgICB9DQogICAgICAg ICAgfQ0KICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQogICAgICAgIHZhciBI byA9IFtdLA0KICAgICAgICAgIHFvID0gMCwNCiAgICAgICAgICAkbyA9IG51bGwsDQogICAg ICAgICAgS28gPSAwLA0KICAgICAgICAgIFFvID0gW10sDQogICAgICAgICAgR28gPSAwLA0K ICAgICAgICAgIFlvID0gbnVsbCwNCiAgICAgICAgICBYbyA9IDEsDQogICAgICAgICAgWm8g PSAiIjsNCiAgICAgICAgZnVuY3Rpb24gSm8oZSwgdCkgew0KICAgICAgICAgIChIb1txbysr XSA9IEtvKSwgKEhvW3FvKytdID0gJG8pLCAoJG8gPSBlKSwgKEtvID0gdCk7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gZWEoZSwgdCwgbikgew0KICAgICAgICAgIChRb1tHbysr XSA9IFhvKSwgKFFvW0dvKytdID0gWm8pLCAoUW9bR28rK10gPSBZbyksIChZbyA9IGUpOw0K ICAgICAgICAgIHZhciByID0gWG87DQogICAgICAgICAgZSA9IFpvOw0KICAgICAgICAgIHZh ciBvID0gMzIgLSBpdChyKSAtIDE7DQogICAgICAgICAgKHIgJj0gfigxIDw8IG8pKSwgKG4g Kz0gMSk7DQogICAgICAgICAgdmFyIGEgPSAzMiAtIGl0KHQpICsgbzsNCiAgICAgICAgICBp ZiAoMzAgPCBhKSB7DQogICAgICAgICAgICB2YXIgaSA9IG8gLSAobyAlIDUpOw0KICAgICAg ICAgICAgKGEgPSAociAmICgoMSA8PCBpKSAtIDEpKS50b1N0cmluZygzMikpLCAociA+Pj0g aSksIChvIC09IGkpLCAoWG8gPSAoMSA8PCAoMzIgLSBpdCh0KSArIG8pKSB8IChuIDw8IG8p IHwgciksIChabyA9IGEgKyBlKTsNCiAgICAgICAgICB9IGVsc2UgKFhvID0gKDEgPDwgYSkg fCAobiA8PCBvKSB8IHIpLCAoWm8gPSBlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biB0YShlKSB7DQogICAgICAgICAgbnVsbCAhPT0gZS5yZXR1cm4gJiYgKEpvKGUsIDEpLCBl YShlLCAxLCAwKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbmEoZSkgew0KICAg ICAgICAgIGZvciAoOyBlID09PSAkbzspICgkbyA9IEhvWy0tcW9dKSwgKEhvW3FvXSA9IG51 bGwpLCAoS28gPSBIb1stLXFvXSksIChIb1txb10gPSBudWxsKTsNCiAgICAgICAgICBmb3Ig KDsgZSA9PT0gWW87KSAoWW8gPSBRb1stLUdvXSksIChRb1tHb10gPSBudWxsKSwgKFpvID0g UW9bLS1Hb10pLCAoUW9bR29dID0gbnVsbCksIChYbyA9IFFvWy0tR29dKSwgKFFvW0dvXSA9 IG51bGwpOw0KICAgICAgICB9DQogICAgICAgIHZhciByYSA9IG51bGwsDQogICAgICAgICAg b2EgPSBudWxsLA0KICAgICAgICAgIGFhID0gITEsDQogICAgICAgICAgaWEgPSBudWxsOw0K ICAgICAgICBmdW5jdGlvbiBsYShlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBBdSg1LCBu dWxsLCBudWxsLCAwKTsNCiAgICAgICAgICAobi5lbGVtZW50VHlwZSA9ICJERUxFVEVEIiks IChuLnN0YXRlTm9kZSA9IHQpLCAobi5yZXR1cm4gPSBlKSwgbnVsbCA9PT0gKHQgPSBlLmRl bGV0aW9ucykgPyAoKGUuZGVsZXRpb25zID0gW25dKSwgKGUuZmxhZ3MgfD0gMTYpKSA6IHQu cHVzaChuKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBzYShlLCB0KSB7DQogICAg ICAgICAgc3dpdGNoIChlLnRhZykgew0KICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAg ICAgICB2YXIgbiA9IGUudHlwZTsNCiAgICAgICAgICAgICAgcmV0dXJuIG51bGwgIT09ICh0 ID0gMSAhPT0gdC5ub2RlVHlwZSB8fCBuLnRvTG93ZXJDYXNlKCkgIT09IHQubm9kZU5hbWUu dG9Mb3dlckNhc2UoKSA/IG51bGwgOiB0KSAmJiAoKGUuc3RhdGVOb2RlID0gdCksIChyYSA9 IGUpLCAob2EgPSB1byh0LmZpcnN0Q2hpbGQpKSwgITApOw0KICAgICAgICAgICAgY2FzZSA2 Og0KICAgICAgICAgICAgICByZXR1cm4gbnVsbCAhPT0gKHQgPSAiIiA9PT0gZS5wZW5kaW5n UHJvcHMgfHwgMyAhPT0gdC5ub2RlVHlwZSA/IG51bGwgOiB0KSAmJiAoKGUuc3RhdGVOb2Rl ID0gdCksIChyYSA9IGUpLCAob2EgPSBudWxsKSwgITApOw0KICAgICAgICAgICAgY2FzZSAx MzoNCiAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBudWxsICE9PSAo dCA9IDggIT09IHQubm9kZVR5cGUgPyBudWxsIDogdCkgJiYNCiAgICAgICAgICAgICAgICAo KG4gPSBudWxsICE9PSBZbyA/IHsgaWQ6IFhvLCBvdmVyZmxvdzogWm8gfSA6IG51bGwpLA0K ICAgICAgICAgICAgICAgICAgKGUubWVtb2l6ZWRTdGF0ZSA9IHsgZGVoeWRyYXRlZDogdCwg dHJlZUNvbnRleHQ6IG4sIHJldHJ5TGFuZTogMTA3Mzc0MTgyNCB9KSwNCiAgICAgICAgICAg ICAgICAgICgobiA9IEF1KDE4LCBudWxsLCBudWxsLCAwKSkuc3RhdGVOb2RlID0gdCksDQog ICAgICAgICAgICAgICAgICAobi5yZXR1cm4gPSBlKSwNCiAgICAgICAgICAgICAgICAgIChl LmNoaWxkID0gbiksDQogICAgICAgICAgICAgICAgICAocmEgPSBlKSwNCiAgICAgICAgICAg ICAgICAgIChvYSA9IG51bGwpLA0KICAgICAgICAgICAgICAgICAgITApDQogICAgICAgICAg ICAgICk7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1cm4gITE7 DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHVhKGUpIHsNCiAg ICAgICAgICByZXR1cm4gMCAhPT0gKDEgJiBlLm1vZGUpICYmIDAgPT09ICgxMjggJiBlLmZs YWdzKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBjYShlKSB7DQogICAgICAgICAg aWYgKGFhKSB7DQogICAgICAgICAgICB2YXIgdCA9IG9hOw0KICAgICAgICAgICAgaWYgKHQp IHsNCiAgICAgICAgICAgICAgdmFyIG4gPSB0Ow0KICAgICAgICAgICAgICBpZiAoIXNhKGUs IHQpKSB7DQogICAgICAgICAgICAgICAgaWYgKHVhKGUpKSB0aHJvdyBFcnJvcihhKDQxOCkp Ow0KICAgICAgICAgICAgICAgIHQgPSB1byhuLm5leHRTaWJsaW5nKTsNCiAgICAgICAgICAg ICAgICB2YXIgciA9IHJhOw0KICAgICAgICAgICAgICAgIHQgJiYgc2EoZSwgdCkgPyBsYShy LCBuKSA6ICgoZS5mbGFncyA9ICgtNDA5NyAmIGUuZmxhZ3MpIHwgMiksIChhYSA9ICExKSwg KHJhID0gZSkpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgICBpZiAodWEoZSkpIHRocm93IEVycm9yKGEoNDE4KSk7DQogICAgICAgICAg ICAgIChlLmZsYWdzID0gKC00MDk3ICYgZS5mbGFncykgfCAyKSwgKGFhID0gITEpLCAocmEg PSBlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gZGEoZSkgew0KICAgICAgICAgIGZvciAoZSA9IGUucmV0dXJuOyBudWxsICE9 PSBlICYmIDUgIT09IGUudGFnICYmIDMgIT09IGUudGFnICYmIDEzICE9PSBlLnRhZzspIGUg PSBlLnJldHVybjsNCiAgICAgICAgICByYSA9IGU7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gZmEoZSkgew0KICAgICAgICAgIGlmIChlICE9PSByYSkgcmV0dXJuICExOw0KICAg ICAgICAgIGlmICghYWEpIHJldHVybiBkYShlKSwgKGFhID0gITApLCAhMTsNCiAgICAgICAg ICB2YXIgdDsNCiAgICAgICAgICBpZiAoKCh0ID0gMyAhPT0gZS50YWcpICYmICEodCA9IDUg IT09IGUudGFnKSAmJiAodCA9ICJoZWFkIiAhPT0gKHQgPSBlLnR5cGUpICYmICJib2R5IiAh PT0gdCAmJiAhbm8oZS50eXBlLCBlLm1lbW9pemVkUHJvcHMpKSwgdCAmJiAodCA9IG9hKSkp IHsNCiAgICAgICAgICAgIGlmICh1YShlKSkgdGhyb3cgKHBhKCksIEVycm9yKGEoNDE4KSkp Ow0KICAgICAgICAgICAgZm9yICg7IHQ7KSBsYShlLCB0KSwgKHQgPSB1byh0Lm5leHRTaWJs aW5nKSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmICgoZGEoZSksIDEzID09PSBlLnRh ZykpIHsNCiAgICAgICAgICAgIGlmICghKGUgPSBudWxsICE9PSAoZSA9IGUubWVtb2l6ZWRT dGF0ZSkgPyBlLmRlaHlkcmF0ZWQgOiBudWxsKSkgdGhyb3cgRXJyb3IoYSgzMTcpKTsNCiAg ICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgICAgZm9yIChlID0gZS5uZXh0U2libGluZywg dCA9IDA7IGU7KSB7DQogICAgICAgICAgICAgICAgaWYgKDggPT09IGUubm9kZVR5cGUpIHsN CiAgICAgICAgICAgICAgICAgIHZhciBuID0gZS5kYXRhOw0KICAgICAgICAgICAgICAgICAg aWYgKCIvJCIgPT09IG4pIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKDAgPT09IHQpIHsN CiAgICAgICAgICAgICAgICAgICAgICBvYSA9IHVvKGUubmV4dFNpYmxpbmcpOw0KICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgdC0tOw0KICAgICAgICAgICAgICAgICAgfSBlbHNlICgiJCIgIT09 IG4gJiYgIiQhIiAhPT0gbiAmJiAiJD8iICE9PSBuKSB8fCB0Kys7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIGUgPSBlLm5leHRTaWJsaW5nOw0KICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgIG9hID0gbnVsbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICB9IGVsc2Ugb2EgPSByYSA/IHVvKGUuc3RhdGVOb2RlLm5leHRTaWJsaW5nKSA6IG51bGw7 DQogICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHBh KCkgew0KICAgICAgICAgIGZvciAodmFyIGUgPSBvYTsgZTspIGUgPSB1byhlLm5leHRTaWJs aW5nKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBoYSgpIHsNCiAgICAgICAgICAo b2EgPSByYSA9IG51bGwpLCAoYWEgPSAhMSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gbWEoZSkgew0KICAgICAgICAgIG51bGwgPT09IGlhID8gKGlhID0gW2VdKSA6IGlhLnB1 c2goZSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGdhID0gdy5SZWFjdEN1cnJlbnRCYXRj aENvbmZpZzsNCiAgICAgICAgZnVuY3Rpb24gdmEoZSwgdCkgew0KICAgICAgICAgIGlmIChl ICYmIGUuZGVmYXVsdFByb3BzKSB7DQogICAgICAgICAgICBmb3IgKHZhciBuIGluICgodCA9 IEwoe30sIHQpKSwgKGUgPSBlLmRlZmF1bHRQcm9wcykpKSB2b2lkIDAgPT09IHRbbl0gJiYg KHRbbl0gPSBlW25dKTsNCiAgICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICAgIH0NCiAg ICAgICAgICByZXR1cm4gdDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgeWEgPSBDbyhudWxs KSwNCiAgICAgICAgICBiYSA9IG51bGwsDQogICAgICAgICAgd2EgPSBudWxsLA0KICAgICAg ICAgIHhhID0gbnVsbDsNCiAgICAgICAgZnVuY3Rpb24gU2EoKSB7DQogICAgICAgICAgeGEg PSB3YSA9IGJhID0gbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBrYShlKSB7 DQogICAgICAgICAgdmFyIHQgPSB5YS5jdXJyZW50Ow0KICAgICAgICAgIFJvKHlhKSwgKGUu X2N1cnJlbnRWYWx1ZSA9IHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEVhKGUs IHQsIG4pIHsNCiAgICAgICAgICBmb3IgKDsgbnVsbCAhPT0gZTspIHsNCiAgICAgICAgICAg IHZhciByID0gZS5hbHRlcm5hdGU7DQogICAgICAgICAgICBpZiAoKChlLmNoaWxkTGFuZXMg JiB0KSAhPT0gdCA/ICgoZS5jaGlsZExhbmVzIHw9IHQpLCBudWxsICE9PSByICYmIChyLmNo aWxkTGFuZXMgfD0gdCkpIDogbnVsbCAhPT0gciAmJiAoci5jaGlsZExhbmVzICYgdCkgIT09 IHQgJiYgKHIuY2hpbGRMYW5lcyB8PSB0KSwgZSA9PT0gbikpIGJyZWFrOw0KICAgICAgICAg ICAgZSA9IGUucmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBDYShlLCB0KSB7DQogICAgICAgICAgKGJhID0gZSksICh4YSA9IHdhID0gbnVsbCks IG51bGwgIT09IChlID0gZS5kZXBlbmRlbmNpZXMpICYmIG51bGwgIT09IGUuZmlyc3RDb250 ZXh0ICYmICgwICE9PSAoZS5sYW5lcyAmIHQpICYmICh3bCA9ICEwKSwgKGUuZmlyc3RDb250 ZXh0ID0gbnVsbCkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFJhKGUpIHsNCiAg ICAgICAgICB2YXIgdCA9IGUuX2N1cnJlbnRWYWx1ZTsNCiAgICAgICAgICBpZiAoeGEgIT09 IGUpDQogICAgICAgICAgICBpZiAoKChlID0geyBjb250ZXh0OiBlLCBtZW1vaXplZFZhbHVl OiB0LCBuZXh0OiBudWxsIH0pLCBudWxsID09PSB3YSkpIHsNCiAgICAgICAgICAgICAgaWYg KG51bGwgPT09IGJhKSB0aHJvdyBFcnJvcihhKDMwOCkpOw0KICAgICAgICAgICAgICAod2Eg PSBlKSwgKGJhLmRlcGVuZGVuY2llcyA9IHsgbGFuZXM6IDAsIGZpcnN0Q29udGV4dDogZSB9 KTsNCiAgICAgICAgICAgIH0gZWxzZSB3YSA9IHdhLm5leHQgPSBlOw0KICAgICAgICAgIHJl dHVybiB0Ow0KICAgICAgICB9DQogICAgICAgIHZhciBfYSA9IG51bGw7DQogICAgICAgIGZ1 bmN0aW9uIFBhKGUpIHsNCiAgICAgICAgICBudWxsID09PSBfYSA/IChfYSA9IFtlXSkgOiBf YS5wdXNoKGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE9hKGUsIHQsIG4sIHIp IHsNCiAgICAgICAgICB2YXIgbyA9IHQuaW50ZXJsZWF2ZWQ7DQogICAgICAgICAgcmV0dXJu IG51bGwgPT09IG8gPyAoKG4ubmV4dCA9IG4pLCBQYSh0KSkgOiAoKG4ubmV4dCA9IG8ubmV4 dCksIChvLm5leHQgPSBuKSksICh0LmludGVybGVhdmVkID0gbiksIE5hKGUsIHIpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE5hKGUsIHQpIHsNCiAgICAgICAgICBlLmxhbmVz IHw9IHQ7DQogICAgICAgICAgdmFyIG4gPSBlLmFsdGVybmF0ZTsNCiAgICAgICAgICBmb3Ig KG51bGwgIT09IG4gJiYgKG4ubGFuZXMgfD0gdCksIG4gPSBlLCBlID0gZS5yZXR1cm47IG51 bGwgIT09IGU7KSAoZS5jaGlsZExhbmVzIHw9IHQpLCBudWxsICE9PSAobiA9IGUuYWx0ZXJu YXRlKSAmJiAobi5jaGlsZExhbmVzIHw9IHQpLCAobiA9IGUpLCAoZSA9IGUucmV0dXJuKTsN CiAgICAgICAgICByZXR1cm4gMyA9PT0gbi50YWcgPyBuLnN0YXRlTm9kZSA6IG51bGw7DQog ICAgICAgIH0NCiAgICAgICAgdmFyIFRhID0gITE7DQogICAgICAgIGZ1bmN0aW9uIEFhKGUp IHsNCiAgICAgICAgICBlLnVwZGF0ZVF1ZXVlID0geyBiYXNlU3RhdGU6IGUubWVtb2l6ZWRT dGF0ZSwgZmlyc3RCYXNlVXBkYXRlOiBudWxsLCBsYXN0QmFzZVVwZGF0ZTogbnVsbCwgc2hh cmVkOiB7IHBlbmRpbmc6IG51bGwsIGludGVybGVhdmVkOiBudWxsLCBsYW5lczogMCB9LCBl ZmZlY3RzOiBudWxsIH07DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTWEoZSwgdCkg ew0KICAgICAgICAgIChlID0gZS51cGRhdGVRdWV1ZSksIHQudXBkYXRlUXVldWUgPT09IGUg JiYgKHQudXBkYXRlUXVldWUgPSB7IGJhc2VTdGF0ZTogZS5iYXNlU3RhdGUsIGZpcnN0QmFz ZVVwZGF0ZTogZS5maXJzdEJhc2VVcGRhdGUsIGxhc3RCYXNlVXBkYXRlOiBlLmxhc3RCYXNl VXBkYXRlLCBzaGFyZWQ6IGUuc2hhcmVkLCBlZmZlY3RzOiBlLmVmZmVjdHMgfSk7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gemEoZSwgdCkgew0KICAgICAgICAgIHJldHVybiB7 IGV2ZW50VGltZTogZSwgbGFuZTogdCwgdGFnOiAwLCBwYXlsb2FkOiBudWxsLCBjYWxsYmFj azogbnVsbCwgbmV4dDogbnVsbCB9Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGph KGUsIHQsIG4pIHsNCiAgICAgICAgICB2YXIgciA9IGUudXBkYXRlUXVldWU7DQogICAgICAg ICAgaWYgKG51bGwgPT09IHIpIHJldHVybiBudWxsOw0KICAgICAgICAgIGlmICgoKHIgPSBy LnNoYXJlZCksIDAgIT09ICgyICYgT3MpKSkgew0KICAgICAgICAgICAgdmFyIG8gPSByLnBl bmRpbmc7DQogICAgICAgICAgICByZXR1cm4gbnVsbCA9PT0gbyA/ICh0Lm5leHQgPSB0KSA6 ICgodC5uZXh0ID0gby5uZXh0KSwgKG8ubmV4dCA9IHQpKSwgKHIucGVuZGluZyA9IHQpLCBO YShlLCBuKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIG51bGwgPT09IChvID0g ci5pbnRlcmxlYXZlZCkgPyAoKHQubmV4dCA9IHQpLCBQYShyKSkgOiAoKHQubmV4dCA9IG8u bmV4dCksIChvLm5leHQgPSB0KSksIChyLmludGVybGVhdmVkID0gdCksIE5hKGUsIG4pOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIElhKGUsIHQsIG4pIHsNCiAgICAgICAgICBp ZiAobnVsbCAhPT0gKHQgPSB0LnVwZGF0ZVF1ZXVlKSAmJiAoKHQgPSB0LnNoYXJlZCksIDAg IT09ICg0MTk0MjQwICYgbikpKSB7DQogICAgICAgICAgICB2YXIgciA9IHQubGFuZXM7DQog ICAgICAgICAgICAobiB8PSByICY9IGUucGVuZGluZ0xhbmVzKSwgKHQubGFuZXMgPSBuKSwg eXQoZSwgbik7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIExh KGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IGUudXBkYXRlUXVldWUsDQogICAgICAgICAg ICByID0gZS5hbHRlcm5hdGU7DQogICAgICAgICAgaWYgKG51bGwgIT09IHIgJiYgbiA9PT0g KHIgPSByLnVwZGF0ZVF1ZXVlKSkgew0KICAgICAgICAgICAgdmFyIG8gPSBudWxsLA0KICAg ICAgICAgICAgICBhID0gbnVsbDsNCiAgICAgICAgICAgIGlmIChudWxsICE9PSAobiA9IG4u Zmlyc3RCYXNlVXBkYXRlKSkgew0KICAgICAgICAgICAgICBkbyB7DQogICAgICAgICAgICAg ICAgdmFyIGkgPSB7IGV2ZW50VGltZTogbi5ldmVudFRpbWUsIGxhbmU6IG4ubGFuZSwgdGFn OiBuLnRhZywgcGF5bG9hZDogbi5wYXlsb2FkLCBjYWxsYmFjazogbi5jYWxsYmFjaywgbmV4 dDogbnVsbCB9Ow0KICAgICAgICAgICAgICAgIG51bGwgPT09IGEgPyAobyA9IGEgPSBpKSA6 IChhID0gYS5uZXh0ID0gaSksIChuID0gbi5uZXh0KTsNCiAgICAgICAgICAgICAgfSB3aGls ZSAobnVsbCAhPT0gbik7DQogICAgICAgICAgICAgIG51bGwgPT09IGEgPyAobyA9IGEgPSB0 KSA6IChhID0gYS5uZXh0ID0gdCk7DQogICAgICAgICAgICB9IGVsc2UgbyA9IGEgPSB0Ow0K ICAgICAgICAgICAgcmV0dXJuIChuID0geyBiYXNlU3RhdGU6IHIuYmFzZVN0YXRlLCBmaXJz dEJhc2VVcGRhdGU6IG8sIGxhc3RCYXNlVXBkYXRlOiBhLCBzaGFyZWQ6IHIuc2hhcmVkLCBl ZmZlY3RzOiByLmVmZmVjdHMgfSksIHZvaWQgKGUudXBkYXRlUXVldWUgPSBuKTsNCiAgICAg ICAgICB9DQogICAgICAgICAgbnVsbCA9PT0gKGUgPSBuLmxhc3RCYXNlVXBkYXRlKSA/IChu LmZpcnN0QmFzZVVwZGF0ZSA9IHQpIDogKGUubmV4dCA9IHQpLCAobi5sYXN0QmFzZVVwZGF0 ZSA9IHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEZhKGUsIHQsIG4sIHIpIHsN CiAgICAgICAgICB2YXIgbyA9IGUudXBkYXRlUXVldWU7DQogICAgICAgICAgVGEgPSAhMTsN CiAgICAgICAgICB2YXIgYSA9IG8uZmlyc3RCYXNlVXBkYXRlLA0KICAgICAgICAgICAgaSA9 IG8ubGFzdEJhc2VVcGRhdGUsDQogICAgICAgICAgICBsID0gby5zaGFyZWQucGVuZGluZzsN CiAgICAgICAgICBpZiAobnVsbCAhPT0gbCkgew0KICAgICAgICAgICAgby5zaGFyZWQucGVu ZGluZyA9IG51bGw7DQogICAgICAgICAgICB2YXIgcyA9IGwsDQogICAgICAgICAgICAgIHUg PSBzLm5leHQ7DQogICAgICAgICAgICAocy5uZXh0ID0gbnVsbCksIG51bGwgPT09IGkgPyAo YSA9IHUpIDogKGkubmV4dCA9IHUpLCAoaSA9IHMpOw0KICAgICAgICAgICAgdmFyIGMgPSBl LmFsdGVybmF0ZTsNCiAgICAgICAgICAgIG51bGwgIT09IGMgJiYgKGwgPSAoYyA9IGMudXBk YXRlUXVldWUpLmxhc3RCYXNlVXBkYXRlKSAhPT0gaSAmJiAobnVsbCA9PT0gbCA/IChjLmZp cnN0QmFzZVVwZGF0ZSA9IHUpIDogKGwubmV4dCA9IHUpLCAoYy5sYXN0QmFzZVVwZGF0ZSA9 IHMpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKG51bGwgIT09IGEpIHsNCiAgICAg ICAgICAgIHZhciBkID0gby5iYXNlU3RhdGU7DQogICAgICAgICAgICBmb3IgKGkgPSAwLCBj ID0gdSA9IHMgPSBudWxsLCBsID0gYTsgOykgew0KICAgICAgICAgICAgICB2YXIgZiA9IGwu bGFuZSwNCiAgICAgICAgICAgICAgICBwID0gbC5ldmVudFRpbWU7DQogICAgICAgICAgICAg IGlmICgociAmIGYpID09PSBmKSB7DQogICAgICAgICAgICAgICAgbnVsbCAhPT0gYyAmJiAo YyA9IGMubmV4dCA9IHsgZXZlbnRUaW1lOiBwLCBsYW5lOiAwLCB0YWc6IGwudGFnLCBwYXls b2FkOiBsLnBheWxvYWQsIGNhbGxiYWNrOiBsLmNhbGxiYWNrLCBuZXh0OiBudWxsIH0pOw0K ICAgICAgICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgICAgICAgIHZhciBoID0gZSwNCiAg ICAgICAgICAgICAgICAgICAgbSA9IGw7DQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKCgo ZiA9IHQpLCAocCA9IG4pLCBtLnRhZykpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAx Og0KICAgICAgICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgKGgg PSBtLnBheWxvYWQpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBkID0gaC5jYWxsKHAs IGQsIGYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgZCA9IGg7DQogICAgICAgICAg ICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAg ICAgICAgICAgICAgICAgICAgIGguZmxhZ3MgPSAoLTY1NTM3ICYgaC5mbGFncykgfCAxMjg7 DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgICBp ZiAobnVsbCA9PT0gKGYgPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgKGggPSBtLnBheWxvYWQp ID8gaC5jYWxsKHAsIGQsIGYpIDogaCkgfHwgdm9pZCAwID09PSBmKSBicmVhayBlOw0KICAg ICAgICAgICAgICAgICAgICAgIGQgPSBMKHt9LCBkLCBmKTsNCiAgICAgICAgICAgICAgICAg ICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAg ICAgICAgICAgICAgVGEgPSAhMDsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgbnVsbCAhPT0gbC5jYWxsYmFjayAmJiAwICE9PSBs LmxhbmUgJiYgKChlLmZsYWdzIHw9IDY0KSwgbnVsbCA9PT0gKGYgPSBvLmVmZmVjdHMpID8g KG8uZWZmZWN0cyA9IFtsXSkgOiBmLnB1c2gobCkpOw0KICAgICAgICAgICAgICB9IGVsc2Ug KHAgPSB7IGV2ZW50VGltZTogcCwgbGFuZTogZiwgdGFnOiBsLnRhZywgcGF5bG9hZDogbC5w YXlsb2FkLCBjYWxsYmFjazogbC5jYWxsYmFjaywgbmV4dDogbnVsbCB9KSwgbnVsbCA9PT0g YyA/ICgodSA9IGMgPSBwKSwgKHMgPSBkKSkgOiAoYyA9IGMubmV4dCA9IHApLCAoaSB8PSBm KTsNCiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IChsID0gbC5uZXh0KSkgew0KICAgICAg ICAgICAgICAgIGlmIChudWxsID09PSAobCA9IG8uc2hhcmVkLnBlbmRpbmcpKSBicmVhazsN CiAgICAgICAgICAgICAgICAobCA9IChmID0gbCkubmV4dCksIChmLm5leHQgPSBudWxsKSwg KG8ubGFzdEJhc2VVcGRhdGUgPSBmKSwgKG8uc2hhcmVkLnBlbmRpbmcgPSBudWxsKTsNCiAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKChudWxsID09 PSBjICYmIChzID0gZCksIChvLmJhc2VTdGF0ZSA9IHMpLCAoby5maXJzdEJhc2VVcGRhdGUg PSB1KSwgKG8ubGFzdEJhc2VVcGRhdGUgPSBjKSwgbnVsbCAhPT0gKHQgPSBvLnNoYXJlZC5p bnRlcmxlYXZlZCkpKSB7DQogICAgICAgICAgICAgIG8gPSB0Ow0KICAgICAgICAgICAgICBk byB7DQogICAgICAgICAgICAgICAgKGkgfD0gby5sYW5lKSwgKG8gPSBvLm5leHQpOw0KICAg ICAgICAgICAgICB9IHdoaWxlIChvICE9PSB0KTsNCiAgICAgICAgICAgIH0gZWxzZSBudWxs ID09PSBhICYmIChvLnNoYXJlZC5sYW5lcyA9IDApOw0KICAgICAgICAgICAgKExzIHw9IGkp LCAoZS5sYW5lcyA9IGkpLCAoZS5tZW1vaXplZFN0YXRlID0gZCk7DQogICAgICAgICAgfQ0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEJhKGUsIHQsIG4pIHsNCiAgICAgICAgICBp ZiAoKChlID0gdC5lZmZlY3RzKSwgKHQuZWZmZWN0cyA9IG51bGwpLCBudWxsICE9PSBlKSkN CiAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCBlLmxlbmd0aDsgdCsrKSB7DQogICAgICAg ICAgICAgIHZhciByID0gZVt0XSwNCiAgICAgICAgICAgICAgICBvID0gci5jYWxsYmFjazsN CiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IG8pIHsNCiAgICAgICAgICAgICAgICBpZiAo KChyLmNhbGxiYWNrID0gbnVsbCksIChyID0gbiksICJmdW5jdGlvbiIgIT09IHR5cGVvZiBv KSkgdGhyb3cgRXJyb3IoYSgxOTEsIG8pKTsNCiAgICAgICAgICAgICAgICBvLmNhbGwocik7 DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2 YXIgRGEgPSBuZXcgci5Db21wb25lbnQoKS5yZWZzOw0KICAgICAgICBmdW5jdGlvbiBVYShl LCB0LCBuLCByKSB7DQogICAgICAgICAgKG4gPSBudWxsID09PSAobiA9IG4ociwgKHQgPSBl Lm1lbW9pemVkU3RhdGUpKSkgfHwgdm9pZCAwID09PSBuID8gdCA6IEwoe30sIHQsIG4pKSwg KGUubWVtb2l6ZWRTdGF0ZSA9IG4pLCAwID09PSBlLmxhbmVzICYmIChlLnVwZGF0ZVF1ZXVl LmJhc2VTdGF0ZSA9IG4pOw0KICAgICAgICB9DQogICAgICAgIHZhciBXYSA9IHsNCiAgICAg ICAgICBpc01vdW50ZWQ6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gISEo ZSA9IGUuX3JlYWN0SW50ZXJuYWxzKSAmJiBXZShlKSA9PT0gZTsNCiAgICAgICAgICB9LA0K ICAgICAgICAgIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAg ICAgICAgIGUgPSBlLl9yZWFjdEludGVybmFsczsNCiAgICAgICAgICAgIHZhciByID0gdHUo KSwNCiAgICAgICAgICAgICAgbyA9IG51KGUpLA0KICAgICAgICAgICAgICBhID0gemEociwg byk7DQogICAgICAgICAgICAoYS5wYXlsb2FkID0gdCksIHZvaWQgMCAhPT0gbiAmJiBudWxs ICE9PSBuICYmIChhLmNhbGxiYWNrID0gbiksIG51bGwgIT09ICh0ID0gamEoZSwgYSwgbykp ICYmIChydSh0LCBlLCBvLCByKSwgSWEodCwgZSwgbykpOw0KICAgICAgICAgIH0sDQogICAg ICAgICAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAg ICAgICAgIGUgPSBlLl9yZWFjdEludGVybmFsczsNCiAgICAgICAgICAgIHZhciByID0gdHUo KSwNCiAgICAgICAgICAgICAgbyA9IG51KGUpLA0KICAgICAgICAgICAgICBhID0gemEociwg byk7DQogICAgICAgICAgICAoYS50YWcgPSAxKSwgKGEucGF5bG9hZCA9IHQpLCB2b2lkIDAg IT09IG4gJiYgbnVsbCAhPT0gbiAmJiAoYS5jYWxsYmFjayA9IG4pLCBudWxsICE9PSAodCA9 IGphKGUsIGEsIG8pKSAmJiAocnUodCwgZSwgbywgciksIElhKHQsIGUsIG8pKTsNCiAgICAg ICAgICB9LA0KICAgICAgICAgIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKGUsIHQp IHsNCiAgICAgICAgICAgIGUgPSBlLl9yZWFjdEludGVybmFsczsNCiAgICAgICAgICAgIHZh ciBuID0gdHUoKSwNCiAgICAgICAgICAgICAgciA9IG51KGUpLA0KICAgICAgICAgICAgICBv ID0gemEobiwgcik7DQogICAgICAgICAgICAoby50YWcgPSAyKSwgdm9pZCAwICE9PSB0ICYm IG51bGwgIT09IHQgJiYgKG8uY2FsbGJhY2sgPSB0KSwgbnVsbCAhPT0gKHQgPSBqYShlLCBv LCByKSkgJiYgKHJ1KHQsIGUsIHIsIG4pLCBJYSh0LCBlLCByKSk7DQogICAgICAgICAgfSwN CiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gVmEoZSwgdCwgbiwgciwgbywgYSwgaSkg ew0KICAgICAgICAgIHJldHVybiAiZnVuY3Rpb24iID09PSB0eXBlb2YgKGUgPSBlLnN0YXRl Tm9kZSkuc2hvdWxkQ29tcG9uZW50VXBkYXRlID8gZS5zaG91bGRDb21wb25lbnRVcGRhdGUo ciwgYSwgaSkgOiAhdC5wcm90b3R5cGUgfHwgIXQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29t cG9uZW50IHx8ICFzcihuLCByKSB8fCAhc3IobywgYSk7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gSGEoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gITEsDQogICAgICAg ICAgICBvID0gUG8sDQogICAgICAgICAgICBhID0gdC5jb250ZXh0VHlwZTsNCiAgICAgICAg ICByZXR1cm4gKA0KICAgICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiBhICYmIG51bGwg IT09IGEgPyAoYSA9IFJhKGEpKSA6ICgobyA9IE1vKHQpID8gVG8gOiBPby5jdXJyZW50KSwg KGEgPSAociA9IG51bGwgIT09IChyID0gdC5jb250ZXh0VHlwZXMpICYmIHZvaWQgMCAhPT0g cikgPyBBbyhlLCBvKSA6IFBvKSksDQogICAgICAgICAgICAodCA9IG5ldyB0KG4sIGEpKSwN CiAgICAgICAgICAgIChlLm1lbW9pemVkU3RhdGUgPSBudWxsICE9PSB0LnN0YXRlICYmIHZv aWQgMCAhPT0gdC5zdGF0ZSA/IHQuc3RhdGUgOiBudWxsKSwNCiAgICAgICAgICAgICh0LnVw ZGF0ZXIgPSBXYSksDQogICAgICAgICAgICAoZS5zdGF0ZU5vZGUgPSB0KSwNCiAgICAgICAg ICAgICh0Ll9yZWFjdEludGVybmFscyA9IGUpLA0KICAgICAgICAgICAgciAmJiAoKChlID0g ZS5zdGF0ZU5vZGUpLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRl eHQgPSBvKSwgKGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQg PSBhKSksDQogICAgICAgICAgICB0DQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBxYShlLCB0LCBuLCByKSB7DQogICAgICAgICAgKGUgPSB0LnN0YXRlKSwN CiAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiB0LmNvbXBvbmVudFdpbGxSZWNl aXZlUHJvcHMgJiYgdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sIHIpLA0KICAgICAg ICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHQuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNl aXZlUHJvcHMgJiYgdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuLCByKSwN CiAgICAgICAgICAgIHQuc3RhdGUgIT09IGUgJiYgV2EuZW5xdWV1ZVJlcGxhY2VTdGF0ZSh0 LCB0LnN0YXRlLCBudWxsKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiAkYShlLCB0 LCBuLCByKSB7DQogICAgICAgICAgdmFyIG8gPSBlLnN0YXRlTm9kZTsNCiAgICAgICAgICAo by5wcm9wcyA9IG4pLCAoby5zdGF0ZSA9IGUubWVtb2l6ZWRTdGF0ZSksIChvLnJlZnMgPSBE YSksIEFhKGUpOw0KICAgICAgICAgIHZhciBhID0gdC5jb250ZXh0VHlwZTsNCiAgICAgICAg ICAib2JqZWN0IiA9PT0gdHlwZW9mIGEgJiYgbnVsbCAhPT0gYSA/IChvLmNvbnRleHQgPSBS YShhKSkgOiAoKGEgPSBNbyh0KSA/IFRvIDogT28uY3VycmVudCksIChvLmNvbnRleHQgPSBB byhlLCBhKSkpLA0KICAgICAgICAgICAgKG8uc3RhdGUgPSBlLm1lbW9pemVkU3RhdGUpLA0K ICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIChhID0gdC5nZXREZXJpdmVkU3Rh dGVGcm9tUHJvcHMpICYmIChVYShlLCB0LCBhLCBuKSwgKG8uc3RhdGUgPSBlLm1lbW9pemVk U3RhdGUpKSwNCiAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiB0LmdldERlcml2 ZWRTdGF0ZUZyb21Qcm9wcyB8fA0KICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9m IG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgfHwNCiAgICAgICAgICAgICgiZnVuY3Rpb24i ICE9PSB0eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ICYmICJmdW5jdGlvbiIg IT09IHR5cGVvZiBvLmNvbXBvbmVudFdpbGxNb3VudCkgfHwNCiAgICAgICAgICAgICgodCA9 IG8uc3RhdGUpLA0KICAgICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2Ygby5jb21w b25lbnRXaWxsTW91bnQgJiYgby5jb21wb25lbnRXaWxsTW91bnQoKSwNCiAgICAgICAgICAg ICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCAm JiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSwNCiAgICAgICAgICAgICAgdCAhPT0g by5zdGF0ZSAmJiBXYS5lbnF1ZXVlUmVwbGFjZVN0YXRlKG8sIG8uc3RhdGUsIG51bGwpLA0K ICAgICAgICAgICAgICBGYShlLCBuLCBvLCByKSwNCiAgICAgICAgICAgICAgKG8uc3RhdGUg PSBlLm1lbW9pemVkU3RhdGUpKSwNCiAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVv ZiBvLmNvbXBvbmVudERpZE1vdW50ICYmIChlLmZsYWdzIHw9IDQxOTQzMDgpOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIEthKGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAobnVs bCAhPT0gKGUgPSBuLnJlZikgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGUgJiYgIm9iamVj dCIgIT09IHR5cGVvZiBlKSB7DQogICAgICAgICAgICBpZiAobi5fb3duZXIpIHsNCiAgICAg ICAgICAgICAgaWYgKChuID0gbi5fb3duZXIpKSB7DQogICAgICAgICAgICAgICAgaWYgKDEg IT09IG4udGFnKSB0aHJvdyBFcnJvcihhKDMwOSkpOw0KICAgICAgICAgICAgICAgIHZhciBy ID0gbi5zdGF0ZU5vZGU7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKCFy KSB0aHJvdyBFcnJvcihhKDE0NywgZSkpOw0KICAgICAgICAgICAgICB2YXIgbyA9IHIsDQog ICAgICAgICAgICAgICAgaSA9ICIiICsgZTsNCiAgICAgICAgICAgICAgcmV0dXJuIG51bGwg IT09IHQgJiYgbnVsbCAhPT0gdC5yZWYgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHQucmVm ICYmIHQucmVmLl9zdHJpbmdSZWYgPT09IGkNCiAgICAgICAgICAgICAgICA/IHQucmVmDQog ICAgICAgICAgICAgICAgOiAoKHQgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAg ICAgdmFyIHQgPSBvLnJlZnM7DQogICAgICAgICAgICAgICAgICB0ID09PSBEYSAmJiAodCA9 IG8ucmVmcyA9IHt9KSwgbnVsbCA9PT0gZSA/IGRlbGV0ZSB0W2ldIDogKHRbaV0gPSBlKTsN CiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICh0Ll9zdHJpbmdSZWYg PSBpKSwNCiAgICAgICAgICAgICAgICAgIHQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgaWYgKCJzdHJpbmciICE9PSB0eXBlb2YgZSkgdGhyb3cgRXJyb3IoYSgyODQpKTsNCiAg ICAgICAgICAgIGlmICghbi5fb3duZXIpIHRocm93IEVycm9yKGEoMjkwLCBlKSk7DQogICAg ICAgICAgfQ0KICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIFFhKGUsIHQpIHsNCiAgICAgICAgICB0aHJvdyAoKGUgPSBPYmplY3QucHJvdG90eXBl LnRvU3RyaW5nLmNhbGwodCkpLCBFcnJvcihhKDMxLCAiW29iamVjdCBPYmplY3RdIiA9PT0g ZSA/ICJvYmplY3Qgd2l0aCBrZXlzIHsiICsgT2JqZWN0LmtleXModCkuam9pbigiLCAiKSAr ICJ9IiA6IGUpKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gR2EoZSkgew0KICAg ICAgICAgIHJldHVybiAoMCwgZS5faW5pdCkoZS5fcGF5bG9hZCk7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gWWEoZSkgew0KICAgICAgICAgIGZ1bmN0aW9uIHQodCwgbikgew0K ICAgICAgICAgICAgaWYgKGUpIHsNCiAgICAgICAgICAgICAgdmFyIHIgPSB0LmRlbGV0aW9u czsNCiAgICAgICAgICAgICAgbnVsbCA9PT0gciA/ICgodC5kZWxldGlvbnMgPSBbbl0pLCAo dC5mbGFncyB8PSAxNikpIDogci5wdXNoKG4pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg IH0NCiAgICAgICAgICBmdW5jdGlvbiBuKG4sIHIpIHsNCiAgICAgICAgICAgIGlmICghZSkg cmV0dXJuIG51bGw7DQogICAgICAgICAgICBmb3IgKDsgbnVsbCAhPT0gcjspIHQobiwgciks IChyID0gci5zaWJsaW5nKTsNCiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAg IH0NCiAgICAgICAgICBmdW5jdGlvbiByKGUsIHQpIHsNCiAgICAgICAgICAgIGZvciAoZSA9 IG5ldyBNYXAoKTsgbnVsbCAhPT0gdDspIG51bGwgIT09IHQua2V5ID8gZS5zZXQodC5rZXks IHQpIDogZS5zZXQodC5pbmRleCwgdCksICh0ID0gdC5zaWJsaW5nKTsNCiAgICAgICAgICAg IHJldHVybiBlOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBvKGUsIHQpIHsN CiAgICAgICAgICAgIHJldHVybiAoKGUgPSB6dShlLCB0KSkuaW5kZXggPSAwKSwgKGUuc2li bGluZyA9IG51bGwpLCBlOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBpKHQs IG4sIHIpIHsNCiAgICAgICAgICAgIHJldHVybiAodC5pbmRleCA9IHIpLCBlID8gKG51bGwg IT09IChyID0gdC5hbHRlcm5hdGUpID8gKChyID0gci5pbmRleCkgPCBuID8gKCh0LmZsYWdz IHw9IDIpLCBuKSA6IHIpIDogKCh0LmZsYWdzIHw9IDIpLCBuKSkgOiAoKHQuZmxhZ3MgfD0g MTA0ODU3NiksIG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBsKHQpIHsN CiAgICAgICAgICAgIHJldHVybiBlICYmIG51bGwgPT09IHQuYWx0ZXJuYXRlICYmICh0LmZs YWdzIHw9IDIpLCB0Ow0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBzKGUsIHQs IG4sIHIpIHsNCiAgICAgICAgICAgIHJldHVybiBudWxsID09PSB0IHx8IDYgIT09IHQudGFn ID8gKCgodCA9IEZ1KG4sIGUubW9kZSwgcikpLnJldHVybiA9IGUpLCB0KSA6ICgoKHQgPSBv KHQsIG4pKS5yZXR1cm4gPSBlKSwgdCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGZ1bmN0 aW9uIHUoZSwgdCwgbiwgcikgew0KICAgICAgICAgICAgdmFyIGEgPSBuLnR5cGU7DQogICAg ICAgICAgICByZXR1cm4gYSA9PT0gaw0KICAgICAgICAgICAgICA/IGQoZSwgdCwgbi5wcm9w cy5jaGlsZHJlbiwgciwgbi5rZXkpDQogICAgICAgICAgICAgIDogbnVsbCAhPT0gdCAmJiAo dC5lbGVtZW50VHlwZSA9PT0gYSB8fCAoIm9iamVjdCIgPT09IHR5cGVvZiBhICYmIG51bGwg IT09IGEgJiYgYS4kJHR5cGVvZiA9PT0gQSAmJiBHYShhKSA9PT0gdC50eXBlKSkNCiAgICAg ICAgICAgICAgICA/ICgoKHIgPSBvKHQsIG4ucHJvcHMpKS5yZWYgPSBLYShlLCB0LCBuKSks IChyLnJldHVybiA9IGUpLCByKQ0KICAgICAgICAgICAgICAgIDogKCgociA9IGp1KG4udHlw ZSwgbi5rZXksIG4ucHJvcHMsIG51bGwsIGUubW9kZSwgcikpLnJlZiA9IEthKGUsIHQsIG4p KSwgKHIucmV0dXJuID0gZSksIHIpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlv biBjKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAgIHJldHVybiBudWxsID09PSB0IHx8IDQg IT09IHQudGFnIHx8IHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gIT09IG4uY29udGFpbmVy SW5mbyB8fCB0LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiAhPT0gbi5pbXBsZW1lbnRhdGlv bg0KICAgICAgICAgICAgICA/ICgoKHQgPSBCdShuLCBlLm1vZGUsIHIpKS5yZXR1cm4gPSBl KSwgdCkNCiAgICAgICAgICAgICAgOiAoKCh0ID0gbyh0LCBuLmNoaWxkcmVuIHx8IFtdKSku cmV0dXJuID0gZSksIHQpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBkKGUs IHQsIG4sIHIsIGEpIHsNCiAgICAgICAgICAgIHJldHVybiBudWxsID09PSB0IHx8IDcgIT09 IHQudGFnID8gKCgodCA9IEl1KG4sIGUubW9kZSwgciwgYSkpLnJldHVybiA9IGUpLCB0KSA6 ICgoKHQgPSBvKHQsIG4pKS5yZXR1cm4gPSBlKSwgdCk7DQogICAgICAgICAgfQ0KICAgICAg ICAgIGZ1bmN0aW9uIGYoZSwgdCwgbikgew0KICAgICAgICAgICAgaWYgKCgic3RyaW5nIiA9 PT0gdHlwZW9mIHQgJiYgIiIgIT09IHQpIHx8ICJudW1iZXIiID09PSB0eXBlb2YgdCkgcmV0 dXJuICgodCA9IEZ1KCIiICsgdCwgZS5tb2RlLCBuKSkucmV0dXJuID0gZSksIHQ7DQogICAg ICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiB0ICYmIG51bGwgIT09IHQpIHsNCiAg ICAgICAgICAgICAgc3dpdGNoICh0LiQkdHlwZW9mKSB7DQogICAgICAgICAgICAgICAgY2Fz ZSB4Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuICgobiA9IGp1KHQudHlwZSwgdC5rZXks IHQucHJvcHMsIG51bGwsIGUubW9kZSwgbikpLnJlZiA9IEthKGUsIG51bGwsIHQpKSwgKG4u cmV0dXJuID0gZSksIG47DQogICAgICAgICAgICAgICAgY2FzZSBTOg0KICAgICAgICAgICAg ICAgICAgcmV0dXJuICgodCA9IEJ1KHQsIGUubW9kZSwgbikpLnJldHVybiA9IGUpLCB0Ow0K ICAgICAgICAgICAgICAgIGNhc2UgQToNCiAgICAgICAgICAgICAgICAgIHJldHVybiBmKGUs ICgwLCB0Ll9pbml0KSh0Ll9wYXlsb2FkKSwgbik7DQogICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgaWYgKHRlKHQpIHx8IGoodCkpIHJldHVybiAoKHQgPSBJdSh0LCBlLm1vZGUs IG4sIG51bGwpKS5yZXR1cm4gPSBlKSwgdDsNCiAgICAgICAgICAgICAgUWEoZSwgdCk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICB9DQog ICAgICAgICAgZnVuY3Rpb24gcChlLCB0LCBuLCByKSB7DQogICAgICAgICAgICB2YXIgbyA9 IG51bGwgIT09IHQgPyB0LmtleSA6IG51bGw7DQogICAgICAgICAgICBpZiAoKCJzdHJpbmci ID09PSB0eXBlb2YgbiAmJiAiIiAhPT0gbikgfHwgIm51bWJlciIgPT09IHR5cGVvZiBuKSBy ZXR1cm4gbnVsbCAhPT0gbyA/IG51bGwgOiBzKGUsIHQsICIiICsgbiwgcik7DQogICAgICAg ICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBuICYmIG51bGwgIT09IG4pIHsNCiAgICAg ICAgICAgICAgc3dpdGNoIChuLiQkdHlwZW9mKSB7DQogICAgICAgICAgICAgICAgY2FzZSB4 Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIG4ua2V5ID09PSBvID8gdShlLCB0LCBuLCBy KSA6IG51bGw7DQogICAgICAgICAgICAgICAgY2FzZSBTOg0KICAgICAgICAgICAgICAgICAg cmV0dXJuIG4ua2V5ID09PSBvID8gYyhlLCB0LCBuLCByKSA6IG51bGw7DQogICAgICAgICAg ICAgICAgY2FzZSBBOg0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHAoZSwgdCwgKG8gPSBu Ll9pbml0KShuLl9wYXlsb2FkKSwgcik7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgaWYgKHRlKG4pIHx8IGoobikpIHJldHVybiBudWxsICE9PSBvID8gbnVsbCA6IGQoZSwg dCwgbiwgciwgbnVsbCk7DQogICAgICAgICAgICAgIFFhKGUsIG4pOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgfQ0KICAgICAgICAgIGZ1 bmN0aW9uIGgoZSwgdCwgbiwgciwgbykgew0KICAgICAgICAgICAgaWYgKCgic3RyaW5nIiA9 PT0gdHlwZW9mIHIgJiYgIiIgIT09IHIpIHx8ICJudW1iZXIiID09PSB0eXBlb2YgcikgcmV0 dXJuIHModCwgKGUgPSBlLmdldChuKSB8fCBudWxsKSwgIiIgKyByLCBvKTsNCiAgICAgICAg ICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHIgJiYgbnVsbCAhPT0gcikgew0KICAgICAg ICAgICAgICBzd2l0Y2ggKHIuJCR0eXBlb2YpIHsNCiAgICAgICAgICAgICAgICBjYXNlIHg6 DQogICAgICAgICAgICAgICAgICByZXR1cm4gdSh0LCAoZSA9IGUuZ2V0KG51bGwgPT09IHIu a2V5ID8gbiA6IHIua2V5KSB8fCBudWxsKSwgciwgbyk7DQogICAgICAgICAgICAgICAgY2Fz ZSBTOg0KICAgICAgICAgICAgICAgICAgcmV0dXJuIGModCwgKGUgPSBlLmdldChudWxsID09 PSByLmtleSA/IG4gOiByLmtleSkgfHwgbnVsbCksIHIsIG8pOw0KICAgICAgICAgICAgICAg IGNhc2UgQToNCiAgICAgICAgICAgICAgICAgIHJldHVybiBoKGUsIHQsIG4sICgwLCByLl9p bml0KShyLl9wYXlsb2FkKSwgbyk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg aWYgKHRlKHIpIHx8IGoocikpIHJldHVybiBkKHQsIChlID0gZS5nZXQobikgfHwgbnVsbCks IHIsIG8sIG51bGwpOw0KICAgICAgICAgICAgICBRYSh0LCByKTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5j dGlvbiBtKG8sIGEsIGwsIHMpIHsNCiAgICAgICAgICAgIGZvciAodmFyIHUgPSBudWxsLCBj ID0gbnVsbCwgZCA9IGEsIG0gPSAoYSA9IDApLCBnID0gbnVsbDsgbnVsbCAhPT0gZCAmJiBt IDwgbC5sZW5ndGg7IG0rKykgew0KICAgICAgICAgICAgICBkLmluZGV4ID4gbSA/ICgoZyA9 IGQpLCAoZCA9IG51bGwpKSA6IChnID0gZC5zaWJsaW5nKTsNCiAgICAgICAgICAgICAgdmFy IHYgPSBwKG8sIGQsIGxbbV0sIHMpOw0KICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gdikg ew0KICAgICAgICAgICAgICAgIG51bGwgPT09IGQgJiYgKGQgPSBnKTsNCiAgICAgICAgICAg ICAgICBicmVhazsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBlICYmIGQgJiYg bnVsbCA9PT0gdi5hbHRlcm5hdGUgJiYgdChvLCBkKSwgKGEgPSBpKHYsIGEsIG0pKSwgbnVs bCA9PT0gYyA/ICh1ID0gdikgOiAoYy5zaWJsaW5nID0gdiksIChjID0gdiksIChkID0gZyk7 DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAobSA9PT0gbC5sZW5ndGgpIHJldHVy biBuKG8sIGQpLCBhYSAmJiBKbyhvLCBtKSwgdTsNCiAgICAgICAgICAgIGlmIChudWxsID09 PSBkKSB7DQogICAgICAgICAgICAgIGZvciAoOyBtIDwgbC5sZW5ndGg7IG0rKykgbnVsbCAh PT0gKGQgPSBmKG8sIGxbbV0sIHMpKSAmJiAoKGEgPSBpKGQsIGEsIG0pKSwgbnVsbCA9PT0g YyA/ICh1ID0gZCkgOiAoYy5zaWJsaW5nID0gZCksIChjID0gZCkpOw0KICAgICAgICAgICAg ICByZXR1cm4gYWEgJiYgSm8obywgbSksIHU7DQogICAgICAgICAgICB9DQogICAgICAgICAg ICBmb3IgKGQgPSByKG8sIGQpOyBtIDwgbC5sZW5ndGg7IG0rKykNCiAgICAgICAgICAgICAg bnVsbCAhPT0gKGcgPSBoKGQsIG8sIG0sIGxbbV0sIHMpKSAmJiAoZSAmJiBudWxsICE9PSBn LmFsdGVybmF0ZSAmJiBkLmRlbGV0ZShudWxsID09PSBnLmtleSA/IG0gOiBnLmtleSksIChh ID0gaShnLCBhLCBtKSksIG51bGwgPT09IGMgPyAodSA9IGcpIDogKGMuc2libGluZyA9IGcp LCAoYyA9IGcpKTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIGUgJiYN CiAgICAgICAgICAgICAgZC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAg ICAgcmV0dXJuIHQobywgZSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBh YSAmJiBKbyhvLCBtKSwNCiAgICAgICAgICAgICAgdQ0KICAgICAgICAgICAgKTsNCiAgICAg ICAgICB9DQogICAgICAgICAgZnVuY3Rpb24gZyhvLCBsLCBzLCB1KSB7DQogICAgICAgICAg ICB2YXIgYyA9IGoocyk7DQogICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiAhPT0gdHlwZW9m IGMpIHRocm93IEVycm9yKGEoMTUwKSk7DQogICAgICAgICAgICBpZiAobnVsbCA9PSAocyA9 IGMuY2FsbChzKSkpIHRocm93IEVycm9yKGEoMTUxKSk7DQogICAgICAgICAgICBmb3IgKHZh ciBkID0gKGMgPSBudWxsKSwgbSA9IGwsIGcgPSAobCA9IDApLCB2ID0gbnVsbCwgeSA9IHMu bmV4dCgpOyBudWxsICE9PSBtICYmICF5LmRvbmU7IGcrKywgeSA9IHMubmV4dCgpKSB7DQog ICAgICAgICAgICAgIG0uaW5kZXggPiBnID8gKCh2ID0gbSksIChtID0gbnVsbCkpIDogKHYg PSBtLnNpYmxpbmcpOw0KICAgICAgICAgICAgICB2YXIgYiA9IHAobywgbSwgeS52YWx1ZSwg dSk7DQogICAgICAgICAgICAgIGlmIChudWxsID09PSBiKSB7DQogICAgICAgICAgICAgICAg bnVsbCA9PT0gbSAmJiAobSA9IHYpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgIGUgJiYgbSAmJiBudWxsID09PSBiLmFsdGVybmF0 ZSAmJiB0KG8sIG0pLCAobCA9IGkoYiwgbCwgZykpLCBudWxsID09PSBkID8gKGMgPSBiKSA6 IChkLnNpYmxpbmcgPSBiKSwgKGQgPSBiKSwgKG0gPSB2KTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIGlmICh5LmRvbmUpIHJldHVybiBuKG8sIG0pLCBhYSAmJiBKbyhvLCBnKSwg YzsNCiAgICAgICAgICAgIGlmIChudWxsID09PSBtKSB7DQogICAgICAgICAgICAgIGZvciAo OyAheS5kb25lOyBnKyssIHkgPSBzLm5leHQoKSkgbnVsbCAhPT0gKHkgPSBmKG8sIHkudmFs dWUsIHUpKSAmJiAoKGwgPSBpKHksIGwsIGcpKSwgbnVsbCA9PT0gZCA/IChjID0geSkgOiAo ZC5zaWJsaW5nID0geSksIChkID0geSkpOw0KICAgICAgICAgICAgICByZXR1cm4gYWEgJiYg Sm8obywgZyksIGM7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmb3IgKG0gPSByKG8s IG0pOyAheS5kb25lOyBnKyssIHkgPSBzLm5leHQoKSkNCiAgICAgICAgICAgICAgbnVsbCAh PT0gKHkgPSBoKG0sIG8sIGcsIHkudmFsdWUsIHUpKSAmJiAoZSAmJiBudWxsICE9PSB5LmFs dGVybmF0ZSAmJiBtLmRlbGV0ZShudWxsID09PSB5LmtleSA/IGcgOiB5LmtleSksIChsID0g aSh5LCBsLCBnKSksIG51bGwgPT09IGQgPyAoYyA9IHkpIDogKGQuc2libGluZyA9IHkpLCAo ZCA9IHkpKTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIGUgJiYNCiAg ICAgICAgICAgICAgbS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAg cmV0dXJuIHQobywgZSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBhYSAm JiBKbyhvLCBnKSwNCiAgICAgICAgICAgICAgYw0KICAgICAgICAgICAgKTsNCiAgICAgICAg ICB9DQogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGUociwgYSwgaSwgcykgew0KICAgICAg ICAgICAgaWYgKCgib2JqZWN0IiA9PT0gdHlwZW9mIGkgJiYgbnVsbCAhPT0gaSAmJiBpLnR5 cGUgPT09IGsgJiYgbnVsbCA9PT0gaS5rZXkgJiYgKGkgPSBpLnByb3BzLmNoaWxkcmVuKSwg Im9iamVjdCIgPT09IHR5cGVvZiBpICYmIG51bGwgIT09IGkpKSB7DQogICAgICAgICAgICAg IHN3aXRjaCAoaS4kJHR5cGVvZikgew0KICAgICAgICAgICAgICAgIGNhc2UgeDoNCiAgICAg ICAgICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgdSA9IGku a2V5LCBjID0gYTsgbnVsbCAhPT0gYzspIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAo Yy5rZXkgPT09IHUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodSA9IGkudHlw ZSkgPT09IGspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDcgPT09IGMudGFn KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbihyLCBjLnNpYmxpbmcpLCAoKGEg PSBvKGMsIGkucHJvcHMuY2hpbGRyZW4pKS5yZXR1cm4gPSByKSwgKHIgPSBhKTsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMuZWxlbWVudFR5 cGUgPT09IHUgfHwgKCJvYmplY3QiID09PSB0eXBlb2YgdSAmJiBudWxsICE9PSB1ICYmIHUu JCR0eXBlb2YgPT09IEEgJiYgR2EodSkgPT09IGMudHlwZSkpIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgbihyLCBjLnNpYmxpbmcpLCAoKGEgPSBvKGMsIGkucHJvcHMpKS5yZWYg PSBLYShyLCBjLCBpKSksIChhLnJldHVybiA9IHIpLCAociA9IGEpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgbihyLCBjKTsNCiAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICB0KHIsIGMpLCAoYyA9IGMuc2libGluZyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgaS50eXBlID09PSBrID8gKCgoYSA9IEl1KGkucHJvcHMuY2hp bGRyZW4sIHIubW9kZSwgcywgaS5rZXkpKS5yZXR1cm4gPSByKSwgKHIgPSBhKSkgOiAoKChz ID0ganUoaS50eXBlLCBpLmtleSwgaS5wcm9wcywgbnVsbCwgci5tb2RlLCBzKSkucmVmID0g S2EociwgYSwgaSkpLCAocy5yZXR1cm4gPSByKSwgKHIgPSBzKSk7DQogICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICByZXR1cm4gbChyKTsNCiAgICAgICAgICAgICAg ICBjYXNlIFM6DQogICAgICAgICAgICAgICAgICBlOiB7DQogICAgICAgICAgICAgICAgICAg IGZvciAoYyA9IGkua2V5OyBudWxsICE9PSBhOykgew0KICAgICAgICAgICAgICAgICAgICAg IGlmIChhLmtleSA9PT0gYykgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDQgPT09 IGEudGFnICYmIGEuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gPT09IGkuY29udGFpbmVySW5m byAmJiBhLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiA9PT0gaS5pbXBsZW1lbnRhdGlvbikg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICBuKHIsIGEuc2libGluZyksICgoYSA9IG8o YSwgaS5jaGlsZHJlbiB8fCBbXSkpLnJldHVybiA9IHIpLCAociA9IGEpOw0KICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgbihyLCBhKTsNCiAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgICB0KHIsIGEpLCAoYSA9IGEuc2libGluZyk7DQogICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgKChhID0gQnUoaSwgci5tb2RlLCBzKSkucmV0dXJuID0g ciksIChyID0gYSk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBy ZXR1cm4gbChyKTsNCiAgICAgICAgICAgICAgICBjYXNlIEE6DQogICAgICAgICAgICAgICAg ICByZXR1cm4gZShyLCBhLCAoYyA9IGkuX2luaXQpKGkuX3BheWxvYWQpLCBzKTsNCiAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICBpZiAodGUoaSkpIHJldHVybiBtKHIsIGEsIGks IHMpOw0KICAgICAgICAgICAgICBpZiAoaihpKSkgcmV0dXJuIGcociwgYSwgaSwgcyk7DQog ICAgICAgICAgICAgIFFhKHIsIGkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0 dXJuICgic3RyaW5nIiA9PT0gdHlwZW9mIGkgJiYgIiIgIT09IGkpIHx8ICJudW1iZXIiID09 PSB0eXBlb2YgaQ0KICAgICAgICAgICAgICA/ICgoaSA9ICIiICsgaSksIG51bGwgIT09IGEg JiYgNiA9PT0gYS50YWcgPyAobihyLCBhLnNpYmxpbmcpLCAoKGEgPSBvKGEsIGkpKS5yZXR1 cm4gPSByKSwgKHIgPSBhKSkgOiAobihyLCBhKSwgKChhID0gRnUoaSwgci5tb2RlLCBzKSku cmV0dXJuID0gciksIChyID0gYSkpLCBsKHIpKQ0KICAgICAgICAgICAgICA6IG4ociwgYSk7 DQogICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgWGEgPSBZYSghMCksDQog ICAgICAgICAgWmEgPSBZYSghMSksDQogICAgICAgICAgSmEgPSB7fSwNCiAgICAgICAgICBl aSA9IENvKEphKSwNCiAgICAgICAgICB0aSA9IENvKEphKSwNCiAgICAgICAgICBuaSA9IENv KEphKTsNCiAgICAgICAgZnVuY3Rpb24gcmkoZSkgew0KICAgICAgICAgIGlmIChlID09PSBK YSkgdGhyb3cgRXJyb3IoYSgxNzQpKTsNCiAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBvaShlLCB0KSB7DQogICAgICAgICAgc3dpdGNoICgoX28o bmksIHQpLCBfbyh0aSwgZSksIF9vKGVpLCBKYSksIChlID0gdC5ub2RlVHlwZSkpKSB7DQog ICAgICAgICAgICBjYXNlIDk6DQogICAgICAgICAgICBjYXNlIDExOg0KICAgICAgICAgICAg ICB0ID0gKHQgPSB0LmRvY3VtZW50RWxlbWVudCkgPyB0Lm5hbWVzcGFjZVVSSSA6IHNlKG51 bGwsICIiKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0K ICAgICAgICAgICAgICB0ID0gc2UoKHQgPSAoZSA9IDggPT09IGUgPyB0LnBhcmVudE5vZGUg OiB0KS5uYW1lc3BhY2VVUkkgfHwgbnVsbCksIChlID0gZS50YWdOYW1lKSk7DQogICAgICAg ICAgfQ0KICAgICAgICAgIFJvKGVpKSwgX28oZWksIHQpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIGFpKCkgew0KICAgICAgICAgIFJvKGVpKSwgUm8odGkpLCBSbyhuaSk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaWkoZSkgew0KICAgICAgICAgIHJpKG5pLmN1 cnJlbnQpOw0KICAgICAgICAgIHZhciB0ID0gcmkoZWkuY3VycmVudCksDQogICAgICAgICAg ICBuID0gc2UodCwgZS50eXBlKTsNCiAgICAgICAgICB0ICE9PSBuICYmIChfbyh0aSwgZSks IF9vKGVpLCBuKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbGkoZSkgew0KICAg ICAgICAgIHRpLmN1cnJlbnQgPT09IGUgJiYgKFJvKGVpKSwgUm8odGkpKTsNCiAgICAgICAg fQ0KICAgICAgICB2YXIgc2kgPSBDbygwKTsNCiAgICAgICAgZnVuY3Rpb24gdWkoZSkgew0K ICAgICAgICAgIGZvciAodmFyIHQgPSBlOyBudWxsICE9PSB0Oykgew0KICAgICAgICAgICAg aWYgKDEzID09PSB0LnRhZykgew0KICAgICAgICAgICAgICB2YXIgbiA9IHQubWVtb2l6ZWRT dGF0ZTsNCiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IG4gJiYgKG51bGwgPT09IChuID0g bi5kZWh5ZHJhdGVkKSB8fCAiJD8iID09PSBuLmRhdGEgfHwgIiQhIiA9PT0gbi5kYXRhKSkg cmV0dXJuIHQ7DQogICAgICAgICAgICB9IGVsc2UgaWYgKDE5ID09PSB0LnRhZyAmJiB2b2lk IDAgIT09IHQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcikgew0KICAgICAgICAgICAgICBp ZiAoMCAhPT0gKDEyOCAmIHQuZmxhZ3MpKSByZXR1cm4gdDsNCiAgICAgICAgICAgIH0gZWxz ZSBpZiAobnVsbCAhPT0gdC5jaGlsZCkgew0KICAgICAgICAgICAgICAodC5jaGlsZC5yZXR1 cm4gPSB0KSwgKHQgPSB0LmNoaWxkKTsNCiAgICAgICAgICAgICAgY29udGludWU7DQogICAg ICAgICAgICB9DQogICAgICAgICAgICBpZiAodCA9PT0gZSkgYnJlYWs7DQogICAgICAgICAg ICBmb3IgKDsgbnVsbCA9PT0gdC5zaWJsaW5nOykgew0KICAgICAgICAgICAgICBpZiAobnVs bCA9PT0gdC5yZXR1cm4gfHwgdC5yZXR1cm4gPT09IGUpIHJldHVybiBudWxsOw0KICAgICAg ICAgICAgICB0ID0gdC5yZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICAodC5z aWJsaW5nLnJldHVybiA9IHQucmV0dXJuKSwgKHQgPSB0LnNpYmxpbmcpOw0KICAgICAgICAg IH0NCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgY2kg PSBbXTsNCiAgICAgICAgZnVuY3Rpb24gZGkoKSB7DQogICAgICAgICAgZm9yICh2YXIgZSA9 IDA7IGUgPCBjaS5sZW5ndGg7IGUrKykgY2lbZV0uX3dvcmtJblByb2dyZXNzVmVyc2lvblBy aW1hcnkgPSBudWxsOw0KICAgICAgICAgIGNpLmxlbmd0aCA9IDA7DQogICAgICAgIH0NCiAg ICAgICAgdmFyIGZpID0gdy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLA0KICAgICAgICAgIHBp ID0gdy5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZywNCiAgICAgICAgICBoaSA9IDAsDQogICAg ICAgICAgbWkgPSBudWxsLA0KICAgICAgICAgIGdpID0gbnVsbCwNCiAgICAgICAgICB2aSA9 IG51bGwsDQogICAgICAgICAgeWkgPSAhMSwNCiAgICAgICAgICBiaSA9ICExLA0KICAgICAg ICAgIHdpID0gMCwNCiAgICAgICAgICB4aSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIFNpKCkg ew0KICAgICAgICAgIHRocm93IEVycm9yKGEoMzIxKSk7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24ga2koZSwgdCkgew0KICAgICAgICAgIGlmIChudWxsID09PSB0KSByZXR1cm4g ITE7DQogICAgICAgICAgZm9yICh2YXIgbiA9IDA7IG4gPCB0Lmxlbmd0aCAmJiBuIDwgZS5s ZW5ndGg7IG4rKykgaWYgKCFscihlW25dLCB0W25dKSkgcmV0dXJuICExOw0KICAgICAgICAg IHJldHVybiAhMDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBFaShlLCB0LCBuLCBy LCBvLCBpKSB7DQogICAgICAgICAgaWYgKCgoaGkgPSBpKSwgKG1pID0gdCksICh0Lm1lbW9p emVkU3RhdGUgPSBudWxsKSwgKHQudXBkYXRlUXVldWUgPSBudWxsKSwgKHQubGFuZXMgPSAw KSwgKGZpLmN1cnJlbnQgPSBudWxsID09PSBlIHx8IG51bGwgPT09IGUubWVtb2l6ZWRTdGF0 ZSA/IGxsIDogc2wpLCAoZSA9IG4ociwgbykpLCBiaSkpIHsNCiAgICAgICAgICAgIGkgPSAw Ow0KICAgICAgICAgICAgZG8gew0KICAgICAgICAgICAgICBpZiAoKChiaSA9ICExKSwgKHdp ID0gMCksIDI1IDw9IGkpKSB0aHJvdyBFcnJvcihhKDMwMSkpOw0KICAgICAgICAgICAgICAo aSArPSAxKSwgKHZpID0gZ2kgPSBudWxsKSwgKHQudXBkYXRlUXVldWUgPSBudWxsKSwgKGZp LmN1cnJlbnQgPSB1bCksIChlID0gbihyLCBvKSk7DQogICAgICAgICAgICB9IHdoaWxlIChi aSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmICgoKGZpLmN1cnJlbnQgPSBpbCksICh0 ID0gbnVsbCAhPT0gZ2kgJiYgbnVsbCAhPT0gZ2kubmV4dCksIChoaSA9IDApLCAodmkgPSBn aSA9IG1pID0gbnVsbCksICh5aSA9ICExKSwgdCkpIHRocm93IEVycm9yKGEoMzAwKSk7DQog ICAgICAgICAgcmV0dXJuIGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gQ2koKSB7 DQogICAgICAgICAgdmFyIGUgPSAwICE9PSB3aTsNCiAgICAgICAgICByZXR1cm4gKHdpID0g MCksIGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUmkoKSB7DQogICAgICAgICAg dmFyIGUgPSB7IG1lbW9pemVkU3RhdGU6IG51bGwsIGJhc2VTdGF0ZTogbnVsbCwgYmFzZVF1 ZXVlOiBudWxsLCBxdWV1ZTogbnVsbCwgbmV4dDogbnVsbCB9Ow0KICAgICAgICAgIHJldHVy biBudWxsID09PSB2aSA/IChtaS5tZW1vaXplZFN0YXRlID0gdmkgPSBlKSA6ICh2aSA9IHZp Lm5leHQgPSBlKSwgdmk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gX2koKSB7DQog ICAgICAgICAgaWYgKG51bGwgPT09IGdpKSB7DQogICAgICAgICAgICB2YXIgZSA9IG1pLmFs dGVybmF0ZTsNCiAgICAgICAgICAgIGUgPSBudWxsICE9PSBlID8gZS5tZW1vaXplZFN0YXRl IDogbnVsbDsNCiAgICAgICAgICB9IGVsc2UgZSA9IGdpLm5leHQ7DQogICAgICAgICAgdmFy IHQgPSBudWxsID09PSB2aSA/IG1pLm1lbW9pemVkU3RhdGUgOiB2aS5uZXh0Ow0KICAgICAg ICAgIGlmIChudWxsICE9PSB0KSAodmkgPSB0KSwgKGdpID0gZSk7DQogICAgICAgICAgZWxz ZSB7DQogICAgICAgICAgICBpZiAobnVsbCA9PT0gZSkgdGhyb3cgRXJyb3IoYSgzMTApKTsN CiAgICAgICAgICAgIChlID0geyBtZW1vaXplZFN0YXRlOiAoZ2kgPSBlKS5tZW1vaXplZFN0 YXRlLCBiYXNlU3RhdGU6IGdpLmJhc2VTdGF0ZSwgYmFzZVF1ZXVlOiBnaS5iYXNlUXVldWUs IHF1ZXVlOiBnaS5xdWV1ZSwgbmV4dDogbnVsbCB9KSwgbnVsbCA9PT0gdmkgPyAobWkubWVt b2l6ZWRTdGF0ZSA9IHZpID0gZSkgOiAodmkgPSB2aS5uZXh0ID0gZSk7DQogICAgICAgICAg fQ0KICAgICAgICAgIHJldHVybiB2aTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBQ aShlLCB0KSB7DQogICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09IHR5cGVvZiB0ID8g dChlKSA6IHQ7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gT2koZSkgew0KICAgICAg ICAgIHZhciB0ID0gX2koKSwNCiAgICAgICAgICAgIG4gPSB0LnF1ZXVlOw0KICAgICAgICAg IGlmIChudWxsID09PSBuKSB0aHJvdyBFcnJvcihhKDMxMSkpOw0KICAgICAgICAgIG4ubGFz dFJlbmRlcmVkUmVkdWNlciA9IGU7DQogICAgICAgICAgdmFyIHIgPSBnaSwNCiAgICAgICAg ICAgIG8gPSByLmJhc2VRdWV1ZSwNCiAgICAgICAgICAgIGkgPSBuLnBlbmRpbmc7DQogICAg ICAgICAgaWYgKG51bGwgIT09IGkpIHsNCiAgICAgICAgICAgIGlmIChudWxsICE9PSBvKSB7 DQogICAgICAgICAgICAgIHZhciBsID0gby5uZXh0Ow0KICAgICAgICAgICAgICAoby5uZXh0 ID0gaS5uZXh0KSwgKGkubmV4dCA9IGwpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg KHIuYmFzZVF1ZXVlID0gbyA9IGkpLCAobi5wZW5kaW5nID0gbnVsbCk7DQogICAgICAgICAg fQ0KICAgICAgICAgIGlmIChudWxsICE9PSBvKSB7DQogICAgICAgICAgICAoaSA9IG8ubmV4 dCksIChyID0gci5iYXNlU3RhdGUpOw0KICAgICAgICAgICAgdmFyIHMgPSAobCA9IG51bGwp LA0KICAgICAgICAgICAgICB1ID0gbnVsbCwNCiAgICAgICAgICAgICAgYyA9IGk7DQogICAg ICAgICAgICBkbyB7DQogICAgICAgICAgICAgIHZhciBkID0gYy5sYW5lOw0KICAgICAgICAg ICAgICBpZiAoKGhpICYgZCkgPT09IGQpIG51bGwgIT09IHUgJiYgKHUgPSB1Lm5leHQgPSB7 IGxhbmU6IDAsIGFjdGlvbjogYy5hY3Rpb24sIGhhc0VhZ2VyU3RhdGU6IGMuaGFzRWFnZXJT dGF0ZSwgZWFnZXJTdGF0ZTogYy5lYWdlclN0YXRlLCBuZXh0OiBudWxsIH0pLCAociA9IGMu aGFzRWFnZXJTdGF0ZSA/IGMuZWFnZXJTdGF0ZSA6IGUociwgYy5hY3Rpb24pKTsNCiAgICAg ICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGYgPSB7IGxhbmU6IGQsIGFj dGlvbjogYy5hY3Rpb24sIGhhc0VhZ2VyU3RhdGU6IGMuaGFzRWFnZXJTdGF0ZSwgZWFnZXJT dGF0ZTogYy5lYWdlclN0YXRlLCBuZXh0OiBudWxsIH07DQogICAgICAgICAgICAgICAgbnVs bCA9PT0gdSA/ICgocyA9IHUgPSBmKSwgKGwgPSByKSkgOiAodSA9IHUubmV4dCA9IGYpLCAo bWkubGFuZXMgfD0gZCksIChMcyB8PSBkKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICBjID0gYy5uZXh0Ow0KICAgICAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gYyAmJiBj ICE9PSBpKTsNCiAgICAgICAgICAgIG51bGwgPT09IHUgPyAobCA9IHIpIDogKHUubmV4dCA9 IHMpLCBscihyLCB0Lm1lbW9pemVkU3RhdGUpIHx8ICh3bCA9ICEwKSwgKHQubWVtb2l6ZWRT dGF0ZSA9IHIpLCAodC5iYXNlU3RhdGUgPSBsKSwgKHQuYmFzZVF1ZXVlID0gdSksIChuLmxh c3RSZW5kZXJlZFN0YXRlID0gcik7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmIChudWxs ICE9PSAoZSA9IG4uaW50ZXJsZWF2ZWQpKSB7DQogICAgICAgICAgICBvID0gZTsNCiAgICAg ICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgKGkgPSBvLmxhbmUpLCAobWkubGFuZXMgfD0g aSksIChMcyB8PSBpKSwgKG8gPSBvLm5leHQpOw0KICAgICAgICAgICAgfSB3aGlsZSAobyAh PT0gZSk7DQogICAgICAgICAgfSBlbHNlIG51bGwgPT09IG8gJiYgKG4ubGFuZXMgPSAwKTsN CiAgICAgICAgICByZXR1cm4gW3QubWVtb2l6ZWRTdGF0ZSwgbi5kaXNwYXRjaF07DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTmkoZSkgew0KICAgICAgICAgIHZhciB0ID0gX2ko KSwNCiAgICAgICAgICAgIG4gPSB0LnF1ZXVlOw0KICAgICAgICAgIGlmIChudWxsID09PSBu KSB0aHJvdyBFcnJvcihhKDMxMSkpOw0KICAgICAgICAgIG4ubGFzdFJlbmRlcmVkUmVkdWNl ciA9IGU7DQogICAgICAgICAgdmFyIHIgPSBuLmRpc3BhdGNoLA0KICAgICAgICAgICAgbyA9 IG4ucGVuZGluZywNCiAgICAgICAgICAgIGkgPSB0Lm1lbW9pemVkU3RhdGU7DQogICAgICAg ICAgaWYgKG51bGwgIT09IG8pIHsNCiAgICAgICAgICAgIG4ucGVuZGluZyA9IG51bGw7DQog ICAgICAgICAgICB2YXIgbCA9IChvID0gby5uZXh0KTsNCiAgICAgICAgICAgIGRvIHsNCiAg ICAgICAgICAgICAgKGkgPSBlKGksIGwuYWN0aW9uKSksIChsID0gbC5uZXh0KTsNCiAgICAg ICAgICAgIH0gd2hpbGUgKGwgIT09IG8pOw0KICAgICAgICAgICAgbHIoaSwgdC5tZW1vaXpl ZFN0YXRlKSB8fCAod2wgPSAhMCksICh0Lm1lbW9pemVkU3RhdGUgPSBpKSwgbnVsbCA9PT0g dC5iYXNlUXVldWUgJiYgKHQuYmFzZVN0YXRlID0gaSksIChuLmxhc3RSZW5kZXJlZFN0YXRl ID0gaSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBbaSwgcl07DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gVGkoKSB7IH0NCiAgICAgICAgZnVuY3Rpb24gQWkoZSwg dCkgew0KICAgICAgICAgIHZhciBuID0gbWksDQogICAgICAgICAgICByID0gX2koKSwNCiAg ICAgICAgICAgIG8gPSB0KCksDQogICAgICAgICAgICBpID0gIWxyKHIubWVtb2l6ZWRTdGF0 ZSwgbyk7DQogICAgICAgICAgaWYgKChpICYmICgoci5tZW1vaXplZFN0YXRlID0gbyksICh3 bCA9ICEwKSksIChyID0gci5xdWV1ZSksIEhpKGppLmJpbmQobnVsbCwgbiwgciwgZSksIFtl XSksIHIuZ2V0U25hcHNob3QgIT09IHQgfHwgaSB8fCAobnVsbCAhPT0gdmkgJiYgMSAmIHZp Lm1lbW9pemVkU3RhdGUudGFnKSkpIHsNCiAgICAgICAgICAgIGlmICgoKG4uZmxhZ3MgfD0g MjA0OCksIEJpKDksIHppLmJpbmQobnVsbCwgbiwgciwgbywgdCksIHZvaWQgMCwgbnVsbCks IG51bGwgPT09IE5zKSkgdGhyb3cgRXJyb3IoYSgzNDkpKTsNCiAgICAgICAgICAgIDAgIT09 ICgzMCAmIGhpKSB8fCBNaShuLCB0LCBvKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0 dXJuIG87DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTWkoZSwgdCwgbikgew0KICAg ICAgICAgIChlLmZsYWdzIHw9IDE2Mzg0KSwNCiAgICAgICAgICAgIChlID0geyBnZXRTbmFw c2hvdDogdCwgdmFsdWU6IG4gfSksDQogICAgICAgICAgICBudWxsID09PSAodCA9IG1pLnVw ZGF0ZVF1ZXVlKSA/ICgodCA9IHsgbGFzdEVmZmVjdDogbnVsbCwgc3RvcmVzOiBudWxsIH0p LCAobWkudXBkYXRlUXVldWUgPSB0KSwgKHQuc3RvcmVzID0gW2VdKSkgOiBudWxsID09PSAo biA9IHQuc3RvcmVzKSA/ICh0LnN0b3JlcyA9IFtlXSkgOiBuLnB1c2goZSk7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gemkoZSwgdCwgbiwgcikgew0KICAgICAgICAgICh0LnZh bHVlID0gbiksICh0LmdldFNuYXBzaG90ID0gciksIElpKHQpICYmIExpKGUpOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIGppKGUsIHQsIG4pIHsNCiAgICAgICAgICByZXR1cm4g bihmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBJaSh0KSAmJiBMaShlKTsNCiAgICAgICAg ICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBJaShlKSB7DQogICAgICAgICAg dmFyIHQgPSBlLmdldFNuYXBzaG90Ow0KICAgICAgICAgIGUgPSBlLnZhbHVlOw0KICAgICAg ICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgbiA9IHQoKTsNCiAgICAgICAgICAgIHJldHVy biAhbHIoZSwgbik7DQogICAgICAgICAgfSBjYXRjaCAocikgew0KICAgICAgICAgICAgcmV0 dXJuICEwOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBMaShl KSB7DQogICAgICAgICAgdmFyIHQgPSBOYShlLCAxKTsNCiAgICAgICAgICBudWxsICE9PSB0 ICYmIHJ1KHQsIGUsIDEsIC0xKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBGaShl KSB7DQogICAgICAgICAgdmFyIHQgPSBSaSgpOw0KICAgICAgICAgIHJldHVybiAoDQogICAg ICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgZSAmJiAoZSA9IGUoKSksDQogICAgICAg ICAgICAodC5tZW1vaXplZFN0YXRlID0gdC5iYXNlU3RhdGUgPSBlKSwNCiAgICAgICAgICAg IChlID0geyBwZW5kaW5nOiBudWxsLCBpbnRlcmxlYXZlZDogbnVsbCwgbGFuZXM6IDAsIGRp c3BhdGNoOiBudWxsLCBsYXN0UmVuZGVyZWRSZWR1Y2VyOiBQaSwgbGFzdFJlbmRlcmVkU3Rh dGU6IGUgfSksDQogICAgICAgICAgICAodC5xdWV1ZSA9IGUpLA0KICAgICAgICAgICAgKGUg PSBlLmRpc3BhdGNoID0gbmwuYmluZChudWxsLCBtaSwgZSkpLA0KICAgICAgICAgICAgW3Qu bWVtb2l6ZWRTdGF0ZSwgZV0NCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIEJpKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgKGUgPSB7IHRhZzogZSwgY3JlYXRlOiB0LCBkZXN0cm95OiBuLCBkZXBzOiByLCBuZXh0 OiBudWxsIH0pLA0KICAgICAgICAgICAgbnVsbCA9PT0gKHQgPSBtaS51cGRhdGVRdWV1ZSkN CiAgICAgICAgICAgICAgPyAoKHQgPSB7IGxhc3RFZmZlY3Q6IG51bGwsIHN0b3JlczogbnVs bCB9KSwgKG1pLnVwZGF0ZVF1ZXVlID0gdCksICh0Lmxhc3RFZmZlY3QgPSBlLm5leHQgPSBl KSkNCiAgICAgICAgICAgICAgOiBudWxsID09PSAobiA9IHQubGFzdEVmZmVjdCkNCiAgICAg ICAgICAgICAgICA/ICh0Lmxhc3RFZmZlY3QgPSBlLm5leHQgPSBlKQ0KICAgICAgICAgICAg ICAgIDogKChyID0gbi5uZXh0KSwgKG4ubmV4dCA9IGUpLCAoZS5uZXh0ID0gciksICh0Lmxh c3RFZmZlY3QgPSBlKSksDQogICAgICAgICAgICBlDQogICAgICAgICAgKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBEaSgpIHsNCiAgICAgICAgICByZXR1cm4gX2koKS5tZW1v aXplZFN0YXRlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFVpKGUsIHQsIG4sIHIp IHsNCiAgICAgICAgICB2YXIgbyA9IFJpKCk7DQogICAgICAgICAgKG1pLmZsYWdzIHw9IGUp LCAoby5tZW1vaXplZFN0YXRlID0gQmkoMSB8IHQsIG4sIHZvaWQgMCwgdm9pZCAwID09PSBy ID8gbnVsbCA6IHIpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBXaShlLCB0LCBu LCByKSB7DQogICAgICAgICAgdmFyIG8gPSBfaSgpOw0KICAgICAgICAgIHIgPSB2b2lkIDAg PT09IHIgPyBudWxsIDogcjsNCiAgICAgICAgICB2YXIgYSA9IHZvaWQgMDsNCiAgICAgICAg ICBpZiAobnVsbCAhPT0gZ2kpIHsNCiAgICAgICAgICAgIHZhciBpID0gZ2kubWVtb2l6ZWRT dGF0ZTsNCiAgICAgICAgICAgIGlmICgoKGEgPSBpLmRlc3Ryb3kpLCBudWxsICE9PSByICYm IGtpKHIsIGkuZGVwcykpKSByZXR1cm4gdm9pZCAoby5tZW1vaXplZFN0YXRlID0gQmkodCwg biwgYSwgcikpOw0KICAgICAgICAgIH0NCiAgICAgICAgICAobWkuZmxhZ3MgfD0gZSksIChv Lm1lbW9pemVkU3RhdGUgPSBCaSgxIHwgdCwgbiwgYSwgcikpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIFZpKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gVWkoODM5MDY1Niwg OCwgZSwgdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSGkoZSwgdCkgew0KICAg ICAgICAgIHJldHVybiBXaSgyMDQ4LCA4LCBlLCB0KTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBxaShlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIFdpKDQsIDIsIGUsIHQpOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uICRpKGUsIHQpIHsNCiAgICAgICAgICByZXR1 cm4gV2koNCwgNCwgZSwgdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gS2koZSwg dCkgew0KICAgICAgICAgIHJldHVybiAiZnVuY3Rpb24iID09PSB0eXBlb2YgdA0KICAgICAg ICAgICAgPyAoKGUgPSBlKCkpLA0KICAgICAgICAgICAgICB0KGUpLA0KICAgICAgICAgICAg ICBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdChudWxsKTsNCiAgICAgICAgICAg ICAgfSkNCiAgICAgICAgICAgIDogbnVsbCAhPT0gdCAmJiB2b2lkIDAgIT09IHQNCiAgICAg ICAgICAgICAgPyAoKGUgPSBlKCkpLA0KICAgICAgICAgICAgICAgICh0LmN1cnJlbnQgPSBl KSwNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICB0 LmN1cnJlbnQgPSBudWxsOw0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgIDog dm9pZCAwOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFFpKGUsIHQsIG4pIHsNCiAg ICAgICAgICByZXR1cm4gKG4gPSBudWxsICE9PSBuICYmIHZvaWQgMCAhPT0gbiA/IG4uY29u Y2F0KFtlXSkgOiBudWxsKSwgV2koNCwgNCwgS2kuYmluZChudWxsLCB0LCBlKSwgbik7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gR2koKSB7IH0NCiAgICAgICAgZnVuY3Rpb24g WWkoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gX2koKTsNCiAgICAgICAgICB0ID0gdm9p ZCAwID09PSB0ID8gbnVsbCA6IHQ7DQogICAgICAgICAgdmFyIHIgPSBuLm1lbW9pemVkU3Rh dGU7DQogICAgICAgICAgcmV0dXJuIG51bGwgIT09IHIgJiYgbnVsbCAhPT0gdCAmJiBraSh0 LCByWzFdKSA/IHJbMF0gOiAoKG4ubWVtb2l6ZWRTdGF0ZSA9IFtlLCB0XSksIGUpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFhpKGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9 IF9pKCk7DQogICAgICAgICAgdCA9IHZvaWQgMCA9PT0gdCA/IG51bGwgOiB0Ow0KICAgICAg ICAgIHZhciByID0gbi5tZW1vaXplZFN0YXRlOw0KICAgICAgICAgIHJldHVybiBudWxsICE9 PSByICYmIG51bGwgIT09IHQgJiYga2kodCwgclsxXSkgPyByWzBdIDogKChlID0gZSgpKSwg KG4ubWVtb2l6ZWRTdGF0ZSA9IFtlLCB0XSksIGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIFppKGUsIHQsIG4pIHsNCiAgICAgICAgICByZXR1cm4gMCA9PT0gKDIxICYgaGkp ID8gKGUuYmFzZVN0YXRlICYmICgoZS5iYXNlU3RhdGUgPSAhMSksICh3bCA9ICEwKSksIChl Lm1lbW9pemVkU3RhdGUgPSBuKSkgOiAobHIobiwgdCkgfHwgKChuID0gbXQoKSksIChtaS5s YW5lcyB8PSBuKSwgKExzIHw9IG4pLCAoZS5iYXNlU3RhdGUgPSAhMCkpLCB0KTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBKaShlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBi dDsNCiAgICAgICAgICAoYnQgPSAwICE9PSBuICYmIDQgPiBuID8gbiA6IDQpLCBlKCEwKTsN CiAgICAgICAgICB2YXIgciA9IHBpLnRyYW5zaXRpb247DQogICAgICAgICAgcGkudHJhbnNp dGlvbiA9IHt9Ow0KICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICBlKCExKSwgdCgpOw0K ICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAoYnQgPSBuKSwgKHBpLnRyYW5z aXRpb24gPSByKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g ZWwoKSB7DQogICAgICAgICAgcmV0dXJuIF9pKCkubWVtb2l6ZWRTdGF0ZTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiB0bChlLCB0LCBuKSB7DQogICAgICAgICAgdmFyIHIgPSBu dShlKTsNCiAgICAgICAgICBpZiAoKChuID0geyBsYW5lOiByLCBhY3Rpb246IG4sIGhhc0Vh Z2VyU3RhdGU6ICExLCBlYWdlclN0YXRlOiBudWxsLCBuZXh0OiBudWxsIH0pLCBybChlKSkp IG9sKHQsIG4pOw0KICAgICAgICAgIGVsc2UgaWYgKG51bGwgIT09IChuID0gT2EoZSwgdCwg biwgcikpKSB7DQogICAgICAgICAgICBydShuLCBlLCByLCB0dSgpKSwgYWwobiwgdCwgcik7 DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG5sKGUsIHQsIG4p IHsNCiAgICAgICAgICB2YXIgciA9IG51KGUpLA0KICAgICAgICAgICAgbyA9IHsgbGFuZTog ciwgYWN0aW9uOiBuLCBoYXNFYWdlclN0YXRlOiAhMSwgZWFnZXJTdGF0ZTogbnVsbCwgbmV4 dDogbnVsbCB9Ow0KICAgICAgICAgIGlmIChybChlKSkgb2wodCwgbyk7DQogICAgICAgICAg ZWxzZSB7DQogICAgICAgICAgICB2YXIgYSA9IGUuYWx0ZXJuYXRlOw0KICAgICAgICAgICAg aWYgKDAgPT09IGUubGFuZXMgJiYgKG51bGwgPT09IGEgfHwgMCA9PT0gYS5sYW5lcykgJiYg bnVsbCAhPT0gKGEgPSB0Lmxhc3RSZW5kZXJlZFJlZHVjZXIpKQ0KICAgICAgICAgICAgICB0 cnkgew0KICAgICAgICAgICAgICAgIHZhciBpID0gdC5sYXN0UmVuZGVyZWRTdGF0ZSwNCiAg ICAgICAgICAgICAgICAgIGwgPSBhKGksIG4pOw0KICAgICAgICAgICAgICAgIGlmICgoKG8u aGFzRWFnZXJTdGF0ZSA9ICEwKSwgKG8uZWFnZXJTdGF0ZSA9IGwpLCBscihsLCBpKSkpIHsN CiAgICAgICAgICAgICAgICAgIHZhciBzID0gdC5pbnRlcmxlYXZlZDsNCiAgICAgICAgICAg ICAgICAgIHJldHVybiBudWxsID09PSBzID8gKChvLm5leHQgPSBvKSwgUGEodCkpIDogKChv Lm5leHQgPSBzLm5leHQpLCAocy5uZXh0ID0gbykpLCB2b2lkICh0LmludGVybGVhdmVkID0g byk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9IGNhdGNoICh1KSB7IH0N CiAgICAgICAgICAgIG51bGwgIT09IChuID0gT2EoZSwgdCwgbywgcikpICYmIChydShuLCBl LCByLCAobyA9IHR1KCkpKSwgYWwobiwgdCwgcikpOw0KICAgICAgICAgIH0NCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBybChlKSB7DQogICAgICAgICAgdmFyIHQgPSBlLmFsdGVy bmF0ZTsNCiAgICAgICAgICByZXR1cm4gZSA9PT0gbWkgfHwgKG51bGwgIT09IHQgJiYgdCA9 PT0gbWkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG9sKGUsIHQpIHsNCiAgICAg ICAgICBiaSA9IHlpID0gITA7DQogICAgICAgICAgdmFyIG4gPSBlLnBlbmRpbmc7DQogICAg ICAgICAgbnVsbCA9PT0gbiA/ICh0Lm5leHQgPSB0KSA6ICgodC5uZXh0ID0gbi5uZXh0KSwg KG4ubmV4dCA9IHQpKSwgKGUucGVuZGluZyA9IHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIGFsKGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAoMCAhPT0gKDQxOTQyNDAgJiBu KSkgew0KICAgICAgICAgICAgdmFyIHIgPSB0LmxhbmVzOw0KICAgICAgICAgICAgKG4gfD0g ciAmPSBlLnBlbmRpbmdMYW5lcyksICh0LmxhbmVzID0gbiksIHl0KGUsIG4pOw0KICAgICAg ICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgaWwgPSB7DQogICAgICAgICAgcmVhZENv bnRleHQ6IFJhLA0KICAgICAgICAgIHVzZUNhbGxiYWNrOiBTaSwNCiAgICAgICAgICB1c2VD b250ZXh0OiBTaSwNCiAgICAgICAgICB1c2VFZmZlY3Q6IFNpLA0KICAgICAgICAgIHVzZUlt cGVyYXRpdmVIYW5kbGU6IFNpLA0KICAgICAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogU2ks DQogICAgICAgICAgdXNlTGF5b3V0RWZmZWN0OiBTaSwNCiAgICAgICAgICB1c2VNZW1vOiBT aSwNCiAgICAgICAgICB1c2VSZWR1Y2VyOiBTaSwNCiAgICAgICAgICB1c2VSZWY6IFNpLA0K ICAgICAgICAgIHVzZVN0YXRlOiBTaSwNCiAgICAgICAgICB1c2VEZWJ1Z1ZhbHVlOiBTaSwN CiAgICAgICAgICB1c2VEZWZlcnJlZFZhbHVlOiBTaSwNCiAgICAgICAgICB1c2VUcmFuc2l0 aW9uOiBTaSwNCiAgICAgICAgICB1c2VNdXRhYmxlU291cmNlOiBTaSwNCiAgICAgICAgICB1 c2VTeW5jRXh0ZXJuYWxTdG9yZTogU2ksDQogICAgICAgICAgdXNlSWQ6IFNpLA0KICAgICAg ICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogITEsDQogICAgICAgIH0sDQogICAgICAg ICAgbGwgPSB7DQogICAgICAgICAgICByZWFkQ29udGV4dDogUmEsDQogICAgICAgICAgICB1 c2VDYWxsYmFjazogZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIChS aSgpLm1lbW9pemVkU3RhdGUgPSBbZSwgdm9pZCAwID09PSB0ID8gbnVsbCA6IHRdKSwgZTsN CiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB1c2VDb250ZXh0OiBSYSwNCiAgICAgICAg ICAgIHVzZUVmZmVjdDogVmksDQogICAgICAgICAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBm dW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgICByZXR1cm4gKG4gPSBudWxsICE9 PSBuICYmIHZvaWQgMCAhPT0gbiA/IG4uY29uY2F0KFtlXSkgOiBudWxsKSwgVWkoNDE5NDMw OCwgNCwgS2kuYmluZChudWxsLCB0LCBlKSwgbik7DQogICAgICAgICAgICB9LA0KICAgICAg ICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAg ICByZXR1cm4gVWkoNDE5NDMwOCwgNCwgZSwgdCk7DQogICAgICAgICAgICB9LA0KICAgICAg ICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAg ICAgICByZXR1cm4gVWkoNCwgMiwgZSwgdCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAg ICAgdXNlTWVtbzogZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgdmFyIG4gPSBS aSgpOw0KICAgICAgICAgICAgICByZXR1cm4gKHQgPSB2b2lkIDAgPT09IHQgPyBudWxsIDog dCksIChlID0gZSgpKSwgKG4ubWVtb2l6ZWRTdGF0ZSA9IFtlLCB0XSksIGU7DQogICAgICAg ICAgICB9LA0KICAgICAgICAgICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKGUsIHQsIG4pIHsN CiAgICAgICAgICAgICAgdmFyIHIgPSBSaSgpOw0KICAgICAgICAgICAgICByZXR1cm4gKA0K ICAgICAgICAgICAgICAgICh0ID0gdm9pZCAwICE9PSBuID8gbih0KSA6IHQpLA0KICAgICAg ICAgICAgICAgIChyLm1lbW9pemVkU3RhdGUgPSByLmJhc2VTdGF0ZSA9IHQpLA0KICAgICAg ICAgICAgICAgIChlID0geyBwZW5kaW5nOiBudWxsLCBpbnRlcmxlYXZlZDogbnVsbCwgbGFu ZXM6IDAsIGRpc3BhdGNoOiBudWxsLCBsYXN0UmVuZGVyZWRSZWR1Y2VyOiBlLCBsYXN0UmVu ZGVyZWRTdGF0ZTogdCB9KSwNCiAgICAgICAgICAgICAgICAoci5xdWV1ZSA9IGUpLA0KICAg ICAgICAgICAgICAgIChlID0gZS5kaXNwYXRjaCA9IHRsLmJpbmQobnVsbCwgbWksIGUpKSwN CiAgICAgICAgICAgICAgICBbci5tZW1vaXplZFN0YXRlLCBlXQ0KICAgICAgICAgICAgICAp Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVzZVJlZjogZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgcmV0dXJuIChlID0geyBjdXJyZW50OiBlIH0pLCAoUmkoKS5tZW1v aXplZFN0YXRlID0gZSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdXNlU3RhdGU6 IEZpLA0KICAgICAgICAgICAgdXNlRGVidWdWYWx1ZTogR2ksDQogICAgICAgICAgICB1c2VE ZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gKFJp KCkubWVtb2l6ZWRTdGF0ZSA9IGUpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVz ZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgdmFyIGUgPSBGaSgh MSksDQogICAgICAgICAgICAgICAgdCA9IGVbMF07DQogICAgICAgICAgICAgIHJldHVybiAo ZSA9IEppLmJpbmQobnVsbCwgZVsxXSkpLCAoUmkoKS5tZW1vaXplZFN0YXRlID0gZSksIFt0 LCBlXTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB1c2VNdXRhYmxlU291cmNlOiBm dW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVu Y3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgdmFyIHIgPSBtaSwNCiAgICAgICAg ICAgICAgICBvID0gUmkoKTsNCiAgICAgICAgICAgICAgaWYgKGFhKSB7DQogICAgICAgICAg ICAgICAgaWYgKHZvaWQgMCA9PT0gbikgdGhyb3cgRXJyb3IoYSg0MDcpKTsNCiAgICAgICAg ICAgICAgICBuID0gbigpOw0KICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAg ICAgIGlmICgoKG4gPSB0KCkpLCBudWxsID09PSBOcykpIHRocm93IEVycm9yKGEoMzQ5KSk7 DQogICAgICAgICAgICAgICAgMCAhPT0gKDMwICYgaGkpIHx8IE1pKHIsIHQsIG4pOw0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgIG8ubWVtb2l6ZWRTdGF0ZSA9IG47DQogICAg ICAgICAgICAgIHZhciBpID0geyB2YWx1ZTogbiwgZ2V0U25hcHNob3Q6IHQgfTsNCiAgICAg ICAgICAgICAgcmV0dXJuIChvLnF1ZXVlID0gaSksIFZpKGppLmJpbmQobnVsbCwgciwgaSwg ZSksIFtlXSksIChyLmZsYWdzIHw9IDIwNDgpLCBCaSg5LCB6aS5iaW5kKG51bGwsIHIsIGks IG4sIHQpLCB2b2lkIDAsIG51bGwpLCBuOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAg IHVzZUlkOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHZhciBlID0gUmkoKSwNCiAg ICAgICAgICAgICAgICB0ID0gTnMuaWRlbnRpZmllclByZWZpeDsNCiAgICAgICAgICAgICAg aWYgKGFhKSB7DQogICAgICAgICAgICAgICAgdmFyIG4gPSBabzsNCiAgICAgICAgICAgICAg ICAodCA9ICI6IiArIHQgKyAiUiIgKyAobiA9IChYbyAmIH4oMSA8PCAoMzIgLSBpdChYbykg LSAxKSkpLnRvU3RyaW5nKDMyKSArIG4pKSwgMCA8IChuID0gd2krKykgJiYgKHQgKz0gIkgi ICsgbi50b1N0cmluZygzMikpLCAodCArPSAiOiIpOw0KICAgICAgICAgICAgICB9IGVsc2Ug dCA9ICI6IiArIHQgKyAiciIgKyAobiA9IHhpKyspLnRvU3RyaW5nKDMyKSArICI6IjsNCiAg ICAgICAgICAgICAgcmV0dXJuIChlLm1lbW9pemVkU3RhdGUgPSB0KTsNCiAgICAgICAgICAg IH0sDQogICAgICAgICAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ICExLA0KICAgICAg ICAgIH0sDQogICAgICAgICAgc2wgPSB7DQogICAgICAgICAgICByZWFkQ29udGV4dDogUmEs DQogICAgICAgICAgICB1c2VDYWxsYmFjazogWWksDQogICAgICAgICAgICB1c2VDb250ZXh0 OiBSYSwNCiAgICAgICAgICAgIHVzZUVmZmVjdDogSGksDQogICAgICAgICAgICB1c2VJbXBl cmF0aXZlSGFuZGxlOiBRaSwNCiAgICAgICAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogcWks DQogICAgICAgICAgICB1c2VMYXlvdXRFZmZlY3Q6ICRpLA0KICAgICAgICAgICAgdXNlTWVt bzogWGksDQogICAgICAgICAgICB1c2VSZWR1Y2VyOiBPaSwNCiAgICAgICAgICAgIHVzZVJl ZjogRGksDQogICAgICAgICAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKCkgew0KICAgICAgICAg ICAgICByZXR1cm4gT2koUGkpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVzZURl YnVnVmFsdWU6IEdpLA0KICAgICAgICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24g KGUpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIFppKF9pKCksIGdpLm1lbW9pemVkU3RhdGUs IGUpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0 aW9uICgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIFtPaShQaSlbMF0sIF9pKCkubWVtb2l6 ZWRTdGF0ZV07DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdXNlTXV0YWJsZVNvdXJj ZTogVGksDQogICAgICAgICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogQWksDQogICAgICAg ICAgICB1c2VJZDogZWwsDQogICAgICAgICAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6 ICExLA0KICAgICAgICAgIH0sDQogICAgICAgICAgdWwgPSB7DQogICAgICAgICAgICByZWFk Q29udGV4dDogUmEsDQogICAgICAgICAgICB1c2VDYWxsYmFjazogWWksDQogICAgICAgICAg ICB1c2VDb250ZXh0OiBSYSwNCiAgICAgICAgICAgIHVzZUVmZmVjdDogSGksDQogICAgICAg ICAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBRaSwNCiAgICAgICAgICAgIHVzZUluc2VydGlv bkVmZmVjdDogcWksDQogICAgICAgICAgICB1c2VMYXlvdXRFZmZlY3Q6ICRpLA0KICAgICAg ICAgICAgdXNlTWVtbzogWGksDQogICAgICAgICAgICB1c2VSZWR1Y2VyOiBOaSwNCiAgICAg ICAgICAgIHVzZVJlZjogRGksDQogICAgICAgICAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKCkg ew0KICAgICAgICAgICAgICByZXR1cm4gTmkoUGkpOw0KICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgIHVzZURlYnVnVmFsdWU6IEdpLA0KICAgICAgICAgICAgdXNlRGVmZXJyZWRWYWx1 ZTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgdmFyIHQgPSBfaSgpOw0KICAgICAg ICAgICAgICByZXR1cm4gbnVsbCA9PT0gZ2kgPyAodC5tZW1vaXplZFN0YXRlID0gZSkgOiBa aSh0LCBnaS5tZW1vaXplZFN0YXRlLCBlKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAg ICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiBb TmkoUGkpWzBdLCBfaSgpLm1lbW9pemVkU3RhdGVdOw0KICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgIHVzZU11dGFibGVTb3VyY2U6IFRpLA0KICAgICAgICAgICAgdXNlU3luY0V4dGVy bmFsU3RvcmU6IEFpLA0KICAgICAgICAgICAgdXNlSWQ6IGVsLA0KICAgICAgICAgICAgdW5z dGFibGVfaXNOZXdSZWNvbmNpbGVyOiAhMSwNCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5j dGlvbiBjbChlLCB0KSB7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBuID0g IiIsDQogICAgICAgICAgICAgIHIgPSB0Ow0KICAgICAgICAgICAgZG8gew0KICAgICAgICAg ICAgICAobiArPSBVKHIpKSwgKHIgPSByLnJldHVybik7DQogICAgICAgICAgICB9IHdoaWxl IChyKTsNCiAgICAgICAgICAgIHZhciBvID0gbjsNCiAgICAgICAgICB9IGNhdGNoIChhKSB7 DQogICAgICAgICAgICBvID0gIlxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogIiArIGEubWVz c2FnZSArICJcbiIgKyBhLnN0YWNrOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4g eyB2YWx1ZTogZSwgc291cmNlOiB0LCBzdGFjazogbywgZGlnZXN0OiBudWxsIH07DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZGwoZSwgdCwgbikgew0KICAgICAgICAgIHJldHVy biB7IHZhbHVlOiBlLCBzb3VyY2U6IG51bGwsIHN0YWNrOiBudWxsICE9IG4gPyBuIDogbnVs bCwgZGlnZXN0OiBudWxsICE9IHQgPyB0IDogbnVsbCB9Ow0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIGZsKGUsIHQpIHsNCiAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29u c29sZS5lcnJvcih0LnZhbHVlKTsNCiAgICAgICAgICB9IGNhdGNoIChuKSB7DQogICAgICAg ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgdGhyb3cgbjsN CiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIg cGwgPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgV2Vha01hcCA/IFdlYWtNYXAgOiBNYXA7DQog ICAgICAgIGZ1bmN0aW9uIGhsKGUsIHQsIG4pIHsNCiAgICAgICAgICAoKG4gPSB6YSgtMSwg bikpLnRhZyA9IDMpLCAobi5wYXlsb2FkID0geyBlbGVtZW50OiBudWxsIH0pOw0KICAgICAg ICAgIHZhciByID0gdC52YWx1ZTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAg KG4uY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHFzIHx8ICgocXMg PSAhMCksICgkcyA9IHIpKSwgZmwoMCwgdCk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgIG4NCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG1sKGUs IHQsIG4pIHsNCiAgICAgICAgICAobiA9IHphKC0xLCBuKSkudGFnID0gMzsNCiAgICAgICAg ICB2YXIgciA9IGUudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7DQogICAgICAgICAg aWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiByKSB7DQogICAgICAgICAgICB2YXIgbyA9IHQu dmFsdWU7DQogICAgICAgICAgICAobi5wYXlsb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgICByZXR1cm4gcihvKTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAo bi5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBmbCgwLCB0KTsN CiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHZhciBhID0gZS5z dGF0ZU5vZGU7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIG51bGwgIT09IGEg JiYNCiAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhLmNvbXBvbmVudERpZENh dGNoICYmDQogICAgICAgICAgICAobi5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICAgICAgZmwoMCwgdCksICJmdW5jdGlvbiIgIT09IHR5cGVvZiByICYmIChudWxsID09 PSBLcyA/IChLcyA9IG5ldyBTZXQoW3RoaXNdKSkgOiBLcy5hZGQodGhpcykpOw0KICAgICAg ICAgICAgICB2YXIgZSA9IHQuc3RhY2s7DQogICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50 RGlkQ2F0Y2godC52YWx1ZSwgeyBjb21wb25lbnRTdGFjazogbnVsbCAhPT0gZSA/IGUgOiAi IiB9KTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgbg0KICAgICAgICAgICk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZ2woZSwgdCwgbikgew0KICAgICAgICAgIHZh ciByID0gZS5waW5nQ2FjaGU7DQogICAgICAgICAgaWYgKG51bGwgPT09IHIpIHsNCiAgICAg ICAgICAgIHIgPSBlLnBpbmdDYWNoZSA9IG5ldyBwbCgpOw0KICAgICAgICAgICAgdmFyIG8g PSBuZXcgU2V0KCk7DQogICAgICAgICAgICByLnNldCh0LCBvKTsNCiAgICAgICAgICB9IGVs c2Ugdm9pZCAwID09PSAobyA9IHIuZ2V0KHQpKSAmJiAoKG8gPSBuZXcgU2V0KCkpLCByLnNl dCh0LCBvKSk7DQogICAgICAgICAgby5oYXMobikgfHwgKG8uYWRkKG4pLCAoZSA9IFJ1LmJp bmQobnVsbCwgZSwgdCwgbikpLCB0LnRoZW4oZSwgZSkpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIHZsKGUpIHsNCiAgICAgICAgICBkbyB7DQogICAgICAgICAgICB2YXIgdDsN CiAgICAgICAgICAgIGlmICgoKHQgPSAxMyA9PT0gZS50YWcpICYmICh0ID0gbnVsbCA9PT0g KHQgPSBlLm1lbW9pemVkU3RhdGUpIHx8IG51bGwgIT09IHQuZGVoeWRyYXRlZCksIHQpKSBy ZXR1cm4gZTsNCiAgICAgICAgICAgIGUgPSBlLnJldHVybjsNCiAgICAgICAgICB9IHdoaWxl IChudWxsICE9PSBlKTsNCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiB5bChlLCB0LCBuLCByLCBvKSB7DQogICAgICAgICAgcmV0dXJuIDAg PT09ICgxICYgZS5tb2RlKQ0KICAgICAgICAgICAgPyAoZSA9PT0gdCA/IChlLmZsYWdzIHw9 IDY1NTM2KSA6ICgoZS5mbGFncyB8PSAxMjgpLCAobi5mbGFncyB8PSAxMzEwNzIpLCAobi5m bGFncyAmPSAtNTI4MDUpLCAxID09PSBuLnRhZyAmJiAobnVsbCA9PT0gbi5hbHRlcm5hdGUg PyAobi50YWcgPSAxNykgOiAoKCh0ID0gemEoLTEsIDEpKS50YWcgPSAyKSwgamEobiwgdCwg MSkpKSwgKG4ubGFuZXMgfD0gMSkpLA0KICAgICAgICAgICAgICBlKQ0KICAgICAgICAgICAg OiAoKGUuZmxhZ3MgfD0gNjU1MzYpLCAoZS5sYW5lcyA9IG8pLCBlKTsNCiAgICAgICAgfQ0K ICAgICAgICB2YXIgYmwgPSB3LlJlYWN0Q3VycmVudE93bmVyLA0KICAgICAgICAgIHdsID0g ITE7DQogICAgICAgIGZ1bmN0aW9uIHhsKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICB0LmNo aWxkID0gbnVsbCA9PT0gZSA/IFphKHQsIG51bGwsIG4sIHIpIDogWGEodCwgZS5jaGlsZCwg biwgcik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gU2woZSwgdCwgbiwgciwgbykg ew0KICAgICAgICAgIG4gPSBuLnJlbmRlcjsNCiAgICAgICAgICB2YXIgYSA9IHQucmVmOw0K ICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBDYSh0LCBvKSwNCiAgICAgICAgICAg IChyID0gRWkoZSwgdCwgbiwgciwgYSwgbykpLA0KICAgICAgICAgICAgKG4gPSBDaSgpKSwN CiAgICAgICAgICAgIG51bGwgPT09IGUgfHwgd2wgPyAoYWEgJiYgbiAmJiB0YSh0KSwgKHQu ZmxhZ3MgfD0gMSksIHhsKGUsIHQsIHIsIG8pLCB0LmNoaWxkKSA6ICgodC51cGRhdGVRdWV1 ZSA9IGUudXBkYXRlUXVldWUpLCAodC5mbGFncyAmPSAtMjA1MyksIChlLmxhbmVzICY9IH5v KSwgcWwoZSwgdCwgbykpDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBrbChlLCB0LCBuLCByLCBvKSB7DQogICAgICAgICAgaWYgKG51bGwgPT09IGUpIHsN CiAgICAgICAgICAgIHZhciBhID0gbi50eXBlOw0KICAgICAgICAgICAgcmV0dXJuICJmdW5j dGlvbiIgIT09IHR5cGVvZiBhIHx8IE11KGEpIHx8IHZvaWQgMCAhPT0gYS5kZWZhdWx0UHJv cHMgfHwgbnVsbCAhPT0gbi5jb21wYXJlIHx8IHZvaWQgMCAhPT0gbi5kZWZhdWx0UHJvcHMN CiAgICAgICAgICAgICAgPyAoKChlID0ganUobi50eXBlLCBudWxsLCByLCB0LCB0Lm1vZGUs IG8pKS5yZWYgPSB0LnJlZiksIChlLnJldHVybiA9IHQpLCAodC5jaGlsZCA9IGUpKQ0KICAg ICAgICAgICAgICA6ICgodC50YWcgPSAxNSksICh0LnR5cGUgPSBhKSwgRWwoZSwgdCwgYSwg ciwgbykpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoKChhID0gZS5jaGlsZCksIDAg PT09IChlLmxhbmVzICYgbykpKSB7DQogICAgICAgICAgICB2YXIgaSA9IGEubWVtb2l6ZWRQ cm9wczsNCiAgICAgICAgICAgIGlmICgobiA9IG51bGwgIT09IChuID0gbi5jb21wYXJlKSA/ IG4gOiBzcikoaSwgcikgJiYgZS5yZWYgPT09IHQucmVmKSByZXR1cm4gcWwoZSwgdCwgbyk7 DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiAodC5mbGFncyB8PSAxKSwgKChlID0g enUoYSwgcikpLnJlZiA9IHQucmVmKSwgKGUucmV0dXJuID0gdCksICh0LmNoaWxkID0gZSk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRWwoZSwgdCwgbiwgciwgbykgew0KICAg ICAgICAgIGlmIChudWxsICE9PSBlKSB7DQogICAgICAgICAgICB2YXIgYSA9IGUubWVtb2l6 ZWRQcm9wczsNCiAgICAgICAgICAgIGlmIChzcihhLCByKSAmJiBlLnJlZiA9PT0gdC5yZWYp IHsNCiAgICAgICAgICAgICAgaWYgKCgod2wgPSAhMSksICh0LnBlbmRpbmdQcm9wcyA9IHIg PSBhKSwgMCA9PT0gKGUubGFuZXMgJiBvKSkpIHJldHVybiAodC5sYW5lcyA9IGUubGFuZXMp LCBxbChlLCB0LCBvKTsNCiAgICAgICAgICAgICAgMCAhPT0gKDEzMTA3MiAmIGUuZmxhZ3Mp ICYmICh3bCA9ICEwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAg cmV0dXJuIF9sKGUsIHQsIG4sIHIsIG8pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IENsKGUsIHQsIG4pIHsNCiAgICAgICAgICB2YXIgciA9IHQucGVuZGluZ1Byb3BzLA0KICAg ICAgICAgICAgbyA9IHIuY2hpbGRyZW4sDQogICAgICAgICAgICBhID0gbnVsbCAhPT0gZSA/ IGUubWVtb2l6ZWRTdGF0ZSA6IG51bGw7DQogICAgICAgICAgaWYgKCJoaWRkZW4iID09PSBy Lm1vZGUpDQogICAgICAgICAgICBpZiAoMCA9PT0gKDEgJiB0Lm1vZGUpKSAodC5tZW1vaXpl ZFN0YXRlID0geyBiYXNlTGFuZXM6IDAsIGNhY2hlUG9vbDogbnVsbCwgdHJhbnNpdGlvbnM6 IG51bGwgfSksIF9vKHpzLCBNcyksIChNcyB8PSBuKTsNCiAgICAgICAgICAgIGVsc2Ugew0K ICAgICAgICAgICAgICBpZiAoMCA9PT0gKDEwNzM3NDE4MjQgJiBuKSkNCiAgICAgICAgICAg ICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgKGUgPSBudWxsICE9PSBhID8gYS5i YXNlTGFuZXMgfCBuIDogbiksDQogICAgICAgICAgICAgICAgICAodC5sYW5lcyA9IHQuY2hp bGRMYW5lcyA9IDEwNzM3NDE4MjQpLA0KICAgICAgICAgICAgICAgICAgKHQubWVtb2l6ZWRT dGF0ZSA9IHsgYmFzZUxhbmVzOiBlLCBjYWNoZVBvb2w6IG51bGwsIHRyYW5zaXRpb25zOiBu dWxsIH0pLA0KICAgICAgICAgICAgICAgICAgKHQudXBkYXRlUXVldWUgPSBudWxsKSwNCiAg ICAgICAgICAgICAgICAgIF9vKHpzLCBNcyksDQogICAgICAgICAgICAgICAgICAoTXMgfD0g ZSksDQogICAgICAgICAgICAgICAgICBudWxsDQogICAgICAgICAgICAgICAgKTsNCiAgICAg ICAgICAgICAgKHQubWVtb2l6ZWRTdGF0ZSA9IHsgYmFzZUxhbmVzOiAwLCBjYWNoZVBvb2w6 IG51bGwsIHRyYW5zaXRpb25zOiBudWxsIH0pLCAociA9IG51bGwgIT09IGEgPyBhLmJhc2VM YW5lcyA6IG4pLCBfbyh6cywgTXMpLCAoTXMgfD0gcik7DQogICAgICAgICAgICB9DQogICAg ICAgICAgZWxzZSBudWxsICE9PSBhID8gKChyID0gYS5iYXNlTGFuZXMgfCBuKSwgKHQubWVt b2l6ZWRTdGF0ZSA9IG51bGwpKSA6IChyID0gbiksIF9vKHpzLCBNcyksIChNcyB8PSByKTsN CiAgICAgICAgICByZXR1cm4geGwoZSwgdCwgbywgbiksIHQuY2hpbGQ7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gUmwoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gdC5yZWY7 DQogICAgICAgICAgKChudWxsID09PSBlICYmIG51bGwgIT09IG4pIHx8IChudWxsICE9PSBl ICYmIGUucmVmICE9PSBuKSkgJiYgKCh0LmZsYWdzIHw9IDUxMiksICh0LmZsYWdzIHw9IDIw OTcxNTIpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBfbChlLCB0LCBuLCByLCBv KSB7DQogICAgICAgICAgdmFyIGEgPSBNbyhuKSA/IFRvIDogT28uY3VycmVudDsNCiAgICAg ICAgICByZXR1cm4gKA0KICAgICAgICAgICAgKGEgPSBBbyh0LCBhKSksDQogICAgICAgICAg ICBDYSh0LCBvKSwNCiAgICAgICAgICAgIChuID0gRWkoZSwgdCwgbiwgciwgYSwgbykpLA0K ICAgICAgICAgICAgKHIgPSBDaSgpKSwNCiAgICAgICAgICAgIG51bGwgPT09IGUgfHwgd2wg PyAoYWEgJiYgciAmJiB0YSh0KSwgKHQuZmxhZ3MgfD0gMSksIHhsKGUsIHQsIG4sIG8pLCB0 LmNoaWxkKSA6ICgodC51cGRhdGVRdWV1ZSA9IGUudXBkYXRlUXVldWUpLCAodC5mbGFncyAm PSAtMjA1MyksIChlLmxhbmVzICY9IH5vKSwgcWwoZSwgdCwgbykpDQogICAgICAgICAgKTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBQbChlLCB0LCBuLCByLCBvKSB7DQogICAg ICAgICAgaWYgKE1vKG4pKSB7DQogICAgICAgICAgICB2YXIgYSA9ICEwOw0KICAgICAgICAg ICAgTG8odCk7DQogICAgICAgICAgfSBlbHNlIGEgPSAhMTsNCiAgICAgICAgICBpZiAoKENh KHQsIG8pLCBudWxsID09PSB0LnN0YXRlTm9kZSkpIEhsKGUsIHQpLCBIYSh0LCBuLCByKSwg JGEodCwgbiwgciwgbyksIChyID0gITApOw0KICAgICAgICAgIGVsc2UgaWYgKG51bGwgPT09 IGUpIHsNCiAgICAgICAgICAgIHZhciBpID0gdC5zdGF0ZU5vZGUsDQogICAgICAgICAgICAg IGwgPSB0Lm1lbW9pemVkUHJvcHM7DQogICAgICAgICAgICBpLnByb3BzID0gbDsNCiAgICAg ICAgICAgIHZhciBzID0gaS5jb250ZXh0LA0KICAgICAgICAgICAgICB1ID0gbi5jb250ZXh0 VHlwZTsNCiAgICAgICAgICAgICJvYmplY3QiID09PSB0eXBlb2YgdSAmJiBudWxsICE9PSB1 ID8gKHUgPSBSYSh1KSkgOiAodSA9IEFvKHQsICh1ID0gTW8obikgPyBUbyA6IE9vLmN1cnJl bnQpKSk7DQogICAgICAgICAgICB2YXIgYyA9IG4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3Bz LA0KICAgICAgICAgICAgICBkID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGMgfHwgImZ1bmN0 aW9uIiA9PT0gdHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7DQogICAgICAgICAg ICBkIHx8ICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbFJl Y2VpdmVQcm9wcyAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgaS5jb21wb25lbnRXaWxsUmVj ZWl2ZVByb3BzKSB8fCAoKGwgIT09IHIgfHwgcyAhPT0gdSkgJiYgcWEodCwgaSwgciwgdSkp LCAoVGEgPSAhMSk7DQogICAgICAgICAgICB2YXIgZiA9IHQubWVtb2l6ZWRTdGF0ZTsNCiAg ICAgICAgICAgIChpLnN0YXRlID0gZiksDQogICAgICAgICAgICAgIEZhKHQsIHIsIGksIG8p LA0KICAgICAgICAgICAgICAocyA9IHQubWVtb2l6ZWRTdGF0ZSksDQogICAgICAgICAgICAg IGwgIT09IHIgfHwgZiAhPT0gcyB8fCBOby5jdXJyZW50IHx8IFRhDQogICAgICAgICAgICAg ICAgPyAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGMgJiYgKFVhKHQsIG4sIGMsIHIpLCAocyA9 IHQubWVtb2l6ZWRTdGF0ZSkpLA0KICAgICAgICAgICAgICAgICAgKGwgPSBUYSB8fCBWYSh0 LCBuLCBsLCByLCBmLCBzLCB1KSkNCiAgICAgICAgICAgICAgICAgICAgPyAoZCB8fA0KICAg ICAgICAgICAgICAgICAgICAgICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgaS5VTlNBRkVfY29t cG9uZW50V2lsbE1vdW50ICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBpLmNvbXBvbmVudFdp bGxNb3VudCkgfHwNCiAgICAgICAgICAgICAgICAgICAgICAoImZ1bmN0aW9uIiA9PT0gdHlw ZW9mIGkuY29tcG9uZW50V2lsbE1vdW50ICYmIGkuY29tcG9uZW50V2lsbE1vdW50KCksICJm dW5jdGlvbiIgPT09IHR5cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiYgaS5V TlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLA0KICAgICAgICAgICAgICAgICAgICAgICJm dW5jdGlvbiIgPT09IHR5cGVvZiBpLmNvbXBvbmVudERpZE1vdW50ICYmICh0LmZsYWdzIHw9 IDQxOTQzMDgpKQ0KICAgICAgICAgICAgICAgICAgICA6ICgiZnVuY3Rpb24iID09PSB0eXBl b2YgaS5jb21wb25lbnREaWRNb3VudCAmJiAodC5mbGFncyB8PSA0MTk0MzA4KSwgKHQubWVt b2l6ZWRQcm9wcyA9IHIpLCAodC5tZW1vaXplZFN0YXRlID0gcykpLA0KICAgICAgICAgICAg ICAgICAgKGkucHJvcHMgPSByKSwNCiAgICAgICAgICAgICAgICAgIChpLnN0YXRlID0gcyks DQogICAgICAgICAgICAgICAgICAoaS5jb250ZXh0ID0gdSksDQogICAgICAgICAgICAgICAg ICAociA9IGwpKQ0KICAgICAgICAgICAgICAgIDogKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBp LmNvbXBvbmVudERpZE1vdW50ICYmICh0LmZsYWdzIHw9IDQxOTQzMDgpLCAociA9ICExKSk7 DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIChpID0gdC5zdGF0ZU5vZGUpLA0K ICAgICAgICAgICAgICBNYShlLCB0KSwNCiAgICAgICAgICAgICAgKGwgPSB0Lm1lbW9pemVk UHJvcHMpLA0KICAgICAgICAgICAgICAodSA9IHQudHlwZSA9PT0gdC5lbGVtZW50VHlwZSA/ IGwgOiB2YSh0LnR5cGUsIGwpKSwNCiAgICAgICAgICAgICAgKGkucHJvcHMgPSB1KSwNCiAg ICAgICAgICAgICAgKGQgPSB0LnBlbmRpbmdQcm9wcyksDQogICAgICAgICAgICAgIChmID0g aS5jb250ZXh0KSwNCiAgICAgICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiAocyA9IG4u Y29udGV4dFR5cGUpICYmIG51bGwgIT09IHMgPyAocyA9IFJhKHMpKSA6IChzID0gQW8odCwg KHMgPSBNbyhuKSA/IFRvIDogT28uY3VycmVudCkpKTsNCiAgICAgICAgICAgIHZhciBwID0g bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7DQogICAgICAgICAgICAoYyA9ICJmdW5jdGlv biIgPT09IHR5cGVvZiBwIHx8ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpLmdldFNuYXBzaG90 QmVmb3JlVXBkYXRlKSB8fA0KICAgICAgICAgICAgICAoImZ1bmN0aW9uIiAhPT0gdHlwZW9m IGkuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiYgImZ1bmN0aW9uIiAhPT0g dHlwZW9mIGkuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcykgfHwNCiAgICAgICAgICAgICAg KChsICE9PSBkIHx8IGYgIT09IHMpICYmIHFhKHQsIGksIHIsIHMpKSwNCiAgICAgICAgICAg ICAgKFRhID0gITEpLA0KICAgICAgICAgICAgICAoZiA9IHQubWVtb2l6ZWRTdGF0ZSksDQog ICAgICAgICAgICAgIChpLnN0YXRlID0gZiksDQogICAgICAgICAgICAgIEZhKHQsIHIsIGks IG8pOw0KICAgICAgICAgICAgdmFyIGggPSB0Lm1lbW9pemVkU3RhdGU7DQogICAgICAgICAg ICBsICE9PSBkIHx8IGYgIT09IGggfHwgTm8uY3VycmVudCB8fCBUYQ0KICAgICAgICAgICAg ICA/ICgiZnVuY3Rpb24iID09PSB0eXBlb2YgcCAmJiAoVWEodCwgbiwgcCwgciksIChoID0g dC5tZW1vaXplZFN0YXRlKSksDQogICAgICAgICAgICAgICAgKHUgPSBUYSB8fCBWYSh0LCBu LCB1LCByLCBmLCBoLCBzKSB8fCAhMSkNCiAgICAgICAgICAgICAgICAgID8gKGMgfHwNCiAg ICAgICAgICAgICAgICAgICAgKCJmdW5jdGlvbiIgIT09IHR5cGVvZiBpLlVOU0FGRV9jb21w b25lbnRXaWxsVXBkYXRlICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBpLmNvbXBvbmVudFdp bGxVcGRhdGUpIHx8DQogICAgICAgICAgICAgICAgICAgICgiZnVuY3Rpb24iID09PSB0eXBl b2YgaS5jb21wb25lbnRXaWxsVXBkYXRlICYmIGkuY29tcG9uZW50V2lsbFVwZGF0ZShyLCBo LCBzKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRh dGUgJiYgaS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShyLCBoLCBzKSksDQogICAgICAg ICAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpLmNvbXBvbmVudERpZFVwZGF0 ZSAmJiAodC5mbGFncyB8PSA0KSwNCiAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9 PT0gdHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgJiYgKHQuZmxhZ3MgfD0gMTAy NCkpDQogICAgICAgICAgICAgICAgICA6ICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgaS5jb21w b25lbnREaWRVcGRhdGUgfHwgKGwgPT09IGUubWVtb2l6ZWRQcm9wcyAmJiBmID09PSBlLm1l bW9pemVkU3RhdGUpIHx8ICh0LmZsYWdzIHw9IDQpLA0KICAgICAgICAgICAgICAgICAgICAi ZnVuY3Rpb24iICE9PSB0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB8fCAobCA9 PT0gZS5tZW1vaXplZFByb3BzICYmIGYgPT09IGUubWVtb2l6ZWRTdGF0ZSkgfHwgKHQuZmxh Z3MgfD0gMTAyNCksDQogICAgICAgICAgICAgICAgICAgICh0Lm1lbW9pemVkUHJvcHMgPSBy KSwNCiAgICAgICAgICAgICAgICAgICAgKHQubWVtb2l6ZWRTdGF0ZSA9IGgpKSwNCiAgICAg ICAgICAgICAgICAoaS5wcm9wcyA9IHIpLA0KICAgICAgICAgICAgICAgIChpLnN0YXRlID0g aCksDQogICAgICAgICAgICAgICAgKGkuY29udGV4dCA9IHMpLA0KICAgICAgICAgICAgICAg IChyID0gdSkpDQogICAgICAgICAgICAgIDogKCJmdW5jdGlvbiIgIT09IHR5cGVvZiBpLmNv bXBvbmVudERpZFVwZGF0ZSB8fCAobCA9PT0gZS5tZW1vaXplZFByb3BzICYmIGYgPT09IGUu bWVtb2l6ZWRTdGF0ZSkgfHwgKHQuZmxhZ3MgfD0gNCksDQogICAgICAgICAgICAgICAgImZ1 bmN0aW9uIiAhPT0gdHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgfHwgKGwgPT09 IGUubWVtb2l6ZWRQcm9wcyAmJiBmID09PSBlLm1lbW9pemVkU3RhdGUpIHx8ICh0LmZsYWdz IHw9IDEwMjQpLA0KICAgICAgICAgICAgICAgIChyID0gITEpKTsNCiAgICAgICAgICB9DQog ICAgICAgICAgcmV0dXJuIE9sKGUsIHQsIG4sIHIsIGEsIG8pOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIE9sKGUsIHQsIG4sIHIsIG8sIGEpIHsNCiAgICAgICAgICBSbChlLCB0 KTsNCiAgICAgICAgICB2YXIgaSA9IDAgIT09ICgxMjggJiB0LmZsYWdzKTsNCiAgICAgICAg ICBpZiAoIXIgJiYgIWkpIHJldHVybiBvICYmIEZvKHQsIG4sICExKSwgcWwoZSwgdCwgYSk7 DQogICAgICAgICAgKHIgPSB0LnN0YXRlTm9kZSksIChibC5jdXJyZW50ID0gdCk7DQogICAg ICAgICAgdmFyIGwgPSBpICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBuLmdldERlcml2ZWRT dGF0ZUZyb21FcnJvciA/IG51bGwgOiByLnJlbmRlcigpOw0KICAgICAgICAgIHJldHVybiAo dC5mbGFncyB8PSAxKSwgbnVsbCAhPT0gZSAmJiBpID8gKCh0LmNoaWxkID0gWGEodCwgZS5j aGlsZCwgbnVsbCwgYSkpLCAodC5jaGlsZCA9IFhhKHQsIG51bGwsIGwsIGEpKSkgOiB4bChl LCB0LCBsLCBhKSwgKHQubWVtb2l6ZWRTdGF0ZSA9IHIuc3RhdGUpLCBvICYmIEZvKHQsIG4s ICEwKSwgdC5jaGlsZDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBObChlKSB7DQog ICAgICAgICAgdmFyIHQgPSBlLnN0YXRlTm9kZTsNCiAgICAgICAgICB0LnBlbmRpbmdDb250 ZXh0ID8gam8oMCwgdC5wZW5kaW5nQ29udGV4dCwgdC5wZW5kaW5nQ29udGV4dCAhPT0gdC5j b250ZXh0KSA6IHQuY29udGV4dCAmJiBqbygwLCB0LmNvbnRleHQsICExKSwgb2koZSwgdC5j b250YWluZXJJbmZvKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBUbChlLCB0LCBu LCByLCBvKSB7DQogICAgICAgICAgcmV0dXJuIGhhKCksIG1hKG8pLCAodC5mbGFncyB8PSAy NTYpLCB4bChlLCB0LCBuLCByKSwgdC5jaGlsZDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIg QWwsDQogICAgICAgICAgTWwsDQogICAgICAgICAgemwsDQogICAgICAgICAgamwsDQogICAg ICAgICAgSWwgPSB7IGRlaHlkcmF0ZWQ6IG51bGwsIHRyZWVDb250ZXh0OiBudWxsLCByZXRy eUxhbmU6IDAgfTsNCiAgICAgICAgZnVuY3Rpb24gTGwoZSkgew0KICAgICAgICAgIHJldHVy biB7IGJhc2VMYW5lczogZSwgY2FjaGVQb29sOiBudWxsLCB0cmFuc2l0aW9uczogbnVsbCB9 Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEZsKGUsIHQsIG4pIHsNCiAgICAgICAg ICB2YXIgciwNCiAgICAgICAgICAgIG8gPSB0LnBlbmRpbmdQcm9wcywNCiAgICAgICAgICAg IGkgPSBzaS5jdXJyZW50LA0KICAgICAgICAgICAgbCA9ICExLA0KICAgICAgICAgICAgcyA9 IDAgIT09ICgxMjggJiB0LmZsYWdzKTsNCiAgICAgICAgICBpZiAoKChyID0gcykgfHwgKHIg PSAobnVsbCA9PT0gZSB8fCBudWxsICE9PSBlLm1lbW9pemVkU3RhdGUpICYmIDAgIT09ICgy ICYgaSkpLCByID8gKChsID0gITApLCAodC5mbGFncyAmPSAtMTI5KSkgOiAobnVsbCAhPT0g ZSAmJiBudWxsID09PSBlLm1lbW9pemVkU3RhdGUpIHx8IChpIHw9IDEpLCBfbyhzaSwgMSAm IGkpLCBudWxsID09PSBlKSkNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAg IGNhKHQpLA0KICAgICAgICAgICAgICBudWxsICE9PSAoZSA9IHQubWVtb2l6ZWRTdGF0ZSkg JiYgbnVsbCAhPT0gKGUgPSBlLmRlaHlkcmF0ZWQpDQogICAgICAgICAgICAgICAgPyAoMCA9 PT0gKDEgJiB0Lm1vZGUpID8gKHQubGFuZXMgPSAxKSA6ICIkISIgPT09IGUuZGF0YSA/ICh0 LmxhbmVzID0gOCkgOiAodC5sYW5lcyA9IDEwNzM3NDE4MjQpLCBudWxsKQ0KICAgICAgICAg ICAgICAgIDogKChzID0gby5jaGlsZHJlbiksDQogICAgICAgICAgICAgICAgICAoZSA9IG8u ZmFsbGJhY2spLA0KICAgICAgICAgICAgICAgICAgbA0KICAgICAgICAgICAgICAgICAgICA/ ICgobyA9IHQubW9kZSksDQogICAgICAgICAgICAgICAgICAgICAgKGwgPSB0LmNoaWxkKSwN CiAgICAgICAgICAgICAgICAgICAgICAocyA9IHsgbW9kZTogImhpZGRlbiIsIGNoaWxkcmVu OiBzIH0pLA0KICAgICAgICAgICAgICAgICAgICAgIDAgPT09ICgxICYgbykgJiYgbnVsbCAh PT0gbCA/ICgobC5jaGlsZExhbmVzID0gMCksIChsLnBlbmRpbmdQcm9wcyA9IHMpKSA6IChs ID0gTHUocywgbywgMCwgbnVsbCkpLA0KICAgICAgICAgICAgICAgICAgICAgIChlID0gSXUo ZSwgbywgbiwgbnVsbCkpLA0KICAgICAgICAgICAgICAgICAgICAgIChsLnJldHVybiA9IHQp LA0KICAgICAgICAgICAgICAgICAgICAgIChlLnJldHVybiA9IHQpLA0KICAgICAgICAgICAg ICAgICAgICAgIChsLnNpYmxpbmcgPSBlKSwNCiAgICAgICAgICAgICAgICAgICAgICAodC5j aGlsZCA9IGwpLA0KICAgICAgICAgICAgICAgICAgICAgICh0LmNoaWxkLm1lbW9pemVkU3Rh dGUgPSBMbChuKSksDQogICAgICAgICAgICAgICAgICAgICAgKHQubWVtb2l6ZWRTdGF0ZSA9 IElsKSwNCiAgICAgICAgICAgICAgICAgICAgICBlKQ0KICAgICAgICAgICAgICAgICAgICA6 IEJsKHQsIHMpKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICBpZiAobnVsbCAhPT0gKGkg PSBlLm1lbW9pemVkU3RhdGUpICYmIG51bGwgIT09IChyID0gaS5kZWh5ZHJhdGVkKSkNCiAg ICAgICAgICAgIHJldHVybiAoZnVuY3Rpb24gKGUsIHQsIG4sIHIsIG8sIGksIGwpIHsNCiAg ICAgICAgICAgICAgaWYgKG4pDQogICAgICAgICAgICAgICAgcmV0dXJuIDI1NiAmIHQuZmxh Z3MNCiAgICAgICAgICAgICAgICAgID8gKCh0LmZsYWdzICY9IC0yNTcpLCBEbChlLCB0LCBs LCAociA9IGRsKEVycm9yKGEoNDIyKSkpKSkpDQogICAgICAgICAgICAgICAgICA6IG51bGwg IT09IHQubWVtb2l6ZWRTdGF0ZQ0KICAgICAgICAgICAgICAgICAgICA/ICgodC5jaGlsZCA9 IGUuY2hpbGQpLCAodC5mbGFncyB8PSAxMjgpLCBudWxsKQ0KICAgICAgICAgICAgICAgICAg ICA6ICgoaSA9IHIuZmFsbGJhY2spLA0KICAgICAgICAgICAgICAgICAgICAgIChvID0gdC5t b2RlKSwNCiAgICAgICAgICAgICAgICAgICAgICAociA9IEx1KHsgbW9kZTogInZpc2libGUi LCBjaGlsZHJlbjogci5jaGlsZHJlbiB9LCBvLCAwLCBudWxsKSksDQogICAgICAgICAgICAg ICAgICAgICAgKChpID0gSXUoaSwgbywgbCwgbnVsbCkpLmZsYWdzIHw9IDIpLA0KICAgICAg ICAgICAgICAgICAgICAgIChyLnJldHVybiA9IHQpLA0KICAgICAgICAgICAgICAgICAgICAg IChpLnJldHVybiA9IHQpLA0KICAgICAgICAgICAgICAgICAgICAgIChyLnNpYmxpbmcgPSBp KSwNCiAgICAgICAgICAgICAgICAgICAgICAodC5jaGlsZCA9IHIpLA0KICAgICAgICAgICAg ICAgICAgICAgIDAgIT09ICgxICYgdC5tb2RlKSAmJiBYYSh0LCBlLmNoaWxkLCBudWxsLCBs KSwNCiAgICAgICAgICAgICAgICAgICAgICAodC5jaGlsZC5tZW1vaXplZFN0YXRlID0gTGwo bCkpLA0KICAgICAgICAgICAgICAgICAgICAgICh0Lm1lbW9pemVkU3RhdGUgPSBJbCksDQog ICAgICAgICAgICAgICAgICAgICAgaSk7DQogICAgICAgICAgICAgIGlmICgwID09PSAoMSAm IHQubW9kZSkpIHJldHVybiBEbChlLCB0LCBsLCBudWxsKTsNCiAgICAgICAgICAgICAgaWYg KCIkISIgPT09IG8uZGF0YSkgew0KICAgICAgICAgICAgICAgIGlmICgociA9IG8ubmV4dFNp YmxpbmcgJiYgby5uZXh0U2libGluZy5kYXRhc2V0KSkgdmFyIHMgPSByLmRnc3Q7DQogICAg ICAgICAgICAgICAgcmV0dXJuIChyID0gcyksIERsKGUsIHQsIGwsIChyID0gZGwoKGkgPSBF cnJvcihhKDQxOSkpKSwgciwgdm9pZCAwKSkpOw0KICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgIGlmICgoKHMgPSAwICE9PSAobCAmIGUuY2hpbGRMYW5lcykpLCB3bCB8fCBzKSkg ew0KICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSAociA9IE5zKSkgew0KICAgICAgICAg ICAgICAgICAgc3dpdGNoIChsICYgLWwpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA0 Og0KICAgICAgICAgICAgICAgICAgICAgIG8gPSAyOw0KICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE2Og0KICAgICAgICAgICAgICAg ICAgICAgIG8gPSA4Ow0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgICAgICAgICBjYXNlIDY0Og0KICAgICAgICAgICAgICAgICAgICBjYXNlIDEyODoNCiAg ICAgICAgICAgICAgICAgICAgY2FzZSAyNTY6DQogICAgICAgICAgICAgICAgICAgIGNhc2Ug NTEyOg0KICAgICAgICAgICAgICAgICAgICBjYXNlIDEwMjQ6DQogICAgICAgICAgICAgICAg ICAgIGNhc2UgMjA0ODoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA0MDk2Og0KICAgICAg ICAgICAgICAgICAgICBjYXNlIDgxOTI6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMTYz ODQ6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzI3Njg6DQogICAgICAgICAgICAgICAg ICAgIGNhc2UgNjU1MzY6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMTMxMDcyOg0KICAg ICAgICAgICAgICAgICAgICBjYXNlIDI2MjE0NDoNCiAgICAgICAgICAgICAgICAgICAgY2Fz ZSA1MjQyODg6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMTA0ODU3NjoNCiAgICAgICAg ICAgICAgICAgICAgY2FzZSAyMDk3MTUyOg0KICAgICAgICAgICAgICAgICAgICBjYXNlIDQx OTQzMDQ6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgODM4ODYwODoNCiAgICAgICAgICAg ICAgICAgICAgY2FzZSAxNjc3NzIxNjoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAzMzU1 NDQzMjoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA2NzEwODg2NDoNCiAgICAgICAgICAg ICAgICAgICAgICBvID0gMzI7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg ICAgICAgICAgICAgICAgIGNhc2UgNTM2ODcwOTEyOg0KICAgICAgICAgICAgICAgICAgICAg IG8gPSAyNjg0MzU0NTY7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgbyA9IDA7DQog ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAwICE9PSAobyA9IDAgIT09 IChvICYgKHIuc3VzcGVuZGVkTGFuZXMgfCBsKSkgPyAwIDogbykgJiYgbyAhPT0gaS5yZXRy eUxhbmUgJiYgKChpLnJldHJ5TGFuZSA9IG8pLCBOYShlLCBvKSwgcnUociwgZSwgbywgLTEp KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIGd1KCksIERs KGUsIHQsIGwsIChyID0gZGwoRXJyb3IoYSg0MjEpKSkpKTsNCiAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICByZXR1cm4gIiQ/IiA9PT0gby5kYXRhDQogICAgICAgICAgICAgICAg PyAoKHQuZmxhZ3MgfD0gMTI4KSwgKHQuY2hpbGQgPSBlLmNoaWxkKSwgKHQgPSBQdS5iaW5k KG51bGwsIGUpKSwgKG8uX3JlYWN0UmV0cnkgPSB0KSwgbnVsbCkNCiAgICAgICAgICAgICAg ICA6ICgoZSA9IGkudHJlZUNvbnRleHQpLA0KICAgICAgICAgICAgICAgICAgKG9hID0gdW8o by5uZXh0U2libGluZykpLA0KICAgICAgICAgICAgICAgICAgKHJhID0gdCksDQogICAgICAg ICAgICAgICAgICAoYWEgPSAhMCksDQogICAgICAgICAgICAgICAgICAoaWEgPSBudWxsKSwN CiAgICAgICAgICAgICAgICAgIG51bGwgIT09IGUgJiYgKChRb1tHbysrXSA9IFhvKSwgKFFv W0dvKytdID0gWm8pLCAoUW9bR28rK10gPSBZbyksIChYbyA9IGUuaWQpLCAoWm8gPSBlLm92 ZXJmbG93KSwgKFlvID0gdCkpLA0KICAgICAgICAgICAgICAgICAgKHQgPSBCbCh0LCByLmNo aWxkcmVuKSksDQogICAgICAgICAgICAgICAgICAodC5mbGFncyB8PSA0MDk2KSwNCiAgICAg ICAgICAgICAgICAgIHQpOw0KICAgICAgICAgICAgfSkoZSwgdCwgcywgbywgciwgaSwgbik7 DQogICAgICAgICAgaWYgKGwpIHsNCiAgICAgICAgICAgIChsID0gby5mYWxsYmFjayksIChz ID0gdC5tb2RlKSwgKHIgPSAoaSA9IGUuY2hpbGQpLnNpYmxpbmcpOw0KICAgICAgICAgICAg dmFyIHUgPSB7IG1vZGU6ICJoaWRkZW4iLCBjaGlsZHJlbjogby5jaGlsZHJlbiB9Ow0KICAg ICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgMCA9PT0gKDEgJiBzKSAmJiB0LmNo aWxkICE9PSBpID8gKCgobyA9IHQuY2hpbGQpLmNoaWxkTGFuZXMgPSAwKSwgKG8ucGVuZGlu Z1Byb3BzID0gdSksICh0LmRlbGV0aW9ucyA9IG51bGwpKSA6ICgobyA9IHp1KGksIHUpKS5z dWJ0cmVlRmxhZ3MgPSAxNDY4MDA2NCAmIGkuc3VidHJlZUZsYWdzKSwNCiAgICAgICAgICAg ICAgbnVsbCAhPT0gciA/IChsID0genUociwgbCkpIDogKChsID0gSXUobCwgcywgbiwgbnVs bCkpLmZsYWdzIHw9IDIpLA0KICAgICAgICAgICAgICAobC5yZXR1cm4gPSB0KSwNCiAgICAg ICAgICAgICAgKG8ucmV0dXJuID0gdCksDQogICAgICAgICAgICAgIChvLnNpYmxpbmcgPSBs KSwNCiAgICAgICAgICAgICAgKHQuY2hpbGQgPSBvKSwNCiAgICAgICAgICAgICAgKG8gPSBs KSwNCiAgICAgICAgICAgICAgKGwgPSB0LmNoaWxkKSwNCiAgICAgICAgICAgICAgKHMgPSBu dWxsID09PSAocyA9IGUuY2hpbGQubWVtb2l6ZWRTdGF0ZSkgPyBMbChuKSA6IHsgYmFzZUxh bmVzOiBzLmJhc2VMYW5lcyB8IG4sIGNhY2hlUG9vbDogbnVsbCwgdHJhbnNpdGlvbnM6IHMu dHJhbnNpdGlvbnMgfSksDQogICAgICAgICAgICAgIChsLm1lbW9pemVkU3RhdGUgPSBzKSwN CiAgICAgICAgICAgICAgKGwuY2hpbGRMYW5lcyA9IGUuY2hpbGRMYW5lcyAmIH5uKSwNCiAg ICAgICAgICAgICAgKHQubWVtb2l6ZWRTdGF0ZSA9IElsKSwNCiAgICAgICAgICAgICAgbw0K ICAgICAgICAgICAgKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICgNCiAgICAg ICAgICAgIChlID0gKGwgPSBlLmNoaWxkKS5zaWJsaW5nKSwNCiAgICAgICAgICAgIChvID0g enUobCwgeyBtb2RlOiAidmlzaWJsZSIsIGNoaWxkcmVuOiBvLmNoaWxkcmVuIH0pKSwNCiAg ICAgICAgICAgIDAgPT09ICgxICYgdC5tb2RlKSAmJiAoby5sYW5lcyA9IG4pLA0KICAgICAg ICAgICAgKG8ucmV0dXJuID0gdCksDQogICAgICAgICAgICAoby5zaWJsaW5nID0gbnVsbCks DQogICAgICAgICAgICBudWxsICE9PSBlICYmIChudWxsID09PSAobiA9IHQuZGVsZXRpb25z KSA/ICgodC5kZWxldGlvbnMgPSBbZV0pLCAodC5mbGFncyB8PSAxNikpIDogbi5wdXNoKGUp KSwNCiAgICAgICAgICAgICh0LmNoaWxkID0gbyksDQogICAgICAgICAgICAodC5tZW1vaXpl ZFN0YXRlID0gbnVsbCksDQogICAgICAgICAgICBvDQogICAgICAgICAgKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBCbChlLCB0KSB7DQogICAgICAgICAgcmV0dXJuICgodCA9 IEx1KHsgbW9kZTogInZpc2libGUiLCBjaGlsZHJlbjogdCB9LCBlLm1vZGUsIDAsIG51bGwp KS5yZXR1cm4gPSBlKSwgKGUuY2hpbGQgPSB0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBEbChlLCB0LCBuLCByKSB7DQogICAgICAgICAgcmV0dXJuIG51bGwgIT09IHIgJiYg bWEociksIFhhKHQsIGUuY2hpbGQsIG51bGwsIG4pLCAoKGUgPSBCbCh0LCB0LnBlbmRpbmdQ cm9wcy5jaGlsZHJlbikpLmZsYWdzIHw9IDIpLCAodC5tZW1vaXplZFN0YXRlID0gbnVsbCks IGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVWwoZSwgdCwgbikgew0KICAgICAg ICAgIGUubGFuZXMgfD0gdDsNCiAgICAgICAgICB2YXIgciA9IGUuYWx0ZXJuYXRlOw0KICAg ICAgICAgIG51bGwgIT09IHIgJiYgKHIubGFuZXMgfD0gdCksIEVhKGUucmV0dXJuLCB0LCBu KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBXbChlLCB0LCBuLCByLCBvKSB7DQog ICAgICAgICAgdmFyIGEgPSBlLm1lbW9pemVkU3RhdGU7DQogICAgICAgICAgbnVsbCA9PT0g YQ0KICAgICAgICAgICAgPyAoZS5tZW1vaXplZFN0YXRlID0geyBpc0JhY2t3YXJkczogdCwg cmVuZGVyaW5nOiBudWxsLCByZW5kZXJpbmdTdGFydFRpbWU6IDAsIGxhc3Q6IHIsIHRhaWw6 IG4sIHRhaWxNb2RlOiBvIH0pDQogICAgICAgICAgICA6ICgoYS5pc0JhY2t3YXJkcyA9IHQp LCAoYS5yZW5kZXJpbmcgPSBudWxsKSwgKGEucmVuZGVyaW5nU3RhcnRUaW1lID0gMCksIChh Lmxhc3QgPSByKSwgKGEudGFpbCA9IG4pLCAoYS50YWlsTW9kZSA9IG8pKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBWbChlLCB0LCBuKSB7DQogICAgICAgICAgdmFyIHIgPSB0 LnBlbmRpbmdQcm9wcywNCiAgICAgICAgICAgIG8gPSByLnJldmVhbE9yZGVyLA0KICAgICAg ICAgICAgYSA9IHIudGFpbDsNCiAgICAgICAgICBpZiAoKHhsKGUsIHQsIHIuY2hpbGRyZW4s IG4pLCAwICE9PSAoMiAmIChyID0gc2kuY3VycmVudCkpKSkgKHIgPSAoMSAmIHIpIHwgMiks ICh0LmZsYWdzIHw9IDEyOCk7DQogICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBpZiAo bnVsbCAhPT0gZSAmJiAwICE9PSAoMTI4ICYgZS5mbGFncykpDQogICAgICAgICAgICAgIGU6 IGZvciAoZSA9IHQuY2hpbGQ7IG51bGwgIT09IGU7KSB7DQogICAgICAgICAgICAgICAgaWYg KDEzID09PSBlLnRhZykgbnVsbCAhPT0gZS5tZW1vaXplZFN0YXRlICYmIFVsKGUsIG4sIHQp Ow0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKDE5ID09PSBlLnRhZykgVWwoZSwgbiwgdCk7 DQogICAgICAgICAgICAgICAgZWxzZSBpZiAobnVsbCAhPT0gZS5jaGlsZCkgew0KICAgICAg ICAgICAgICAgICAgKGUuY2hpbGQucmV0dXJuID0gZSksIChlID0gZS5jaGlsZCk7DQogICAg ICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgaWYgKGUgPT09IHQpIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgZm9yICg7IG51 bGwgPT09IGUuc2libGluZzspIHsNCiAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBl LnJldHVybiB8fCBlLnJldHVybiA9PT0gdCkgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAg IGUgPSBlLnJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgKGUu c2libGluZy5yZXR1cm4gPSBlLnJldHVybiksIChlID0gZS5zaWJsaW5nKTsNCiAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgciAmPSAxOw0KICAgICAgICAgIH0NCiAgICAgICAgICBp ZiAoKF9vKHNpLCByKSwgMCA9PT0gKDEgJiB0Lm1vZGUpKSkgdC5tZW1vaXplZFN0YXRlID0g bnVsbDsNCiAgICAgICAgICBlbHNlDQogICAgICAgICAgICBzd2l0Y2ggKG8pIHsNCiAgICAg ICAgICAgICAgY2FzZSAiZm9yd2FyZHMiOg0KICAgICAgICAgICAgICAgIGZvciAobiA9IHQu Y2hpbGQsIG8gPSBudWxsOyBudWxsICE9PSBuOykgbnVsbCAhPT0gKGUgPSBuLmFsdGVybmF0 ZSkgJiYgbnVsbCA9PT0gdWkoZSkgJiYgKG8gPSBuKSwgKG4gPSBuLnNpYmxpbmcpOw0KICAg ICAgICAgICAgICAgIG51bGwgPT09IChuID0gbykgPyAoKG8gPSB0LmNoaWxkKSwgKHQuY2hp bGQgPSBudWxsKSkgOiAoKG8gPSBuLnNpYmxpbmcpLCAobi5zaWJsaW5nID0gbnVsbCkpLCBX bCh0LCAhMSwgbywgbiwgYSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgIGNhc2UgImJhY2t3YXJkcyI6DQogICAgICAgICAgICAgICAgZm9yIChuID0gbnVsbCwg byA9IHQuY2hpbGQsIHQuY2hpbGQgPSBudWxsOyBudWxsICE9PSBvOykgew0KICAgICAgICAg ICAgICAgICAgaWYgKG51bGwgIT09IChlID0gby5hbHRlcm5hdGUpICYmIG51bGwgPT09IHVp KGUpKSB7DQogICAgICAgICAgICAgICAgICAgIHQuY2hpbGQgPSBvOw0KICAgICAgICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg IChlID0gby5zaWJsaW5nKSwgKG8uc2libGluZyA9IG4pLCAobiA9IG8pLCAobyA9IGUpOw0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBXbCh0LCAhMCwgbiwgbnVsbCwg YSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgInRvZ2V0 aGVyIjoNCiAgICAgICAgICAgICAgICBXbCh0LCAhMSwgbnVsbCwgbnVsbCwgdm9pZCAwKTsN CiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAg ICAgICAgICAgICB0Lm1lbW9pemVkU3RhdGUgPSBudWxsOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgIHJldHVybiB0LmNoaWxkOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEhs KGUsIHQpIHsNCiAgICAgICAgICAwID09PSAoMSAmIHQubW9kZSkgJiYgbnVsbCAhPT0gZSAm JiAoKGUuYWx0ZXJuYXRlID0gbnVsbCksICh0LmFsdGVybmF0ZSA9IG51bGwpLCAodC5mbGFn cyB8PSAyKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcWwoZSwgdCwgbikgew0K ICAgICAgICAgIGlmICgobnVsbCAhPT0gZSAmJiAodC5kZXBlbmRlbmNpZXMgPSBlLmRlcGVu ZGVuY2llcyksIChMcyB8PSB0LmxhbmVzKSwgMCA9PT0gKG4gJiB0LmNoaWxkTGFuZXMpKSkg cmV0dXJuIG51bGw7DQogICAgICAgICAgaWYgKG51bGwgIT09IGUgJiYgdC5jaGlsZCAhPT0g ZS5jaGlsZCkgdGhyb3cgRXJyb3IoYSgxNTMpKTsNCiAgICAgICAgICBpZiAobnVsbCAhPT0g dC5jaGlsZCkgew0KICAgICAgICAgICAgZm9yIChuID0genUoKGUgPSB0LmNoaWxkKSwgZS5w ZW5kaW5nUHJvcHMpLCB0LmNoaWxkID0gbiwgbi5yZXR1cm4gPSB0OyBudWxsICE9PSBlLnNp Ymxpbmc7KSAoZSA9IGUuc2libGluZyksICgobiA9IG4uc2libGluZyA9IHp1KGUsIGUucGVu ZGluZ1Byb3BzKSkucmV0dXJuID0gdCk7DQogICAgICAgICAgICBuLnNpYmxpbmcgPSBudWxs Ow0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gdC5jaGlsZDsNCiAgICAgICAgfQ0K ICAgICAgICBmdW5jdGlvbiAkbChlLCB0KSB7DQogICAgICAgICAgaWYgKCFhYSkNCiAgICAg ICAgICAgIHN3aXRjaCAoZS50YWlsTW9kZSkgew0KICAgICAgICAgICAgICBjYXNlICJoaWRk ZW4iOg0KICAgICAgICAgICAgICAgIHQgPSBlLnRhaWw7DQogICAgICAgICAgICAgICAgZm9y ICh2YXIgbiA9IG51bGw7IG51bGwgIT09IHQ7KSBudWxsICE9PSB0LmFsdGVybmF0ZSAmJiAo biA9IHQpLCAodCA9IHQuc2libGluZyk7DQogICAgICAgICAgICAgICAgbnVsbCA9PT0gbiA/ IChlLnRhaWwgPSBudWxsKSA6IChuLnNpYmxpbmcgPSBudWxsKTsNCiAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSAiY29sbGFwc2VkIjoNCiAgICAgICAgICAg ICAgICBuID0gZS50YWlsOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSBudWxsOyBu dWxsICE9PSBuOykgbnVsbCAhPT0gbi5hbHRlcm5hdGUgJiYgKHIgPSBuKSwgKG4gPSBuLnNp YmxpbmcpOw0KICAgICAgICAgICAgICAgIG51bGwgPT09IHIgPyAodCB8fCBudWxsID09PSBl LnRhaWwgPyAoZS50YWlsID0gbnVsbCkgOiAoZS50YWlsLnNpYmxpbmcgPSBudWxsKSkgOiAo ci5zaWJsaW5nID0gbnVsbCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gS2woZSkgew0KICAgICAgICAgIHZhciB0ID0gbnVsbCAhPT0gZS5hbHRlcm5h dGUgJiYgZS5hbHRlcm5hdGUuY2hpbGQgPT09IGUuY2hpbGQsDQogICAgICAgICAgICBuID0g MCwNCiAgICAgICAgICAgIHIgPSAwOw0KICAgICAgICAgIGlmICh0KSBmb3IgKHZhciBvID0g ZS5jaGlsZDsgbnVsbCAhPT0gbzspIChuIHw9IG8ubGFuZXMgfCBvLmNoaWxkTGFuZXMpLCAo ciB8PSAxNDY4MDA2NCAmIG8uc3VidHJlZUZsYWdzKSwgKHIgfD0gMTQ2ODAwNjQgJiBvLmZs YWdzKSwgKG8ucmV0dXJuID0gZSksIChvID0gby5zaWJsaW5nKTsNCiAgICAgICAgICBlbHNl IGZvciAobyA9IGUuY2hpbGQ7IG51bGwgIT09IG87KSAobiB8PSBvLmxhbmVzIHwgby5jaGls ZExhbmVzKSwgKHIgfD0gby5zdWJ0cmVlRmxhZ3MpLCAociB8PSBvLmZsYWdzKSwgKG8ucmV0 dXJuID0gZSksIChvID0gby5zaWJsaW5nKTsNCiAgICAgICAgICByZXR1cm4gKGUuc3VidHJl ZUZsYWdzIHw9IHIpLCAoZS5jaGlsZExhbmVzID0gbiksIHQ7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gUWwoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gdC5wZW5kaW5n UHJvcHM7DQogICAgICAgICAgc3dpdGNoICgobmEodCksIHQudGFnKSkgew0KICAgICAgICAg ICAgY2FzZSAyOg0KICAgICAgICAgICAgY2FzZSAxNjoNCiAgICAgICAgICAgIGNhc2UgMTU6 DQogICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICBjYXNlIDExOg0KICAgICAgICAg ICAgY2FzZSA3Og0KICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgY2FzZSAxMjoN CiAgICAgICAgICAgIGNhc2UgOToNCiAgICAgICAgICAgIGNhc2UgMTQ6DQogICAgICAgICAg ICAgIHJldHVybiBLbCh0KSwgbnVsbDsNCiAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAg ICAgIGNhc2UgMTc6DQogICAgICAgICAgICAgIHJldHVybiBNbyh0LnR5cGUpICYmIHpvKCks IEtsKHQpLCBudWxsOw0KICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICByZXR1 cm4gKA0KICAgICAgICAgICAgICAgIChyID0gdC5zdGF0ZU5vZGUpLA0KICAgICAgICAgICAg ICAgIGFpKCksDQogICAgICAgICAgICAgICAgUm8oTm8pLA0KICAgICAgICAgICAgICAgIFJv KE9vKSwNCiAgICAgICAgICAgICAgICBkaSgpLA0KICAgICAgICAgICAgICAgIHIucGVuZGlu Z0NvbnRleHQgJiYgKChyLmNvbnRleHQgPSByLnBlbmRpbmdDb250ZXh0KSwgKHIucGVuZGlu Z0NvbnRleHQgPSBudWxsKSksDQogICAgICAgICAgICAgICAgKG51bGwgIT09IGUgJiYgbnVs bCAhPT0gZS5jaGlsZCkgfHwgKGZhKHQpID8gKHQuZmxhZ3MgfD0gNCkgOiBudWxsID09PSBl IHx8IChlLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkICYmIDAgPT09ICgyNTYgJiB0LmZs YWdzKSkgfHwgKCh0LmZsYWdzIHw9IDEwMjQpLCBudWxsICE9PSBpYSAmJiAobHUoaWEpLCAo aWEgPSBudWxsKSkpKSwNCiAgICAgICAgICAgICAgICBNbChlLCB0KSwNCiAgICAgICAgICAg ICAgICBLbCh0KSwNCiAgICAgICAgICAgICAgICBudWxsDQogICAgICAgICAgICAgICk7DQog ICAgICAgICAgICBjYXNlIDU6DQogICAgICAgICAgICAgIGxpKHQpOw0KICAgICAgICAgICAg ICB2YXIgbyA9IHJpKG5pLmN1cnJlbnQpOw0KICAgICAgICAgICAgICBpZiAoKChuID0gdC50 eXBlKSwgbnVsbCAhPT0gZSAmJiBudWxsICE9IHQuc3RhdGVOb2RlKSkgemwoZSwgdCwgbiwg ciwgbyksIGUucmVmICE9PSB0LnJlZiAmJiAoKHQuZmxhZ3MgfD0gNTEyKSwgKHQuZmxhZ3Mg fD0gMjA5NzE1MikpOw0KICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBp ZiAoIXIpIHsNCiAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSB0LnN0YXRlTm9kZSkg dGhyb3cgRXJyb3IoYSgxNjYpKTsNCiAgICAgICAgICAgICAgICAgIHJldHVybiBLbCh0KSwg bnVsbDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCgoZSA9IHJp KGVpLmN1cnJlbnQpKSwgZmEodCkpKSB7DQogICAgICAgICAgICAgICAgICAociA9IHQuc3Rh dGVOb2RlKSwgKG4gPSB0LnR5cGUpOw0KICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0Lm1l bW9pemVkUHJvcHM7DQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKCgocltwb10gPSB0KSwg KHJbaG9dID0gaSksIChlID0gMCAhPT0gKDEgJiB0Lm1vZGUpKSwgbikpIHsNCiAgICAgICAg ICAgICAgICAgICAgY2FzZSAiZGlhbG9nIjoNCiAgICAgICAgICAgICAgICAgICAgICBCcigi Y2FuY2VsIiwgciksIEJyKCJjbG9zZSIsIHIpOw0KICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJpZnJhbWUiOg0KICAgICAgICAgICAg ICAgICAgICBjYXNlICJvYmplY3QiOg0KICAgICAgICAgICAgICAgICAgICBjYXNlICJlbWJl ZCI6DQogICAgICAgICAgICAgICAgICAgICAgQnIoImxvYWQiLCByKTsNCiAgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidmlkZW8iOg0K ICAgICAgICAgICAgICAgICAgICBjYXNlICJhdWRpbyI6DQogICAgICAgICAgICAgICAgICAg ICAgZm9yIChvID0gMDsgbyA8IGpyLmxlbmd0aDsgbysrKSBCcihqcltvXSwgcik7DQogICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInNv dXJjZSI6DQogICAgICAgICAgICAgICAgICAgICAgQnIoImVycm9yIiwgcik7DQogICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImltZyI6 DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImltYWdlIjoNCiAgICAgICAgICAgICAgICAg ICAgY2FzZSAibGluayI6DQogICAgICAgICAgICAgICAgICAgICAgQnIoImVycm9yIiwgciks IEJyKCJsb2FkIiwgcik7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICAgICAgICAgIGNhc2UgImRldGFpbHMiOg0KICAgICAgICAgICAgICAgICAgICAgIEJy KCJ0b2dnbGUiLCByKTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICAgIFkociwg aSksIEJyKCJpbnZhbGlkIiwgcik7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQog ICAgICAgICAgICAgICAgICAgIGNhc2UgInNlbGVjdCI6DQogICAgICAgICAgICAgICAgICAg ICAgKHIuX3dyYXBwZXJTdGF0ZSA9IHsgd2FzTXVsdGlwbGU6ICEhaS5tdWx0aXBsZSB9KSwg QnIoImludmFsaWQiLCByKTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAg ICAgICAgICAgICAgICAgY2FzZSAidGV4dGFyZWEiOg0KICAgICAgICAgICAgICAgICAgICAg IG9lKHIsIGkpLCBCcigiaW52YWxpZCIsIHIpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgZm9yICh2YXIgcyBpbiAoeWUobiwgaSksIChvID0gbnVsbCksIGkp KQ0KICAgICAgICAgICAgICAgICAgICBpZiAoaS5oYXNPd25Qcm9wZXJ0eShzKSkgew0KICAg ICAgICAgICAgICAgICAgICAgIHZhciB1ID0gaVtzXTsNCiAgICAgICAgICAgICAgICAgICAg ICAiY2hpbGRyZW4iID09PSBzDQogICAgICAgICAgICAgICAgICAgICAgICA/ICJzdHJpbmci ID09PSB0eXBlb2YgdQ0KICAgICAgICAgICAgICAgICAgICAgICAgICA/IHIudGV4dENvbnRl bnQgIT09IHUgJiYgKCEwICE9PSBpLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyAmJiBacihy LnRleHRDb250ZW50LCB1LCBlKSwgKG8gPSBbImNoaWxkcmVuIiwgdV0pKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICA6ICJudW1iZXIiID09PSB0eXBlb2YgdSAmJiByLnRleHRDb250 ZW50ICE9PSAiIiArIHUgJiYgKCEwICE9PSBpLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyAm JiBacihyLnRleHRDb250ZW50LCB1LCBlKSwgKG8gPSBbImNoaWxkcmVuIiwgIiIgKyB1XSkp DQogICAgICAgICAgICAgICAgICAgICAgICA6IGwuaGFzT3duUHJvcGVydHkocykgJiYgbnVs bCAhPSB1ICYmICJvblNjcm9sbCIgPT09IHMgJiYgQnIoInNjcm9sbCIsIHIpOw0KICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKG4pIHsNCiAgICAg ICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICQo ciksIEoociwgaSwgITApOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6DQogICAgICAgICAgICAgICAgICAgICAg JChyKSwgaWUocik7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgICAgIGNhc2UgInNlbGVjdCI6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgIm9w dGlvbiI6DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAg ICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlw ZW9mIGkub25DbGljayAmJiAoci5vbmNsaWNrID0gSnIpOw0KICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgKHIgPSBvKSwgKHQudXBkYXRlUXVldWUgPSByKSwgbnVs bCAhPT0gciAmJiAodC5mbGFncyB8PSA0KTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0K ICAgICAgICAgICAgICAgICAgKHMgPSA5ID09PSBvLm5vZGVUeXBlID8gbyA6IG8ub3duZXJE b2N1bWVudCksDQogICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5 L3hodG1sIiA9PT0gZSAmJiAoZSA9IGxlKG4pKSwNCiAgICAgICAgICAgICAgICAgICAgImh0 dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiID09PSBlDQogICAgICAgICAgICAgICAgICAg ICAgPyAic2NyaXB0IiA9PT0gbg0KICAgICAgICAgICAgICAgICAgICAgICAgPyAoKChlID0g cy5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MID0gIjxzY3JpcHQ+PFwvc2NyaXB0 PiIpLCAoZSA9IGUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKSkpDQogICAgICAgICAgICAg ICAgICAgICAgICA6ICJzdHJpbmciID09PSB0eXBlb2Ygci5pcw0KICAgICAgICAgICAgICAg ICAgICAgICAgICA/IChlID0gcy5jcmVhdGVFbGVtZW50KG4sIHsgaXM6IHIuaXMgfSkpDQog ICAgICAgICAgICAgICAgICAgICAgICAgIDogKChlID0gcy5jcmVhdGVFbGVtZW50KG4pKSwg InNlbGVjdCIgPT09IG4gJiYgKChzID0gZSksIHIubXVsdGlwbGUgPyAocy5tdWx0aXBsZSA9 ICEwKSA6IHIuc2l6ZSAmJiAocy5zaXplID0gci5zaXplKSkpDQogICAgICAgICAgICAgICAg ICAgICAgOiAoZSA9IHMuY3JlYXRlRWxlbWVudE5TKGUsIG4pKSwNCiAgICAgICAgICAgICAg ICAgICAgKGVbcG9dID0gdCksDQogICAgICAgICAgICAgICAgICAgIChlW2hvXSA9IHIpLA0K ICAgICAgICAgICAgICAgICAgICBBbChlLCB0LCAhMSwgITEpLA0KICAgICAgICAgICAgICAg ICAgICAodC5zdGF0ZU5vZGUgPSBlKTsNCiAgICAgICAgICAgICAgICAgIGU6IHsNCiAgICAg ICAgICAgICAgICAgICAgc3dpdGNoICgoKHMgPSBiZShuLCByKSksIG4pKSB7DQogICAgICAg ICAgICAgICAgICAgICAgY2FzZSAiZGlhbG9nIjoNCiAgICAgICAgICAgICAgICAgICAgICAg IEJyKCJjYW5jZWwiLCBlKSwgQnIoImNsb3NlIiwgZSksIChvID0gcik7DQogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJpZnJh bWUiOg0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6DQogICAgICAgICAg ICAgICAgICAgICAgY2FzZSAiZW1iZWQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgQnIo ImxvYWQiLCBlKSwgKG8gPSByKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0K ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInZpZGVvIjoNCiAgICAgICAgICAgICAgICAg ICAgICBjYXNlICJhdWRpbyI6DQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKG8gPSAw OyBvIDwganIubGVuZ3RoOyBvKyspIEJyKGpyW29dLCBlKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgIG8gPSByOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICAgICAgICAgICAgY2FzZSAic291cmNlIjoNCiAgICAgICAgICAgICAgICAgICAgICAg IEJyKCJlcnJvciIsIGUpLCAobyA9IHIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAiaW1nIjoNCiAgICAgICAgICAgICAg ICAgICAgICBjYXNlICJpbWFnZSI6DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAibGlu ayI6DQogICAgICAgICAgICAgICAgICAgICAgICBCcigiZXJyb3IiLCBlKSwgQnIoImxvYWQi LCBlKSwgKG8gPSByKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgICAgICAgICAgIGNhc2UgImRldGFpbHMiOg0KICAgICAgICAgICAgICAgICAgICAg ICAgQnIoInRvZ2dsZSIsIGUpLCAobyA9IHIpOw0KICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAg ICAgICAgICAgICAgICAgWShlLCByKSwgKG8gPSBHKGUsIHIpKSwgQnIoImludmFsaWQiLCBl KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAg ICAgIGNhc2UgIm9wdGlvbiI6DQogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAg ICAgICAgICAgICAgICAgICAgICAgIG8gPSByOw0KICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoNCiAgICAgICAg ICAgICAgICAgICAgICAgIChlLl93cmFwcGVyU3RhdGUgPSB7IHdhc011bHRpcGxlOiAhIXIu bXVsdGlwbGUgfSksIChvID0gTCh7fSwgciwgeyB2YWx1ZTogdm9pZCAwIH0pKSwgQnIoImlu dmFsaWQiLCBlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgICAgICAgICAgIGNhc2UgInRleHRhcmVhIjoNCiAgICAgICAgICAgICAgICAgICAgICAg IG9lKGUsIHIpLCAobyA9IHJlKGUsIHIpKSwgQnIoImludmFsaWQiLCBlKTsNCiAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBmb3IgKGkgaW4gKHllKG4sIG8p LCAodSA9IG8pKSkNCiAgICAgICAgICAgICAgICAgICAgICBpZiAodS5oYXNPd25Qcm9wZXJ0 eShpKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSB1W2ldOw0KICAgICAg ICAgICAgICAgICAgICAgICAgInN0eWxlIiA9PT0gaQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICA/IGdlKGUsIGMpDQogICAgICAgICAgICAgICAgICAgICAgICAgIDogImRhbmdlcm91 c2x5U2V0SW5uZXJIVE1MIiA9PT0gaQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgID8g bnVsbCAhPSAoYyA9IGMgPyBjLl9faHRtbCA6IHZvaWQgMCkgJiYgZGUoZSwgYykNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6ICJjaGlsZHJlbiIgPT09IGkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID8gInN0cmluZyIgPT09IHR5cGVvZiBjDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID8gKCJ0ZXh0YXJlYSIgIT09IG4gfHwgIiIgIT09IGMp ICYmIGZlKGUsIGMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIm51bWJl ciIgPT09IHR5cGVvZiBjICYmIGZlKGUsICIiICsgYykNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIgIT09IGkgJiYN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwcmVzc0h5ZHJhdGlvbldhcm5p bmciICE9PSBpICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0b0ZvY3Vz IiAhPT0gaSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGwuaGFzT3duUHJv cGVydHkoaSkgPyBudWxsICE9IGMgJiYgIm9uU2Nyb2xsIiA9PT0gaSAmJiBCcigic2Nyb2xs IiwgZSkgOiBudWxsICE9IGMgJiYgYihlLCBpLCBjLCBzKSk7DQogICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG4pIHsNCiAgICAgICAgICAg ICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAkKGUp LCBKKGUsIHIsICExKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgICAgICAgICAgIGNhc2UgInRleHRhcmVhIjoNCiAgICAgICAgICAgICAgICAgICAg ICAgICQoZSksIGllKGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg ICAgICAgICAgICAgICAgICAgY2FzZSAib3B0aW9uIjoNCiAgICAgICAgICAgICAgICAgICAg ICAgIG51bGwgIT0gci52YWx1ZSAmJiBlLnNldEF0dHJpYnV0ZSgidmFsdWUiLCAiIiArIEgo ci52YWx1ZSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIChl Lm11bHRpcGxlID0gISFyLm11bHRpcGxlKSwgbnVsbCAhPSAoaSA9IHIudmFsdWUpID8gbmUo ZSwgISFyLm11bHRpcGxlLCBpLCAhMSkgOiBudWxsICE9IHIuZGVmYXVsdFZhbHVlICYmIG5l KGUsICEhci5tdWx0aXBsZSwgci5kZWZhdWx0VmFsdWUsICEwKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAg ICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2Ygby5vbkNsaWNrICYm IChlLm9uY2xpY2sgPSBKcik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgc3dpdGNoIChuKSB7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnV0 dG9uIjoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAg ICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNl ICJ0ZXh0YXJlYSI6DQogICAgICAgICAgICAgICAgICAgICAgICByID0gISFyLmF1dG9Gb2N1 czsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAg ICAgICAgY2FzZSAiaW1nIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSAhMDsNCiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgICAg ZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSAhMTsNCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgciAm JiAodC5mbGFncyB8PSA0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg bnVsbCAhPT0gdC5yZWYgJiYgKCh0LmZsYWdzIHw9IDUxMiksICh0LmZsYWdzIHw9IDIwOTcx NTIpKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gS2wodCksIG51 bGw7DQogICAgICAgICAgICBjYXNlIDY6DQogICAgICAgICAgICAgIGlmIChlICYmIG51bGwg IT0gdC5zdGF0ZU5vZGUpIGpsKGUsIHQsIGUubWVtb2l6ZWRQcm9wcywgcik7DQogICAgICAg ICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmICgic3RyaW5nIiAhPT0gdHlwZW9m IHIgJiYgbnVsbCA9PT0gdC5zdGF0ZU5vZGUpIHRocm93IEVycm9yKGEoMTY2KSk7DQogICAg ICAgICAgICAgICAgaWYgKCgobiA9IHJpKG5pLmN1cnJlbnQpKSwgcmkoZWkuY3VycmVudCks IGZhKHQpKSkgew0KICAgICAgICAgICAgICAgICAgaWYgKCgociA9IHQuc3RhdGVOb2RlKSwg KG4gPSB0Lm1lbW9pemVkUHJvcHMpLCAocltwb10gPSB0KSwgKGkgPSByLm5vZGVWYWx1ZSAh PT0gbikgJiYgbnVsbCAhPT0gKGUgPSByYSkpKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0 Y2ggKGUudGFnKSB7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAg ICAgICAgICAgICAgICAgWnIoci5ub2RlVmFsdWUsIG4sIDAgIT09ICgxICYgZS5tb2RlKSk7 DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAg ICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICAgICAgICAhMCAhPT0gZS5tZW1vaXplZFBy b3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyAmJiBacihyLm5vZGVWYWx1ZSwgbiwgMCAh PT0gKDEgJiBlLm1vZGUpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgaSAmJiAodC5mbGFncyB8PSA0KTsNCiAgICAgICAgICAgICAgICB9IGVsc2UgKChy ID0gKDkgPT09IG4ubm9kZVR5cGUgPyBuIDogbi5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0 Tm9kZShyKSlbcG9dID0gdCksICh0LnN0YXRlTm9kZSA9IHIpOw0KICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgIHJldHVybiBLbCh0KSwgbnVsbDsNCiAgICAgICAgICAgIGNhc2Ug MTM6DQogICAgICAgICAgICAgIGlmICgoUm8oc2kpLCAociA9IHQubWVtb2l6ZWRTdGF0ZSks IG51bGwgPT09IGUgfHwgKG51bGwgIT09IGUubWVtb2l6ZWRTdGF0ZSAmJiBudWxsICE9PSBl Lm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCkpKSB7DQogICAgICAgICAgICAgICAgaWYgKGFh ICYmIG51bGwgIT09IG9hICYmIDAgIT09ICgxICYgdC5tb2RlKSAmJiAwID09PSAoMTI4ICYg dC5mbGFncykpIHBhKCksIGhhKCksICh0LmZsYWdzIHw9IDk4NTYwKSwgKGkgPSAhMSk7DQog ICAgICAgICAgICAgICAgZWxzZSBpZiAoKChpID0gZmEodCkpLCBudWxsICE9PSByICYmIG51 bGwgIT09IHIuZGVoeWRyYXRlZCkpIHsNCiAgICAgICAgICAgICAgICAgIGlmIChudWxsID09 PSBlKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICghaSkgdGhyb3cgRXJyb3IoYSgzMTgp KTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCEoaSA9IG51bGwgIT09IChpID0gdC5tZW1v aXplZFN0YXRlKSA/IGkuZGVoeWRyYXRlZCA6IG51bGwpKSB0aHJvdyBFcnJvcihhKDMxNykp Ow0KICAgICAgICAgICAgICAgICAgICBpW3BvXSA9IHQ7DQogICAgICAgICAgICAgICAgICB9 IGVsc2UgaGEoKSwgMCA9PT0gKDEyOCAmIHQuZmxhZ3MpICYmICh0Lm1lbW9pemVkU3RhdGUg PSBudWxsKSwgKHQuZmxhZ3MgfD0gNCk7DQogICAgICAgICAgICAgICAgICBLbCh0KSwgKGkg PSAhMSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIG51bGwgIT09IGlhICYmIChsdShpYSks IChpYSA9IG51bGwpKSwgKGkgPSAhMCk7DQogICAgICAgICAgICAgICAgaWYgKCFpKSByZXR1 cm4gNjU1MzYgJiB0LmZsYWdzID8gdCA6IG51bGw7DQogICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgcmV0dXJuIDAgIT09ICgxMjggJiB0LmZsYWdzKQ0KICAgICAgICAgICAgICAg ID8gKCh0LmxhbmVzID0gbiksIHQpDQogICAgICAgICAgICAgICAgOiAoKHIgPSBudWxsICE9 PSByKSAhPT0gKG51bGwgIT09IGUgJiYgbnVsbCAhPT0gZS5tZW1vaXplZFN0YXRlKSAmJiBy ICYmICgodC5jaGlsZC5mbGFncyB8PSA4MTkyKSwgMCAhPT0gKDEgJiB0Lm1vZGUpICYmIChu dWxsID09PSBlIHx8IDAgIT09ICgxICYgc2kuY3VycmVudCkgPyAwID09PSBqcyAmJiAoanMg PSAzKSA6IGd1KCkpKSwNCiAgICAgICAgICAgICAgICAgIG51bGwgIT09IHQudXBkYXRlUXVl dWUgJiYgKHQuZmxhZ3MgfD0gNCksDQogICAgICAgICAgICAgICAgICBLbCh0KSwNCiAgICAg ICAgICAgICAgICAgIG51bGwpOw0KICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAg ICByZXR1cm4gYWkoKSwgTWwoZSwgdCksIG51bGwgPT09IGUgJiYgV3IodC5zdGF0ZU5vZGUu Y29udGFpbmVySW5mbyksIEtsKHQpLCBudWxsOw0KICAgICAgICAgICAgY2FzZSAxMDoNCiAg ICAgICAgICAgICAgcmV0dXJuIGthKHQudHlwZS5fY29udGV4dCksIEtsKHQpLCBudWxsOw0K ICAgICAgICAgICAgY2FzZSAxOToNCiAgICAgICAgICAgICAgaWYgKChSbyhzaSksIG51bGwg PT09IChpID0gdC5tZW1vaXplZFN0YXRlKSkpIHJldHVybiBLbCh0KSwgbnVsbDsNCiAgICAg ICAgICAgICAgaWYgKCgociA9IDAgIT09ICgxMjggJiB0LmZsYWdzKSksIG51bGwgPT09IChz ID0gaS5yZW5kZXJpbmcpKSkNCiAgICAgICAgICAgICAgICBpZiAocikgJGwoaSwgITEpOw0K ICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgaWYgKDAgIT09IGpz IHx8IChudWxsICE9PSBlICYmIDAgIT09ICgxMjggJiBlLmZsYWdzKSkpDQogICAgICAgICAg ICAgICAgICAgIGZvciAoZSA9IHQuY2hpbGQ7IG51bGwgIT09IGU7KSB7DQogICAgICAgICAg ICAgICAgICAgICAgaWYgKG51bGwgIT09IChzID0gdWkoZSkpKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICBmb3IgKHQuZmxhZ3MgfD0gMTI4LCAkbChpLCAhMSksIG51bGwgIT09IChy ID0gcy51cGRhdGVRdWV1ZSkgJiYgKCh0LnVwZGF0ZVF1ZXVlID0gciksICh0LmZsYWdzIHw9 IDQpKSwgdC5zdWJ0cmVlRmxhZ3MgPSAwLCByID0gbiwgbiA9IHQuY2hpbGQ7IG51bGwgIT09 IG47KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAoZSA9IHIpLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgoaSA9IG4pLmZsYWdzICY9IDE0NjgwMDY2KSwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBudWxsID09PSAocyA9IGkuYWx0ZXJuYXRlKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGkuY2hpbGRMYW5lcyA9IDApLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5sYW5lcyA9IGUpLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoaS5jaGlsZCA9IG51bGwpLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoaS5zdWJ0cmVlRmxhZ3MgPSAwKSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGkubWVtb2l6ZWRQcm9wcyA9IG51bGwpLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaS5tZW1vaXplZFN0YXRlID0gbnVsbCksDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLnVwZGF0ZVF1ZXVlID0gbnVsbCksDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLmRlcGVuZGVuY2llcyA9IG51bGwp LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5zdGF0ZU5vZGUgPSBudWxs KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChpLmNoaWxkTGFuZXMgPSBz LmNoaWxkTGFuZXMpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5sYW5l cyA9IHMubGFuZXMpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5jaGls ZCA9IHMuY2hpbGQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5zdWJ0 cmVlRmxhZ3MgPSAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkuZGVs ZXRpb25zID0gbnVsbCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLm1l bW9pemVkUHJvcHMgPSBzLm1lbW9pemVkUHJvcHMpLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoaS5tZW1vaXplZFN0YXRlID0gcy5tZW1vaXplZFN0YXRlKSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkudXBkYXRlUXVldWUgPSBzLnVwZGF0ZVF1 ZXVlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkudHlwZSA9IHMudHlw ZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlID0gcy5kZXBlbmRlbmNp ZXMpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5kZXBlbmRlbmNpZXMg PSBudWxsID09PSBlID8gbnVsbCA6IHsgbGFuZXM6IGUubGFuZXMsIGZpcnN0Q29udGV4dDog ZS5maXJzdENvbnRleHQgfSkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuID0g bi5zaWJsaW5nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfbyhzaSwgKDEg JiBzaS5jdXJyZW50KSB8IDIpLCB0LmNoaWxkOw0KICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICBlID0gZS5zaWJsaW5nOw0KICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICBudWxsICE9PSBpLnRhaWwgJiYgWGUoKSA+IFZz ICYmICgodC5mbGFncyB8PSAxMjgpLCAociA9ICEwKSwgJGwoaSwgITEpLCAodC5sYW5lcyA9 IDQxOTQzMDQpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGVsc2Ugew0K ICAgICAgICAgICAgICAgIGlmICghcikNCiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9 PSAoZSA9IHVpKHMpKSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoKCh0LmZsYWdzIHw9 IDEyOCksIChyID0gITApLCBudWxsICE9PSAobiA9IGUudXBkYXRlUXVldWUpICYmICgodC51 cGRhdGVRdWV1ZSA9IG4pLCAodC5mbGFncyB8PSA0KSksICRsKGksICEwKSwgbnVsbCA9PT0g aS50YWlsICYmICJoaWRkZW4iID09PSBpLnRhaWxNb2RlICYmICFzLmFsdGVybmF0ZSAmJiAh YWEpKQ0KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBLbCh0KSwgbnVsbDsNCiAgICAg ICAgICAgICAgICAgIH0gZWxzZSAyICogWGUoKSAtIGkucmVuZGVyaW5nU3RhcnRUaW1lID4g VnMgJiYgMTA3Mzc0MTgyNCAhPT0gbiAmJiAoKHQuZmxhZ3MgfD0gMTI4KSwgKHIgPSAhMCks ICRsKGksICExKSwgKHQubGFuZXMgPSA0MTk0MzA0KSk7DQogICAgICAgICAgICAgICAgaS5p c0JhY2t3YXJkcyA/ICgocy5zaWJsaW5nID0gdC5jaGlsZCksICh0LmNoaWxkID0gcykpIDog KG51bGwgIT09IChuID0gaS5sYXN0KSA/IChuLnNpYmxpbmcgPSBzKSA6ICh0LmNoaWxkID0g cyksIChpLmxhc3QgPSBzKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0 dXJuIG51bGwgIT09IGkudGFpbCA/ICgodCA9IGkudGFpbCksIChpLnJlbmRlcmluZyA9IHQp LCAoaS50YWlsID0gdC5zaWJsaW5nKSwgKGkucmVuZGVyaW5nU3RhcnRUaW1lID0gWGUoKSks ICh0LnNpYmxpbmcgPSBudWxsKSwgKG4gPSBzaS5jdXJyZW50KSwgX28oc2ksIHIgPyAoMSAm IG4pIHwgMiA6IDEgJiBuKSwgdCkgOiAoS2wodCksIG51bGwpOw0KICAgICAgICAgICAgY2Fz ZSAyMjoNCiAgICAgICAgICAgIGNhc2UgMjM6DQogICAgICAgICAgICAgIHJldHVybiAoDQog ICAgICAgICAgICAgICAgZnUoKSwNCiAgICAgICAgICAgICAgICAociA9IG51bGwgIT09IHQu bWVtb2l6ZWRTdGF0ZSksDQogICAgICAgICAgICAgICAgbnVsbCAhPT0gZSAmJiAobnVsbCAh PT0gZS5tZW1vaXplZFN0YXRlKSAhPT0gciAmJiAodC5mbGFncyB8PSA4MTkyKSwNCiAgICAg ICAgICAgICAgICByICYmIDAgIT09ICgxICYgdC5tb2RlKSA/IDAgIT09ICgxMDczNzQxODI0 ICYgTXMpICYmIChLbCh0KSwgNiAmIHQuc3VidHJlZUZsYWdzICYmICh0LmZsYWdzIHw9IDgx OTIpKSA6IEtsKHQpLA0KICAgICAgICAgICAgICAgIG51bGwNCiAgICAgICAgICAgICAgKTsN CiAgICAgICAgICAgIGNhc2UgMjQ6DQogICAgICAgICAgICBjYXNlIDI1Og0KICAgICAgICAg ICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICB9DQogICAgICAgICAgdGhyb3cgRXJyb3Io YSgxNTYsIHQudGFnKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gR2woZSwgdCkg ew0KICAgICAgICAgIHN3aXRjaCAoKG5hKHQpLCB0LnRhZykpIHsNCiAgICAgICAgICAgIGNh c2UgMToNCiAgICAgICAgICAgICAgcmV0dXJuIE1vKHQudHlwZSkgJiYgem8oKSwgNjU1MzYg JiAoZSA9IHQuZmxhZ3MpID8gKCh0LmZsYWdzID0gKC02NTUzNyAmIGUpIHwgMTI4KSwgdCkg OiBudWxsOw0KICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICByZXR1cm4gYWko KSwgUm8oTm8pLCBSbyhPbyksIGRpKCksIDAgIT09ICg2NTUzNiAmIChlID0gdC5mbGFncykp ICYmIDAgPT09ICgxMjggJiBlKSA/ICgodC5mbGFncyA9ICgtNjU1MzcgJiBlKSB8IDEyOCks IHQpIDogbnVsbDsNCiAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgcmV0dXJu IGxpKHQpLCBudWxsOw0KICAgICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAgaWYg KChSbyhzaSksIG51bGwgIT09IChlID0gdC5tZW1vaXplZFN0YXRlKSAmJiBudWxsICE9PSBl LmRlaHlkcmF0ZWQpKSB7DQogICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IHQuYWx0ZXJu YXRlKSB0aHJvdyBFcnJvcihhKDM0MCkpOw0KICAgICAgICAgICAgICAgIGhhKCk7DQogICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIDY1NTM2ICYgKGUgPSB0LmZsYWdz KSA/ICgodC5mbGFncyA9ICgtNjU1MzcgJiBlKSB8IDEyOCksIHQpIDogbnVsbDsNCiAgICAg ICAgICAgIGNhc2UgMTk6DQogICAgICAgICAgICAgIHJldHVybiBSbyhzaSksIG51bGw7DQog ICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgIHJldHVybiBhaSgpLCBudWxsOw0K ICAgICAgICAgICAgY2FzZSAxMDoNCiAgICAgICAgICAgICAgcmV0dXJuIGthKHQudHlwZS5f Y29udGV4dCksIG51bGw7DQogICAgICAgICAgICBjYXNlIDIyOg0KICAgICAgICAgICAgY2Fz ZSAyMzoNCiAgICAgICAgICAgICAgcmV0dXJuIGZ1KCksIG51bGw7DQogICAgICAgICAgICBk ZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICB9DQogICAg ICAgIH0NCiAgICAgICAgKEFsID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICBmb3Ig KHZhciBuID0gdC5jaGlsZDsgbnVsbCAhPT0gbjspIHsNCiAgICAgICAgICAgIGlmICg1ID09 PSBuLnRhZyB8fCA2ID09PSBuLnRhZykgZS5hcHBlbmRDaGlsZChuLnN0YXRlTm9kZSk7DQog ICAgICAgICAgICBlbHNlIGlmICg0ICE9PSBuLnRhZyAmJiBudWxsICE9PSBuLmNoaWxkKSB7 DQogICAgICAgICAgICAgIChuLmNoaWxkLnJldHVybiA9IG4pLCAobiA9IG4uY2hpbGQpOw0K ICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlm IChuID09PSB0KSBicmVhazsNCiAgICAgICAgICAgIGZvciAoOyBudWxsID09PSBuLnNpYmxp bmc7KSB7DQogICAgICAgICAgICAgIGlmIChudWxsID09PSBuLnJldHVybiB8fCBuLnJldHVy biA9PT0gdCkgcmV0dXJuOw0KICAgICAgICAgICAgICBuID0gbi5yZXR1cm47DQogICAgICAg ICAgICB9DQogICAgICAgICAgICAobi5zaWJsaW5nLnJldHVybiA9IG4ucmV0dXJuKSwgKG4g PSBuLnNpYmxpbmcpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSksDQogICAgICAgICAgKE1s ID0gZnVuY3Rpb24gKCkgeyB9KSwNCiAgICAgICAgICAoemwgPSBmdW5jdGlvbiAoZSwgdCwg biwgcikgew0KICAgICAgICAgICAgdmFyIG8gPSBlLm1lbW9pemVkUHJvcHM7DQogICAgICAg ICAgICBpZiAobyAhPT0gcikgew0KICAgICAgICAgICAgICAoZSA9IHQuc3RhdGVOb2RlKSwg cmkoZWkuY3VycmVudCk7DQogICAgICAgICAgICAgIHZhciBhLA0KICAgICAgICAgICAgICAg IGkgPSBudWxsOw0KICAgICAgICAgICAgICBzd2l0Y2ggKG4pIHsNCiAgICAgICAgICAgICAg ICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAobyA9IEcoZSwgbykpLCAociA9 IEcoZSwgcikpLCAoaSA9IFtdKTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgICAgIGNhc2UgInNlbGVjdCI6DQogICAgICAgICAgICAgICAgICAobyA9IEwoe30s IG8sIHsgdmFsdWU6IHZvaWQgMCB9KSksIChyID0gTCh7fSwgciwgeyB2YWx1ZTogdm9pZCAw IH0pKSwgKGkgPSBbXSk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg ICAgICBjYXNlICJ0ZXh0YXJlYSI6DQogICAgICAgICAgICAgICAgICAobyA9IHJlKGUsIG8p KSwgKHIgPSByZShlLCByKSksIChpID0gW10pOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7 DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICJmdW5jdGlv biIgIT09IHR5cGVvZiBvLm9uQ2xpY2sgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHIub25D bGljayAmJiAoZS5vbmNsaWNrID0gSnIpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgIGZvciAoYyBpbiAoeWUobiwgciksIChuID0gbnVsbCksIG8pKQ0KICAgICAgICAgICAg ICAgIGlmICghci5oYXNPd25Qcm9wZXJ0eShjKSAmJiBvLmhhc093blByb3BlcnR5KGMpICYm IG51bGwgIT0gb1tjXSkNCiAgICAgICAgICAgICAgICAgIGlmICgic3R5bGUiID09PSBjKSB7 DQogICAgICAgICAgICAgICAgICAgIHZhciBzID0gb1tjXTsNCiAgICAgICAgICAgICAgICAg ICAgZm9yIChhIGluIHMpIHMuaGFzT3duUHJvcGVydHkoYSkgJiYgKG4gfHwgKG4gPSB7fSks IChuW2FdID0gIiIpKTsNCiAgICAgICAgICAgICAgICAgIH0gZWxzZQ0KICAgICAgICAgICAg ICAgICAgICAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiICE9PSBjICYmDQogICAgICAgICAg ICAgICAgICAgICAgImNoaWxkcmVuIiAhPT0gYyAmJg0KICAgICAgICAgICAgICAgICAgICAg ICJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciICE9PSBjICYmDQogICAgICAgICAg ICAgICAgICAgICAgInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIgIT09IGMgJiYNCiAgICAg ICAgICAgICAgICAgICAgICAiYXV0b0ZvY3VzIiAhPT0gYyAmJg0KICAgICAgICAgICAgICAg ICAgICAgIChsLmhhc093blByb3BlcnR5KGMpID8gaSB8fCAoaSA9IFtdKSA6IChpID0gaSB8 fCBbXSkucHVzaChjLCBudWxsKSk7DQogICAgICAgICAgICAgIGZvciAoYyBpbiByKSB7DQog ICAgICAgICAgICAgICAgdmFyIHUgPSByW2NdOw0KICAgICAgICAgICAgICAgIGlmICgoKHMg PSBudWxsICE9IG8gPyBvW2NdIDogdm9pZCAwKSwgci5oYXNPd25Qcm9wZXJ0eShjKSAmJiB1 ICE9PSBzICYmIChudWxsICE9IHUgfHwgbnVsbCAhPSBzKSkpDQogICAgICAgICAgICAgICAg ICBpZiAoInN0eWxlIiA9PT0gYykNCiAgICAgICAgICAgICAgICAgICAgaWYgKHMpIHsNCiAg ICAgICAgICAgICAgICAgICAgICBmb3IgKGEgaW4gcykgIXMuaGFzT3duUHJvcGVydHkoYSkg fHwgKHUgJiYgdS5oYXNPd25Qcm9wZXJ0eShhKSkgfHwgKG4gfHwgKG4gPSB7fSksIChuW2Fd ID0gIiIpKTsNCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGEgaW4gdSkgdS5oYXNPd25Q cm9wZXJ0eShhKSAmJiBzW2FdICE9PSB1W2FdICYmIChuIHx8IChuID0ge30pLCAoblthXSA9 IHVbYV0pKTsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIG4gfHwgKGkgfHwgKGkgPSBb XSksIGkucHVzaChjLCBuKSksIChuID0gdSk7DQogICAgICAgICAgICAgICAgICBlbHNlDQog ICAgICAgICAgICAgICAgICAgICJkYW5nZXJvdXNseVNldElubmVySFRNTCIgPT09IGMNCiAg ICAgICAgICAgICAgICAgICAgICA/ICgodSA9IHUgPyB1Ll9faHRtbCA6IHZvaWQgMCksIChz ID0gcyA/IHMuX19odG1sIDogdm9pZCAwKSwgbnVsbCAhPSB1ICYmIHMgIT09IHUgJiYgKGkg PSBpIHx8IFtdKS5wdXNoKGMsIHUpKQ0KICAgICAgICAgICAgICAgICAgICAgIDogImNoaWxk cmVuIiA9PT0gYw0KICAgICAgICAgICAgICAgICAgICAgICAgPyAoInN0cmluZyIgIT09IHR5 cGVvZiB1ICYmICJudW1iZXIiICE9PSB0eXBlb2YgdSkgfHwgKGkgPSBpIHx8IFtdKS5wdXNo KGMsICIiICsgdSkNCiAgICAgICAgICAgICAgICAgICAgICAgIDogInN1cHByZXNzQ29udGVu dEVkaXRhYmxlV2FybmluZyIgIT09IGMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICJz dXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciICE9PSBjICYmDQogICAgICAgICAgICAgICAgICAg ICAgICAobC5oYXNPd25Qcm9wZXJ0eShjKSA/IChudWxsICE9IHUgJiYgIm9uU2Nyb2xsIiA9 PT0gYyAmJiBCcigic2Nyb2xsIiwgZSksIGkgfHwgcyA9PT0gdSB8fCAoaSA9IFtdKSkgOiAo aSA9IGkgfHwgW10pLnB1c2goYywgdSkpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgIG4gJiYgKGkgPSBpIHx8IFtdKS5wdXNoKCJzdHlsZSIsIG4pOw0KICAgICAgICAgICAg ICB2YXIgYyA9IGk7DQogICAgICAgICAgICAgICh0LnVwZGF0ZVF1ZXVlID0gYykgJiYgKHQu ZmxhZ3MgfD0gNCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSksDQogICAgICAgICAg KGpsID0gZnVuY3Rpb24gKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAgIG4gIT09IHIgJiYg KHQuZmxhZ3MgfD0gNCk7DQogICAgICAgICAgfSk7DQogICAgICAgIHZhciBZbCA9ICExLA0K ICAgICAgICAgIFhsID0gITEsDQogICAgICAgICAgWmwgPSAiZnVuY3Rpb24iID09PSB0eXBl b2YgV2Vha1NldCA/IFdlYWtTZXQgOiBTZXQsDQogICAgICAgICAgSmwgPSBudWxsOw0KICAg ICAgICBmdW5jdGlvbiBlcyhlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBlLnJlZjsNCiAg ICAgICAgICBpZiAobnVsbCAhPT0gbikNCiAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09 PSB0eXBlb2YgbikNCiAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBuKG51 bGwpOw0KICAgICAgICAgICAgICB9IGNhdGNoIChyKSB7DQogICAgICAgICAgICAgICAgQ3Uo ZSwgdCwgcik7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugbi5jdXJyZW50 ID0gbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB0cyhlLCB0LCBuKSB7DQog ICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIG4oKTsNCiAgICAgICAgICB9IGNhdGNoIChy KSB7DQogICAgICAgICAgICBDdShlLCB0LCByKTsNCiAgICAgICAgICB9DQogICAgICAgIH0N CiAgICAgICAgdmFyIG5zID0gITE7DQogICAgICAgIGZ1bmN0aW9uIHJzKGUsIHQsIG4pIHsN CiAgICAgICAgICB2YXIgciA9IHQudXBkYXRlUXVldWU7DQogICAgICAgICAgaWYgKG51bGwg IT09IChyID0gbnVsbCAhPT0gciA/IHIubGFzdEVmZmVjdCA6IG51bGwpKSB7DQogICAgICAg ICAgICB2YXIgbyA9IChyID0gci5uZXh0KTsNCiAgICAgICAgICAgIGRvIHsNCiAgICAgICAg ICAgICAgaWYgKChvLnRhZyAmIGUpID09PSBlKSB7DQogICAgICAgICAgICAgICAgdmFyIGEg PSBvLmRlc3Ryb3k7DQogICAgICAgICAgICAgICAgKG8uZGVzdHJveSA9IHZvaWQgMCksIHZv aWQgMCAhPT0gYSAmJiB0cyh0LCBuLCBhKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICBvID0gby5uZXh0Ow0KICAgICAgICAgICAgfSB3aGlsZSAobyAhPT0gcik7DQogICAg ICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG9zKGUsIHQpIHsNCiAgICAg ICAgICBpZiAobnVsbCAhPT0gKHQgPSBudWxsICE9PSAodCA9IHQudXBkYXRlUXVldWUpID8g dC5sYXN0RWZmZWN0IDogbnVsbCkpIHsNCiAgICAgICAgICAgIHZhciBuID0gKHQgPSB0Lm5l eHQpOw0KICAgICAgICAgICAgZG8gew0KICAgICAgICAgICAgICBpZiAoKG4udGFnICYgZSkg PT09IGUpIHsNCiAgICAgICAgICAgICAgICB2YXIgciA9IG4uY3JlYXRlOw0KICAgICAgICAg ICAgICAgIG4uZGVzdHJveSA9IHIoKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICBuID0gbi5uZXh0Ow0KICAgICAgICAgICAgfSB3aGlsZSAobiAhPT0gdCk7DQogICAgICAg ICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGFzKGUpIHsNCiAgICAgICAgICB2 YXIgdCA9IGUucmVmOw0KICAgICAgICAgIGlmIChudWxsICE9PSB0KSB7DQogICAgICAgICAg ICB2YXIgbiA9IGUuc3RhdGVOb2RlOw0KICAgICAgICAgICAgZS50YWcsIChlID0gbiksICJm dW5jdGlvbiIgPT09IHR5cGVvZiB0ID8gdChlKSA6ICh0LmN1cnJlbnQgPSBlKTsNCiAgICAg ICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaXMoZSkgew0KICAgICAgICAg IHZhciB0ID0gZS5hbHRlcm5hdGU7DQogICAgICAgICAgbnVsbCAhPT0gdCAmJiAoKGUuYWx0 ZXJuYXRlID0gbnVsbCksIGlzKHQpKSwNCiAgICAgICAgICAgIChlLmNoaWxkID0gbnVsbCks DQogICAgICAgICAgICAoZS5kZWxldGlvbnMgPSBudWxsKSwNCiAgICAgICAgICAgIChlLnNp YmxpbmcgPSBudWxsKSwNCiAgICAgICAgICAgIDUgPT09IGUudGFnICYmIG51bGwgIT09ICh0 ID0gZS5zdGF0ZU5vZGUpICYmIChkZWxldGUgdFtwb10sIGRlbGV0ZSB0W2hvXSwgZGVsZXRl IHRbZ29dLCBkZWxldGUgdFt2b10sIGRlbGV0ZSB0W3lvXSksDQogICAgICAgICAgICAoZS5z dGF0ZU5vZGUgPSBudWxsKSwNCiAgICAgICAgICAgIChlLnJldHVybiA9IG51bGwpLA0KICAg ICAgICAgICAgKGUuZGVwZW5kZW5jaWVzID0gbnVsbCksDQogICAgICAgICAgICAoZS5tZW1v aXplZFByb3BzID0gbnVsbCksDQogICAgICAgICAgICAoZS5tZW1vaXplZFN0YXRlID0gbnVs bCksDQogICAgICAgICAgICAoZS5wZW5kaW5nUHJvcHMgPSBudWxsKSwNCiAgICAgICAgICAg IChlLnN0YXRlTm9kZSA9IG51bGwpLA0KICAgICAgICAgICAgKGUudXBkYXRlUXVldWUgPSBu dWxsKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBscyhlKSB7DQogICAgICAgICAg cmV0dXJuIDUgPT09IGUudGFnIHx8IDMgPT09IGUudGFnIHx8IDQgPT09IGUudGFnOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHNzKGUpIHsNCiAgICAgICAgICBlOiBmb3IgKDsg Oykgew0KICAgICAgICAgICAgZm9yICg7IG51bGwgPT09IGUuc2libGluZzspIHsNCiAgICAg ICAgICAgICAgaWYgKG51bGwgPT09IGUucmV0dXJuIHx8IGxzKGUucmV0dXJuKSkgcmV0dXJu IG51bGw7DQogICAgICAgICAgICAgIGUgPSBlLnJldHVybjsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIGZvciAoZS5zaWJsaW5nLnJldHVybiA9IGUucmV0dXJuLCBlID0gZS5zaWJs aW5nOyA1ICE9PSBlLnRhZyAmJiA2ICE9PSBlLnRhZyAmJiAxOCAhPT0gZS50YWc7KSB7DQog ICAgICAgICAgICAgIGlmICgyICYgZS5mbGFncykgY29udGludWUgZTsNCiAgICAgICAgICAg ICAgaWYgKG51bGwgPT09IGUuY2hpbGQgfHwgNCA9PT0gZS50YWcpIGNvbnRpbnVlIGU7DQog ICAgICAgICAgICAgIChlLmNoaWxkLnJldHVybiA9IGUpLCAoZSA9IGUuY2hpbGQpOw0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCEoMiAmIGUuZmxhZ3MpKSByZXR1cm4gZS5z dGF0ZU5vZGU7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHVz KGUsIHQsIG4pIHsNCiAgICAgICAgICB2YXIgciA9IGUudGFnOw0KICAgICAgICAgIGlmICg1 ID09PSByIHx8IDYgPT09IHIpDQogICAgICAgICAgICAoZSA9IGUuc3RhdGVOb2RlKSwNCiAg ICAgICAgICAgICAgdA0KICAgICAgICAgICAgICAgID8gOCA9PT0gbi5ub2RlVHlwZQ0KICAg ICAgICAgICAgICAgICAgPyBuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsIHQpDQogICAg ICAgICAgICAgICAgICA6IG4uaW5zZXJ0QmVmb3JlKGUsIHQpDQogICAgICAgICAgICAgICAg OiAoOCA9PT0gbi5ub2RlVHlwZSA/ICh0ID0gbi5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUo ZSwgbikgOiAodCA9IG4pLmFwcGVuZENoaWxkKGUpLCAobnVsbCAhPT0gKG4gPSBuLl9yZWFj dFJvb3RDb250YWluZXIpICYmIHZvaWQgMCAhPT0gbikgfHwgbnVsbCAhPT0gdC5vbmNsaWNr IHx8ICh0Lm9uY2xpY2sgPSBKcikpOw0KICAgICAgICAgIGVsc2UgaWYgKDQgIT09IHIgJiYg bnVsbCAhPT0gKGUgPSBlLmNoaWxkKSkgZm9yICh1cyhlLCB0LCBuKSwgZSA9IGUuc2libGlu ZzsgbnVsbCAhPT0gZTspIHVzKGUsIHQsIG4pLCAoZSA9IGUuc2libGluZyk7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gY3MoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0g ZS50YWc7DQogICAgICAgICAgaWYgKDUgPT09IHIgfHwgNiA9PT0gcikgKGUgPSBlLnN0YXRl Tm9kZSksIHQgPyBuLmluc2VydEJlZm9yZShlLCB0KSA6IG4uYXBwZW5kQ2hpbGQoZSk7DQog ICAgICAgICAgZWxzZSBpZiAoNCAhPT0gciAmJiBudWxsICE9PSAoZSA9IGUuY2hpbGQpKSBm b3IgKGNzKGUsIHQsIG4pLCBlID0gZS5zaWJsaW5nOyBudWxsICE9PSBlOykgY3MoZSwgdCwg biksIChlID0gZS5zaWJsaW5nKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgZHMgPSBudWxs LA0KICAgICAgICAgIGZzID0gITE7DQogICAgICAgIGZ1bmN0aW9uIHBzKGUsIHQsIG4pIHsN CiAgICAgICAgICBmb3IgKG4gPSBuLmNoaWxkOyBudWxsICE9PSBuOykgaHMoZSwgdCwgbiks IChuID0gbi5zaWJsaW5nKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBocyhlLCB0 LCBuKSB7DQogICAgICAgICAgaWYgKGF0ICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhdC5v bkNvbW1pdEZpYmVyVW5tb3VudCkNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg IGF0Lm9uQ29tbWl0RmliZXJVbm1vdW50KG90LCBuKTsNCiAgICAgICAgICAgIH0gY2F0Y2gg KGwpIHsgfQ0KICAgICAgICAgIHN3aXRjaCAobi50YWcpIHsNCiAgICAgICAgICAgIGNhc2Ug NToNCiAgICAgICAgICAgICAgWGwgfHwgZXMobiwgdCk7DQogICAgICAgICAgICBjYXNlIDY6 DQogICAgICAgICAgICAgIHZhciByID0gZHMsDQogICAgICAgICAgICAgICAgbyA9IGZzOw0K ICAgICAgICAgICAgICAoZHMgPSBudWxsKSwgcHMoZSwgdCwgbiksIChmcyA9IG8pLCBudWxs ICE9PSAoZHMgPSByKSAmJiAoZnMgPyAoKGUgPSBkcyksIChuID0gbi5zdGF0ZU5vZGUpLCA4 ID09PSBlLm5vZGVUeXBlID8gZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pIDogZS5yZW1v dmVDaGlsZChuKSkgOiBkcy5yZW1vdmVDaGlsZChuLnN0YXRlTm9kZSkpOw0KICAgICAgICAg ICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMTg6DQogICAgICAgICAgICAgIG51bGwg IT09IGRzICYmIChmcyA/ICgoZSA9IGRzKSwgKG4gPSBuLnN0YXRlTm9kZSksIDggPT09IGUu bm9kZVR5cGUgPyBzbyhlLnBhcmVudE5vZGUsIG4pIDogMSA9PT0gZS5ub2RlVHlwZSAmJiBz byhlLCBuKSwgV3QoZSkpIDogc28oZHMsIG4uc3RhdGVOb2RlKSk7DQogICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAociA9IGRzKSwg KG8gPSBmcyksIChkcyA9IG4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLCAoZnMgPSAhMCks IHBzKGUsIHQsIG4pLCAoZHMgPSByKSwgKGZzID0gbyk7DQogICAgICAgICAgICAgIGJyZWFr Ow0KICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAg ICAgIGNhc2UgMTQ6DQogICAgICAgICAgICBjYXNlIDE1Og0KICAgICAgICAgICAgICBpZiAo IVhsICYmIG51bGwgIT09IChyID0gbi51cGRhdGVRdWV1ZSkgJiYgbnVsbCAhPT0gKHIgPSBy Lmxhc3RFZmZlY3QpKSB7DQogICAgICAgICAgICAgICAgbyA9IHIgPSByLm5leHQ7DQogICAg ICAgICAgICAgICAgZG8gew0KICAgICAgICAgICAgICAgICAgdmFyIGEgPSBvLA0KICAgICAg ICAgICAgICAgICAgICBpID0gYS5kZXN0cm95Ow0KICAgICAgICAgICAgICAgICAgKGEgPSBh LnRhZyksIHZvaWQgMCAhPT0gaSAmJiAoMCAhPT0gKDIgJiBhKSB8fCAwICE9PSAoNCAmIGEp KSAmJiB0cyhuLCB0LCBpKSwgKG8gPSBvLm5leHQpOw0KICAgICAgICAgICAgICAgIH0gd2hp bGUgKG8gIT09IHIpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHBzKGUsIHQs IG4pOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMToNCiAgICAg ICAgICAgICAgaWYgKCFYbCAmJiAoZXMobiwgdCksICJmdW5jdGlvbiIgPT09IHR5cGVvZiAo ciA9IG4uc3RhdGVOb2RlKS5jb21wb25lbnRXaWxsVW5tb3VudCkpDQogICAgICAgICAgICAg ICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIChyLnByb3BzID0gbi5tZW1vaXplZFByb3Bz KSwgKHIuc3RhdGUgPSBuLm1lbW9pemVkU3RhdGUpLCByLmNvbXBvbmVudFdpbGxVbm1vdW50 KCk7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAobCkgew0KICAgICAgICAgICAgICAgICAg Q3UobiwgdCwgbCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBwcyhlLCB0 LCBuKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIDIxOg0KICAg ICAgICAgICAgICBwcyhlLCB0LCBuKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICBjYXNlIDIyOg0KICAgICAgICAgICAgICAxICYgbi5tb2RlID8gKChYbCA9IChyID0g WGwpIHx8IG51bGwgIT09IG4ubWVtb2l6ZWRTdGF0ZSksIHBzKGUsIHQsIG4pLCAoWGwgPSBy KSkgOiBwcyhlLCB0LCBuKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBk ZWZhdWx0Og0KICAgICAgICAgICAgICBwcyhlLCB0LCBuKTsNCiAgICAgICAgICB9DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbXMoZSkgew0KICAgICAgICAgIHZhciB0ID0gZS51 cGRhdGVRdWV1ZTsNCiAgICAgICAgICBpZiAobnVsbCAhPT0gdCkgew0KICAgICAgICAgICAg ZS51cGRhdGVRdWV1ZSA9IG51bGw7DQogICAgICAgICAgICB2YXIgbiA9IGUuc3RhdGVOb2Rl Ow0KICAgICAgICAgICAgbnVsbCA9PT0gbiAmJiAobiA9IGUuc3RhdGVOb2RlID0gbmV3IFps KCkpLA0KICAgICAgICAgICAgICB0LmZvckVhY2goZnVuY3Rpb24gKHQpIHsNCiAgICAgICAg ICAgICAgICB2YXIgciA9IE91LmJpbmQobnVsbCwgZSwgdCk7DQogICAgICAgICAgICAgICAg bi5oYXModCkgfHwgKG4uYWRkKHQpLCB0LnRoZW4ociwgcikpOw0KICAgICAgICAgICAgICB9 KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZ3MoZSwgdCkg ew0KICAgICAgICAgIHZhciBuID0gdC5kZWxldGlvbnM7DQogICAgICAgICAgaWYgKG51bGwg IT09IG4pDQogICAgICAgICAgICBmb3IgKHZhciByID0gMDsgciA8IG4ubGVuZ3RoOyByKysp IHsNCiAgICAgICAgICAgICAgdmFyIG8gPSBuW3JdOw0KICAgICAgICAgICAgICB0cnkgew0K ICAgICAgICAgICAgICAgIHZhciBpID0gZSwNCiAgICAgICAgICAgICAgICAgIGwgPSB0LA0K ICAgICAgICAgICAgICAgICAgcyA9IGw7DQogICAgICAgICAgICAgICAgZTogZm9yICg7IG51 bGwgIT09IHM7KSB7DQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKHMudGFnKSB7DQogICAg ICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgICAgICAoZHMgPSBz LnN0YXRlTm9kZSksIChmcyA9ICExKTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhayBl Ow0KICAgICAgICAgICAgICAgICAgICBjYXNlIDM6DQogICAgICAgICAgICAgICAgICAgIGNh c2UgNDoNCiAgICAgICAgICAgICAgICAgICAgICAoZHMgPSBzLnN0YXRlTm9kZS5jb250YWlu ZXJJbmZvKSwgKGZzID0gITApOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQog ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBzID0gcy5yZXR1cm47DQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBkcykgdGhy b3cgRXJyb3IoYSgxNjApKTsNCiAgICAgICAgICAgICAgICBocyhpLCBsLCBvKSwgKGRzID0g bnVsbCksIChmcyA9ICExKTsNCiAgICAgICAgICAgICAgICB2YXIgdSA9IG8uYWx0ZXJuYXRl Ow0KICAgICAgICAgICAgICAgIG51bGwgIT09IHUgJiYgKHUucmV0dXJuID0gbnVsbCksIChv LnJldHVybiA9IG51bGwpOw0KICAgICAgICAgICAgICB9IGNhdGNoIChjKSB7DQogICAgICAg ICAgICAgICAgQ3UobywgdCwgYyk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0N CiAgICAgICAgICBpZiAoMTI4NTQgJiB0LnN1YnRyZWVGbGFncykgZm9yICh0ID0gdC5jaGls ZDsgbnVsbCAhPT0gdDspIHZzKHQsIGUpLCAodCA9IHQuc2libGluZyk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gdnMoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gZS5hbHRl cm5hdGUsDQogICAgICAgICAgICByID0gZS5mbGFnczsNCiAgICAgICAgICBzd2l0Y2ggKGUu dGFnKSB7DQogICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICBjYXNlIDExOg0KICAg ICAgICAgICAgY2FzZSAxNDoNCiAgICAgICAgICAgIGNhc2UgMTU6DQogICAgICAgICAgICAg IGlmICgoZ3ModCwgZSksIHlzKGUpLCA0ICYgcikpIHsNCiAgICAgICAgICAgICAgICB0cnkg ew0KICAgICAgICAgICAgICAgICAgcnMoMywgZSwgZS5yZXR1cm4pLCBvcygzLCBlKTsNCiAg ICAgICAgICAgICAgICB9IGNhdGNoIChnKSB7DQogICAgICAgICAgICAgICAgICBDdShlLCBl LnJldHVybiwgZyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgICBycyg1LCBlLCBlLnJldHVybik7DQogICAgICAgICAgICAg ICAgfSBjYXRjaCAoZykgew0KICAgICAgICAgICAgICAgICAgQ3UoZSwgZS5yZXR1cm4sIGcp Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgZ3ModCwgZSksIHlz KGUpLCA1MTIgJiByICYmIG51bGwgIT09IG4gJiYgZXMobiwgbi5yZXR1cm4pOw0KICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgaWYg KChncyh0LCBlKSwgeXMoZSksIDUxMiAmIHIgJiYgbnVsbCAhPT0gbiAmJiBlcyhuLCBuLnJl dHVybiksIDMyICYgZS5mbGFncykpIHsNCiAgICAgICAgICAgICAgICB2YXIgbyA9IGUuc3Rh dGVOb2RlOw0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICBmZShv LCAiIik7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZykgew0KICAgICAgICAgICAgICAg ICAgQ3UoZSwgZS5yZXR1cm4sIGcpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICBpZiAoNCAmIHIgJiYgbnVsbCAhPSAobyA9IGUuc3RhdGVO b2RlKSkgew0KICAgICAgICAgICAgICAgIHZhciBpID0gZS5tZW1vaXplZFByb3BzLA0KICAg ICAgICAgICAgICAgICAgbCA9IG51bGwgIT09IG4gPyBuLm1lbW9pemVkUHJvcHMgOiBpLA0K ICAgICAgICAgICAgICAgICAgcyA9IGUudHlwZSwNCiAgICAgICAgICAgICAgICAgIHUgPSBl LnVwZGF0ZVF1ZXVlOw0KICAgICAgICAgICAgICAgIGlmICgoKGUudXBkYXRlUXVldWUgPSBu dWxsKSwgbnVsbCAhPT0gdSkpDQogICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICAgICAgICAiaW5wdXQiID09PSBzICYmICJyYWRpbyIgPT09IGkudHlwZSAmJiBudWxs ICE9IGkubmFtZSAmJiBYKG8sIGkpLCBiZShzLCBsKTsNCiAgICAgICAgICAgICAgICAgICAg dmFyIGMgPSBiZShzLCBpKTsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChsID0gMDsgbCA8 IHUubGVuZ3RoOyBsICs9IDIpIHsNCiAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9IHVb bF0sDQogICAgICAgICAgICAgICAgICAgICAgICBmID0gdVtsICsgMV07DQogICAgICAgICAg ICAgICAgICAgICAgInN0eWxlIiA9PT0gZCA/IGdlKG8sIGYpIDogImRhbmdlcm91c2x5U2V0 SW5uZXJIVE1MIiA9PT0gZCA/IGRlKG8sIGYpIDogImNoaWxkcmVuIiA9PT0gZCA/IGZlKG8s IGYpIDogYihvLCBkLCBmLCBjKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICBzd2l0Y2ggKHMpIHsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJp bnB1dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBaKG8sIGkpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dGFy ZWEiOg0KICAgICAgICAgICAgICAgICAgICAgICAgYWUobywgaSk7DQogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzZWxlY3Qi Og0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHAgPSBvLl93cmFwcGVyU3RhdGUud2Fz TXVsdGlwbGU7DQogICAgICAgICAgICAgICAgICAgICAgICBvLl93cmFwcGVyU3RhdGUud2Fz TXVsdGlwbGUgPSAhIWkubXVsdGlwbGU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIg aCA9IGkudmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBudWxsICE9IGggPyBuZShv LCAhIWkubXVsdGlwbGUsIGgsICExKSA6IHAgIT09ICEhaS5tdWx0aXBsZSAmJiAobnVsbCAh PSBpLmRlZmF1bHRWYWx1ZSA/IG5lKG8sICEhaS5tdWx0aXBsZSwgaS5kZWZhdWx0VmFsdWUs ICEwKSA6IG5lKG8sICEhaS5tdWx0aXBsZSwgaS5tdWx0aXBsZSA/IFtdIDogIiIsICExKSk7 DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgb1tob10gPSBp Ow0KICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZykgew0KICAgICAgICAgICAgICAgICAg ICBDdShlLCBlLnJldHVybiwgZyk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIDY6DQogICAg ICAgICAgICAgIGlmICgoZ3ModCwgZSksIHlzKGUpLCA0ICYgcikpIHsNCiAgICAgICAgICAg ICAgICBpZiAobnVsbCA9PT0gZS5zdGF0ZU5vZGUpIHRocm93IEVycm9yKGEoMTYyKSk7DQog ICAgICAgICAgICAgICAgKG8gPSBlLnN0YXRlTm9kZSksIChpID0gZS5tZW1vaXplZFByb3Bz KTsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgby5ub2RlVmFs dWUgPSBpOw0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGcpIHsNCiAgICAgICAgICAgICAg ICAgIEN1KGUsIGUucmV0dXJuLCBnKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIDM6DQogICAg ICAgICAgICAgIGlmICgoZ3ModCwgZSksIHlzKGUpLCA0ICYgciAmJiBudWxsICE9PSBuICYm IG4ubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpKQ0KICAgICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgICBXdCh0LmNvbnRhaW5lckluZm8pOw0KICAgICAgICAgICAg ICAgIH0gY2F0Y2ggKGcpIHsNCiAgICAgICAgICAgICAgICAgIEN1KGUsIGUucmV0dXJuLCBn KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgY2FzZSA0Og0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgZ3ModCwg ZSksIHlzKGUpOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMTM6 DQogICAgICAgICAgICAgIGdzKHQsIGUpLA0KICAgICAgICAgICAgICAgIHlzKGUpLA0KICAg ICAgICAgICAgICAgIDgxOTIgJiAobyA9IGUuY2hpbGQpLmZsYWdzICYmICgoaSA9IG51bGwg IT09IG8ubWVtb2l6ZWRTdGF0ZSksIChvLnN0YXRlTm9kZS5pc0hpZGRlbiA9IGkpLCAhaSB8 fCAobnVsbCAhPT0gby5hbHRlcm5hdGUgJiYgbnVsbCAhPT0gby5hbHRlcm5hdGUubWVtb2l6 ZWRTdGF0ZSkgfHwgKFdzID0gWGUoKSkpLA0KICAgICAgICAgICAgICAgIDQgJiByICYmIG1z KGUpOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMjI6DQogICAg ICAgICAgICAgIGlmICgoKGQgPSBudWxsICE9PSBuICYmIG51bGwgIT09IG4ubWVtb2l6ZWRT dGF0ZSksIDEgJiBlLm1vZGUgPyAoKFhsID0gKGMgPSBYbCkgfHwgZCksIGdzKHQsIGUpLCAo WGwgPSBjKSkgOiBncyh0LCBlKSwgeXMoZSksIDgxOTIgJiByKSkgew0KICAgICAgICAgICAg ICAgIGlmICgoKGMgPSBudWxsICE9PSBlLm1lbW9pemVkU3RhdGUpLCAoZS5zdGF0ZU5vZGUu aXNIaWRkZW4gPSBjKSAmJiAhZCAmJiAwICE9PSAoMSAmIGUubW9kZSkpKQ0KICAgICAgICAg ICAgICAgICAgZm9yIChKbCA9IGUsIGQgPSBlLmNoaWxkOyBudWxsICE9PSBkOykgew0KICAg ICAgICAgICAgICAgICAgICBmb3IgKGYgPSBKbCA9IGQ7IG51bGwgIT09IEpsOykgew0KICAg ICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKChoID0gKHAgPSBKbCkuY2hpbGQpLCBwLnRh ZykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAg ICAgICAgICAgIGNhc2UgMTE6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE0Og0K ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxNToNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgcnMoNCwgcCwgcC5yZXR1cm4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgZXMocCwgcC5yZXR1cm4pOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICB2YXIgbSA9IHAuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo ImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG0uY29tcG9uZW50V2lsbFVubW91bnQpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAociA9IHApLCAobiA9IHAucmV0dXJuKTsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHQgPSByKSwgKG0ucHJvcHMgPSB0Lm1lbW9pemVkUHJvcHMpLCAobS5zdGF0ZSA9 IHQubWVtb2l6ZWRTdGF0ZSksIG0uY29tcG9uZW50V2lsbFVubW91bnQoKTsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChnKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDdShyLCBuLCBnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6DQogICAgICAgICAg ICAgICAgICAgICAgICAgIGVzKHAsIHAucmV0dXJuKTsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDIyOg0KICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gcC5tZW1vaXplZFN0YXRlKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3MoZik7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gaCA/ ICgoaC5yZXR1cm4gPSBwKSwgKEpsID0gaCkpIDogU3MoZik7DQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZCA9IGQuc2libGluZzsNCiAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICBlOiBmb3IgKGQgPSBudWxsLCBmID0gZTsgOykg ew0KICAgICAgICAgICAgICAgICAgaWYgKDUgPT09IGYudGFnKSB7DQogICAgICAgICAgICAg ICAgICAgIGlmIChudWxsID09PSBkKSB7DQogICAgICAgICAgICAgICAgICAgICAgZCA9IGY7 DQogICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICAg IChvID0gZi5zdGF0ZU5vZGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgPyAiZnVuY3Rpb24iID09PSB0eXBlb2YgKGkgPSBv LnN0eWxlKS5zZXRQcm9wZXJ0eQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBp LnNldFByb3BlcnR5KCJkaXNwbGF5IiwgIm5vbmUiLCAiaW1wb3J0YW50IikNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogKGkuZGlzcGxheSA9ICJub25lIikNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICgocyA9IGYuc3RhdGVOb2RlKSwgKGwgPSB2b2lkIDAg IT09ICh1ID0gZi5tZW1vaXplZFByb3BzLnN0eWxlKSAmJiBudWxsICE9PSB1ICYmIHUuaGFz T3duUHJvcGVydHkoImRpc3BsYXkiKSA/IHUuZGlzcGxheSA6IG51bGwpLCAocy5zdHlsZS5k aXNwbGF5ID0gbWUoImRpc3BsYXkiLCBsKSkpOw0KICAgICAgICAgICAgICAgICAgICAgIH0g Y2F0Y2ggKGcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEN1KGUsIGUucmV0dXJuLCBn KTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoNiA9PT0gZi50YWcpIHsNCiAgICAgICAgICAg ICAgICAgICAgaWYgKG51bGwgPT09IGQpDQogICAgICAgICAgICAgICAgICAgICAgdHJ5IHsN CiAgICAgICAgICAgICAgICAgICAgICAgIGYuc3RhdGVOb2RlLm5vZGVWYWx1ZSA9IGMgPyAi IiA6IGYubWVtb2l6ZWRQcm9wczsNCiAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChn KSB7DQogICAgICAgICAgICAgICAgICAgICAgICBDdShlLCBlLnJldHVybiwgZyk7DQogICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoKDIy ICE9PSBmLnRhZyAmJiAyMyAhPT0gZi50YWcpIHx8IG51bGwgPT09IGYubWVtb2l6ZWRTdGF0 ZSB8fCBmID09PSBlKSAmJiBudWxsICE9PSBmLmNoaWxkKSB7DQogICAgICAgICAgICAgICAg ICAgIChmLmNoaWxkLnJldHVybiA9IGYpLCAoZiA9IGYuY2hpbGQpOw0KICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgIGlmIChmID09PSBlKSBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgZm9yICg7IG51 bGwgPT09IGYuc2libGluZzspIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09 IGYucmV0dXJuIHx8IGYucmV0dXJuID09PSBlKSBicmVhayBlOw0KICAgICAgICAgICAgICAg ICAgICBkID09PSBmICYmIChkID0gbnVsbCksIChmID0gZi5yZXR1cm4pOw0KICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgZCA9PT0gZiAmJiAoZCA9IG51bGwpLCAo Zi5zaWJsaW5nLnJldHVybiA9IGYucmV0dXJuKSwgKGYgPSBmLnNpYmxpbmcpOw0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBicmVhazsNCiAg ICAgICAgICAgIGNhc2UgMTk6DQogICAgICAgICAgICAgIGdzKHQsIGUpLCB5cyhlKSwgNCAm IHIgJiYgbXMoZSk7DQogICAgICAgICAgICBjYXNlIDIxOg0KICAgICAgICAgIH0NCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiB5cyhlKSB7DQogICAgICAgICAgdmFyIHQgPSBlLmZs YWdzOw0KICAgICAgICAgIGlmICgyICYgdCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAg ICAgICAgICAgZTogew0KICAgICAgICAgICAgICAgIGZvciAodmFyIG4gPSBlLnJldHVybjsg bnVsbCAhPT0gbjspIHsNCiAgICAgICAgICAgICAgICAgIGlmIChscyhuKSkgew0KICAgICAg ICAgICAgICAgICAgICB2YXIgciA9IG47DQogICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7 DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBuID0gbi5yZXR1cm47 DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGEoMTYw KSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgc3dpdGNoIChyLnRhZykgew0K ICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgIHZhciBvID0gci5z dGF0ZU5vZGU7DQogICAgICAgICAgICAgICAgICAzMiAmIHIuZmxhZ3MgJiYgKGZlKG8sICIi KSwgKHIuZmxhZ3MgJj0gLTMzKSksIGNzKGUsIHNzKGUpLCBvKTsNCiAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICBj YXNlIDQ6DQogICAgICAgICAgICAgICAgICB2YXIgaSA9IHIuc3RhdGVOb2RlLmNvbnRhaW5l ckluZm87DQogICAgICAgICAgICAgICAgICB1cyhlLCBzcyhlKSwgaSk7DQogICAgICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAg ICAgICAgdGhyb3cgRXJyb3IoYSgxNjEpKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgfSBjYXRjaCAobCkgew0KICAgICAgICAgICAgICBDdShlLCBlLnJldHVybiwgbCk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgICBlLmZsYWdzICY9IC0zOw0KICAgICAgICAgIH0N CiAgICAgICAgICA0MDk2ICYgdCAmJiAoZS5mbGFncyAmPSAtNDA5Nyk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gYnMoZSwgdCwgbikgew0KICAgICAgICAgIChKbCA9IGUpLCB3 cyhlLCB0LCBuKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB3cyhlLCB0LCBuKSB7 DQogICAgICAgICAgZm9yICh2YXIgciA9IDAgIT09ICgxICYgZS5tb2RlKTsgbnVsbCAhPT0g Smw7KSB7DQogICAgICAgICAgICB2YXIgbyA9IEpsLA0KICAgICAgICAgICAgICBhID0gby5j aGlsZDsNCiAgICAgICAgICAgIGlmICgyMiA9PT0gby50YWcgJiYgcikgew0KICAgICAgICAg ICAgICB2YXIgaSA9IG51bGwgIT09IG8ubWVtb2l6ZWRTdGF0ZSB8fCBZbDsNCiAgICAgICAg ICAgICAgaWYgKCFpKSB7DQogICAgICAgICAgICAgICAgdmFyIGwgPSBvLmFsdGVybmF0ZSwN CiAgICAgICAgICAgICAgICAgIHMgPSAobnVsbCAhPT0gbCAmJiBudWxsICE9PSBsLm1lbW9p emVkU3RhdGUpIHx8IFhsOw0KICAgICAgICAgICAgICAgIGwgPSBZbDsNCiAgICAgICAgICAg ICAgICB2YXIgdSA9IFhsOw0KICAgICAgICAgICAgICAgIGlmICgoKFlsID0gaSksIChYbCA9 IHMpICYmICF1KSkgZm9yIChKbCA9IG87IG51bGwgIT09IEpsOykgKHMgPSAoaSA9IEpsKS5j aGlsZCksIDIyID09PSBpLnRhZyAmJiBudWxsICE9PSBpLm1lbW9pemVkU3RhdGUgPyBrcyhv KSA6IG51bGwgIT09IHMgPyAoKHMucmV0dXJuID0gaSksIChKbCA9IHMpKSA6IGtzKG8pOw0K ICAgICAgICAgICAgICAgIGZvciAoOyBudWxsICE9PSBhOykgKEpsID0gYSksIHdzKGEsIHQs IG4pLCAoYSA9IGEuc2libGluZyk7DQogICAgICAgICAgICAgICAgKEpsID0gbyksIChZbCA9 IGwpLCAoWGwgPSB1KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB4cyhlKTsN CiAgICAgICAgICAgIH0gZWxzZSAwICE9PSAoODc3MiAmIG8uc3VidHJlZUZsYWdzKSAmJiBu dWxsICE9PSBhID8gKChhLnJldHVybiA9IG8pLCAoSmwgPSBhKSkgOiB4cyhlKTsNCiAgICAg ICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24geHMoZSkgew0KICAgICAgICAg IGZvciAoOyBudWxsICE9PSBKbDspIHsNCiAgICAgICAgICAgIHZhciB0ID0gSmw7DQogICAg ICAgICAgICBpZiAoMCAhPT0gKDg3NzIgJiB0LmZsYWdzKSkgew0KICAgICAgICAgICAgICB2 YXIgbiA9IHQuYWx0ZXJuYXRlOw0KICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAg ICAgIGlmICgwICE9PSAoODc3MiAmIHQuZmxhZ3MpKQ0KICAgICAgICAgICAgICAgICAgc3dp dGNoICh0LnRhZykgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAg ICAgICAgICAgIGNhc2UgMTE6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6DQogICAg ICAgICAgICAgICAgICAgICAgWGwgfHwgb3MoNSwgdCk7DQogICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAg ICAgICAgICB2YXIgciA9IHQuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICAgICAgICAgIGlm ICg0ICYgdC5mbGFncyAmJiAhWGwpDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVs bCA9PT0gbikgci5jb21wb25lbnREaWRNb3VudCgpOw0KICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvID0gdC5lbGVtZW50 VHlwZSA9PT0gdC50eXBlID8gbi5tZW1vaXplZFByb3BzIDogdmEodC50eXBlLCBuLm1lbW9p emVkUHJvcHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICByLmNvbXBvbmVudERpZFVw ZGF0ZShvLCBuLm1lbW9pemVkU3RhdGUsIHIuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZv cmVVcGRhdGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgIHZhciBpID0gdC51cGRhdGVRdWV1ZTsNCiAgICAgICAgICAgICAgICAgICAgICBu dWxsICE9PSBpICYmIEJhKHQsIGksIHIpOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFr Ow0KICAgICAgICAgICAgICAgICAgICBjYXNlIDM6DQogICAgICAgICAgICAgICAgICAgICAg dmFyIGwgPSB0LnVwZGF0ZVF1ZXVlOw0KICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxs ICE9PSBsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKChuID0gbnVsbCksIG51 bGwgIT09IHQuY2hpbGQpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHQu Y2hpbGQudGFnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1Og0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG4gPSB0LmNoaWxkLnN0YXRlTm9kZTsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgQmEodCwgbCwgbik7DQogICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgICAgICAgICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICAgICAgdmFyIHMgPSB0 LnN0YXRlTm9kZTsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gbiAmJiA0 ICYgdC5mbGFncykgew0KICAgICAgICAgICAgICAgICAgICAgICAgbiA9IHM7DQogICAgICAg ICAgICAgICAgICAgICAgICB2YXIgdSA9IHQubWVtb2l6ZWRQcm9wczsNCiAgICAgICAgICAg ICAgICAgICAgICAgIHN3aXRjaCAodC50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgIGNhc2UgImJ1dHRvbiI6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImlu cHV0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dGFyZWEiOg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHUuYXV0b0ZvY3VzICYmIG4uZm9jdXMoKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAi aW1nIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LnNyYyAmJiAobi5zcmMgPSB1 LnNyYyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAg ICBjYXNlIDY6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAg ICAgICAgY2FzZSAxMjoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOToNCiAgICAgICAg ICAgICAgICAgICAgY2FzZSAxNzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyMToNCiAg ICAgICAgICAgICAgICAgICAgY2FzZSAyMjoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAy MzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyNToNCiAgICAgICAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAg ICAgICAgICBpZiAobnVsbCA9PT0gdC5tZW1vaXplZFN0YXRlKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICB2YXIgYyA9IHQuYWx0ZXJuYXRlOw0KICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKG51bGwgIT09IGMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQg PSBjLm1lbW9pemVkU3RhdGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxs ICE9PSBkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSBkLmRlaHlk cmF0ZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZiAmJiBXdChm KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAg ICAgICB0aHJvdyBFcnJvcihhKDE2MykpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIFhsIHx8ICg1MTIgJiB0LmZsYWdzICYmIGFzKHQpKTsNCiAgICAgICAgICAg ICAgfSBjYXRjaCAocCkgew0KICAgICAgICAgICAgICAgIEN1KHQsIHQucmV0dXJuLCBwKTsN CiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHQgPT09 IGUpIHsNCiAgICAgICAgICAgICAgSmwgPSBudWxsOw0KICAgICAgICAgICAgICBicmVhazsN CiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChudWxsICE9PSAobiA9IHQuc2libGlu ZykpIHsNCiAgICAgICAgICAgICAgKG4ucmV0dXJuID0gdC5yZXR1cm4pLCAoSmwgPSBuKTsN CiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBKbCA9 IHQucmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBT cyhlKSB7DQogICAgICAgICAgZm9yICg7IG51bGwgIT09IEpsOykgew0KICAgICAgICAgICAg dmFyIHQgPSBKbDsNCiAgICAgICAgICAgIGlmICh0ID09PSBlKSB7DQogICAgICAgICAgICAg IEpsID0gbnVsbDsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICB2YXIgbiA9IHQuc2libGluZzsNCiAgICAgICAgICAgIGlmIChudWxsICE9PSBu KSB7DQogICAgICAgICAgICAgIChuLnJldHVybiA9IHQucmV0dXJuKSwgKEpsID0gbik7DQog ICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgSmwgPSB0 LnJldHVybjsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24ga3Mo ZSkgew0KICAgICAgICAgIGZvciAoOyBudWxsICE9PSBKbDspIHsNCiAgICAgICAgICAgIHZh ciB0ID0gSmw7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICBzd2l0Y2ggKHQu dGFnKSB7DQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgIGNhc2Ug MTE6DQogICAgICAgICAgICAgICAgY2FzZSAxNToNCiAgICAgICAgICAgICAgICAgIHZhciBu ID0gdC5yZXR1cm47DQogICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAg ICAgICBvcyg0LCB0KTsNCiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHMpIHsNCiAgICAg ICAgICAgICAgICAgICAgQ3UodCwgbiwgcyk7DQogICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAg ICAgICAgICAgICB2YXIgciA9IHQuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICAgICAgaWYg KCJmdW5jdGlvbiIgPT09IHR5cGVvZiByLmNvbXBvbmVudERpZE1vdW50KSB7DQogICAgICAg ICAgICAgICAgICAgIHZhciBvID0gdC5yZXR1cm47DQogICAgICAgICAgICAgICAgICAgIHRy eSB7DQogICAgICAgICAgICAgICAgICAgICAgci5jb21wb25lbnREaWRNb3VudCgpOw0KICAg ICAgICAgICAgICAgICAgICB9IGNhdGNoIChzKSB7DQogICAgICAgICAgICAgICAgICAgICAg Q3UodCwgbywgcyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgIHZhciBhID0gdC5yZXR1cm47DQogICAgICAgICAgICAg ICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICBhcyh0KTsNCiAgICAgICAgICAgICAg ICAgIH0gY2F0Y2ggKHMpIHsNCiAgICAgICAgICAgICAgICAgICAgQ3UodCwgYSwgcyk7DQog ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICB2YXIgaSA9IHQucmV0dXJuOw0K ICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgYXModCk7DQog ICAgICAgICAgICAgICAgICB9IGNhdGNoIChzKSB7DQogICAgICAgICAgICAgICAgICAgIEN1 KHQsIGksIHMpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAg ICAgICAgICB9IGNhdGNoIChzKSB7DQogICAgICAgICAgICAgIEN1KHQsIHQucmV0dXJuLCBz KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICh0ID09PSBlKSB7DQogICAgICAg ICAgICAgIEpsID0gbnVsbDsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICB2YXIgbCA9IHQuc2libGluZzsNCiAgICAgICAgICAgIGlmIChudWxs ICE9PSBsKSB7DQogICAgICAgICAgICAgIChsLnJldHVybiA9IHQucmV0dXJuKSwgKEpsID0g bCk7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg SmwgPSB0LnJldHVybjsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIEVz LA0KICAgICAgICAgIENzID0gTWF0aC5jZWlsLA0KICAgICAgICAgIFJzID0gdy5SZWFjdEN1 cnJlbnREaXNwYXRjaGVyLA0KICAgICAgICAgIF9zID0gdy5SZWFjdEN1cnJlbnRPd25lciwN CiAgICAgICAgICBQcyA9IHcuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsDQogICAgICAgICAg T3MgPSAwLA0KICAgICAgICAgIE5zID0gbnVsbCwNCiAgICAgICAgICBUcyA9IG51bGwsDQog ICAgICAgICAgQXMgPSAwLA0KICAgICAgICAgIE1zID0gMCwNCiAgICAgICAgICB6cyA9IENv KDApLA0KICAgICAgICAgIGpzID0gMCwNCiAgICAgICAgICBJcyA9IG51bGwsDQogICAgICAg ICAgTHMgPSAwLA0KICAgICAgICAgIEZzID0gMCwNCiAgICAgICAgICBCcyA9IDAsDQogICAg ICAgICAgRHMgPSBudWxsLA0KICAgICAgICAgIFVzID0gbnVsbCwNCiAgICAgICAgICBXcyA9 IDAsDQogICAgICAgICAgVnMgPSAxIC8gMCwNCiAgICAgICAgICBIcyA9IG51bGwsDQogICAg ICAgICAgcXMgPSAhMSwNCiAgICAgICAgICAkcyA9IG51bGwsDQogICAgICAgICAgS3MgPSBu dWxsLA0KICAgICAgICAgIFFzID0gITEsDQogICAgICAgICAgR3MgPSBudWxsLA0KICAgICAg ICAgIFlzID0gMCwNCiAgICAgICAgICBYcyA9IDAsDQogICAgICAgICAgWnMgPSBudWxsLA0K ICAgICAgICAgIEpzID0gLTEsDQogICAgICAgICAgZXUgPSAwOw0KICAgICAgICBmdW5jdGlv biB0dSgpIHsNCiAgICAgICAgICByZXR1cm4gMCAhPT0gKDYgJiBPcykgPyBYZSgpIDogLTEg IT09IEpzID8gSnMgOiAoSnMgPSBYZSgpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBudShlKSB7DQogICAgICAgICAgcmV0dXJuIDAgPT09ICgxICYgZS5tb2RlKSA/IDEgOiAw ICE9PSAoMiAmIE9zKSAmJiAwICE9PSBBcyA/IEFzICYgLUFzIDogbnVsbCAhPT0gZ2EudHJh bnNpdGlvbiA/ICgwID09PSBldSAmJiAoZXUgPSBtdCgpKSwgZXUpIDogMCAhPT0gKGUgPSBi dCkgPyBlIDogKGUgPSB2b2lkIDAgPT09IChlID0gd2luZG93LmV2ZW50KSA/IDE2IDogWXQo ZS50eXBlKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcnUoZSwgdCwgbiwgcikg ew0KICAgICAgICAgIGlmICg1MCA8IFhzKSB0aHJvdyAoKFhzID0gMCksIChacyA9IG51bGwp LCBFcnJvcihhKDE4NSkpKTsNCiAgICAgICAgICB2dChlLCBuLCByKSwgKDAgIT09ICgyICYg T3MpICYmIGUgPT09IE5zKSB8fCAoZSA9PT0gTnMgJiYgKDAgPT09ICgyICYgT3MpICYmIChG cyB8PSBuKSwgNCA9PT0ganMgJiYgc3UoZSwgQXMpKSwgb3UoZSwgciksIDEgPT09IG4gJiYg MCA9PT0gT3MgJiYgMCA9PT0gKDEgJiB0Lm1vZGUpICYmICgoVnMgPSBYZSgpICsgNTAwKSwg RG8gJiYgVm8oKSkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG91KGUsIHQpIHsN CiAgICAgICAgICB2YXIgbiA9IGUuY2FsbGJhY2tOb2RlOw0KICAgICAgICAgICEoZnVuY3Rp b24gKGUsIHQpIHsNCiAgICAgICAgICAgIGZvciAodmFyIG4gPSBlLnN1c3BlbmRlZExhbmVz LCByID0gZS5waW5nZWRMYW5lcywgbyA9IGUuZXhwaXJhdGlvblRpbWVzLCBhID0gZS5wZW5k aW5nTGFuZXM7IDAgPCBhOykgew0KICAgICAgICAgICAgICB2YXIgaSA9IDMxIC0gaXQoYSks DQogICAgICAgICAgICAgICAgbCA9IDEgPDwgaSwNCiAgICAgICAgICAgICAgICBzID0gb1tp XTsNCiAgICAgICAgICAgICAgLTEgPT09IHMgPyAoMCAhPT0gKGwgJiBuKSAmJiAwID09PSAo bCAmIHIpKSB8fCAob1tpXSA9IHB0KGwsIHQpKSA6IHMgPD0gdCAmJiAoZS5leHBpcmVkTGFu ZXMgfD0gbCksIChhICY9IH5sKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KShlLCB0 KTsNCiAgICAgICAgICB2YXIgciA9IGZ0KGUsIGUgPT09IE5zID8gQXMgOiAwKTsNCiAgICAg ICAgICBpZiAoMCA9PT0gcikgbnVsbCAhPT0gbiAmJiBRZShuKSwgKGUuY2FsbGJhY2tOb2Rl ID0gbnVsbCksIChlLmNhbGxiYWNrUHJpb3JpdHkgPSAwKTsNCiAgICAgICAgICBlbHNlIGlm ICgoKHQgPSByICYgLXIpLCBlLmNhbGxiYWNrUHJpb3JpdHkgIT09IHQpKSB7DQogICAgICAg ICAgICBpZiAoKG51bGwgIT0gbiAmJiBRZShuKSwgMSA9PT0gdCkpDQogICAgICAgICAgICAg IDAgPT09IGUudGFnDQogICAgICAgICAgICAgICAgPyAoZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgICAgICAgIChEbyA9ICEwKSwgV28oZSk7DQogICAgICAgICAgICAgICAgfSkodXUu YmluZChudWxsLCBlKSkNCiAgICAgICAgICAgICAgICA6IFdvKHV1LmJpbmQobnVsbCwgZSkp LA0KICAgICAgICAgICAgICAgIGlvKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAg IDAgPT09ICg2ICYgT3MpICYmIFZvKCk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgICAgKG4gPSBudWxsKTsNCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAg ICBzd2l0Y2ggKHd0KHIpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAg ICAgICAgICAgbiA9IEplOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgbiA9IGV0Ow0KICAgICAgICAgICAg ICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAxNjoNCiAgICAgICAgICAgICAg ICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgbiA9IHR0Ow0KICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSA1MzY4NzA5MTI6DQogICAgICAgICAg ICAgICAgICBuID0gcnQ7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgbiA9IE51 KG4sIGF1LmJpbmQobnVsbCwgZSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgKGUu Y2FsbGJhY2tQcmlvcml0eSA9IHQpLCAoZS5jYWxsYmFja05vZGUgPSBuKTsNCiAgICAgICAg ICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYXUoZSwgdCkgew0KICAgICAgICAg IGlmICgoKEpzID0gLTEpLCAoZXUgPSAwKSwgMCAhPT0gKDYgJiBPcykpKSB0aHJvdyBFcnJv cihhKDMyNykpOw0KICAgICAgICAgIHZhciBuID0gZS5jYWxsYmFja05vZGU7DQogICAgICAg ICAgaWYgKGt1KCkgJiYgZS5jYWxsYmFja05vZGUgIT09IG4pIHJldHVybiBudWxsOw0KICAg ICAgICAgIHZhciByID0gZnQoZSwgZSA9PT0gTnMgPyBBcyA6IDApOw0KICAgICAgICAgIGlm ICgwID09PSByKSByZXR1cm4gbnVsbDsNCiAgICAgICAgICBpZiAoMCAhPT0gKDMwICYgcikg fHwgMCAhPT0gKHIgJiBlLmV4cGlyZWRMYW5lcykgfHwgdCkgdCA9IHZ1KGUsIHIpOw0KICAg ICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdCA9IHI7DQogICAgICAgICAgICB2YXIgbyA9 IE9zOw0KICAgICAgICAgICAgT3MgfD0gMjsNCiAgICAgICAgICAgIHZhciBpID0gbXUoKTsN CiAgICAgICAgICAgIGZvciAoKE5zID09PSBlICYmIEFzID09PSB0KSB8fCAoKEhzID0gbnVs bCksIChWcyA9IFhlKCkgKyA1MDApLCBwdShlLCB0KSk7IDspDQogICAgICAgICAgICAgIHRy eSB7DQogICAgICAgICAgICAgICAgYnUoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAg ICAgICAgICAgICAgfSBjYXRjaCAocykgew0KICAgICAgICAgICAgICAgIGh1KGUsIHMpOw0K ICAgICAgICAgICAgICB9DQogICAgICAgICAgICBTYSgpLCAoUnMuY3VycmVudCA9IGkpLCAo T3MgPSBvKSwgbnVsbCAhPT0gVHMgPyAodCA9IDApIDogKChOcyA9IG51bGwpLCAoQXMgPSAw KSwgKHQgPSBqcykpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoMCAhPT0gdCkgew0K ICAgICAgICAgICAgaWYgKCgyID09PSB0ICYmIDAgIT09IChvID0gaHQoZSkpICYmICgociA9 IG8pLCAodCA9IGl1KGUsIG8pKSksIDEgPT09IHQpKSB0aHJvdyAoKG4gPSBJcyksIHB1KGUs IDApLCBzdShlLCByKSwgb3UoZSwgWGUoKSksIG4pOw0KICAgICAgICAgICAgaWYgKDYgPT09 IHQpIHN1KGUsIHIpOw0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgIGlmICgN CiAgICAgICAgICAgICAgICAoKG8gPSBlLmN1cnJlbnQuYWx0ZXJuYXRlKSwNCiAgICAgICAg ICAgICAgICAgIDAgPT09ICgzMCAmIHIpICYmDQogICAgICAgICAgICAgICAgICAhKGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSBlOyA7KSB7DQog ICAgICAgICAgICAgICAgICAgICAgaWYgKDE2Mzg0ICYgdC5mbGFncykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgdmFyIG4gPSB0LnVwZGF0ZVF1ZXVlOw0KICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKG51bGwgIT09IG4gJiYgbnVsbCAhPT0gKG4gPSBuLnN0b3JlcykpDQog ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSAwOyByIDwgbi5sZW5ndGg7 IHIrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvID0gbltyXSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBvLmdldFNuYXBzaG90Ow0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG8gPSBvLnZhbHVlOw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxy KGEoKSwgbykpIHJldHVybiAhMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNh dGNoIChsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gITE7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIGlm ICgoKG4gPSB0LmNoaWxkKSwgMTYzODQgJiB0LnN1YnRyZWVGbGFncyAmJiBudWxsICE9PSBu KSkgKG4ucmV0dXJuID0gdCksICh0ID0gbik7DQogICAgICAgICAgICAgICAgICAgICAgZWxz ZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodCA9PT0gZSkgYnJlYWs7DQogICAg ICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbnVsbCA9PT0gdC5zaWJsaW5nOykgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gdC5yZXR1cm4gfHwgdC5yZXR1 cm4gPT09IGUpIHJldHVybiAhMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdCA9IHQu cmV0dXJuOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgKHQuc2libGluZy5yZXR1cm4gPSB0LnJldHVybiksICh0ID0gdC5zaWJsaW5nKTsN CiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICAgICAgICAgICAgfSkobykgJiYN CiAgICAgICAgICAgICAgICAgICgyID09PSAodCA9IHZ1KGUsIHIpKSAmJiAwICE9PSAoaSA9 IGh0KGUpKSAmJiAoKHIgPSBpKSwgKHQgPSBpdShlLCBpKSkpLCAxID09PSB0KSkNCiAgICAg ICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIHRocm93ICgobiA9IElzKSwgcHUoZSwgMCks IHN1KGUsIHIpLCBvdShlLCBYZSgpKSwgbik7DQogICAgICAgICAgICAgIHN3aXRjaCAoKChl LmZpbmlzaGVkV29yayA9IG8pLCAoZS5maW5pc2hlZExhbmVzID0gciksIHQpKSB7DQogICAg ICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAg ICAgICAgICAgIHRocm93IEVycm9yKGEoMzQ1KSk7DQogICAgICAgICAgICAgICAgY2FzZSAy Og0KICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgIFN1KGUsIFVz LCBIcyk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNl IDM6DQogICAgICAgICAgICAgICAgICBpZiAoKHN1KGUsIHIpLCAoMTMwMDIzNDI0ICYgcikg PT09IHIgJiYgMTAgPCAodCA9IFdzICsgNTAwIC0gWGUoKSkpKSB7DQogICAgICAgICAgICAg ICAgICAgIGlmICgwICE9PSBmdChlLCAwKSkgYnJlYWs7DQogICAgICAgICAgICAgICAgICAg IGlmICgoKG8gPSBlLnN1c3BlbmRlZExhbmVzKSAmIHIpICE9PSByKSB7DQogICAgICAgICAg ICAgICAgICAgICAgdHUoKSwgKGUucGluZ2VkTGFuZXMgfD0gZS5zdXNwZW5kZWRMYW5lcyAm IG8pOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgIGUudGltZW91dEhhbmRsZSA9IHJvKFN1LmJpbmQo bnVsbCwgZSwgVXMsIEhzKSwgdCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgU3UoZSwgVXMsIEhzKTsNCiAg ICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgNDoNCiAgICAg ICAgICAgICAgICAgIGlmICgoc3UoZSwgciksICg0MTk0MjQwICYgcikgPT09IHIpKSBicmVh azsNCiAgICAgICAgICAgICAgICAgIGZvciAodCA9IGUuZXZlbnRUaW1lcywgbyA9IC0xOyAw IDwgcjspIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGwgPSAzMSAtIGl0KHIpOw0KICAg ICAgICAgICAgICAgICAgICAoaSA9IDEgPDwgbCksIChsID0gdFtsXSkgPiBvICYmIChvID0g bCksIChyICY9IH5pKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg IGlmICgoKHIgPSBvKSwgMTAgPCAociA9ICgxMjAgPiAociA9IFhlKCkgLSByKSA/IDEyMCA6 IDQ4MCA+IHIgPyA0ODAgOiAxMDgwID4gciA/IDEwODAgOiAxOTIwID4gciA/IDE5MjAgOiAz ZTMgPiByID8gM2UzIDogNDMyMCA+IHIgPyA0MzIwIDogMTk2MCAqIENzKHIgLyAxOTYwKSkg LSByKSkpIHsNCiAgICAgICAgICAgICAgICAgICAgZS50aW1lb3V0SGFuZGxlID0gcm8oU3Uu YmluZChudWxsLCBlLCBVcywgSHMpLCByKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7 DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBTdShlLCBVcywgSHMp Ow0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoN CiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGEoMzI5KSk7DQogICAgICAgICAgICAg IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIG91KGUs IFhlKCkpLCBlLmNhbGxiYWNrTm9kZSA9PT0gbiA/IGF1LmJpbmQobnVsbCwgZSkgOiBudWxs Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGl1KGUsIHQpIHsNCiAgICAgICAgICB2 YXIgbiA9IERzOw0KICAgICAgICAgIHJldHVybiBlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5p c0RlaHlkcmF0ZWQgJiYgKHB1KGUsIHQpLmZsYWdzIHw9IDI1NiksIDIgIT09IChlID0gdnUo ZSwgdCkpICYmICgodCA9IFVzKSwgKFVzID0gbiksIG51bGwgIT09IHQgJiYgbHUodCkpLCBl Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGx1KGUpIHsNCiAgICAgICAgICBudWxs ID09PSBVcyA/IChVcyA9IGUpIDogVXMucHVzaC5hcHBseShVcywgZSk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gc3UoZSwgdCkgew0KICAgICAgICAgIGZvciAodCAmPSB+QnMs IHQgJj0gfkZzLCBlLnN1c3BlbmRlZExhbmVzIHw9IHQsIGUucGluZ2VkTGFuZXMgJj0gfnQs IGUgPSBlLmV4cGlyYXRpb25UaW1lczsgMCA8IHQ7KSB7DQogICAgICAgICAgICB2YXIgbiA9 IDMxIC0gaXQodCksDQogICAgICAgICAgICAgIHIgPSAxIDw8IG47DQogICAgICAgICAgICAo ZVtuXSA9IC0xKSwgKHQgJj0gfnIpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiB1dShlKSB7DQogICAgICAgICAgaWYgKDAgIT09ICg2ICYgT3MpKSB0aHJv dyBFcnJvcihhKDMyNykpOw0KICAgICAgICAgIGt1KCk7DQogICAgICAgICAgdmFyIHQgPSBm dChlLCAwKTsNCiAgICAgICAgICBpZiAoMCA9PT0gKDEgJiB0KSkgcmV0dXJuIG91KGUsIFhl KCkpLCBudWxsOw0KICAgICAgICAgIHZhciBuID0gdnUoZSwgdCk7DQogICAgICAgICAgaWYg KDAgIT09IGUudGFnICYmIDIgPT09IG4pIHsNCiAgICAgICAgICAgIHZhciByID0gaHQoZSk7 DQogICAgICAgICAgICAwICE9PSByICYmICgodCA9IHIpLCAobiA9IGl1KGUsIHIpKSk7DQog ICAgICAgICAgfQ0KICAgICAgICAgIGlmICgxID09PSBuKSB0aHJvdyAoKG4gPSBJcyksIHB1 KGUsIDApLCBzdShlLCB0KSwgb3UoZSwgWGUoKSksIG4pOw0KICAgICAgICAgIGlmICg2ID09 PSBuKSB0aHJvdyBFcnJvcihhKDM0NSkpOw0KICAgICAgICAgIHJldHVybiAoZS5maW5pc2hl ZFdvcmsgPSBlLmN1cnJlbnQuYWx0ZXJuYXRlKSwgKGUuZmluaXNoZWRMYW5lcyA9IHQpLCBT dShlLCBVcywgSHMpLCBvdShlLCBYZSgpKSwgbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBjdShlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBPczsNCiAgICAgICAgICBP cyB8PSAxOw0KICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICByZXR1cm4gZSh0KTsNCiAg ICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgMCA9PT0gKE9zID0gbikgJiYgKChW cyA9IFhlKCkgKyA1MDApLCBEbyAmJiBWbygpKTsNCiAgICAgICAgICB9DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gZHUoZSkgew0KICAgICAgICAgIG51bGwgIT09IEdzICYmIDAg PT09IEdzLnRhZyAmJiAwID09PSAoNiAmIE9zKSAmJiBrdSgpOw0KICAgICAgICAgIHZhciB0 ID0gT3M7DQogICAgICAgICAgT3MgfD0gMTsNCiAgICAgICAgICB2YXIgbiA9IFBzLnRyYW5z aXRpb24sDQogICAgICAgICAgICByID0gYnQ7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAg ICAgIGlmICgoKFBzLnRyYW5zaXRpb24gPSBudWxsKSwgKGJ0ID0gMSksIGUpKSByZXR1cm4g ZSgpOw0KICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAoYnQgPSByKSwgKFBz LnRyYW5zaXRpb24gPSBuKSwgMCA9PT0gKDYgJiAoT3MgPSB0KSkgJiYgVm8oKTsNCiAgICAg ICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZnUoKSB7DQogICAgICAgICAg KE1zID0genMuY3VycmVudCksIFJvKHpzKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBwdShlLCB0KSB7DQogICAgICAgICAgKGUuZmluaXNoZWRXb3JrID0gbnVsbCksIChlLmZp bmlzaGVkTGFuZXMgPSAwKTsNCiAgICAgICAgICB2YXIgbiA9IGUudGltZW91dEhhbmRsZTsN CiAgICAgICAgICBpZiAoKC0xICE9PSBuICYmICgoZS50aW1lb3V0SGFuZGxlID0gLTEpLCBv byhuKSksIG51bGwgIT09IFRzKSkNCiAgICAgICAgICAgIGZvciAobiA9IFRzLnJldHVybjsg bnVsbCAhPT0gbjspIHsNCiAgICAgICAgICAgICAgdmFyIHIgPSBuOw0KICAgICAgICAgICAg ICBzd2l0Y2ggKChuYShyKSwgci50YWcpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAxOg0K ICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gKHIgPSByLnR5cGUuY2hpbGRDb250ZXh0VHlw ZXMpICYmIHZvaWQgMCAhPT0gciAmJiB6bygpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7 DQogICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgYWkoKSwgUm8o Tm8pLCBSbyhPbyksIGRpKCk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICBsaShyKTsNCiAgICAgICAgICAg ICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAg ICAgIGFpKCk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBj YXNlIDEzOg0KICAgICAgICAgICAgICAgIGNhc2UgMTk6DQogICAgICAgICAgICAgICAgICBS byhzaSk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNl IDEwOg0KICAgICAgICAgICAgICAgICAga2Eoci50eXBlLl9jb250ZXh0KTsNCiAgICAgICAg ICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgMjI6DQogICAgICAgICAg ICAgICAgY2FzZSAyMzoNCiAgICAgICAgICAgICAgICAgIGZ1KCk7DQogICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgbiA9IG4ucmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAg ICAgIGlmICgoKE5zID0gZSksIChUcyA9IGUgPSB6dShlLmN1cnJlbnQsIG51bGwpKSwgKEFz ID0gTXMgPSB0KSwgKGpzID0gMCksIChJcyA9IG51bGwpLCAoQnMgPSBGcyA9IExzID0gMCks IChVcyA9IERzID0gbnVsbCksIG51bGwgIT09IF9hKSkgew0KICAgICAgICAgICAgZm9yICh0 ID0gMDsgdCA8IF9hLmxlbmd0aDsgdCsrKQ0KICAgICAgICAgICAgICBpZiAobnVsbCAhPT0g KHIgPSAobiA9IF9hW3RdKS5pbnRlcmxlYXZlZCkpIHsNCiAgICAgICAgICAgICAgICBuLmlu dGVybGVhdmVkID0gbnVsbDsNCiAgICAgICAgICAgICAgICB2YXIgbyA9IHIubmV4dCwNCiAg ICAgICAgICAgICAgICAgIGEgPSBuLnBlbmRpbmc7DQogICAgICAgICAgICAgICAgaWYgKG51 bGwgIT09IGEpIHsNCiAgICAgICAgICAgICAgICAgIHZhciBpID0gYS5uZXh0Ow0KICAgICAg ICAgICAgICAgICAgKGEubmV4dCA9IG8pLCAoci5uZXh0ID0gaSk7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIG4ucGVuZGluZyA9IHI7DQogICAgICAgICAgICAgIH0N CiAgICAgICAgICAgIF9hID0gbnVsbDsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJu IGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaHUoZSwgdCkgew0KICAgICAgICAg IGZvciAoOyA7KSB7DQogICAgICAgICAgICB2YXIgbiA9IFRzOw0KICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgaWYgKChTYSgpLCAoZmkuY3VycmVudCA9IGlsKSwgeWkpKSB7 DQogICAgICAgICAgICAgICAgZm9yICh2YXIgciA9IG1pLm1lbW9pemVkU3RhdGU7IG51bGwg IT09IHI7KSB7DQogICAgICAgICAgICAgICAgICB2YXIgbyA9IHIucXVldWU7DQogICAgICAg ICAgICAgICAgICBudWxsICE9PSBvICYmIChvLnBlbmRpbmcgPSBudWxsKSwgKHIgPSByLm5l eHQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB5aSA9ICExOw0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgIGlmICgoKGhpID0gMCksICh2aSA9IGdpID0g bWkgPSBudWxsKSwgKGJpID0gITEpLCAod2kgPSAwKSwgKF9zLmN1cnJlbnQgPSBudWxsKSwg bnVsbCA9PT0gbiB8fCBudWxsID09PSBuLnJldHVybikpIHsNCiAgICAgICAgICAgICAgICAo anMgPSAxKSwgKElzID0gdCksIChUcyA9IG51bGwpOw0KICAgICAgICAgICAgICAgIGJyZWFr Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgICAg ICB2YXIgaSA9IGUsDQogICAgICAgICAgICAgICAgICBsID0gbi5yZXR1cm4sDQogICAgICAg ICAgICAgICAgICBzID0gbiwNCiAgICAgICAgICAgICAgICAgIHUgPSB0Ow0KICAgICAgICAg ICAgICAgIGlmICgoKHQgPSBBcyksIChzLmZsYWdzIHw9IDMyNzY4KSwgbnVsbCAhPT0gdSAm JiAib2JqZWN0IiA9PT0gdHlwZW9mIHUgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHUudGhl bikpIHsNCiAgICAgICAgICAgICAgICAgIHZhciBjID0gdSwNCiAgICAgICAgICAgICAgICAg ICAgZCA9IHMsDQogICAgICAgICAgICAgICAgICAgIGYgPSBkLnRhZzsNCiAgICAgICAgICAg ICAgICAgIGlmICgwID09PSAoMSAmIGQubW9kZSkgJiYgKDAgPT09IGYgfHwgMTEgPT09IGYg fHwgMTUgPT09IGYpKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBwID0gZC5hbHRlcm5h dGU7DQogICAgICAgICAgICAgICAgICAgIHAgPyAoKGQudXBkYXRlUXVldWUgPSBwLnVwZGF0 ZVF1ZXVlKSwgKGQubWVtb2l6ZWRTdGF0ZSA9IHAubWVtb2l6ZWRTdGF0ZSksIChkLmxhbmVz ID0gcC5sYW5lcykpIDogKChkLnVwZGF0ZVF1ZXVlID0gbnVsbCksIChkLm1lbW9pemVkU3Rh dGUgPSBudWxsKSk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB2 YXIgaCA9IHZsKGwpOw0KICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGgpIHsNCiAg ICAgICAgICAgICAgICAgICAgKGguZmxhZ3MgJj0gLTI1NyksIHlsKGgsIGwsIHMsIDAsIHQp LCAxICYgaC5tb2RlICYmIGdsKGksIGMsIHQpLCAodSA9IGMpOw0KICAgICAgICAgICAgICAg ICAgICB2YXIgbSA9ICh0ID0gaCkudXBkYXRlUXVldWU7DQogICAgICAgICAgICAgICAgICAg IGlmIChudWxsID09PSBtKSB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIGcgPSBuZXcg U2V0KCk7DQogICAgICAgICAgICAgICAgICAgICAgZy5hZGQodSksICh0LnVwZGF0ZVF1ZXVl ID0gZyk7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBtLmFkZCh1KTsNCiAgICAgICAg ICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgIGlmICgwID09PSAoMSAmIHQpKSB7DQogICAgICAgICAgICAgICAgICAgIGdsKGks IGMsIHQpLCBndSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgdSA9IEVycm9yKGEoNDI2KSk7DQogICAg ICAgICAgICAgICAgfSBlbHNlIGlmIChhYSAmJiAxICYgcy5tb2RlKSB7DQogICAgICAgICAg ICAgICAgICB2YXIgdiA9IHZsKGwpOw0KICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09 IHYpIHsNCiAgICAgICAgICAgICAgICAgICAgMCA9PT0gKDY1NTM2ICYgdi5mbGFncykgJiYg KHYuZmxhZ3MgfD0gMjU2KSwgeWwodiwgbCwgcywgMCwgdCksIG1hKGNsKHUsIHMpKTsNCiAg ICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgKGkgPSB1ID0gY2wodSwgcykpLCA0ICE9 PSBqcyAmJiAoanMgPSAyKSwgbnVsbCA9PT0gRHMgPyAoRHMgPSBbaV0pIDogRHMucHVzaChp KSwgKGkgPSBsKTsNCiAgICAgICAgICAgICAgICBkbyB7DQogICAgICAgICAgICAgICAgICBz d2l0Y2ggKGkudGFnKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAg ICAgICAgICAgICAgICAoaS5mbGFncyB8PSA2NTUzNiksICh0ICY9IC10KSwgKGkubGFuZXMg fD0gdCksIExhKGksIGhsKDAsIHUsIHQpKTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVh ayBlOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAg ICAgcyA9IHU7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIHkgPSBpLnR5cGUsDQogICAg ICAgICAgICAgICAgICAgICAgICBiID0gaS5zdGF0ZU5vZGU7DQogICAgICAgICAgICAgICAg ICAgICAgaWYgKDAgPT09ICgxMjggJiBpLmZsYWdzKSAmJiAoImZ1bmN0aW9uIiA9PT0gdHlw ZW9mIHkuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIHx8IChudWxsICE9PSBiICYmICJmdW5j dGlvbiIgPT09IHR5cGVvZiBiLmNvbXBvbmVudERpZENhdGNoICYmIChudWxsID09PSBLcyB8 fCAhS3MuaGFzKGIpKSkpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAoaS5mbGFncyB8 PSA2NTUzNiksICh0ICY9IC10KSwgKGkubGFuZXMgfD0gdCksIExhKGksIG1sKGksIHMsIHQp KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgaSA9IGku cmV0dXJuOw0KICAgICAgICAgICAgICAgIH0gd2hpbGUgKG51bGwgIT09IGkpOw0KICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgIHh1KG4pOw0KICAgICAgICAgICAgfSBjYXRjaCAo dykgew0KICAgICAgICAgICAgICAodCA9IHcpLCBUcyA9PT0gbiAmJiBudWxsICE9PSBuICYm IChUcyA9IG4gPSBuLnJldHVybik7DQogICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIG11KCkgew0KICAgICAgICAgIHZhciBlID0gUnMuY3VycmVudDsN CiAgICAgICAgICByZXR1cm4gKFJzLmN1cnJlbnQgPSBpbCksIG51bGwgPT09IGUgPyBpbCA6 IGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZ3UoKSB7DQogICAgICAgICAgKDAg IT09IGpzICYmIDMgIT09IGpzICYmIDIgIT09IGpzKSB8fCAoanMgPSA0KSwgbnVsbCA9PT0g TnMgfHwgKDAgPT09ICgyNjg0MzU0NTUgJiBMcykgJiYgMCA9PT0gKDI2ODQzNTQ1NSAmIEZz KSkgfHwgc3UoTnMsIEFzKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB2dShlLCB0 KSB7DQogICAgICAgICAgdmFyIG4gPSBPczsNCiAgICAgICAgICBPcyB8PSAyOw0KICAgICAg ICAgIHZhciByID0gbXUoKTsNCiAgICAgICAgICBmb3IgKChOcyA9PT0gZSAmJiBBcyA9PT0g dCkgfHwgKChIcyA9IG51bGwpLCBwdShlLCB0KSk7IDspDQogICAgICAgICAgICB0cnkgew0K ICAgICAgICAgICAgICB5dSgpOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg IH0gY2F0Y2ggKG8pIHsNCiAgICAgICAgICAgICAgaHUoZSwgbyk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgaWYgKChTYSgpLCAoT3MgPSBuKSwgKFJzLmN1cnJlbnQgPSByKSwgbnVs bCAhPT0gVHMpKSB0aHJvdyBFcnJvcihhKDI2MSkpOw0KICAgICAgICAgIHJldHVybiAoTnMg PSBudWxsKSwgKEFzID0gMCksIGpzOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHl1 KCkgew0KICAgICAgICAgIGZvciAoOyBudWxsICE9PSBUczspIHd1KFRzKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBidSgpIHsNCiAgICAgICAgICBmb3IgKDsgbnVsbCAhPT0g VHMgJiYgIUdlKCk7KSB3dShUcyk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gd3Uo ZSkgew0KICAgICAgICAgIHZhciB0ID0gRXMoZS5hbHRlcm5hdGUsIGUsIE1zKTsNCiAgICAg ICAgICAoZS5tZW1vaXplZFByb3BzID0gZS5wZW5kaW5nUHJvcHMpLCBudWxsID09PSB0ID8g eHUoZSkgOiAoVHMgPSB0KSwgKF9zLmN1cnJlbnQgPSBudWxsKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiB4dShlKSB7DQogICAgICAgICAgdmFyIHQgPSBlOw0KICAgICAgICAg IGRvIHsNCiAgICAgICAgICAgIHZhciBuID0gdC5hbHRlcm5hdGU7DQogICAgICAgICAgICBp ZiAoKChlID0gdC5yZXR1cm4pLCAwID09PSAoMzI3NjggJiB0LmZsYWdzKSkpIHsNCiAgICAg ICAgICAgICAgaWYgKG51bGwgIT09IChuID0gUWwobiwgdCwgTXMpKSkgcmV0dXJuIHZvaWQg KFRzID0gbik7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICBpZiAobnVs bCAhPT0gKG4gPSBHbChuLCB0KSkpIHJldHVybiAobi5mbGFncyAmPSAzMjc2NyksIHZvaWQg KFRzID0gbik7DQogICAgICAgICAgICAgIGlmIChudWxsID09PSBlKSByZXR1cm4gKGpzID0g NiksIHZvaWQgKFRzID0gbnVsbCk7DQogICAgICAgICAgICAgIChlLmZsYWdzIHw9IDMyNzY4 KSwgKGUuc3VidHJlZUZsYWdzID0gMCksIChlLmRlbGV0aW9ucyA9IG51bGwpOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgaWYgKG51bGwgIT09ICh0ID0gdC5zaWJsaW5nKSkgcmV0 dXJuIHZvaWQgKFRzID0gdCk7DQogICAgICAgICAgICBUcyA9IHQgPSBlOw0KICAgICAgICAg IH0gd2hpbGUgKG51bGwgIT09IHQpOw0KICAgICAgICAgIDAgPT09IGpzICYmIChqcyA9IDUp Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFN1KGUsIHQsIG4pIHsNCiAgICAgICAg ICB2YXIgciA9IGJ0LA0KICAgICAgICAgICAgbyA9IFBzLnRyYW5zaXRpb247DQogICAgICAg ICAgdHJ5IHsNCiAgICAgICAgICAgIChQcy50cmFuc2l0aW9uID0gbnVsbCksDQogICAgICAg ICAgICAgIChidCA9IDEpLA0KICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUsIHQsIG4sIHIp IHsNCiAgICAgICAgICAgICAgICBkbyB7DQogICAgICAgICAgICAgICAgICBrdSgpOw0KICAg ICAgICAgICAgICAgIH0gd2hpbGUgKG51bGwgIT09IEdzKTsNCiAgICAgICAgICAgICAgICBp ZiAoMCAhPT0gKDYgJiBPcykpIHRocm93IEVycm9yKGEoMzI3KSk7DQogICAgICAgICAgICAg ICAgbiA9IGUuZmluaXNoZWRXb3JrOw0KICAgICAgICAgICAgICAgIHZhciBvID0gZS5maW5p c2hlZExhbmVzOw0KICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBuKSByZXR1cm4gbnVs bDsNCiAgICAgICAgICAgICAgICBpZiAoKChlLmZpbmlzaGVkV29yayA9IG51bGwpLCAoZS5m aW5pc2hlZExhbmVzID0gMCksIG4gPT09IGUuY3VycmVudCkpIHRocm93IEVycm9yKGEoMTc3 KSk7DQogICAgICAgICAgICAgICAgKGUuY2FsbGJhY2tOb2RlID0gbnVsbCksIChlLmNhbGxi YWNrUHJpb3JpdHkgPSAwKTsNCiAgICAgICAgICAgICAgICB2YXIgaSA9IG4ubGFuZXMgfCBu LmNoaWxkTGFuZXM7DQogICAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICAg KChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IGUucGVu ZGluZ0xhbmVzICYgfnQ7DQogICAgICAgICAgICAgICAgICAgIChlLnBlbmRpbmdMYW5lcyA9 IHQpLCAoZS5zdXNwZW5kZWRMYW5lcyA9IDApLCAoZS5waW5nZWRMYW5lcyA9IDApLCAoZS5l eHBpcmVkTGFuZXMgJj0gdCksIChlLm11dGFibGVSZWFkTGFuZXMgJj0gdCksIChlLmVudGFu Z2xlZExhbmVzICY9IHQpLCAodCA9IGUuZW50YW5nbGVtZW50cyk7DQogICAgICAgICAgICAg ICAgICAgIHZhciByID0gZS5ldmVudFRpbWVzOw0KICAgICAgICAgICAgICAgICAgICBmb3Ig KGUgPSBlLmV4cGlyYXRpb25UaW1lczsgMCA8IG47KSB7DQogICAgICAgICAgICAgICAgICAg ICAgdmFyIG8gPSAzMSAtIGl0KG4pLA0KICAgICAgICAgICAgICAgICAgICAgICAgYSA9IDEg PDwgbzsNCiAgICAgICAgICAgICAgICAgICAgICAodFtvXSA9IDApLCAocltvXSA9IC0xKSwg KGVbb10gPSAtMSksIChuICY9IH5hKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgfSkoZSwgaSksDQogICAgICAgICAgICAgICAgICAgIGUgPT09IE5zICYm ICgoVHMgPSBOcyA9IG51bGwpLCAoQXMgPSAwKSksDQogICAgICAgICAgICAgICAgICAgICgw ID09PSAoMjA2NCAmIG4uc3VidHJlZUZsYWdzKSAmJiAwID09PSAoMjA2NCAmIG4uZmxhZ3Mp KSB8fA0KICAgICAgICAgICAgICAgICAgICBRcyB8fA0KICAgICAgICAgICAgICAgICAgICAo KFFzID0gITApLA0KICAgICAgICAgICAgICAgICAgICAgIE51KHR0LCBmdW5jdGlvbiAoKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga3UoKSwgbnVsbDsNCiAgICAgICAg ICAgICAgICAgICAgICB9KSksDQogICAgICAgICAgICAgICAgICAgIChpID0gMCAhPT0gKDE1 OTkwICYgbi5mbGFncykpLA0KICAgICAgICAgICAgICAgICAgICAwICE9PSAoMTU5OTAgJiBu LnN1YnRyZWVGbGFncykgfHwgaSkNCiAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAg ICAgICAgIChpID0gUHMudHJhbnNpdGlvbiksIChQcy50cmFuc2l0aW9uID0gbnVsbCk7DQog ICAgICAgICAgICAgICAgICB2YXIgbCA9IGJ0Ow0KICAgICAgICAgICAgICAgICAgYnQgPSAx Ow0KICAgICAgICAgICAgICAgICAgdmFyIHMgPSBPczsNCiAgICAgICAgICAgICAgICAgIChP cyB8PSA0KSwNCiAgICAgICAgICAgICAgICAgICAgKF9zLmN1cnJlbnQgPSBudWxsKSwNCiAg ICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgICAg ICAgICAgaWYgKCgoZW8gPSBIdCksIHByKChlID0gZnIoKSkpKSkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCJzZWxlY3Rpb25TdGFydCIgaW4gZSkgdmFyIG4gPSB7IHN0YXJ0 OiBlLnNlbGVjdGlvblN0YXJ0LCBlbmQ6IGUuc2VsZWN0aW9uRW5kIH07DQogICAgICAgICAg ICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgIGU6IHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgciA9IChuID0gKChuID0gZS5vd25lckRv Y3VtZW50KSAmJiBuLmRlZmF1bHRWaWV3KSB8fCB3aW5kb3cpLmdldFNlbGVjdGlvbiAmJiBu LmdldFNlbGVjdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyICYm IDAgIT09IHIucmFuZ2VDb3VudCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg biA9IHIuYW5jaG9yTm9kZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBv ID0gci5hbmNob3JPZmZzZXQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkg PSByLmZvY3VzTm9kZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSByLmZv Y3VzT2Zmc2V0Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbi5ub2RlVHlwZSwgaS5ub2RlVHlwZTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbiA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbCA9IDAsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHMgPSAtMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdSA9IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gMCwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IDAsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGYgPSBlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQ6IGZvciAo OyA7KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGg7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZiAhPT0gbiB8fCAoMCAhPT0gbyAmJiAzICE9PSBmLm5vZGVUeXBl KSB8fCAocyA9IGwgKyBvKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm ICE9PSBpIHx8ICgwICE9PSByICYmIDMgIT09IGYubm9kZVR5cGUpIHx8ICh1ID0gbCArIHIp LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgPT09IGYubm9kZVR5cGUg JiYgKGwgKz0gZi5ub2RlVmFsdWUubGVuZ3RoKSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBudWxsICE9PSAoaCA9IGYuZmlyc3RDaGlsZCk7DQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChwID0gZiksIChmID0gaCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvciAoOyA7KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYg PT09IGUpIGJyZWFrIHQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KChwID09PSBuICYmICsrYyA9PT0gbyAmJiAocyA9IGwpLCBwID09PSBpICYmICsrZCA9PT0g ciAmJiAodSA9IGwpLCBudWxsICE9PSAoaCA9IGYubmV4dFNpYmxpbmcpKSkgYnJlYWs7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IChmID0gcCkucGFyZW50Tm9k ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmID0gaDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSAtMSA9PT0gcyB8fCAtMSA9 PT0gdSA/IG51bGwgOiB7IHN0YXJ0OiBzLCBlbmQ6IHUgfTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgbiA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG4gPSBuIHx8IHsgc3RhcnQ6IDAsIGVuZDog MCB9Ow0KICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBuID0gbnVsbDsNCiAgICAgICAg ICAgICAgICAgICAgICBmb3IgKHRvID0geyBmb2N1c2VkRWxlbTogZSwgc2VsZWN0aW9uUmFu Z2U6IG4gfSwgSHQgPSAhMSwgSmwgPSB0OyBudWxsICE9PSBKbDspDQogICAgICAgICAgICAg ICAgICAgICAgICBpZiAoKChlID0gKHQgPSBKbCkuY2hpbGQpLCAwICE9PSAoMTAyOCAmIHQu c3VidHJlZUZsYWdzKSAmJiBudWxsICE9PSBlKSkgKGUucmV0dXJuID0gdCksIChKbCA9IGUp Ow0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3IgKDsgbnVsbCAhPT0gSmw7KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgdCA9IEpsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YXIgbSA9IHQuYWx0ZXJuYXRlOw0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT09ICgxMDI0ICYgdC5mbGFncykpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodC50YWcpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjYXNlIDE1Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ug NToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNhc2UgMTc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNl IDE6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0g bSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZyA9IG0u bWVtb2l6ZWRQcm9wcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ID0gbS5tZW1vaXplZFN0YXRlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHkgPSB0LnN0YXRlTm9kZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiID0geS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh0LmVsZW1lbnRU eXBlID09PSB0LnR5cGUgPyBnIDogdmEodC50eXBlLCBnKSwgdik7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHkuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZv cmVVcGRhdGUgPSBiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmFyIHcgPSB0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA9PT0gdy5ub2RlVHlwZSA/ICh3 LnRleHRDb250ZW50ID0gIiIpIDogOSA9PT0gdy5ub2RlVHlwZSAmJiB3LmRvY3VtZW50RWxl bWVudCAmJiB3LnJlbW92ZUNoaWxkKHcuZG9jdW1lbnRFbGVtZW50KTsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aHJvdyBFcnJvcihhKDE2MykpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoeCkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3UodCwgdC5yZXR1cm4sIHgpOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAobnVsbCAhPT0gKGUgPSB0LnNpYmxpbmcpKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZS5yZXR1cm4gPSB0LnJldHVybiksIChKbCA9IGUpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpsID0gdC5yZXR1cm47DQogICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAobSA9IG5zKSwg KG5zID0gITEpOw0KICAgICAgICAgICAgICAgICAgICB9KShlLCBuKSwNCiAgICAgICAgICAg ICAgICAgICAgdnMobiwgZSksDQogICAgICAgICAgICAgICAgICAgIGhyKHRvKSwNCiAgICAg ICAgICAgICAgICAgICAgKEh0ID0gISFlbyksDQogICAgICAgICAgICAgICAgICAgICh0byA9 IGVvID0gbnVsbCksDQogICAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnQgPSBuKSwNCiAg ICAgICAgICAgICAgICAgICAgYnMobiwgZSwgbyksDQogICAgICAgICAgICAgICAgICAgIFll KCksDQogICAgICAgICAgICAgICAgICAgIChPcyA9IHMpLA0KICAgICAgICAgICAgICAgICAg ICAoYnQgPSBsKSwNCiAgICAgICAgICAgICAgICAgICAgKFBzLnRyYW5zaXRpb24gPSBpKTsN CiAgICAgICAgICAgICAgICB9IGVsc2UgZS5jdXJyZW50ID0gbjsNCiAgICAgICAgICAgICAg ICBpZiAoDQogICAgICAgICAgICAgICAgICAoUXMgJiYgKChRcyA9ICExKSwgKEdzID0gZSks IChZcyA9IG8pKSwNCiAgICAgICAgICAgICAgICAgICAgKGkgPSBlLnBlbmRpbmdMYW5lcyks DQogICAgICAgICAgICAgICAgICAgIDAgPT09IGkgJiYgKEtzID0gbnVsbCksDQogICAgICAg ICAgICAgICAgICAgIChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgIGlm IChhdCAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgYXQub25Db21taXRGaWJlclJvb3QpDQog ICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICBhdC5vbkNvbW1pdEZpYmVyUm9vdChvdCwgZSwgdm9pZCAwLCAxMjggPT09ICgxMjggJiBl LmN1cnJlbnQuZmxhZ3MpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHQp IHsgfQ0KICAgICAgICAgICAgICAgICAgICB9KShuLnN0YXRlTm9kZSksDQogICAgICAgICAg ICAgICAgICAgIG91KGUsIFhlKCkpLA0KICAgICAgICAgICAgICAgICAgICBudWxsICE9PSB0 KQ0KICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgIGZvciAociA9IGUub25S ZWNvdmVyYWJsZUVycm9yLCBuID0gMDsgbiA8IHQubGVuZ3RoOyBuKyspIChvID0gdFtuXSks IHIoby52YWx1ZSwgeyBjb21wb25lbnRTdGFjazogby5zdGFjaywgZGlnZXN0OiBvLmRpZ2Vz dCB9KTsNCiAgICAgICAgICAgICAgICBpZiAocXMpIHRocm93ICgocXMgPSAhMSksIChlID0g JHMpLCAoJHMgPSBudWxsKSwgZSk7DQogICAgICAgICAgICAgICAgMCAhPT0gKDEgJiBZcykg JiYgMCAhPT0gZS50YWcgJiYga3UoKSwgKGkgPSBlLnBlbmRpbmdMYW5lcyksIDAgIT09ICgx ICYgaSkgPyAoZSA9PT0gWnMgPyBYcysrIDogKChYcyA9IDApLCAoWnMgPSBlKSkpIDogKFhz ID0gMCksIFZvKCk7DQogICAgICAgICAgICAgIH0pKGUsIHQsIG4sIHIpOw0KICAgICAgICAg IH0gZmluYWxseSB7DQogICAgICAgICAgICAoUHMudHJhbnNpdGlvbiA9IG8pLCAoYnQgPSBy KTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24ga3UoKSB7DQogICAgICAgICAgaWYgKG51bGwgIT09IEdzKSB7DQog ICAgICAgICAgICB2YXIgZSA9IHd0KFlzKSwNCiAgICAgICAgICAgICAgdCA9IFBzLnRyYW5z aXRpb24sDQogICAgICAgICAgICAgIG4gPSBidDsNCiAgICAgICAgICAgIHRyeSB7DQogICAg ICAgICAgICAgIGlmICgoKFBzLnRyYW5zaXRpb24gPSBudWxsKSwgKGJ0ID0gMTYgPiBlID8g MTYgOiBlKSwgbnVsbCA9PT0gR3MpKSB2YXIgciA9ICExOw0KICAgICAgICAgICAgICBlbHNl IHsNCiAgICAgICAgICAgICAgICBpZiAoKChlID0gR3MpLCAoR3MgPSBudWxsKSwgKFlzID0g MCksIDAgIT09ICg2ICYgT3MpKSkgdGhyb3cgRXJyb3IoYSgzMzEpKTsNCiAgICAgICAgICAg ICAgICB2YXIgbyA9IE9zOw0KICAgICAgICAgICAgICAgIGZvciAoT3MgfD0gNCwgSmwgPSBl LmN1cnJlbnQ7IG51bGwgIT09IEpsOykgew0KICAgICAgICAgICAgICAgICAgdmFyIGkgPSBK bCwNCiAgICAgICAgICAgICAgICAgICAgbCA9IGkuY2hpbGQ7DQogICAgICAgICAgICAgICAg ICBpZiAoMCAhPT0gKDE2ICYgSmwuZmxhZ3MpKSB7DQogICAgICAgICAgICAgICAgICAgIHZh ciBzID0gaS5kZWxldGlvbnM7DQogICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBz KSB7DQogICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgdSA9IDA7IHUgPCBzLmxlbmd0 aDsgdSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IHNbdV07DQogICAg ICAgICAgICAgICAgICAgICAgICBmb3IgKEpsID0gYzsgbnVsbCAhPT0gSmw7KSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gSmw7DQogICAgICAgICAgICAgICAgICAg ICAgICAgIHN3aXRjaCAoZC50YWcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBj YXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXNlIDE1Og0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnMoOCwgZCwgaSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSBkLmNoaWxkOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAobnVsbCAhPT0gZikgKGYucmV0dXJuID0gZCksIChKbCA9IGYpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9yICg7IG51bGwgIT09IEpsOykgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmFyIHAgPSAoZCA9IEpsKS5zaWJsaW5nLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBoID0gZC5yZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoKGlzKGQpLCBkID09PSBjKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBKbCA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKG51bGwgIT09IHApIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHAucmV0dXJuID0gaCksIChKbCA9IHApOw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpsID0gaDsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIHZhciBtID0gaS5hbHRlcm5h dGU7DQogICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IG0pIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgIHZhciBnID0gbS5jaGlsZDsNCiAgICAgICAgICAgICAgICAgICAg ICAgIGlmIChudWxsICE9PSBnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIG0uY2hp bGQgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBkbyB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmFyIHYgPSBnLnNpYmxpbmc7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGcuc2libGluZyA9IG51bGwpLCAoZyA9IHYpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICB9IHdoaWxlIChudWxsICE9PSBnKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgSmwgPSBpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICBpZiAoMCAhPT0gKDIwNjQgJiBpLnN1YnRyZWVGbGFncykg JiYgbnVsbCAhPT0gbCkgKGwucmV0dXJuID0gaSksIChKbCA9IGwpOw0KICAgICAgICAgICAg ICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICBlOiBmb3IgKDsgbnVsbCAhPT0gSmw7 KSB7DQogICAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT09ICgyMDQ4ICYgKGkgPSBKbCku ZmxhZ3MpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpLnRhZykgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAg ICAgIGNhc2UgMTE6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgcnMoOSwgaSwgaS5yZXR1cm4pOw0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIHZhciB5ID0gaS5zaWJs aW5nOw0KICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSB5KSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAoeS5yZXR1cm4gPSBpLnJldHVybiksIChKbCA9IHkpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgSmwgPSBpLnJldHVybjsNCiAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgYiA9IGUu Y3VycmVudDsNCiAgICAgICAgICAgICAgICBmb3IgKEpsID0gYjsgbnVsbCAhPT0gSmw7KSB7 DQogICAgICAgICAgICAgICAgICB2YXIgdyA9IChsID0gSmwpLmNoaWxkOw0KICAgICAgICAg ICAgICAgICAgaWYgKDAgIT09ICgyMDY0ICYgbC5zdWJ0cmVlRmxhZ3MpICYmIG51bGwgIT09 IHcpICh3LnJldHVybiA9IGwpLCAoSmwgPSB3KTsNCiAgICAgICAgICAgICAgICAgIGVsc2UN CiAgICAgICAgICAgICAgICAgICAgZTogZm9yIChsID0gYjsgbnVsbCAhPT0gSmw7KSB7DQog ICAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT09ICgyMDQ4ICYgKHMgPSBKbCkuZmxhZ3Mp KQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgc3dpdGNoIChzLnRhZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh c2UgMDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDExOg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvcyg5LCBzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgfSBjYXRjaCAoUykgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICBDdShzLCBzLnJldHVybiwgUyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgaWYgKHMgPT09IGwpIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIEpsID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIHZhciB4ID0gcy5z aWJsaW5nOw0KICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSB4KSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAoeC5yZXR1cm4gPSBzLnJldHVybiksIChKbCA9IHgpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgSmwgPSBzLnJldHVybjsNCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoKChP cyA9IG8pLCBWbygpLCBhdCAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgYXQub25Qb3N0Q29t bWl0RmliZXJSb290KSkNCiAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg ICAgICAgIGF0Lm9uUG9zdENvbW1pdEZpYmVyUm9vdChvdCwgZSk7DQogICAgICAgICAgICAg ICAgICB9IGNhdGNoIChTKSB7IH0NCiAgICAgICAgICAgICAgICByID0gITA7DQogICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIHI7DQogICAgICAgICAgICB9IGZpbmFs bHkgew0KICAgICAgICAgICAgICAoYnQgPSBuKSwgKFBzLnRyYW5zaXRpb24gPSB0KTsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICExOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIEV1KGUsIHQsIG4pIHsNCiAgICAgICAgICAoZSA9IGph KGUsICh0ID0gaGwoMCwgKHQgPSBjbChuLCB0KSksIDEpKSwgMSkpLCAodCA9IHR1KCkpLCBu dWxsICE9PSBlICYmICh2dChlLCAxLCB0KSwgb3UoZSwgdCkpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIEN1KGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAoMyA9PT0gZS50YWcp IEV1KGUsIGUsIG4pOw0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIGZvciAoOyBudWxs ICE9PSB0Oykgew0KICAgICAgICAgICAgICBpZiAoMyA9PT0gdC50YWcpIHsNCiAgICAgICAg ICAgICAgICBFdSh0LCBlLCBuKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICBpZiAoMSA9PT0gdC50YWcpIHsNCiAgICAgICAgICAg ICAgICB2YXIgciA9IHQuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rp b24iID09PSB0eXBlb2YgdC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciB8fCAoImZ1 bmN0aW9uIiA9PT0gdHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2ggJiYgKG51bGwgPT09IEtz IHx8ICFLcy5oYXMocikpKSkgew0KICAgICAgICAgICAgICAgICAgKHQgPSBqYSh0LCAoZSA9 IG1sKHQsIChlID0gY2wobiwgZSkpLCAxKSksIDEpKSwgKGUgPSB0dSgpKSwgbnVsbCAhPT0g dCAmJiAodnQodCwgMSwgZSksIG91KHQsIGUpKTsNCiAgICAgICAgICAgICAgICAgIGJyZWFr Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB0 ID0gdC5yZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gUnUoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gZS5waW5nQ2FjaGU7DQogICAg ICAgICAgbnVsbCAhPT0gciAmJiByLmRlbGV0ZSh0KSwNCiAgICAgICAgICAgICh0ID0gdHUo KSksDQogICAgICAgICAgICAoZS5waW5nZWRMYW5lcyB8PSBlLnN1c3BlbmRlZExhbmVzICYg biksDQogICAgICAgICAgICBOcyA9PT0gZSAmJiAoQXMgJiBuKSA9PT0gbiAmJiAoNCA9PT0g anMgfHwgKDMgPT09IGpzICYmICgxMzAwMjM0MjQgJiBBcykgPT09IEFzICYmIDUwMCA+IFhl KCkgLSBXcykgPyBwdShlLCAwKSA6IChCcyB8PSBuKSksDQogICAgICAgICAgICBvdShlLCB0 KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBfdShlLCB0KSB7DQogICAgICAgICAg MCA9PT0gdCAmJiAoMCA9PT0gKDEgJiBlLm1vZGUpID8gKHQgPSAxKSA6ICgodCA9IGN0KSwg MCA9PT0gKDEzMDAyMzQyNCAmIChjdCA8PD0gMSkpICYmIChjdCA9IDQxOTQzMDQpKSk7DQog ICAgICAgICAgdmFyIG4gPSB0dSgpOw0KICAgICAgICAgIG51bGwgIT09IChlID0gTmEoZSwg dCkpICYmICh2dChlLCB0LCBuKSwgb3UoZSwgbikpOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIFB1KGUpIHsNCiAgICAgICAgICB2YXIgdCA9IGUubWVtb2l6ZWRTdGF0ZSwNCiAg ICAgICAgICAgIG4gPSAwOw0KICAgICAgICAgIG51bGwgIT09IHQgJiYgKG4gPSB0LnJldHJ5 TGFuZSksIF91KGUsIG4pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE91KGUsIHQp IHsNCiAgICAgICAgICB2YXIgbiA9IDA7DQogICAgICAgICAgc3dpdGNoIChlLnRhZykgew0K ICAgICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAgdmFyIHIgPSBlLnN0YXRlTm9k ZSwNCiAgICAgICAgICAgICAgICBvID0gZS5tZW1vaXplZFN0YXRlOw0KICAgICAgICAgICAg ICBudWxsICE9PSBvICYmIChuID0gby5yZXRyeUxhbmUpOw0KICAgICAgICAgICAgICBicmVh azsNCiAgICAgICAgICAgIGNhc2UgMTk6DQogICAgICAgICAgICAgIHIgPSBlLnN0YXRlTm9k ZTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAg ICAgICAgICB0aHJvdyBFcnJvcihhKDMxNCkpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBu dWxsICE9PSByICYmIHIuZGVsZXRlKHQpLCBfdShlLCBuKTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBOdShlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIEtlKGUsIHQpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFR1KGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAo dGhpcy50YWcgPSBlKSwNCiAgICAgICAgICAgICh0aGlzLmtleSA9IG4pLA0KICAgICAgICAg ICAgKHRoaXMuc2libGluZyA9IHRoaXMuY2hpbGQgPSB0aGlzLnJldHVybiA9IHRoaXMuc3Rh dGVOb2RlID0gdGhpcy50eXBlID0gdGhpcy5lbGVtZW50VHlwZSA9IG51bGwpLA0KICAgICAg ICAgICAgKHRoaXMuaW5kZXggPSAwKSwNCiAgICAgICAgICAgICh0aGlzLnJlZiA9IG51bGwp LA0KICAgICAgICAgICAgKHRoaXMucGVuZGluZ1Byb3BzID0gdCksDQogICAgICAgICAgICAo dGhpcy5kZXBlbmRlbmNpZXMgPSB0aGlzLm1lbW9pemVkU3RhdGUgPSB0aGlzLnVwZGF0ZVF1 ZXVlID0gdGhpcy5tZW1vaXplZFByb3BzID0gbnVsbCksDQogICAgICAgICAgICAodGhpcy5t b2RlID0gciksDQogICAgICAgICAgICAodGhpcy5zdWJ0cmVlRmxhZ3MgPSB0aGlzLmZsYWdz ID0gMCksDQogICAgICAgICAgICAodGhpcy5kZWxldGlvbnMgPSBudWxsKSwNCiAgICAgICAg ICAgICh0aGlzLmNoaWxkTGFuZXMgPSB0aGlzLmxhbmVzID0gMCksDQogICAgICAgICAgICAo dGhpcy5hbHRlcm5hdGUgPSBudWxsKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBB dShlLCB0LCBuLCByKSB7DQogICAgICAgICAgcmV0dXJuIG5ldyBUdShlLCB0LCBuLCByKTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBNdShlKSB7DQogICAgICAgICAgcmV0dXJu ICEoIShlID0gZS5wcm90b3R5cGUpIHx8ICFlLmlzUmVhY3RDb21wb25lbnQpOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIHp1KGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IGUu YWx0ZXJuYXRlOw0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBudWxsID09PSBu DQogICAgICAgICAgICAgID8gKCgobiA9IEF1KGUudGFnLCB0LCBlLmtleSwgZS5tb2RlKSku ZWxlbWVudFR5cGUgPSBlLmVsZW1lbnRUeXBlKSwgKG4udHlwZSA9IGUudHlwZSksIChuLnN0 YXRlTm9kZSA9IGUuc3RhdGVOb2RlKSwgKG4uYWx0ZXJuYXRlID0gZSksIChlLmFsdGVybmF0 ZSA9IG4pKQ0KICAgICAgICAgICAgICA6ICgobi5wZW5kaW5nUHJvcHMgPSB0KSwgKG4udHlw ZSA9IGUudHlwZSksIChuLmZsYWdzID0gMCksIChuLnN1YnRyZWVGbGFncyA9IDApLCAobi5k ZWxldGlvbnMgPSBudWxsKSksDQogICAgICAgICAgICAobi5mbGFncyA9IDE0NjgwMDY0ICYg ZS5mbGFncyksDQogICAgICAgICAgICAobi5jaGlsZExhbmVzID0gZS5jaGlsZExhbmVzKSwN CiAgICAgICAgICAgIChuLmxhbmVzID0gZS5sYW5lcyksDQogICAgICAgICAgICAobi5jaGls ZCA9IGUuY2hpbGQpLA0KICAgICAgICAgICAgKG4ubWVtb2l6ZWRQcm9wcyA9IGUubWVtb2l6 ZWRQcm9wcyksDQogICAgICAgICAgICAobi5tZW1vaXplZFN0YXRlID0gZS5tZW1vaXplZFN0 YXRlKSwNCiAgICAgICAgICAgIChuLnVwZGF0ZVF1ZXVlID0gZS51cGRhdGVRdWV1ZSksDQog ICAgICAgICAgICAodCA9IGUuZGVwZW5kZW5jaWVzKSwNCiAgICAgICAgICAgIChuLmRlcGVu ZGVuY2llcyA9IG51bGwgPT09IHQgPyBudWxsIDogeyBsYW5lczogdC5sYW5lcywgZmlyc3RD b250ZXh0OiB0LmZpcnN0Q29udGV4dCB9KSwNCiAgICAgICAgICAgIChuLnNpYmxpbmcgPSBl LnNpYmxpbmcpLA0KICAgICAgICAgICAgKG4uaW5kZXggPSBlLmluZGV4KSwNCiAgICAgICAg ICAgIChuLnJlZiA9IGUucmVmKSwNCiAgICAgICAgICAgIG4NCiAgICAgICAgICApOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGp1KGUsIHQsIG4sIHIsIG8sIGkpIHsNCiAgICAg ICAgICB2YXIgbCA9IDI7DQogICAgICAgICAgaWYgKCgociA9IGUpLCAiZnVuY3Rpb24iID09 PSB0eXBlb2YgZSkpIE11KGUpICYmIChsID0gMSk7DQogICAgICAgICAgZWxzZSBpZiAoInN0 cmluZyIgPT09IHR5cGVvZiBlKSBsID0gNTsNCiAgICAgICAgICBlbHNlDQogICAgICAgICAg ICBlOiBzd2l0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgY2FzZSBrOg0KICAgICAgICAgICAg ICAgIHJldHVybiBJdShuLmNoaWxkcmVuLCBvLCBpLCB0KTsNCiAgICAgICAgICAgICAgY2Fz ZSBFOg0KICAgICAgICAgICAgICAgIChsID0gOCksIChvIHw9IDgpOw0KICAgICAgICAgICAg ICAgIGJyZWFrOw0KICAgICAgICAgICAgICBjYXNlIEM6DQogICAgICAgICAgICAgICAgcmV0 dXJuICgoZSA9IEF1KDEyLCBuLCB0LCAyIHwgbykpLmVsZW1lbnRUeXBlID0gQyksIChlLmxh bmVzID0gaSksIGU7DQogICAgICAgICAgICAgIGNhc2UgTzoNCiAgICAgICAgICAgICAgICBy ZXR1cm4gKChlID0gQXUoMTMsIG4sIHQsIG8pKS5lbGVtZW50VHlwZSA9IE8pLCAoZS5sYW5l cyA9IGkpLCBlOw0KICAgICAgICAgICAgICBjYXNlIE46DQogICAgICAgICAgICAgICAgcmV0 dXJuICgoZSA9IEF1KDE5LCBuLCB0LCBvKSkuZWxlbWVudFR5cGUgPSBOKSwgKGUubGFuZXMg PSBpKSwgZTsNCiAgICAgICAgICAgICAgY2FzZSBNOg0KICAgICAgICAgICAgICAgIHJldHVy biBMdShuLCBvLCBpLCB0KTsNCiAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAg ICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBlICYmIG51bGwgIT09IGUpDQogICAgICAg ICAgICAgICAgICBzd2l0Y2ggKGUuJCR0eXBlb2YpIHsNCiAgICAgICAgICAgICAgICAgICAg Y2FzZSBSOg0KICAgICAgICAgICAgICAgICAgICAgIGwgPSAxMDsNCiAgICAgICAgICAgICAg ICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIF86DQogICAgICAg ICAgICAgICAgICAgICAgbCA9IDk7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsN CiAgICAgICAgICAgICAgICAgICAgY2FzZSBQOg0KICAgICAgICAgICAgICAgICAgICAgIGwg PSAxMTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAg ICAgICBjYXNlIFQ6DQogICAgICAgICAgICAgICAgICAgICAgbCA9IDE0Ow0KICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgQToNCiAg ICAgICAgICAgICAgICAgICAgICAobCA9IDE2KSwgKHIgPSBudWxsKTsNCiAgICAgICAgICAg ICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIHRocm93IEVycm9yKGEoMTMwLCBudWxsID09IGUgPyBlIDogdHlwZW9mIGUsICIiKSk7 DQogICAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICgodCA9IEF1KGwsIG4sIHQsIG8p KS5lbGVtZW50VHlwZSA9IGUpLCAodC50eXBlID0gciksICh0LmxhbmVzID0gaSksIHQ7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSXUoZSwgdCwgbiwgcikgew0KICAgICAgICAg IHJldHVybiAoKGUgPSBBdSg3LCBlLCByLCB0KSkubGFuZXMgPSBuKSwgZTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBMdShlLCB0LCBuLCByKSB7DQogICAgICAgICAgcmV0dXJu ICgoZSA9IEF1KDIyLCBlLCByLCB0KSkuZWxlbWVudFR5cGUgPSBNKSwgKGUubGFuZXMgPSBu KSwgKGUuc3RhdGVOb2RlID0geyBpc0hpZGRlbjogITEgfSksIGU7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gRnUoZSwgdCwgbikgew0KICAgICAgICAgIHJldHVybiAoKGUgPSBB dSg2LCBlLCBudWxsLCB0KSkubGFuZXMgPSBuKSwgZTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBCdShlLCB0LCBuKSB7DQogICAgICAgICAgcmV0dXJuICgodCA9IEF1KDQsIG51 bGwgIT09IGUuY2hpbGRyZW4gPyBlLmNoaWxkcmVuIDogW10sIGUua2V5LCB0KSkubGFuZXMg PSBuKSwgKHQuc3RhdGVOb2RlID0geyBjb250YWluZXJJbmZvOiBlLmNvbnRhaW5lckluZm8s IHBlbmRpbmdDaGlsZHJlbjogbnVsbCwgaW1wbGVtZW50YXRpb246IGUuaW1wbGVtZW50YXRp b24gfSksIHQ7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRHUoZSwgdCwgbiwgciwg bykgew0KICAgICAgICAgICh0aGlzLnRhZyA9IHQpLA0KICAgICAgICAgICAgKHRoaXMuY29u dGFpbmVySW5mbyA9IGUpLA0KICAgICAgICAgICAgKHRoaXMuZmluaXNoZWRXb3JrID0gdGhp cy5waW5nQ2FjaGUgPSB0aGlzLmN1cnJlbnQgPSB0aGlzLnBlbmRpbmdDaGlsZHJlbiA9IG51 bGwpLA0KICAgICAgICAgICAgKHRoaXMudGltZW91dEhhbmRsZSA9IC0xKSwNCiAgICAgICAg ICAgICh0aGlzLmNhbGxiYWNrTm9kZSA9IHRoaXMucGVuZGluZ0NvbnRleHQgPSB0aGlzLmNv bnRleHQgPSBudWxsKSwNCiAgICAgICAgICAgICh0aGlzLmNhbGxiYWNrUHJpb3JpdHkgPSAw KSwNCiAgICAgICAgICAgICh0aGlzLmV2ZW50VGltZXMgPSBndCgwKSksDQogICAgICAgICAg ICAodGhpcy5leHBpcmF0aW9uVGltZXMgPSBndCgtMSkpLA0KICAgICAgICAgICAgKHRoaXMu ZW50YW5nbGVkTGFuZXMgPSB0aGlzLmZpbmlzaGVkTGFuZXMgPSB0aGlzLm11dGFibGVSZWFk TGFuZXMgPSB0aGlzLmV4cGlyZWRMYW5lcyA9IHRoaXMucGluZ2VkTGFuZXMgPSB0aGlzLnN1 c3BlbmRlZExhbmVzID0gdGhpcy5wZW5kaW5nTGFuZXMgPSAwKSwNCiAgICAgICAgICAgICh0 aGlzLmVudGFuZ2xlbWVudHMgPSBndCgwKSksDQogICAgICAgICAgICAodGhpcy5pZGVudGlm aWVyUHJlZml4ID0gciksDQogICAgICAgICAgICAodGhpcy5vblJlY292ZXJhYmxlRXJyb3Ig PSBvKSwNCiAgICAgICAgICAgICh0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRh dGEgPSBudWxsKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBVdShlLCB0LCBuLCBy LCBvLCBhLCBpLCBsLCBzKSB7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIChl ID0gbmV3IER1KGUsIHQsIG4sIGwsIHMpKSwNCiAgICAgICAgICAgIDEgPT09IHQgPyAoKHQg PSAxKSwgITAgPT09IGEgJiYgKHQgfD0gOCkpIDogKHQgPSAwKSwNCiAgICAgICAgICAgIChh ID0gQXUoMywgbnVsbCwgbnVsbCwgdCkpLA0KICAgICAgICAgICAgKGUuY3VycmVudCA9IGEp LA0KICAgICAgICAgICAgKGEuc3RhdGVOb2RlID0gZSksDQogICAgICAgICAgICAoYS5tZW1v aXplZFN0YXRlID0geyBlbGVtZW50OiByLCBpc0RlaHlkcmF0ZWQ6IG4sIGNhY2hlOiBudWxs LCB0cmFuc2l0aW9uczogbnVsbCwgcGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczogbnVsbCB9 KSwNCiAgICAgICAgICAgIEFhKGEpLA0KICAgICAgICAgICAgZQ0KICAgICAgICAgICk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gV3UoZSkgew0KICAgICAgICAgIGlmICghZSkg cmV0dXJuIFBvOw0KICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgIGlmIChXZSgoZSA9IGUu X3JlYWN0SW50ZXJuYWxzKSkgIT09IGUgfHwgMSAhPT0gZS50YWcpIHRocm93IEVycm9yKGEo MTcwKSk7DQogICAgICAgICAgICB2YXIgdCA9IGU7DQogICAgICAgICAgICBkbyB7DQogICAg ICAgICAgICAgIHN3aXRjaCAodC50YWcpIHsNCiAgICAgICAgICAgICAgICBjYXNlIDM6DQog ICAgICAgICAgICAgICAgICB0ID0gdC5zdGF0ZU5vZGUuY29udGV4dDsNCiAgICAgICAgICAg ICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAg ICAgICAgaWYgKE1vKHQudHlwZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgdCA9IHQuc3Rh dGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0Ow0KICAg ICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgIHQgPSB0LnJldHVybjsNCiAgICAgICAgICAgIH0g d2hpbGUgKG51bGwgIT09IHQpOw0KICAgICAgICAgICAgdGhyb3cgRXJyb3IoYSgxNzEpKTsN CiAgICAgICAgICB9DQogICAgICAgICAgaWYgKDEgPT09IGUudGFnKSB7DQogICAgICAgICAg ICB2YXIgbiA9IGUudHlwZTsNCiAgICAgICAgICAgIGlmIChNbyhuKSkgcmV0dXJuIElvKGUs IG4sIHQpOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gdDsNCiAgICAgICAgfQ0K ICAgICAgICBmdW5jdGlvbiBWdShlLCB0LCBuLCByLCBvLCBhLCBpLCBsLCBzKSB7DQogICAg ICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICgoZSA9IFV1KG4sIHIsICEwLCBlLCAwLCBh LCAwLCBsLCBzKSkuY29udGV4dCA9IFd1KG51bGwpKSwNCiAgICAgICAgICAgIChuID0gZS5j dXJyZW50KSwNCiAgICAgICAgICAgICgoYSA9IHphKChyID0gdHUoKSksIChvID0gbnUobikp KSkuY2FsbGJhY2sgPSB2b2lkIDAgIT09IHQgJiYgbnVsbCAhPT0gdCA/IHQgOiBudWxsKSwN CiAgICAgICAgICAgIGphKG4sIGEsIG8pLA0KICAgICAgICAgICAgKGUuY3VycmVudC5sYW5l cyA9IG8pLA0KICAgICAgICAgICAgdnQoZSwgbywgciksDQogICAgICAgICAgICBvdShlLCBy KSwNCiAgICAgICAgICAgIGUNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIEh1KGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICB2YXIgbyA9IHQuY3VycmVudCwN CiAgICAgICAgICAgIGEgPSB0dSgpLA0KICAgICAgICAgICAgaSA9IG51KG8pOw0KICAgICAg ICAgIHJldHVybiAoDQogICAgICAgICAgICAobiA9IFd1KG4pKSwNCiAgICAgICAgICAgIG51 bGwgPT09IHQuY29udGV4dCA/ICh0LmNvbnRleHQgPSBuKSA6ICh0LnBlbmRpbmdDb250ZXh0 ID0gbiksDQogICAgICAgICAgICAoKHQgPSB6YShhLCBpKSkucGF5bG9hZCA9IHsgZWxlbWVu dDogZSB9KSwNCiAgICAgICAgICAgIG51bGwgIT09IChyID0gdm9pZCAwID09PSByID8gbnVs bCA6IHIpICYmICh0LmNhbGxiYWNrID0gciksDQogICAgICAgICAgICBudWxsICE9PSAoZSA9 IGphKG8sIHQsIGkpKSAmJiAocnUoZSwgbywgaSwgYSksIElhKGUsIG8sIGkpKSwNCiAgICAg ICAgICAgIGkNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHF1 KGUpIHsNCiAgICAgICAgICByZXR1cm4gKGUgPSBlLmN1cnJlbnQpLmNoaWxkID8gKGUuY2hp bGQudGFnLCBlLmNoaWxkLnN0YXRlTm9kZSkgOiBudWxsOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uICR1KGUsIHQpIHsNCiAgICAgICAgICBpZiAobnVsbCAhPT0gKGUgPSBlLm1l bW9pemVkU3RhdGUpICYmIG51bGwgIT09IGUuZGVoeWRyYXRlZCkgew0KICAgICAgICAgICAg dmFyIG4gPSBlLnJldHJ5TGFuZTsNCiAgICAgICAgICAgIGUucmV0cnlMYW5lID0gMCAhPT0g biAmJiBuIDwgdCA/IG4gOiB0Ow0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBLdShlLCB0KSB7DQogICAgICAgICAgJHUoZSwgdCksIChlID0gZS5hbHRlcm5h dGUpICYmICR1KGUsIHQpOw0KICAgICAgICB9DQogICAgICAgIEVzID0gZnVuY3Rpb24gKGUs IHQsIG4pIHsNCiAgICAgICAgICBpZiAobnVsbCAhPT0gZSkNCiAgICAgICAgICAgIGlmIChl Lm1lbW9pemVkUHJvcHMgIT09IHQucGVuZGluZ1Byb3BzIHx8IE5vLmN1cnJlbnQpIHdsID0g ITA7DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgaWYgKDAgPT09IChlLmxh bmVzICYgbikgJiYgMCA9PT0gKDEyOCAmIHQuZmxhZ3MpKQ0KICAgICAgICAgICAgICAgIHJl dHVybiAoDQogICAgICAgICAgICAgICAgICAod2wgPSAhMSksDQogICAgICAgICAgICAgICAg ICAoZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0 LnRhZykgew0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAg ICAgICAgICAgIE5sKHQpLCBoYSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICAgICAgICAg ICAgaWkodCk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg ICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgICBNbyh0LnR5cGUp ICYmIExvKHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICAgICAgb2kodCwgdC5z dGF0ZU5vZGUuY29udGFpbmVySW5mbyk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVh azsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDEwOg0KICAgICAgICAgICAgICAgICAg ICAgICAgdmFyIHIgPSB0LnR5cGUuX2NvbnRleHQsDQogICAgICAgICAgICAgICAgICAgICAg ICAgIG8gPSB0Lm1lbW9pemVkUHJvcHMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAg ICBfbyh5YSwgci5fY3VycmVudFZhbHVlKSwgKHIuX2N1cnJlbnRWYWx1ZSA9IG8pOw0KICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2Fz ZSAxMzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSAociA9IHQubWVt b2l6ZWRTdGF0ZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsICE9 PSByLmRlaHlkcmF0ZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChfbyhzaSwg MSAmIHNpLmN1cnJlbnQpLCAodC5mbGFncyB8PSAxMjgpLCBudWxsKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogMCAhPT0gKG4gJiB0LmNoaWxkLmNoaWxkTGFuZXMpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA/IEZsKGUsIHQsIG4pDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IChfbyhzaSwgMSAmIHNpLmN1cnJlbnQpLCBudWxsICE9PSAo ZSA9IHFsKGUsIHQsIG4pKSA/IGUuc2libGluZyA6IG51bGwpOw0KICAgICAgICAgICAgICAg ICAgICAgICAgX28oc2ksIDEgJiBzaS5jdXJyZW50KTsNCiAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTk6DQogICAgICAgICAg ICAgICAgICAgICAgICBpZiAoKChyID0gMCAhPT0gKG4gJiB0LmNoaWxkTGFuZXMpKSwgMCAh PT0gKDEyOCAmIGUuZmxhZ3MpKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo cikgcmV0dXJuIFZsKGUsIHQsIG4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB0LmZs YWdzIHw9IDEyODsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgobnVsbCAhPT0gKG8gPSB0Lm1lbW9pemVkU3RhdGUpICYmICgoby5y ZW5kZXJpbmcgPSBudWxsKSwgKG8udGFpbCA9IG51bGwpLCAoby5sYXN0RWZmZWN0ID0gbnVs bCkpLCBfbyhzaSwgc2kuY3VycmVudCksIHIpKSBicmVhazsNCiAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjI6DQog ICAgICAgICAgICAgICAgICAgICAgY2FzZSAyMzoNCiAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAodC5sYW5lcyA9IDApLCBDbChlLCB0LCBuKTsNCiAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gcWwoZSwgdCwgbik7DQogICAgICAg ICAgICAgICAgICB9KShlLCB0LCBuKQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAg ICAgIHdsID0gMCAhPT0gKDEzMTA3MiAmIGUuZmxhZ3MpOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgIGVsc2UgKHdsID0gITEpLCBhYSAmJiAwICE9PSAoMTA0ODU3NiAmIHQuZmxhZ3Mp ICYmIGVhKHQsIEtvLCB0LmluZGV4KTsNCiAgICAgICAgICBzd2l0Y2ggKCgodC5sYW5lcyA9 IDApLCB0LnRhZykpIHsNCiAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgICAgdmFy IHIgPSB0LnR5cGU7DQogICAgICAgICAgICAgIEhsKGUsIHQpLCAoZSA9IHQucGVuZGluZ1By b3BzKTsNCiAgICAgICAgICAgICAgdmFyIG8gPSBBbyh0LCBPby5jdXJyZW50KTsNCiAgICAg ICAgICAgICAgQ2EodCwgbiksIChvID0gRWkobnVsbCwgdCwgciwgZSwgbywgbikpOw0KICAg ICAgICAgICAgICB2YXIgaSA9IENpKCk7DQogICAgICAgICAgICAgIHJldHVybiAoDQogICAg ICAgICAgICAgICAgKHQuZmxhZ3MgfD0gMSksDQogICAgICAgICAgICAgICAgIm9iamVjdCIg PT09IHR5cGVvZiBvICYmIG51bGwgIT09IG8gJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG8u cmVuZGVyICYmIHZvaWQgMCA9PT0gby4kJHR5cGVvZg0KICAgICAgICAgICAgICAgICAgPyAo KHQudGFnID0gMSksDQogICAgICAgICAgICAgICAgICAgICh0Lm1lbW9pemVkU3RhdGUgPSBu dWxsKSwNCiAgICAgICAgICAgICAgICAgICAgKHQudXBkYXRlUXVldWUgPSBudWxsKSwNCiAg ICAgICAgICAgICAgICAgICAgTW8ocikgPyAoKGkgPSAhMCksIExvKHQpKSA6IChpID0gITEp LA0KICAgICAgICAgICAgICAgICAgICAodC5tZW1vaXplZFN0YXRlID0gbnVsbCAhPT0gby5z dGF0ZSAmJiB2b2lkIDAgIT09IG8uc3RhdGUgPyBvLnN0YXRlIDogbnVsbCksDQogICAgICAg ICAgICAgICAgICAgIEFhKHQpLA0KICAgICAgICAgICAgICAgICAgICAoby51cGRhdGVyID0g V2EpLA0KICAgICAgICAgICAgICAgICAgICAodC5zdGF0ZU5vZGUgPSBvKSwNCiAgICAgICAg ICAgICAgICAgICAgKG8uX3JlYWN0SW50ZXJuYWxzID0gdCksDQogICAgICAgICAgICAgICAg ICAgICRhKHQsIHIsIGUsIG4pLA0KICAgICAgICAgICAgICAgICAgICAodCA9IE9sKG51bGws IHQsIHIsICEwLCBpLCBuKSkpDQogICAgICAgICAgICAgICAgICA6ICgodC50YWcgPSAwKSwg YWEgJiYgaSAmJiB0YSh0KSwgeGwobnVsbCwgdCwgbywgbiksICh0ID0gdC5jaGlsZCkpLA0K ICAgICAgICAgICAgICAgIHQNCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIGNhc2Ug MTY6DQogICAgICAgICAgICAgIHIgPSB0LmVsZW1lbnRUeXBlOw0KICAgICAgICAgICAgICBl OiB7DQogICAgICAgICAgICAgICAgc3dpdGNoICgNCiAgICAgICAgICAgICAgICAoSGwoZSwg dCksDQogICAgICAgICAgICAgICAgICAoZSA9IHQucGVuZGluZ1Byb3BzKSwNCiAgICAgICAg ICAgICAgICAgIChyID0gKG8gPSByLl9pbml0KShyLl9wYXlsb2FkKSksDQogICAgICAgICAg ICAgICAgICAodC50eXBlID0gciksDQogICAgICAgICAgICAgICAgICAobyA9IHQudGFnID0g KGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09 PSB0eXBlb2YgZSkgcmV0dXJuIE11KGUpID8gMSA6IDA7DQogICAgICAgICAgICAgICAgICAg IGlmICh2b2lkIDAgIT09IGUgJiYgbnVsbCAhPT0gZSkgew0KICAgICAgICAgICAgICAgICAg ICAgIGlmICgoZSA9IGUuJCR0eXBlb2YpID09PSBQKSByZXR1cm4gMTE7DQogICAgICAgICAg ICAgICAgICAgICAgaWYgKGUgPT09IFQpIHJldHVybiAxNDsNCiAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgICAgICAg IH0pKHIpKSwNCiAgICAgICAgICAgICAgICAgIChlID0gdmEociwgZSkpLA0KICAgICAgICAg ICAgICAgICAgbykNCiAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICAgIGNh c2UgMDoNCiAgICAgICAgICAgICAgICAgICAgdCA9IF9sKG51bGwsIHQsIHIsIGUsIG4pOw0K ICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgY2FzZSAx Og0KICAgICAgICAgICAgICAgICAgICB0ID0gUGwobnVsbCwgdCwgciwgZSwgbik7DQogICAg ICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICBjYXNlIDExOg0K ICAgICAgICAgICAgICAgICAgICB0ID0gU2wobnVsbCwgdCwgciwgZSwgbik7DQogICAgICAg ICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICBjYXNlIDE0Og0KICAg ICAgICAgICAgICAgICAgICB0ID0ga2wobnVsbCwgdCwgciwgdmEoci50eXBlLCBlKSwgbik7 DQogICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIHRocm93IEVycm9yKGEoMzA2LCByLCAiIikpOw0KICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICAgICAgY2FzZSAwOg0KICAg ICAgICAgICAgICByZXR1cm4gKHIgPSB0LnR5cGUpLCAobyA9IHQucGVuZGluZ1Byb3BzKSwg X2woZSwgdCwgciwgKG8gPSB0LmVsZW1lbnRUeXBlID09PSByID8gbyA6IHZhKHIsIG8pKSwg bik7DQogICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgIHJldHVybiAociA9IHQu dHlwZSksIChvID0gdC5wZW5kaW5nUHJvcHMpLCBQbChlLCB0LCByLCAobyA9IHQuZWxlbWVu dFR5cGUgPT09IHIgPyBvIDogdmEociwgbykpLCBuKTsNCiAgICAgICAgICAgIGNhc2UgMzoN CiAgICAgICAgICAgICAgZTogew0KICAgICAgICAgICAgICAgIGlmICgoTmwodCksIG51bGwg PT09IGUpKSB0aHJvdyBFcnJvcihhKDM4NykpOw0KICAgICAgICAgICAgICAgIChyID0gdC5w ZW5kaW5nUHJvcHMpLCAobyA9IChpID0gdC5tZW1vaXplZFN0YXRlKS5lbGVtZW50KSwgTWEo ZSwgdCksIEZhKHQsIHIsIG51bGwsIG4pOw0KICAgICAgICAgICAgICAgIHZhciBsID0gdC5t ZW1vaXplZFN0YXRlOw0KICAgICAgICAgICAgICAgIGlmICgoKHIgPSBsLmVsZW1lbnQpLCBp LmlzRGVoeWRyYXRlZCkpIHsNCiAgICAgICAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAg ICAgICAgICAgKChpID0geyBlbGVtZW50OiByLCBpc0RlaHlkcmF0ZWQ6ICExLCBjYWNoZTog bC5jYWNoZSwgcGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczogbC5wZW5kaW5nU3VzcGVuc2VC b3VuZGFyaWVzLCB0cmFuc2l0aW9uczogbC50cmFuc2l0aW9ucyB9KSwNCiAgICAgICAgICAg ICAgICAgICAgICAodC51cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPSBpKSwNCiAgICAgICAgICAg ICAgICAgICAgICAodC5tZW1vaXplZFN0YXRlID0gaSksDQogICAgICAgICAgICAgICAgICAg ICAgMjU2ICYgdC5mbGFncykNCiAgICAgICAgICAgICAgICAgICkgew0KICAgICAgICAgICAg ICAgICAgICB0ID0gVGwoZSwgdCwgciwgbiwgKG8gPSBjbChFcnJvcihhKDQyMykpLCB0KSkp Ow0KICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgaWYgKHIgIT09IG8pIHsNCiAgICAgICAgICAgICAgICAgICAg dCA9IFRsKGUsIHQsIHIsIG4sIChvID0gY2woRXJyb3IoYSg0MjQpKSwgdCkpKTsNCiAgICAg ICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgIGZvciAob2EgPSB1byh0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvLmZpcnN0 Q2hpbGQpLCByYSA9IHQsIGFhID0gITAsIGlhID0gbnVsbCwgbiA9IFphKHQsIG51bGwsIHIs IG4pLCB0LmNoaWxkID0gbjsgbjspIChuLmZsYWdzID0gKC0zICYgbi5mbGFncykgfCA0MDk2 KSwgKG4gPSBuLnNpYmxpbmcpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAg ICAgICAgICAgICBpZiAoKGhhKCksIHIgPT09IG8pKSB7DQogICAgICAgICAgICAgICAgICAg IHQgPSBxbChlLCB0LCBuKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIHhsKGUsIHQsIHIsIG4pOw0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB0ID0gdC5jaGlsZDsNCiAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gdDsNCiAgICAgICAgICAgIGNhc2UgNToN CiAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBpaSh0KSwNCiAgICAg ICAgICAgICAgICBudWxsID09PSBlICYmIGNhKHQpLA0KICAgICAgICAgICAgICAgIChyID0g dC50eXBlKSwNCiAgICAgICAgICAgICAgICAobyA9IHQucGVuZGluZ1Byb3BzKSwNCiAgICAg ICAgICAgICAgICAoaSA9IG51bGwgIT09IGUgPyBlLm1lbW9pemVkUHJvcHMgOiBudWxsKSwN CiAgICAgICAgICAgICAgICAobCA9IG8uY2hpbGRyZW4pLA0KICAgICAgICAgICAgICAgIG5v KHIsIG8pID8gKGwgPSBudWxsKSA6IG51bGwgIT09IGkgJiYgbm8ociwgaSkgJiYgKHQuZmxh Z3MgfD0gMzIpLA0KICAgICAgICAgICAgICAgIFJsKGUsIHQpLA0KICAgICAgICAgICAgICAg IHhsKGUsIHQsIGwsIG4pLA0KICAgICAgICAgICAgICAgIHQuY2hpbGQNCiAgICAgICAgICAg ICAgKTsNCiAgICAgICAgICAgIGNhc2UgNjoNCiAgICAgICAgICAgICAgcmV0dXJuIG51bGwg PT09IGUgJiYgY2EodCksIG51bGw7DQogICAgICAgICAgICBjYXNlIDEzOg0KICAgICAgICAg ICAgICByZXR1cm4gRmwoZSwgdCwgbik7DQogICAgICAgICAgICBjYXNlIDQ6DQogICAgICAg ICAgICAgIHJldHVybiBvaSh0LCB0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSwgKHIgPSB0 LnBlbmRpbmdQcm9wcyksIG51bGwgPT09IGUgPyAodC5jaGlsZCA9IFhhKHQsIG51bGwsIHIs IG4pKSA6IHhsKGUsIHQsIHIsIG4pLCB0LmNoaWxkOw0KICAgICAgICAgICAgY2FzZSAxMToN CiAgICAgICAgICAgICAgcmV0dXJuIChyID0gdC50eXBlKSwgKG8gPSB0LnBlbmRpbmdQcm9w cyksIFNsKGUsIHQsIHIsIChvID0gdC5lbGVtZW50VHlwZSA9PT0gciA/IG8gOiB2YShyLCBv KSksIG4pOw0KICAgICAgICAgICAgY2FzZSA3Og0KICAgICAgICAgICAgICByZXR1cm4geGwo ZSwgdCwgdC5wZW5kaW5nUHJvcHMsIG4pLCB0LmNoaWxkOw0KICAgICAgICAgICAgY2FzZSA4 Og0KICAgICAgICAgICAgY2FzZSAxMjoNCiAgICAgICAgICAgICAgcmV0dXJuIHhsKGUsIHQs IHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLCBuKSwgdC5jaGlsZDsNCiAgICAgICAgICAgIGNh c2UgMTA6DQogICAgICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgICAgICBpZiAoKChyID0g dC50eXBlLl9jb250ZXh0KSwgKG8gPSB0LnBlbmRpbmdQcm9wcyksIChpID0gdC5tZW1vaXpl ZFByb3BzKSwgKGwgPSBvLnZhbHVlKSwgX28oeWEsIHIuX2N1cnJlbnRWYWx1ZSksIChyLl9j dXJyZW50VmFsdWUgPSBsKSwgbnVsbCAhPT0gaSkpDQogICAgICAgICAgICAgICAgICBpZiAo bHIoaS52YWx1ZSwgbCkpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGkuY2hpbGRyZW4g PT09IG8uY2hpbGRyZW4gJiYgIU5vLmN1cnJlbnQpIHsNCiAgICAgICAgICAgICAgICAgICAg ICB0ID0gcWwoZSwgdCwgbik7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfSBlbHNlDQogICAgICAg ICAgICAgICAgICAgIGZvciAobnVsbCAhPT0gKGkgPSB0LmNoaWxkKSAmJiAoaS5yZXR1cm4g PSB0KTsgbnVsbCAhPT0gaTspIHsNCiAgICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IGku ZGVwZW5kZW5jaWVzOw0KICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBzKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICBsID0gaS5jaGlsZDsNCiAgICAgICAgICAgICAg ICAgICAgICAgIGZvciAodmFyIHUgPSBzLmZpcnN0Q29udGV4dDsgbnVsbCAhPT0gdTspIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHUuY29udGV4dCA9PT0gcikgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgxID09PSBpLnRhZykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHUgPSB6YSgtMSwgbiAmIC1uKSkudGFnID0gMjsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gaS51cGRhdGVRdWV1ZTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBjKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gKGMgPSBjLnNoYXJlZCkucGVuZGlu ZzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gZCA/ICh1Lm5l eHQgPSB1KSA6ICgodS5uZXh0ID0gZC5uZXh0KSwgKGQubmV4dCA9IHUpKSwgKGMucGVuZGlu ZyA9IHUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5sYW5l cyB8PSBuKSwgbnVsbCAhPT0gKHUgPSBpLmFsdGVybmF0ZSkgJiYgKHUubGFuZXMgfD0gbiks IEVhKGkucmV0dXJuLCBuLCB0KSwgKHMubGFuZXMgfD0gbik7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgdSA9IHUubmV4dDsNCiAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKDEwID09PSBpLnRhZykg bCA9IGkudHlwZSA9PT0gdC50eXBlID8gbnVsbCA6IGkuY2hpbGQ7DQogICAgICAgICAgICAg ICAgICAgICAgZWxzZSBpZiAoMTggPT09IGkudGFnKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICBpZiAobnVsbCA9PT0gKGwgPSBpLnJldHVybikpIHRocm93IEVycm9yKGEoMzQxKSk7 DQogICAgICAgICAgICAgICAgICAgICAgICAobC5sYW5lcyB8PSBuKSwgbnVsbCAhPT0gKHMg PSBsLmFsdGVybmF0ZSkgJiYgKHMubGFuZXMgfD0gbiksIEVhKGwsIG4sIHQpLCAobCA9IGku c2libGluZyk7DQogICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGwgPSBpLmNoaWxkOw0K ICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBsKSBsLnJldHVybiA9IGk7DQog ICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9y IChsID0gaTsgbnVsbCAhPT0gbDspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGwgPT09IHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gbnVsbDsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gKGkgPSBs LnNpYmxpbmcpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkucmV0dXJuID0g bC5yZXR1cm4pLCAobCA9IGkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgIGwgPSBsLnJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICBpID0gbDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgIHhsKGUsIHQsIG8uY2hpbGRyZW4sIG4pLCAodCA9IHQuY2hpbGQpOw0KICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICAgICAgY2FzZSA5 Og0KICAgICAgICAgICAgICByZXR1cm4gKG8gPSB0LnR5cGUpLCAociA9IHQucGVuZGluZ1By b3BzLmNoaWxkcmVuKSwgQ2EodCwgbiksIChyID0gcigobyA9IFJhKG8pKSkpLCAodC5mbGFn cyB8PSAxKSwgeGwoZSwgdCwgciwgbiksIHQuY2hpbGQ7DQogICAgICAgICAgICBjYXNlIDE0 Og0KICAgICAgICAgICAgICByZXR1cm4gKG8gPSB2YSgociA9IHQudHlwZSksIHQucGVuZGlu Z1Byb3BzKSksIGtsKGUsIHQsIHIsIChvID0gdmEoci50eXBlLCBvKSksIG4pOw0KICAgICAg ICAgICAgY2FzZSAxNToNCiAgICAgICAgICAgICAgcmV0dXJuIEVsKGUsIHQsIHQudHlwZSwg dC5wZW5kaW5nUHJvcHMsIG4pOw0KICAgICAgICAgICAgY2FzZSAxNzoNCiAgICAgICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAociA9IHQudHlwZSksDQogICAgICAgICAg ICAgICAgKG8gPSB0LnBlbmRpbmdQcm9wcyksDQogICAgICAgICAgICAgICAgKG8gPSB0LmVs ZW1lbnRUeXBlID09PSByID8gbyA6IHZhKHIsIG8pKSwNCiAgICAgICAgICAgICAgICBIbChl LCB0KSwNCiAgICAgICAgICAgICAgICAodC50YWcgPSAxKSwNCiAgICAgICAgICAgICAgICBN byhyKSA/ICgoZSA9ICEwKSwgTG8odCkpIDogKGUgPSAhMSksDQogICAgICAgICAgICAgICAg Q2EodCwgbiksDQogICAgICAgICAgICAgICAgSGEodCwgciwgbyksDQogICAgICAgICAgICAg ICAgJGEodCwgciwgbywgbiksDQogICAgICAgICAgICAgICAgT2wobnVsbCwgdCwgciwgITAs IGUsIG4pDQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICBjYXNlIDE5Og0KICAgICAg ICAgICAgICByZXR1cm4gVmwoZSwgdCwgbik7DQogICAgICAgICAgICBjYXNlIDIyOg0KICAg ICAgICAgICAgICByZXR1cm4gQ2woZSwgdCwgbik7DQogICAgICAgICAgfQ0KICAgICAgICAg IHRocm93IEVycm9yKGEoMTU2LCB0LnRhZykpOw0KICAgICAgICB9Ow0KICAgICAgICB2YXIg UXUgPQ0KICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiByZXBvcnRFcnJvcg0KICAg ICAgICAgICAgPyByZXBvcnRFcnJvcg0KICAgICAgICAgICAgOiBmdW5jdGlvbiAoZSkgew0K ICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpOw0KICAgICAgICAgICAgfTsNCiAgICAg ICAgZnVuY3Rpb24gR3UoZSkgew0KICAgICAgICAgIHRoaXMuX2ludGVybmFsUm9vdCA9IGU7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWXUoZSkgew0KICAgICAgICAgIHRoaXMu X2ludGVybmFsUm9vdCA9IGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWHUoZSkg ew0KICAgICAgICAgIHJldHVybiAhKCFlIHx8ICgxICE9PSBlLm5vZGVUeXBlICYmIDkgIT09 IGUubm9kZVR5cGUgJiYgMTEgIT09IGUubm9kZVR5cGUpKTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBadShlKSB7DQogICAgICAgICAgcmV0dXJuICEoIWUgfHwgKDEgIT09IGUu bm9kZVR5cGUgJiYgOSAhPT0gZS5ub2RlVHlwZSAmJiAxMSAhPT0gZS5ub2RlVHlwZSAmJiAo OCAhPT0gZS5ub2RlVHlwZSB8fCAiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlICIgIT09 IGUubm9kZVZhbHVlKSkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEp1KCkgeyB9 DQogICAgICAgIGZ1bmN0aW9uIGVjKGUsIHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICB2YXIg YSA9IG4uX3JlYWN0Um9vdENvbnRhaW5lcjsNCiAgICAgICAgICBpZiAoYSkgew0KICAgICAg ICAgICAgdmFyIGkgPSBhOw0KICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVv ZiBvKSB7DQogICAgICAgICAgICAgIHZhciBsID0gbzsNCiAgICAgICAgICAgICAgbyA9IGZ1 bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgZSA9IHF1KGkpOw0KICAgICAgICAg ICAgICAgIGwuY2FsbChlKTsNCiAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIEh1KHQsIGksIGUsIG8pOw0KICAgICAgICAgIH0gZWxzZQ0KICAgICAgICAg ICAgaSA9IChmdW5jdGlvbiAoZSwgdCwgbiwgciwgbykgew0KICAgICAgICAgICAgICBpZiAo bykgew0KICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2Ygcikgew0K ICAgICAgICAgICAgICAgICAgdmFyIGEgPSByOw0KICAgICAgICAgICAgICAgICAgciA9IGZ1 bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSBxdShpKTsNCiAgICAg ICAgICAgICAgICAgICAgYS5jYWxsKGUpOw0KICAgICAgICAgICAgICAgICAgfTsNCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGkgPSBWdSh0LCByLCBlLCAwLCBu dWxsLCAhMSwgMCwgIiIsIEp1KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKGUuX3JlYWN0 Um9vdENvbnRhaW5lciA9IGkpLCAoZVttb10gPSBpLmN1cnJlbnQpLCBXcig4ID09PSBlLm5v ZGVUeXBlID8gZS5wYXJlbnROb2RlIDogZSksIGR1KCksIGk7DQogICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgZm9yICg7IChvID0gZS5sYXN0Q2hpbGQpOykgZS5yZW1vdmVDaGls ZChvKTsNCiAgICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiByKSB7DQog ICAgICAgICAgICAgICAgdmFyIGwgPSByOw0KICAgICAgICAgICAgICAgIHIgPSBmdW5jdGlv biAoKSB7DQogICAgICAgICAgICAgICAgICB2YXIgZSA9IHF1KHMpOw0KICAgICAgICAgICAg ICAgICAgbC5jYWxsKGUpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgdmFyIHMgPSBVdShlLCAwLCAhMSwgbnVsbCwgMCwgITEsIDAsICIi LCBKdSk7DQogICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgKGUuX3Jl YWN0Um9vdENvbnRhaW5lciA9IHMpLA0KICAgICAgICAgICAgICAgIChlW21vXSA9IHMuY3Vy cmVudCksDQogICAgICAgICAgICAgICAgV3IoOCA9PT0gZS5ub2RlVHlwZSA/IGUucGFyZW50 Tm9kZSA6IGUpLA0KICAgICAgICAgICAgICAgIGR1KGZ1bmN0aW9uICgpIHsNCiAgICAgICAg ICAgICAgICAgIEh1KHQsIHMsIG4sIHIpOw0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICAgIHMNCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0pKG4sIHQsIGUs IG8sIHIpOw0KICAgICAgICAgIHJldHVybiBxdShpKTsNCiAgICAgICAgfQ0KICAgICAgICAo WXUucHJvdG90eXBlLnJlbmRlciA9IEd1LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgIHZhciB0ID0gdGhpcy5faW50ZXJuYWxSb290Ow0KICAgICAgICAg IGlmIChudWxsID09PSB0KSB0aHJvdyBFcnJvcihhKDQwOSkpOw0KICAgICAgICAgIEh1KGUs IHQsIG51bGwsIG51bGwpOw0KICAgICAgICB9KSwNCiAgICAgICAgICAoWXUucHJvdG90eXBl LnVubW91bnQgPSBHdS5wcm90b3R5cGUudW5tb3VudCA9IGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICAgIHZhciBlID0gdGhpcy5faW50ZXJuYWxSb290Ow0KICAgICAgICAgICAgaWYgKG51 bGwgIT09IGUpIHsNCiAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxSb290ID0gbnVsbDsN CiAgICAgICAgICAgICAgdmFyIHQgPSBlLmNvbnRhaW5lckluZm87DQogICAgICAgICAgICAg IGR1KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBIdShudWxsLCBlLCBudWxsLCBu dWxsKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgKHRbbW9dID0gbnVs bCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSksDQogICAgICAgICAgKFl1LnByb3Rv dHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbiA9IGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICBpZiAoZSkgew0KICAgICAgICAgICAgICB2YXIgdCA9IEV0KCk7DQogICAgICAg ICAgICAgIGUgPSB7IGJsb2NrZWRPbjogbnVsbCwgdGFyZ2V0OiBlLCBwcmlvcml0eTogdCB9 Ow0KICAgICAgICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IE10Lmxlbmd0aCAmJiAwICE9 PSB0ICYmIHQgPCBNdFtuXS5wcmlvcml0eTsgbisrKTsNCiAgICAgICAgICAgICAgTXQuc3Bs aWNlKG4sIDAsIGUpLCAwID09PSBuICYmIEx0KGUpOw0KICAgICAgICAgICAgfQ0KICAgICAg ICAgIH0pLA0KICAgICAgICAgICh4dCA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBz d2l0Y2ggKGUudGFnKSB7DQogICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAg ICB2YXIgdCA9IGUuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICAgIGlmICh0LmN1cnJlbnQu bWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpIHsNCiAgICAgICAgICAgICAgICAgIHZhciBu ID0gZHQodC5wZW5kaW5nTGFuZXMpOw0KICAgICAgICAgICAgICAgICAgMCAhPT0gbiAmJiAo eXQodCwgMSB8IG4pLCBvdSh0LCBYZSgpKSwgMCA9PT0gKDYgJiBPcykgJiYgKChWcyA9IFhl KCkgKyA1MDApLCBWbygpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICBjYXNlIDEzOg0KICAgICAgICAgICAgICAgIGR1KGZ1 bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgIHZhciB0ID0gTmEoZSwgMSk7DQogICAg ICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gdCkgew0KICAgICAgICAgICAgICAgICAgICB2 YXIgbiA9IHR1KCk7DQogICAgICAgICAgICAgICAgICAgIHJ1KHQsIGUsIDEsIG4pOw0KICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAg ICAgS3UoZSwgMSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSksDQogICAgICAgICAg KFN0ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGlmICgxMyA9PT0gZS50YWcpIHsN CiAgICAgICAgICAgICAgdmFyIHQgPSBOYShlLCAxMzQyMTc3MjgpOw0KICAgICAgICAgICAg ICBpZiAobnVsbCAhPT0gdCkgcnUodCwgZSwgMTM0MjE3NzI4LCB0dSgpKTsNCiAgICAgICAg ICAgICAgS3UoZSwgMTM0MjE3NzI4KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KSwN CiAgICAgICAgICAoa3QgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgaWYgKDEzID09 PSBlLnRhZykgew0KICAgICAgICAgICAgICB2YXIgdCA9IG51KGUpLA0KICAgICAgICAgICAg ICAgIG4gPSBOYShlLCB0KTsNCiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IG4pIHJ1KG4s IGUsIHQsIHR1KCkpOw0KICAgICAgICAgICAgICBLdShlLCB0KTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICB9KSwNCiAgICAgICAgICAoRXQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAg ICAgICByZXR1cm4gYnQ7DQogICAgICAgICAgfSksDQogICAgICAgICAgKEN0ID0gZnVuY3Rp b24gKGUsIHQpIHsNCiAgICAgICAgICAgIHZhciBuID0gYnQ7DQogICAgICAgICAgICB0cnkg ew0KICAgICAgICAgICAgICByZXR1cm4gKGJ0ID0gZSksIHQoKTsNCiAgICAgICAgICAgIH0g ZmluYWxseSB7DQogICAgICAgICAgICAgIGJ0ID0gbjsNCiAgICAgICAgICAgIH0NCiAgICAg ICAgICB9KSwNCiAgICAgICAgICAoU2UgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAg ICAgICAgc3dpdGNoICh0KSB7DQogICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAg ICAgICAgICAgICBpZiAoKFooZSwgbiksICh0ID0gbi5uYW1lKSwgInJhZGlvIiA9PT0gbi50 eXBlICYmIG51bGwgIT0gdCkpIHsNCiAgICAgICAgICAgICAgICAgIGZvciAobiA9IGU7IG4u cGFyZW50Tm9kZTspIG4gPSBuLnBhcmVudE5vZGU7DQogICAgICAgICAgICAgICAgICBmb3Ig KG4gPSBuLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0W25hbWU9IiArIEpTT04uc3RyaW5naWZ5 KCIiICsgdCkgKyAnXVt0eXBlPSJyYWRpbyJdJyksIHQgPSAwOyB0IDwgbi5sZW5ndGg7IHQr Kykgew0KICAgICAgICAgICAgICAgICAgICB2YXIgciA9IG5bdF07DQogICAgICAgICAgICAg ICAgICAgIGlmIChyICE9PSBlICYmIHIuZm9ybSA9PT0gZS5mb3JtKSB7DQogICAgICAgICAg ICAgICAgICAgICAgdmFyIG8gPSBTbyhyKTsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAo IW8pIHRocm93IEVycm9yKGEoOTApKTsNCiAgICAgICAgICAgICAgICAgICAgICBLKHIpLCBa KHIsIG8pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAg ICBjYXNlICJ0ZXh0YXJlYSI6DQogICAgICAgICAgICAgICAgYWUoZSwgbik7DQogICAgICAg ICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgInNlbGVjdCI6DQogICAgICAg ICAgICAgICAgbnVsbCAhPSAodCA9IG4udmFsdWUpICYmIG5lKGUsICEhbi5tdWx0aXBsZSwg dCwgITEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pLA0KICAgICAgICAgIChQZSA9 IGN1KSwNCiAgICAgICAgICAoT2UgPSBkdSk7DQogICAgICAgIHZhciB0YyA9IHsgdXNpbmdD bGllbnRFbnRyeVBvaW50OiAhMSwgRXZlbnRzOiBbd28sIHhvLCBTbywgUmUsIF9lLCBjdV0g fSwNCiAgICAgICAgICBuYyA9IHsgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6IGJvLCBidW5k bGVUeXBlOiAwLCB2ZXJzaW9uOiAiMTguMi4wIiwgcmVuZGVyZXJQYWNrYWdlTmFtZTogInJl YWN0LWRvbSIgfSwNCiAgICAgICAgICByYyA9IHsNCiAgICAgICAgICAgIGJ1bmRsZVR5cGU6 IG5jLmJ1bmRsZVR5cGUsDQogICAgICAgICAgICB2ZXJzaW9uOiBuYy52ZXJzaW9uLA0KICAg ICAgICAgICAgcmVuZGVyZXJQYWNrYWdlTmFtZTogbmMucmVuZGVyZXJQYWNrYWdlTmFtZSwN CiAgICAgICAgICAgIHJlbmRlcmVyQ29uZmlnOiBuYy5yZW5kZXJlckNvbmZpZywNCiAgICAg ICAgICAgIG92ZXJyaWRlSG9va1N0YXRlOiBudWxsLA0KICAgICAgICAgICAgb3ZlcnJpZGVI b29rU3RhdGVEZWxldGVQYXRoOiBudWxsLA0KICAgICAgICAgICAgb3ZlcnJpZGVIb29rU3Rh dGVSZW5hbWVQYXRoOiBudWxsLA0KICAgICAgICAgICAgb3ZlcnJpZGVQcm9wczogbnVsbCwN CiAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoOiBudWxsLA0KICAgICAgICAg ICAgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6IG51bGwsDQogICAgICAgICAgICBzZXRFcnJv ckhhbmRsZXI6IG51bGwsDQogICAgICAgICAgICBzZXRTdXNwZW5zZUhhbmRsZXI6IG51bGws DQogICAgICAgICAgICBzY2hlZHVsZVVwZGF0ZTogbnVsbCwNCiAgICAgICAgICAgIGN1cnJl bnREaXNwYXRjaGVyUmVmOiB3LlJlYWN0Q3VycmVudERpc3BhdGNoZXIsDQogICAgICAgICAg ICBmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgcmV0dXJuIG51bGwgPT09IChlID0gcWUoZSkpID8gbnVsbCA6IGUuc3RhdGVOb2RlOw0K ICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOg0K ICAgICAgICAgICAgICBuYy5maW5kRmliZXJCeUhvc3RJbnN0YW5jZSB8fA0KICAgICAgICAg ICAgICBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICBmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6 IG51bGwsDQogICAgICAgICAgICBzY2hlZHVsZVJlZnJlc2g6IG51bGwsDQogICAgICAgICAg ICBzY2hlZHVsZVJvb3Q6IG51bGwsDQogICAgICAgICAgICBzZXRSZWZyZXNoSGFuZGxlcjog bnVsbCwNCiAgICAgICAgICAgIGdldEN1cnJlbnRGaWJlcjogbnVsbCwNCiAgICAgICAgICAg IHJlY29uY2lsZXJWZXJzaW9uOiAiMTguMi4wLW5leHQtOWUzYjc3MmI4LTIwMjIwNjA4IiwN CiAgICAgICAgICB9Ow0KICAgICAgICBpZiAoInVuZGVmaW5lZCIgIT09IHR5cGVvZiBfX1JF QUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pIHsNCiAgICAgICAgICB2YXIgb2MgPSBfX1JF QUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187DQogICAgICAgICAgaWYgKCFvYy5pc0Rpc2Fi bGVkICYmIG9jLnN1cHBvcnRzRmliZXIpDQogICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICAob3QgPSBvYy5pbmplY3QocmMpKSwgKGF0ID0gb2MpOw0KICAgICAgICAgICAgfSBj YXRjaCAoY2UpIHsgfQ0KICAgICAgICB9DQogICAgICAgICh0Ll9fU0VDUkVUX0lOVEVSTkFM U19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gdGMpLA0KICAgICAgICAgICh0 LmNyZWF0ZVBvcnRhbCA9IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICB2YXIgbiA9 IDIgPCBhcmd1bWVudHMubGVuZ3RoICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzJdID8gYXJn dW1lbnRzWzJdIDogbnVsbDsNCiAgICAgICAgICAgIGlmICghWHUodCkpIHRocm93IEVycm9y KGEoMjAwKSk7DQogICAgICAgICAgICByZXR1cm4gKGZ1bmN0aW9uIChlLCB0LCBuKSB7DQog ICAgICAgICAgICAgIHZhciByID0gMyA8IGFyZ3VtZW50cy5sZW5ndGggJiYgdm9pZCAwICE9 PSBhcmd1bWVudHNbM10gPyBhcmd1bWVudHNbM10gOiBudWxsOw0KICAgICAgICAgICAgICBy ZXR1cm4geyAkJHR5cGVvZjogUywga2V5OiBudWxsID09IHIgPyBudWxsIDogIiIgKyByLCBj aGlsZHJlbjogZSwgY29udGFpbmVySW5mbzogdCwgaW1wbGVtZW50YXRpb246IG4gfTsNCiAg ICAgICAgICAgIH0pKGUsIHQsIG51bGwsIG4pOw0KICAgICAgICAgIH0pLA0KICAgICAgICAg ICh0LmNyZWF0ZVJvb3QgPSBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgaWYgKCFY dShlKSkgdGhyb3cgRXJyb3IoYSgyOTkpKTsNCiAgICAgICAgICAgIHZhciBuID0gITEsDQog ICAgICAgICAgICAgIHIgPSAiIiwNCiAgICAgICAgICAgICAgbyA9IFF1Ow0KICAgICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgbnVsbCAhPT0gdCAmJiB2b2lkIDAgIT09IHQg JiYgKCEwID09PSB0LnVuc3RhYmxlX3N0cmljdE1vZGUgJiYgKG4gPSAhMCksIHZvaWQgMCAh PT0gdC5pZGVudGlmaWVyUHJlZml4ICYmIChyID0gdC5pZGVudGlmaWVyUHJlZml4KSwgdm9p ZCAwICE9PSB0Lm9uUmVjb3ZlcmFibGVFcnJvciAmJiAobyA9IHQub25SZWNvdmVyYWJsZUVy cm9yKSksDQogICAgICAgICAgICAgICh0ID0gVXUoZSwgMSwgITEsIG51bGwsIDAsIG4sIDAs IHIsIG8pKSwNCiAgICAgICAgICAgICAgKGVbbW9dID0gdC5jdXJyZW50KSwNCiAgICAgICAg ICAgICAgV3IoOCA9PT0gZS5ub2RlVHlwZSA/IGUucGFyZW50Tm9kZSA6IGUpLA0KICAgICAg ICAgICAgICBuZXcgR3UodCkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAg ICAgICAgKHQuZmluZERPTU5vZGUgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgaWYg KG51bGwgPT0gZSkgcmV0dXJuIG51bGw7DQogICAgICAgICAgICBpZiAoMSA9PT0gZS5ub2Rl VHlwZSkgcmV0dXJuIGU7DQogICAgICAgICAgICB2YXIgdCA9IGUuX3JlYWN0SW50ZXJuYWxz Ow0KICAgICAgICAgICAgaWYgKHZvaWQgMCA9PT0gdCkgew0KICAgICAgICAgICAgICBpZiAo ImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGUucmVuZGVyKSB0aHJvdyBFcnJvcihhKDE4OCkpOw0K ICAgICAgICAgICAgICB0aHJvdyAoKGUgPSBPYmplY3Qua2V5cyhlKS5qb2luKCIsIikpLCBF cnJvcihhKDI2OCwgZSkpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAo ZSA9IG51bGwgPT09IChlID0gcWUodCkpID8gbnVsbCA6IGUuc3RhdGVOb2RlKTsNCiAgICAg ICAgICB9KSwNCiAgICAgICAgICAodC5mbHVzaFN5bmMgPSBmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgcmV0dXJuIGR1KGUpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0Lmh5 ZHJhdGUgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgaWYgKCFadSh0KSkg dGhyb3cgRXJyb3IoYSgyMDApKTsNCiAgICAgICAgICAgIHJldHVybiBlYyhudWxsLCBlLCB0 LCAhMCwgbik7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuaHlkcmF0ZVJvb3QgPSBm dW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgaWYgKCFYdShlKSkgdGhyb3cgRXJy b3IoYSg0MDUpKTsNCiAgICAgICAgICAgIHZhciByID0gKG51bGwgIT0gbiAmJiBuLmh5ZHJh dGVkU291cmNlcykgfHwgbnVsbCwNCiAgICAgICAgICAgICAgbyA9ICExLA0KICAgICAgICAg ICAgICBpID0gIiIsDQogICAgICAgICAgICAgIGwgPSBRdTsNCiAgICAgICAgICAgIGlmICgN CiAgICAgICAgICAgICAgKG51bGwgIT09IG4gJiYgdm9pZCAwICE9PSBuICYmICghMCA9PT0g bi51bnN0YWJsZV9zdHJpY3RNb2RlICYmIChvID0gITApLCB2b2lkIDAgIT09IG4uaWRlbnRp ZmllclByZWZpeCAmJiAoaSA9IG4uaWRlbnRpZmllclByZWZpeCksIHZvaWQgMCAhPT0gbi5v blJlY292ZXJhYmxlRXJyb3IgJiYgKGwgPSBuLm9uUmVjb3ZlcmFibGVFcnJvcikpLA0KICAg ICAgICAgICAgICAgICh0ID0gVnUodCwgbnVsbCwgZSwgMSwgbnVsbCAhPSBuID8gbiA6IG51 bGwsIG8sIDAsIGksIGwpKSwNCiAgICAgICAgICAgICAgICAoZVttb10gPSB0LmN1cnJlbnQp LA0KICAgICAgICAgICAgICAgIFdyKGUpLA0KICAgICAgICAgICAgICAgIHIpDQogICAgICAg ICAgICApDQogICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCByLmxlbmd0aDsgZSsrKQ0K ICAgICAgICAgICAgICAgIChvID0gKG8gPSAobiA9IHJbZV0pLl9nZXRWZXJzaW9uKShuLl9z b3VyY2UpKSwgbnVsbCA9PSB0Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEgPyAo dC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID0gW24sIG9dKSA6IHQubXV0YWJs ZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKG4sIG8pOw0KICAgICAgICAgICAgcmV0 dXJuIG5ldyBZdSh0KTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC5yZW5kZXIgPSBm dW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgaWYgKCFadSh0KSkgdGhyb3cgRXJy b3IoYSgyMDApKTsNCiAgICAgICAgICAgIHJldHVybiBlYyhudWxsLCBlLCB0LCAhMSwgbik7 DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudW5tb3VudENvbXBvbmVudEF0Tm9kZSA9 IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBpZiAoIVp1KGUpKSB0aHJvdyBFcnJvcihh KDQwKSk7DQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAhIWUuX3JlYWN0 Um9vdENvbnRhaW5lciAmJg0KICAgICAgICAgICAgICAoZHUoZnVuY3Rpb24gKCkgew0KICAg ICAgICAgICAgICAgIGVjKG51bGwsIG51bGwsIGUsICExLCBmdW5jdGlvbiAoKSB7DQogICAg ICAgICAgICAgICAgICAoZS5fcmVhY3RSb290Q29udGFpbmVyID0gbnVsbCksIChlW21vXSA9 IG51bGwpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAhMCkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAgICAg ICAgKHQudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMgPSBjdSksDQogICAgICAgICAgKHQudW5z dGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIgPSBmdW5jdGlvbiAoZSwgdCwgbiwg cikgew0KICAgICAgICAgICAgaWYgKCFadShuKSkgdGhyb3cgRXJyb3IoYSgyMDApKTsNCiAg ICAgICAgICAgIGlmIChudWxsID09IGUgfHwgdm9pZCAwID09PSBlLl9yZWFjdEludGVybmFs cykgdGhyb3cgRXJyb3IoYSgzOCkpOw0KICAgICAgICAgICAgcmV0dXJuIGVjKGUsIHQsIG4s ICExLCByKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC52ZXJzaW9uID0gIjE4LjIu MC1uZXh0LTllM2I3NzJiOC0yMDIyMDYwOCIpOw0KICAgICAgfSwNCiAgICAgIDI1MDogKGUs IHQsIG4pID0+IHsNCiAgICAgICAgdmFyIHIgPSBuKDE2NCk7DQogICAgICAgICh0LmNyZWF0 ZVJvb3QgPSByLmNyZWF0ZVJvb3QpLCAodC5oeWRyYXRlUm9vdCA9IHIuaHlkcmF0ZVJvb3Qp Ow0KICAgICAgfSwNCiAgICAgIDE2NDogKGUsIHQsIG4pID0+IHsNCiAgICAgICAgIShmdW5j dGlvbiBlKCkgew0KICAgICAgICAgIGlmICgidW5kZWZpbmVkIiAhPT0gdHlwZW9mIF9fUkVB Q1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgX19S RUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKQ0KICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNr RENFKGUpOw0KICAgICAgICAgICAgfSBjYXRjaCAodCkgew0KICAgICAgICAgICAgICBjb25z b2xlLmVycm9yKHQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KSgpLA0KICAgICAgICAg IChlLmV4cG9ydHMgPSBuKDQ2MykpOw0KICAgICAgfSwNCiAgICAgIDM3NDogKGUsIHQsIG4p ID0+IHsNCiAgICAgICAgdmFyIHIgPSBuKDc5MSksDQogICAgICAgICAgbyA9IFN5bWJvbC5m b3IoInJlYWN0LmVsZW1lbnQiKSwNCiAgICAgICAgICBhID0gU3ltYm9sLmZvcigicmVhY3Qu ZnJhZ21lbnQiKSwNCiAgICAgICAgICBpID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w ZXJ0eSwNCiAgICAgICAgICBsID0gci5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9P Ul9ZT1VfV0lMTF9CRV9GSVJFRC5SZWFjdEN1cnJlbnRPd25lciwNCiAgICAgICAgICBzID0g eyBrZXk6ICEwLCByZWY6ICEwLCBfX3NlbGY6ICEwLCBfX3NvdXJjZTogITAgfTsNCiAgICAg ICAgZnVuY3Rpb24gdShlLCB0LCBuKSB7DQogICAgICAgICAgdmFyIHIsDQogICAgICAgICAg ICBhID0ge30sDQogICAgICAgICAgICB1ID0gbnVsbCwNCiAgICAgICAgICAgIGMgPSBudWxs Ow0KICAgICAgICAgIGZvciAociBpbiAodm9pZCAwICE9PSBuICYmICh1ID0gIiIgKyBuKSwg dm9pZCAwICE9PSB0LmtleSAmJiAodSA9ICIiICsgdC5rZXkpLCB2b2lkIDAgIT09IHQucmVm ICYmIChjID0gdC5yZWYpLCB0KSkgaS5jYWxsKHQsIHIpICYmICFzLmhhc093blByb3BlcnR5 KHIpICYmIChhW3JdID0gdFtyXSk7DQogICAgICAgICAgaWYgKGUgJiYgZS5kZWZhdWx0UHJv cHMpIGZvciAociBpbiAodCA9IGUuZGVmYXVsdFByb3BzKSkgdm9pZCAwID09PSBhW3JdICYm IChhW3JdID0gdFtyXSk7DQogICAgICAgICAgcmV0dXJuIHsgJCR0eXBlb2Y6IG8sIHR5cGU6 IGUsIGtleTogdSwgcmVmOiBjLCBwcm9wczogYSwgX293bmVyOiBsLmN1cnJlbnQgfTsNCiAg ICAgICAgfQ0KICAgICAgICAodC5GcmFnbWVudCA9IGEpLCAodC5qc3ggPSB1KSwgKHQuanN4 cyA9IHUpOw0KICAgICAgfSwNCiAgICAgIDExNzogKGUsIHQpID0+IHsNCiAgICAgICAgdmFy IG4gPSBTeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksDQogICAgICAgICAgciA9IFN5bWJv bC5mb3IoInJlYWN0LnBvcnRhbCIpLA0KICAgICAgICAgIG8gPSBTeW1ib2wuZm9yKCJyZWFj dC5mcmFnbWVudCIpLA0KICAgICAgICAgIGEgPSBTeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3Rf bW9kZSIpLA0KICAgICAgICAgIGkgPSBTeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLA0K ICAgICAgICAgIGwgPSBTeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLA0KICAgICAgICAg IHMgPSBTeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksDQogICAgICAgICAgdSA9IFN5bWJv bC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksDQogICAgICAgICAgYyA9IFN5bWJvbC5mb3Io InJlYWN0LnN1c3BlbnNlIiksDQogICAgICAgICAgZCA9IFN5bWJvbC5mb3IoInJlYWN0Lm1l bW8iKSwNCiAgICAgICAgICBmID0gU3ltYm9sLmZvcigicmVhY3QubGF6eSIpLA0KICAgICAg ICAgIHAgPSBTeW1ib2wuaXRlcmF0b3I7DQogICAgICAgIHZhciBoID0gew0KICAgICAgICAg IGlzTW91bnRlZDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgcmV0dXJuICExOw0KICAg ICAgICAgIH0sDQogICAgICAgICAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbiAoKSB7 IH0sDQogICAgICAgICAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKCkgeyB9LA0K ICAgICAgICAgIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICB9 LA0KICAgICAgICAgIG0gPSBPYmplY3QuYXNzaWduLA0KICAgICAgICAgIGcgPSB7fTsNCiAg ICAgICAgZnVuY3Rpb24gdihlLCB0LCBuKSB7DQogICAgICAgICAgKHRoaXMucHJvcHMgPSBl KSwgKHRoaXMuY29udGV4dCA9IHQpLCAodGhpcy5yZWZzID0gZyksICh0aGlzLnVwZGF0ZXIg PSBuIHx8IGgpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHkoKSB7IH0NCiAgICAg ICAgZnVuY3Rpb24gYihlLCB0LCBuKSB7DQogICAgICAgICAgKHRoaXMucHJvcHMgPSBlKSwg KHRoaXMuY29udGV4dCA9IHQpLCAodGhpcy5yZWZzID0gZyksICh0aGlzLnVwZGF0ZXIgPSBu IHx8IGgpOw0KICAgICAgICB9DQogICAgICAgICh2LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9u ZW50ID0ge30pLA0KICAgICAgICAgICh2LnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9u IChlLCB0KSB7DQogICAgICAgICAgICBpZiAoIm9iamVjdCIgIT09IHR5cGVvZiBlICYmICJm dW5jdGlvbiIgIT09IHR5cGVvZiBlICYmIG51bGwgIT0gZSkgdGhyb3cgRXJyb3IoInNldFN0 YXRlKC4uLik6IHRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRl IG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFi bGVzLiIpOw0KICAgICAgICAgICAgdGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlz LCBlLCB0LCAic2V0U3RhdGUiKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodi5wcm90 b3R5cGUuZm9yY2VVcGRhdGUgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgdGhpcy51 cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLCBlLCAiZm9yY2VVcGRhdGUiKTsNCiAg ICAgICAgICB9KSwNCiAgICAgICAgICAoeS5wcm90b3R5cGUgPSB2LnByb3RvdHlwZSk7DQog ICAgICAgIHZhciB3ID0gKGIucHJvdG90eXBlID0gbmV3IHkoKSk7DQogICAgICAgICh3LmNv bnN0cnVjdG9yID0gYiksIG0odywgdi5wcm90b3R5cGUpLCAody5pc1B1cmVSZWFjdENvbXBv bmVudCA9ICEwKTsNCiAgICAgICAgdmFyIHggPSBBcnJheS5pc0FycmF5LA0KICAgICAgICAg IFMgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LA0KICAgICAgICAgIGsgPSB7 IGN1cnJlbnQ6IG51bGwgfSwNCiAgICAgICAgICBFID0geyBrZXk6ICEwLCByZWY6ICEwLCBf X3NlbGY6ICEwLCBfX3NvdXJjZTogITAgfTsNCiAgICAgICAgZnVuY3Rpb24gQyhlLCB0LCBy KSB7DQogICAgICAgICAgdmFyIG8sDQogICAgICAgICAgICBhID0ge30sDQogICAgICAgICAg ICBpID0gbnVsbCwNCiAgICAgICAgICAgIGwgPSBudWxsOw0KICAgICAgICAgIGlmIChudWxs ICE9IHQpIGZvciAobyBpbiAodm9pZCAwICE9PSB0LnJlZiAmJiAobCA9IHQucmVmKSwgdm9p ZCAwICE9PSB0LmtleSAmJiAoaSA9ICIiICsgdC5rZXkpLCB0KSkgUy5jYWxsKHQsIG8pICYm ICFFLmhhc093blByb3BlcnR5KG8pICYmIChhW29dID0gdFtvXSk7DQogICAgICAgICAgdmFy IHMgPSBhcmd1bWVudHMubGVuZ3RoIC0gMjsNCiAgICAgICAgICBpZiAoMSA9PT0gcykgYS5j aGlsZHJlbiA9IHI7DQogICAgICAgICAgZWxzZSBpZiAoMSA8IHMpIHsNCiAgICAgICAgICAg IGZvciAodmFyIHUgPSBBcnJheShzKSwgYyA9IDA7IGMgPCBzOyBjKyspIHVbY10gPSBhcmd1 bWVudHNbYyArIDJdOw0KICAgICAgICAgICAgYS5jaGlsZHJlbiA9IHU7DQogICAgICAgICAg fQ0KICAgICAgICAgIGlmIChlICYmIGUuZGVmYXVsdFByb3BzKSBmb3IgKG8gaW4gKHMgPSBl LmRlZmF1bHRQcm9wcykpIHZvaWQgMCA9PT0gYVtvXSAmJiAoYVtvXSA9IHNbb10pOw0KICAg ICAgICAgIHJldHVybiB7ICQkdHlwZW9mOiBuLCB0eXBlOiBlLCBrZXk6IGksIHJlZjogbCwg cHJvcHM6IGEsIF9vd25lcjogay5jdXJyZW50IH07DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gUihlKSB7DQogICAgICAgICAgcmV0dXJuICJvYmplY3QiID09PSB0eXBlb2YgZSAm JiBudWxsICE9PSBlICYmIGUuJCR0eXBlb2YgPT09IG47DQogICAgICAgIH0NCiAgICAgICAg dmFyIF8gPSAvXC8rL2c7DQogICAgICAgIGZ1bmN0aW9uIFAoZSwgdCkgew0KICAgICAgICAg IHJldHVybiAib2JqZWN0IiA9PT0gdHlwZW9mIGUgJiYgbnVsbCAhPT0gZSAmJiBudWxsICE9 IGUua2V5DQogICAgICAgICAgICA/IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICB2 YXIgdCA9IHsgIj0iOiAiPTAiLCAiOiI6ICI9MiIgfTsNCiAgICAgICAgICAgICAgcmV0dXJu ICgNCiAgICAgICAgICAgICAgICAiJCIgKw0KICAgICAgICAgICAgICAgIGUucmVwbGFjZSgv Wz06XS9nLCBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHRbZV07 DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0p KCIiICsgZS5rZXkpDQogICAgICAgICAgICA6IHQudG9TdHJpbmcoMzYpOw0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIE8oZSwgdCwgbywgYSwgaSkgew0KICAgICAgICAgIHZhciBs ID0gdHlwZW9mIGU7DQogICAgICAgICAgKCJ1bmRlZmluZWQiICE9PSBsICYmICJib29sZWFu IiAhPT0gbCkgfHwgKGUgPSBudWxsKTsNCiAgICAgICAgICB2YXIgcyA9ICExOw0KICAgICAg ICAgIGlmIChudWxsID09PSBlKSBzID0gITA7DQogICAgICAgICAgZWxzZQ0KICAgICAgICAg ICAgc3dpdGNoIChsKSB7DQogICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6DQogICAgICAg ICAgICAgIGNhc2UgIm51bWJlciI6DQogICAgICAgICAgICAgICAgcyA9ICEwOw0KICAgICAg ICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICBjYXNlICJvYmplY3QiOg0KICAgICAg ICAgICAgICAgIHN3aXRjaCAoZS4kJHR5cGVvZikgew0KICAgICAgICAgICAgICAgICAgY2Fz ZSBuOg0KICAgICAgICAgICAgICAgICAgY2FzZSByOg0KICAgICAgICAgICAgICAgICAgICBz ID0gITA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIGlm IChzKQ0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgKGkgPSBpKChzID0g ZSkpKSwNCiAgICAgICAgICAgICAgKGUgPSAiIiA9PT0gYSA/ICIuIiArIFAocywgMCkgOiBh KSwNCiAgICAgICAgICAgICAgeChpKQ0KICAgICAgICAgICAgICAgID8gKChvID0gIiIpLA0K ICAgICAgICAgICAgICAgICAgbnVsbCAhPSBlICYmIChvID0gZS5yZXBsYWNlKF8sICIkJi8i KSArICIvIiksDQogICAgICAgICAgICAgICAgICBPKGksIHQsIG8sICIiLCBmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgICAgICAgICAg IH0pKQ0KICAgICAgICAgICAgICAgIDogbnVsbCAhPSBpICYmDQogICAgICAgICAgICAgICAg KFIoaSkgJiYNCiAgICAgICAgICAgICAgICAgIChpID0gKGZ1bmN0aW9uIChlLCB0KSB7DQog ICAgICAgICAgICAgICAgICAgIHJldHVybiB7ICQkdHlwZW9mOiBuLCB0eXBlOiBlLnR5cGUs IGtleTogdCwgcmVmOiBlLnJlZiwgcHJvcHM6IGUucHJvcHMsIF9vd25lcjogZS5fb3duZXIg fTsNCiAgICAgICAgICAgICAgICAgIH0pKGksIG8gKyAoIWkua2V5IHx8IChzICYmIHMua2V5 ID09PSBpLmtleSkgPyAiIiA6ICgiIiArIGkua2V5KS5yZXBsYWNlKF8sICIkJi8iKSArICIv IikgKyBlKSksDQogICAgICAgICAgICAgICAgICB0LnB1c2goaSkpLA0KICAgICAgICAgICAg ICAxDQogICAgICAgICAgICApOw0KICAgICAgICAgIGlmICgoKHMgPSAwKSwgKGEgPSAiIiA9 PT0gYSA/ICIuIiA6IGEgKyAiOiIpLCB4KGUpKSkNCiAgICAgICAgICAgIGZvciAodmFyIHUg PSAwOyB1IDwgZS5sZW5ndGg7IHUrKykgew0KICAgICAgICAgICAgICB2YXIgYyA9IGEgKyBQ KChsID0gZVt1XSksIHUpOw0KICAgICAgICAgICAgICBzICs9IE8obCwgdCwgbywgYywgaSk7 DQogICAgICAgICAgICB9DQogICAgICAgICAgZWxzZSBpZiAoDQogICAgICAgICAgICAoKGMg PSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIG51bGwgPT09IGUgfHwg Im9iamVjdCIgIT09IHR5cGVvZiBlID8gbnVsbCA6ICJmdW5jdGlvbiIgPT09IHR5cGVvZiAo ZSA9IChwICYmIGVbcF0pIHx8IGVbIkBAaXRlcmF0b3IiXSkgPyBlIDogbnVsbDsNCiAgICAg ICAgICAgIH0pKGUpKSwNCiAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGMp DQogICAgICAgICAgKQ0KICAgICAgICAgICAgZm9yIChlID0gYy5jYWxsKGUpLCB1ID0gMDsg IShsID0gZS5uZXh0KCkpLmRvbmU7KSBzICs9IE8oKGwgPSBsLnZhbHVlKSwgdCwgbywgKGMg PSBhICsgUChsLCB1KyspKSwgaSk7DQogICAgICAgICAgZWxzZSBpZiAoIm9iamVjdCIgPT09 IGwpDQogICAgICAgICAgICB0aHJvdyAoDQogICAgICAgICAgICAgICgodCA9IFN0cmluZyhl KSksDQogICAgICAgICAgICAgICAgRXJyb3IoDQogICAgICAgICAgICAgICAgICAiT2JqZWN0 cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiICsNCiAgICAgICAg ICAgICAgICAgICgiW29iamVjdCBPYmplY3RdIiA9PT0gdCA/ICJvYmplY3Qgd2l0aCBrZXlz IHsiICsgT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSArICJ9IiA6IHQpICsNCiAgICAgICAg ICAgICAgICAgICIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBj aGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIg0KICAgICAgICAgICAgICAgICkpDQog ICAgICAgICAgICApOw0KICAgICAgICAgIHJldHVybiBzOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIE4oZSwgdCwgbikgew0KICAgICAgICAgIGlmIChudWxsID09IGUpIHJldHVy biBlOw0KICAgICAgICAgIHZhciByID0gW10sDQogICAgICAgICAgICBvID0gMDsNCiAgICAg ICAgICByZXR1cm4gKA0KICAgICAgICAgICAgTyhlLCByLCAiIiwgIiIsIGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICAgIHJldHVybiB0LmNhbGwobiwgZSwgbysrKTsNCiAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgcg0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gVChlKSB7DQogICAgICAgICAgaWYgKC0xID09PSBlLl9zdGF0dXMpIHsN CiAgICAgICAgICAgIHZhciB0ID0gZS5fcmVzdWx0Ow0KICAgICAgICAgICAgKHQgPSB0KCkp LnRoZW4oDQogICAgICAgICAgICAgIGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAg KDAgIT09IGUuX3N0YXR1cyAmJiAtMSAhPT0gZS5fc3RhdHVzKSB8fCAoKGUuX3N0YXR1cyA9 IDEpLCAoZS5fcmVzdWx0ID0gdCkpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAg ICBmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICAgICgwICE9PSBlLl9zdGF0dXMgJiYg LTEgIT09IGUuX3N0YXR1cykgfHwgKChlLl9zdGF0dXMgPSAyKSwgKGUuX3Jlc3VsdCA9IHQp KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgLTEg PT09IGUuX3N0YXR1cyAmJiAoKGUuX3N0YXR1cyA9IDApLCAoZS5fcmVzdWx0ID0gdCkpOw0K ICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoMSA9PT0gZS5fc3RhdHVzKSByZXR1cm4gZS5f cmVzdWx0LmRlZmF1bHQ7DQogICAgICAgICAgdGhyb3cgZS5fcmVzdWx0Ow0KICAgICAgICB9 DQogICAgICAgIHZhciBBID0geyBjdXJyZW50OiBudWxsIH0sDQogICAgICAgICAgTSA9IHsg dHJhbnNpdGlvbjogbnVsbCB9LA0KICAgICAgICAgIHogPSB7IFJlYWN0Q3VycmVudERpc3Bh dGNoZXI6IEEsIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOiBNLCBSZWFjdEN1cnJlbnRPd25l cjogayB9Ow0KICAgICAgICAodC5DaGlsZHJlbiA9IHsNCiAgICAgICAgICBtYXA6IE4sDQog ICAgICAgICAgZm9yRWFjaDogZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgIE4o DQogICAgICAgICAgICAgIGUsDQogICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICAgICAgICB0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQogICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgIG4NCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSwNCiAgICAg ICAgICBjb3VudDogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHZhciB0ID0gMDsNCiAg ICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIE4oZSwgZnVuY3Rpb24gKCkgew0K ICAgICAgICAgICAgICAgIHQrKzsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAg IHQNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSwNCiAgICAgICAgICB0b0FycmF5OiBm dW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgTihl LCBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICAg ICAgICB9KSB8fCBbXQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9LA0KICAgICAgICAg IG9ubHk6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBpZiAoIVIoZSkpIHRocm93IEVy cm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUg UmVhY3QgZWxlbWVudCBjaGlsZC4iKTsNCiAgICAgICAgICAgIHJldHVybiBlOw0KICAgICAg ICAgIH0sDQogICAgICAgIH0pLA0KICAgICAgICAgICh0LkNvbXBvbmVudCA9IHYpLA0KICAg ICAgICAgICh0LkZyYWdtZW50ID0gbyksDQogICAgICAgICAgKHQuUHJvZmlsZXIgPSBpKSwN CiAgICAgICAgICAodC5QdXJlQ29tcG9uZW50ID0gYiksDQogICAgICAgICAgKHQuU3RyaWN0 TW9kZSA9IGEpLA0KICAgICAgICAgICh0LlN1c3BlbnNlID0gYyksDQogICAgICAgICAgKHQu X19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQgPSB6 KSwNCiAgICAgICAgICAodC5jbG9uZUVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCwgcikgew0K ICAgICAgICAgICAgaWYgKG51bGwgPT09IGUgfHwgdm9pZCAwID09PSBlKSB0aHJvdyBFcnJv cigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVh Y3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIiArIGUgKyAiLiIpOw0KICAgICAgICAgICAg dmFyIG8gPSBtKHt9LCBlLnByb3BzKSwNCiAgICAgICAgICAgICAgYSA9IGUua2V5LA0KICAg ICAgICAgICAgICBpID0gZS5yZWYsDQogICAgICAgICAgICAgIGwgPSBlLl9vd25lcjsNCiAg ICAgICAgICAgIGlmIChudWxsICE9IHQpIHsNCiAgICAgICAgICAgICAgaWYgKCh2b2lkIDAg IT09IHQucmVmICYmICgoaSA9IHQucmVmKSwgKGwgPSBrLmN1cnJlbnQpKSwgdm9pZCAwICE9 PSB0LmtleSAmJiAoYSA9ICIiICsgdC5rZXkpLCBlLnR5cGUgJiYgZS50eXBlLmRlZmF1bHRQ cm9wcykpIHZhciBzID0gZS50eXBlLmRlZmF1bHRQcm9wczsNCiAgICAgICAgICAgICAgZm9y ICh1IGluIHQpIFMuY2FsbCh0LCB1KSAmJiAhRS5oYXNPd25Qcm9wZXJ0eSh1KSAmJiAob1t1 XSA9IHZvaWQgMCA9PT0gdFt1XSAmJiB2b2lkIDAgIT09IHMgPyBzW3VdIDogdFt1XSk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgdSA9IGFyZ3VtZW50cy5sZW5ndGggLSAy Ow0KICAgICAgICAgICAgaWYgKDEgPT09IHUpIG8uY2hpbGRyZW4gPSByOw0KICAgICAgICAg ICAgZWxzZSBpZiAoMSA8IHUpIHsNCiAgICAgICAgICAgICAgcyA9IEFycmF5KHUpOw0KICAg ICAgICAgICAgICBmb3IgKHZhciBjID0gMDsgYyA8IHU7IGMrKykgc1tjXSA9IGFyZ3VtZW50 c1tjICsgMl07DQogICAgICAgICAgICAgIG8uY2hpbGRyZW4gPSBzOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgcmV0dXJuIHsgJCR0eXBlb2Y6IG4sIHR5cGU6IGUudHlwZSwga2V5 OiBhLCByZWY6IGksIHByb3BzOiBvLCBfb3duZXI6IGwgfTsNCiAgICAgICAgICB9KSwNCiAg ICAgICAgICAodC5jcmVhdGVDb250ZXh0ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAgICgoZSA9IHsgJCR0eXBlb2Y6IHMsIF9jdXJyZW50 VmFsdWU6IGUsIF9jdXJyZW50VmFsdWUyOiBlLCBfdGhyZWFkQ291bnQ6IDAsIFByb3ZpZGVy OiBudWxsLCBDb25zdW1lcjogbnVsbCwgX2RlZmF1bHRWYWx1ZTogbnVsbCwgX2dsb2JhbE5h bWU6IG51bGwgfSkuUHJvdmlkZXIgPSB7ICQkdHlwZW9mOiBsLCBfY29udGV4dDogZSB9KSwN CiAgICAgICAgICAgICAgKGUuQ29uc3VtZXIgPSBlKQ0KICAgICAgICAgICAgKTsNCiAgICAg ICAgICB9KSwNCiAgICAgICAgICAodC5jcmVhdGVFbGVtZW50ID0gQyksDQogICAgICAgICAg KHQuY3JlYXRlRmFjdG9yeSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICB2YXIgdCA9 IEMuYmluZChudWxsLCBlKTsNCiAgICAgICAgICAgIHJldHVybiAodC50eXBlID0gZSksIHQ7 DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuY3JlYXRlUmVmID0gZnVuY3Rpb24gKCkg ew0KICAgICAgICAgICAgcmV0dXJuIHsgY3VycmVudDogbnVsbCB9Ow0KICAgICAgICAgIH0p LA0KICAgICAgICAgICh0LmZvcndhcmRSZWYgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAg ICAgcmV0dXJuIHsgJCR0eXBlb2Y6IHUsIHJlbmRlcjogZSB9Ow0KICAgICAgICAgIH0pLA0K ICAgICAgICAgICh0LmlzVmFsaWRFbGVtZW50ID0gUiksDQogICAgICAgICAgKHQubGF6eSA9 IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4geyAkJHR5cGVvZjogZiwgX3Bh eWxvYWQ6IHsgX3N0YXR1czogLTEsIF9yZXN1bHQ6IGUgfSwgX2luaXQ6IFQgfTsNCiAgICAg ICAgICB9KSwNCiAgICAgICAgICAodC5tZW1vID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAg ICAgICAgIHJldHVybiB7ICQkdHlwZW9mOiBkLCB0eXBlOiBlLCBjb21wYXJlOiB2b2lkIDAg PT09IHQgPyBudWxsIDogdCB9Ow0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnN0YXJ0 VHJhbnNpdGlvbiA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICB2YXIgdCA9IE0udHJh bnNpdGlvbjsNCiAgICAgICAgICAgIE0udHJhbnNpdGlvbiA9IHt9Ow0KICAgICAgICAgICAg dHJ5IHsNCiAgICAgICAgICAgICAgZSgpOw0KICAgICAgICAgICAgfSBmaW5hbGx5IHsNCiAg ICAgICAgICAgICAgTS50cmFuc2l0aW9uID0gdDsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICB9KSwNCiAgICAgICAgICAodC51bnN0YWJsZV9hY3QgPSBmdW5jdGlvbiAoKSB7DQogICAg ICAgICAgICB0aHJvdyBFcnJvcigiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9k dWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC4iKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAo dC51c2VDYWxsYmFjayA9IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICByZXR1cm4g QS5jdXJyZW50LnVzZUNhbGxiYWNrKGUsIHQpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAg ICh0LnVzZUNvbnRleHQgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIEEu Y3VycmVudC51c2VDb250ZXh0KGUpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVz ZURlYnVnVmFsdWUgPSBmdW5jdGlvbiAoKSB7IH0pLA0KICAgICAgICAgICh0LnVzZURlZmVy cmVkVmFsdWUgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIEEuY3VycmVu dC51c2VEZWZlcnJlZFZhbHVlKGUpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVz ZUVmZmVjdCA9IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICByZXR1cm4gQS5jdXJy ZW50LnVzZUVmZmVjdChlLCB0KTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51c2VJ ZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNlSWQo KTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51c2VJbXBlcmF0aXZlSGFuZGxlID0g ZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNl SW1wZXJhdGl2ZUhhbmRsZShlLCB0LCBuKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAo dC51c2VJbnNlcnRpb25FZmZlY3QgPSBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAg cmV0dXJuIEEuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoZSwgdCk7DQogICAgICAgICAg fSksDQogICAgICAgICAgKHQudXNlTGF5b3V0RWZmZWN0ID0gZnVuY3Rpb24gKGUsIHQpIHsN CiAgICAgICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNlTGF5b3V0RWZmZWN0KGUsIHQpOw0K ICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVzZU1lbW8gPSBmdW5jdGlvbiAoZSwgdCkg ew0KICAgICAgICAgICAgcmV0dXJuIEEuY3VycmVudC51c2VNZW1vKGUsIHQpOw0KICAgICAg ICAgIH0pLA0KICAgICAgICAgICh0LnVzZVJlZHVjZXIgPSBmdW5jdGlvbiAoZSwgdCwgbikg ew0KICAgICAgICAgICAgcmV0dXJuIEEuY3VycmVudC51c2VSZWR1Y2VyKGUsIHQsIG4pOw0K ICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVzZVJlZiA9IGZ1bmN0aW9uIChlKSB7DQog ICAgICAgICAgICByZXR1cm4gQS5jdXJyZW50LnVzZVJlZihlKTsNCiAgICAgICAgICB9KSwN CiAgICAgICAgICAodC51c2VTdGF0ZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBy ZXR1cm4gQS5jdXJyZW50LnVzZVN0YXRlKGUpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAg ICh0LnVzZVN5bmNFeHRlcm5hbFN0b3JlID0gZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAg ICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNlU3luY0V4dGVybmFsU3RvcmUoZSwgdCwgbik7 DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudXNlVHJhbnNpdGlvbiA9IGZ1bmN0aW9u ICgpIHsNCiAgICAgICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpOw0K ICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnZlcnNpb24gPSAiMTguMi4wIik7DQogICAg ICB9LA0KICAgICAgNzkxOiAoZSwgdCwgbikgPT4gew0KICAgICAgICBlLmV4cG9ydHMgPSBu KDExNyk7DQogICAgICB9LA0KICAgICAgMTg0OiAoZSwgdCwgbikgPT4gew0KICAgICAgICBl LmV4cG9ydHMgPSBuKDM3NCk7DQogICAgICB9LA0KICAgICAgODEzOiAoZSwgdCkgPT4gew0K ICAgICAgICBmdW5jdGlvbiBuKGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IGUubGVuZ3Ro Ow0KICAgICAgICAgIGUucHVzaCh0KTsNCiAgICAgICAgICBlOiBmb3IgKDsgMCA8IG47KSB7 DQogICAgICAgICAgICB2YXIgciA9IChuIC0gMSkgPj4+IDEsDQogICAgICAgICAgICAgIG8g PSBlW3JdOw0KICAgICAgICAgICAgaWYgKCEoMCA8IGEobywgdCkpKSBicmVhayBlOw0KICAg ICAgICAgICAgKGVbcl0gPSB0KSwgKGVbbl0gPSBvKSwgKG4gPSByKTsNCiAgICAgICAgICB9 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcihlKSB7DQogICAgICAgICAgcmV0dXJu IDAgPT09IGUubGVuZ3RoID8gbnVsbCA6IGVbMF07DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gbyhlKSB7DQogICAgICAgICAgaWYgKDAgPT09IGUubGVuZ3RoKSByZXR1cm4gbnVs bDsNCiAgICAgICAgICB2YXIgdCA9IGVbMF0sDQogICAgICAgICAgICBuID0gZS5wb3AoKTsN CiAgICAgICAgICBpZiAobiAhPT0gdCkgew0KICAgICAgICAgICAgZVswXSA9IG47DQogICAg ICAgICAgICBlOiBmb3IgKHZhciByID0gMCwgbyA9IGUubGVuZ3RoLCBpID0gbyA+Pj4gMTsg ciA8IGk7KSB7DQogICAgICAgICAgICAgIHZhciBsID0gMiAqIChyICsgMSkgLSAxLA0KICAg ICAgICAgICAgICAgIHMgPSBlW2xdLA0KICAgICAgICAgICAgICAgIHUgPSBsICsgMSwNCiAg ICAgICAgICAgICAgICBjID0gZVt1XTsNCiAgICAgICAgICAgICAgaWYgKDAgPiBhKHMsIG4p KSB1IDwgbyAmJiAwID4gYShjLCBzKSA/ICgoZVtyXSA9IGMpLCAoZVt1XSA9IG4pLCAociA9 IHUpKSA6ICgoZVtyXSA9IHMpLCAoZVtsXSA9IG4pLCAociA9IGwpKTsNCiAgICAgICAgICAg ICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKCEodSA8IG8gJiYgMCA+IGEoYywgbikp KSBicmVhayBlOw0KICAgICAgICAgICAgICAgIChlW3JdID0gYyksIChlW3VdID0gbiksIChy ID0gdSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQog ICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYShlLCB0 KSB7DQogICAgICAgICAgdmFyIG4gPSBlLnNvcnRJbmRleCAtIHQuc29ydEluZGV4Ow0KICAg ICAgICAgIHJldHVybiAwICE9PSBuID8gbiA6IGUuaWQgLSB0LmlkOw0KICAgICAgICB9DQog ICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHBlcmZvcm1hbmNlICYmICJmdW5jdGlv biIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpIHsNCiAgICAgICAgICB2YXIgaSA9IHBl cmZvcm1hbmNlOw0KICAgICAgICAgIHQudW5zdGFibGVfbm93ID0gZnVuY3Rpb24gKCkgew0K ICAgICAgICAgICAgcmV0dXJuIGkubm93KCk7DQogICAgICAgICAgfTsNCiAgICAgICAgfSBl bHNlIHsNCiAgICAgICAgICB2YXIgbCA9IERhdGUsDQogICAgICAgICAgICBzID0gbC5ub3co KTsNCiAgICAgICAgICB0LnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAg ICAgIHJldHVybiBsLm5vdygpIC0gczsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAg ICAgIHZhciB1ID0gW10sDQogICAgICAgICAgYyA9IFtdLA0KICAgICAgICAgIGQgPSAxLA0K ICAgICAgICAgIGYgPSBudWxsLA0KICAgICAgICAgIHAgPSAzLA0KICAgICAgICAgIGggPSAh MSwNCiAgICAgICAgICBtID0gITEsDQogICAgICAgICAgZyA9ICExLA0KICAgICAgICAgIHYg PSAiZnVuY3Rpb24iID09PSB0eXBlb2Ygc2V0VGltZW91dCA/IHNldFRpbWVvdXQgOiBudWxs LA0KICAgICAgICAgIHkgPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgY2xlYXJUaW1lb3V0ID8g Y2xlYXJUaW1lb3V0IDogbnVsbCwNCiAgICAgICAgICBiID0gInVuZGVmaW5lZCIgIT09IHR5 cGVvZiBzZXRJbW1lZGlhdGUgPyBzZXRJbW1lZGlhdGUgOiBudWxsOw0KICAgICAgICBmdW5j dGlvbiB3KGUpIHsNCiAgICAgICAgICBmb3IgKHZhciB0ID0gcihjKTsgbnVsbCAhPT0gdDsp IHsNCiAgICAgICAgICAgIGlmIChudWxsID09PSB0LmNhbGxiYWNrKSBvKGMpOw0KICAgICAg ICAgICAgZWxzZSB7DQogICAgICAgICAgICAgIGlmICghKHQuc3RhcnRUaW1lIDw9IGUpKSBi cmVhazsNCiAgICAgICAgICAgICAgbyhjKSwgKHQuc29ydEluZGV4ID0gdC5leHBpcmF0aW9u VGltZSksIG4odSwgdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ID0gcihjKTsN CiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24geChlKSB7DQogICAg ICAgICAgaWYgKCgoZyA9ICExKSwgdyhlKSwgIW0pKQ0KICAgICAgICAgICAgaWYgKG51bGwg IT09IHIodSkpIChtID0gITApLCBNKFMpOw0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAg ICAgICAgIHZhciB0ID0gcihjKTsNCiAgICAgICAgICAgICAgbnVsbCAhPT0gdCAmJiB6KHgs IHQuc3RhcnRUaW1lIC0gZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gUyhlLCBuKSB7DQogICAgICAgICAgKG0gPSAhMSksIGcgJiYgKChnID0gITEp LCB5KFIpLCAoUiA9IC0xKSksIChoID0gITApOw0KICAgICAgICAgIHZhciBhID0gcDsNCiAg ICAgICAgICB0cnkgew0KICAgICAgICAgICAgZm9yICh3KG4pLCBmID0gcih1KTsgbnVsbCAh PT0gZiAmJiAoIShmLmV4cGlyYXRpb25UaW1lID4gbikgfHwgKGUgJiYgIU8oKSkpOykgew0K ICAgICAgICAgICAgICB2YXIgaSA9IGYuY2FsbGJhY2s7DQogICAgICAgICAgICAgIGlmICgi ZnVuY3Rpb24iID09PSB0eXBlb2YgaSkgew0KICAgICAgICAgICAgICAgIChmLmNhbGxiYWNr ID0gbnVsbCksIChwID0gZi5wcmlvcml0eUxldmVsKTsNCiAgICAgICAgICAgICAgICB2YXIg bCA9IGkoZi5leHBpcmF0aW9uVGltZSA8PSBuKTsNCiAgICAgICAgICAgICAgICAobiA9IHQu dW5zdGFibGVfbm93KCkpLCAiZnVuY3Rpb24iID09PSB0eXBlb2YgbCA/IChmLmNhbGxiYWNr ID0gbCkgOiBmID09PSByKHUpICYmIG8odSksIHcobik7DQogICAgICAgICAgICAgIH0gZWxz ZSBvKHUpOw0KICAgICAgICAgICAgICBmID0gcih1KTsNCiAgICAgICAgICAgIH0NCiAgICAg ICAgICAgIGlmIChudWxsICE9PSBmKSB2YXIgcyA9ICEwOw0KICAgICAgICAgICAgZWxzZSB7 DQogICAgICAgICAgICAgIHZhciBkID0gcihjKTsNCiAgICAgICAgICAgICAgbnVsbCAhPT0g ZCAmJiB6KHgsIGQuc3RhcnRUaW1lIC0gbiksIChzID0gITEpOw0KICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgcmV0dXJuIHM7DQogICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAg ICAgIChmID0gbnVsbCksIChwID0gYSksIChoID0gITEpOw0KICAgICAgICAgIH0NCiAgICAg ICAgfQ0KICAgICAgICAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIG5hdmlnYXRvciAmJiB2b2lk IDAgIT09IG5hdmlnYXRvci5zY2hlZHVsaW5nICYmIHZvaWQgMCAhPT0gbmF2aWdhdG9yLnNj aGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcgJiYgbmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1 dFBlbmRpbmcuYmluZChuYXZpZ2F0b3Iuc2NoZWR1bGluZyk7DQogICAgICAgIHZhciBrLA0K ICAgICAgICAgIEUgPSAhMSwNCiAgICAgICAgICBDID0gbnVsbCwNCiAgICAgICAgICBSID0g LTEsDQogICAgICAgICAgXyA9IDUsDQogICAgICAgICAgUCA9IC0xOw0KICAgICAgICBmdW5j dGlvbiBPKCkgew0KICAgICAgICAgIHJldHVybiAhKHQudW5zdGFibGVfbm93KCkgLSBQIDwg Xyk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTigpIHsNCiAgICAgICAgICBpZiAo bnVsbCAhPT0gQykgew0KICAgICAgICAgICAgdmFyIGUgPSB0LnVuc3RhYmxlX25vdygpOw0K ICAgICAgICAgICAgUCA9IGU7DQogICAgICAgICAgICB2YXIgbiA9ICEwOw0KICAgICAgICAg ICAgdHJ5IHsNCiAgICAgICAgICAgICAgbiA9IEMoITAsIGUpOw0KICAgICAgICAgICAgfSBm aW5hbGx5IHsNCiAgICAgICAgICAgICAgbiA/IGsoKSA6ICgoRSA9ICExKSwgKEMgPSBudWxs KSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSBlbHNlIEUgPSAhMTsNCiAgICAgICAg fQ0KICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGIpDQogICAgICAgICAgayA9 IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIGIoTik7DQogICAgICAgICAgfTsNCiAgICAg ICAgZWxzZSBpZiAoInVuZGVmaW5lZCIgIT09IHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCkgew0K ICAgICAgICAgIHZhciBUID0gbmV3IE1lc3NhZ2VDaGFubmVsKCksDQogICAgICAgICAgICBB ID0gVC5wb3J0MjsNCiAgICAgICAgICAoVC5wb3J0MS5vbm1lc3NhZ2UgPSBOKSwNCiAgICAg ICAgICAgIChrID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICBBLnBvc3RNZXNzYWdl KG51bGwpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0gZWxzZQ0KICAgICAgICAgIGsg PSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB2KE4sIDApOw0KICAgICAgICAgIH07DQog ICAgICAgIGZ1bmN0aW9uIE0oZSkgew0KICAgICAgICAgIChDID0gZSksIEUgfHwgKChFID0g ITApLCBrKCkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHooZSwgbikgew0KICAg ICAgICAgIFIgPSB2KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIGUodC51bnN0YWJsZV9u b3coKSk7DQogICAgICAgICAgfSwgbik7DQogICAgICAgIH0NCiAgICAgICAgKHQudW5zdGFi bGVfSWRsZVByaW9yaXR5ID0gNSksDQogICAgICAgICAgKHQudW5zdGFibGVfSW1tZWRpYXRl UHJpb3JpdHkgPSAxKSwNCiAgICAgICAgICAodC51bnN0YWJsZV9Mb3dQcmlvcml0eSA9IDQp LA0KICAgICAgICAgICh0LnVuc3RhYmxlX05vcm1hbFByaW9yaXR5ID0gMyksDQogICAgICAg ICAgKHQudW5zdGFibGVfUHJvZmlsaW5nID0gbnVsbCksDQogICAgICAgICAgKHQudW5zdGFi bGVfVXNlckJsb2NraW5nUHJpb3JpdHkgPSAyKSwNCiAgICAgICAgICAodC51bnN0YWJsZV9j YW5jZWxDYWxsYmFjayA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBlLmNhbGxiYWNr ID0gbnVsbDsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51bnN0YWJsZV9jb250aW51 ZUV4ZWN1dGlvbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIG0gfHwgaCB8fCAoKG0g PSAhMCksIE0oUykpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVuc3RhYmxlX2Zv cmNlRnJhbWVSYXRlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIDAgPiBlIHx8IDEy NSA8IGUgPyBjb25zb2xlLmVycm9yKCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZl IGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhh biAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWQiKSA6IChfID0gMCA8IGUgPyBNYXRoLmZsb29y KDFlMyAvIGUpIDogNSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudW5zdGFibGVf Z2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBy ZXR1cm4gcDsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51bnN0YWJsZV9nZXRGaXJz dENhbGxiYWNrTm9kZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHJldHVybiByKHUp Ow0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVuc3RhYmxlX25leHQgPSBmdW5jdGlv biAoZSkgew0KICAgICAgICAgICAgc3dpdGNoIChwKSB7DQogICAgICAgICAgICAgIGNhc2Ug MToNCiAgICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgICBjYXNlIDM6DQogICAg ICAgICAgICAgICAgdmFyIHQgPSAzOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHQgPSBwOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgdmFyIG4gPSBwOw0KICAgICAgICAgICAgcCA9IHQ7DQogICAgICAg ICAgICB0cnkgew0KICAgICAgICAgICAgICByZXR1cm4gZSgpOw0KICAgICAgICAgICAgfSBm aW5hbGx5IHsNCiAgICAgICAgICAgICAgcCA9IG47DQogICAgICAgICAgICB9DQogICAgICAg ICAgfSksDQogICAgICAgICAgKHQudW5zdGFibGVfcGF1c2VFeGVjdXRpb24gPSBmdW5jdGlv biAoKSB7IH0pLA0KICAgICAgICAgICh0LnVuc3RhYmxlX3JlcXVlc3RQYWludCA9IGZ1bmN0 aW9uICgpIHsgfSksDQogICAgICAgICAgKHQudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5ID0g ZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoZSkgew0KICAgICAgICAg ICAgICBjYXNlIDE6DQogICAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgICAgY2Fz ZSAzOg0KICAgICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgIGNhc2UgNToNCiAg ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAg ICAgICAgICBlID0gMzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBuID0gcDsN CiAgICAgICAgICAgIHAgPSBlOw0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAg cmV0dXJuIHQoKTsNCiAgICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAgIHAg PSBuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVuc3Rh YmxlX3NjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoZSwgbywgYSkgew0KICAgICAgICAg ICAgdmFyIGkgPSB0LnVuc3RhYmxlX25vdygpOw0KICAgICAgICAgICAgc3dpdGNoICgoIm9i amVjdCIgPT09IHR5cGVvZiBhICYmIG51bGwgIT09IGEgPyAoYSA9ICJudW1iZXIiID09PSB0 eXBlb2YgKGEgPSBhLmRlbGF5KSAmJiAwIDwgYSA/IGkgKyBhIDogaSkgOiAoYSA9IGkpLCBl KSkgew0KICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgdmFyIGwgPSAt MTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSAyOg0KICAg ICAgICAgICAgICAgIGwgPSAyNTA7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICBsID0gMTA3Mzc0MTgyMzsNCiAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAg ICAgIGwgPSAxZTQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGRl ZmF1bHQ6DQogICAgICAgICAgICAgICAgbCA9IDVlMzsNCiAgICAgICAgICAgIH0NCiAgICAg ICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIChlID0geyBpZDogZCsrLCBjYWxsYmFj azogbywgcHJpb3JpdHlMZXZlbDogZSwgc3RhcnRUaW1lOiBhLCBleHBpcmF0aW9uVGltZTog KGwgPSBhICsgbCksIHNvcnRJbmRleDogLTEgfSksDQogICAgICAgICAgICAgIGEgPiBpID8g KChlLnNvcnRJbmRleCA9IGEpLCBuKGMsIGUpLCBudWxsID09PSByKHUpICYmIGUgPT09IHIo YykgJiYgKGcgPyAoeShSKSwgKFIgPSAtMSkpIDogKGcgPSAhMCksIHooeCwgYSAtIGkpKSkg OiAoKGUuc29ydEluZGV4ID0gbCksIG4odSwgZSksIG0gfHwgaCB8fCAoKG0gPSAhMCksIE0o UykpKSwNCiAgICAgICAgICAgICAgZQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9KSwN CiAgICAgICAgICAodC51bnN0YWJsZV9zaG91bGRZaWVsZCA9IE8pLA0KICAgICAgICAgICh0 LnVuc3RhYmxlX3dyYXBDYWxsYmFjayA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICB2 YXIgdCA9IHA7DQogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgew0KICAgICAgICAg ICAgICB2YXIgbiA9IHA7DQogICAgICAgICAgICAgIHAgPSB0Ow0KICAgICAgICAgICAgICB0 cnkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7 DQogICAgICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAgICAgcCA9IG47DQog ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH07DQogICAgICAgICAgfSk7DQogICAgICB9 LA0KICAgICAgMjk2OiAoZSwgdCwgbikgPT4gew0KICAgICAgICBlLmV4cG9ydHMgPSBuKDgx Myk7DQogICAgICB9LA0KICAgIH0sDQogICAgICB0ID0ge307DQogICAgZnVuY3Rpb24gbihy KSB7DQogICAgICB2YXIgbyA9IHRbcl07DQogICAgICBpZiAodm9pZCAwICE9PSBvKSByZXR1 cm4gby5leHBvcnRzOw0KICAgICAgdmFyIGEgPSAodFtyXSA9IHsgZXhwb3J0czoge30gfSk7 DQogICAgICByZXR1cm4gZVtyXShhLCBhLmV4cG9ydHMsIG4pLCBhLmV4cG9ydHM7DQogICAg fQ0KICAgIChuLm0gPSBlKSwNCiAgICAgICgoKSA9PiB7DQogICAgICAgIHZhciBlLA0KICAg ICAgICAgIHQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgPyAoZSkgPT4gT2JqZWN0LmdldFBy b3RvdHlwZU9mKGUpIDogKGUpID0+IGUuX19wcm90b19fOw0KICAgICAgICBuLnQgPSBmdW5j dGlvbiAociwgbykgew0KICAgICAgICAgIGlmICgoMSAmIG8gJiYgKHIgPSB0aGlzKHIpKSwg OCAmIG8pKSByZXR1cm4gcjsNCiAgICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBy ICYmIHIpIHsNCiAgICAgICAgICAgIGlmICg0ICYgbyAmJiByLl9fZXNNb2R1bGUpIHJldHVy biByOw0KICAgICAgICAgICAgaWYgKDE2ICYgbyAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2Yg ci50aGVuKSByZXR1cm4gcjsNCiAgICAgICAgICB9DQogICAgICAgICAgdmFyIGEgPSBPYmpl Y3QuY3JlYXRlKG51bGwpOw0KICAgICAgICAgIG4ucihhKTsNCiAgICAgICAgICB2YXIgaSA9 IHt9Ow0KICAgICAgICAgIGUgPSBlIHx8IFtudWxsLCB0KHt9KSwgdChbXSksIHQodCldOw0K ICAgICAgICAgIGZvciAodmFyIGwgPSAyICYgbyAmJiByOyAib2JqZWN0IiA9PSB0eXBlb2Yg bCAmJiAhfmUuaW5kZXhPZihsKTsgbCA9IHQobCkpIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5h bWVzKGwpLmZvckVhY2goKGUpID0+IChpW2VdID0gKCkgPT4gcltlXSkpOw0KICAgICAgICAg IHJldHVybiAoaS5kZWZhdWx0ID0gKCkgPT4gciksIG4uZChhLCBpKSwgYTsNCiAgICAgICAg fTsNCiAgICAgIH0pKCksDQogICAgICAobi5kID0gKGUsIHQpID0+IHsNCiAgICAgICAgZm9y ICh2YXIgciBpbiB0KSBuLm8odCwgcikgJiYgIW4ubyhlLCByKSAmJiBPYmplY3QuZGVmaW5l UHJvcGVydHkoZSwgciwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiB0W3JdIH0pOw0KICAgICAg fSksDQogICAgICAobi5mID0ge30pLA0KICAgICAgKG4uZSA9IChlKSA9PiBQcm9taXNlLmFs bChPYmplY3Qua2V5cyhuLmYpLnJlZHVjZSgodCwgcikgPT4gKG4uZltyXShlLCB0KSwgdCks IFtdKSkpLA0KICAgICAgKG4udSA9IChlKSA9PiAic3RhdGljL2pzLyIgKyBlICsgIi4wZTA5 MWMyYS5jaHVuay5qcyIpLA0KICAgICAgKG4ubWluaUNzc0YgPSAoZSkgPT4geyB9KSwNCiAg ICAgIChuLm8gPSAoZSwgdCkgPT4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5j YWxsKGUsIHQpKSwNCiAgICAgICgoKSA9PiB7DQogICAgICAgIHZhciBlID0ge30sDQogICAg ICAgICAgdCA9ICJvbmVkcml2ZW5ldzoiOw0KICAgICAgICBuLmwgPSAociwgbywgYSwgaSkg PT4gew0KICAgICAgICAgIGlmIChlW3JdKSBlW3JdLnB1c2gobyk7DQogICAgICAgICAgZWxz ZSB7DQogICAgICAgICAgICB2YXIgbCwgczsNCiAgICAgICAgICAgIGlmICh2b2lkIDAgIT09 IGEpDQogICAgICAgICAgICAgIGZvciAodmFyIHUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5 VGFnTmFtZSgic2NyaXB0IiksIGMgPSAwOyBjIDwgdS5sZW5ndGg7IGMrKykgew0KICAgICAg ICAgICAgICAgIHZhciBkID0gdVtjXTsNCiAgICAgICAgICAgICAgICBpZiAoZC5nZXRBdHRy aWJ1dGUoInNyYyIpID09IHIgfHwgZC5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicGFjayIpID09 IHQgKyBhKSB7DQogICAgICAgICAgICAgICAgICBsID0gZDsNCiAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgbCB8fCAoKHMgPSAhMCksICgobCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlw dCIpKS5jaGFyc2V0ID0gInV0Zi04IiksIChsLnRpbWVvdXQgPSAxMjApLCBuLm5jICYmIGwu c2V0QXR0cmlidXRlKCJub25jZSIsIG4ubmMpLCBsLnNldEF0dHJpYnV0ZSgiZGF0YS13ZWJw YWNrIiwgdCArIGEpLCAobC5zcmMgPSByKSksIChlW3JdID0gW29dKTsNCiAgICAgICAgICAg IHZhciBmID0gKHQsIG4pID0+IHsNCiAgICAgICAgICAgICAgKGwub25lcnJvciA9IGwub25s b2FkID0gbnVsbCksIGNsZWFyVGltZW91dChwKTsNCiAgICAgICAgICAgICAgdmFyIG8gPSBl W3JdOw0KICAgICAgICAgICAgICBpZiAoKGRlbGV0ZSBlW3JdLCBsLnBhcmVudE5vZGUgJiYg bC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpLCBvICYmIG8uZm9yRWFjaCgoZSkgPT4gZShu KSksIHQpKSByZXR1cm4gdChuKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHAg PSBzZXRUaW1lb3V0KGYuYmluZChudWxsLCB2b2lkIDAsIHsgdHlwZTogInRpbWVvdXQiLCB0 YXJnZXQ6IGwgfSksIDEyZTQpOw0KICAgICAgICAgICAgKGwub25lcnJvciA9IGYuYmluZChu dWxsLCBsLm9uZXJyb3IpKSwgKGwub25sb2FkID0gZi5iaW5kKG51bGwsIGwub25sb2FkKSks IHMgJiYgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsKTsNCiAgICAgICAgICB9DQogICAg ICAgIH07DQogICAgICB9KSgpLA0KICAgICAgKG4uciA9IChlKSA9PiB7DQogICAgICAgICJ1 bmRlZmluZWQiICE9PSB0eXBlb2YgU3ltYm9sICYmIFN5bWJvbC50b1N0cmluZ1RhZyAmJiBP YmplY3QuZGVmaW5lUHJvcGVydHkoZSwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAi TW9kdWxlIiB9KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsICJfX2VzTW9kdWxlIiwgeyB2 YWx1ZTogITAgfSk7DQogICAgICB9KSwNCiAgICAgIChuLnAgPSAiLyIpLA0KICAgICAgKCgp ID0+IHsNCiAgICAgICAgdmFyIGUgPSB7IDE3OTogMCB9Ow0KICAgICAgICBuLmYuaiA9ICh0 LCByKSA9PiB7DQogICAgICAgICAgdmFyIG8gPSBuLm8oZSwgdCkgPyBlW3RdIDogdm9pZCAw Ow0KICAgICAgICAgIGlmICgwICE9PSBvKQ0KICAgICAgICAgICAgaWYgKG8pIHIucHVzaChv WzJdKTsNCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICB2YXIgYSA9IG5ldyBQ cm9taXNlKChuLCByKSA9PiAobyA9IGVbdF0gPSBbbiwgcl0pKTsNCiAgICAgICAgICAgICAg ci5wdXNoKChvWzJdID0gYSkpOw0KICAgICAgICAgICAgICB2YXIgaSA9IG4ucCArIG4udSh0 KSwNCiAgICAgICAgICAgICAgICBsID0gbmV3IEVycm9yKCk7DQogICAgICAgICAgICAgIG4u bCgNCiAgICAgICAgICAgICAgICBpLA0KICAgICAgICAgICAgICAgIChyKSA9PiB7DQogICAg ICAgICAgICAgICAgICBpZiAobi5vKGUsIHQpICYmICgwICE9PSAobyA9IGVbdF0pICYmIChl W3RdID0gdm9pZCAwKSwgbykpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSByICYm ICgibG9hZCIgPT09IHIudHlwZSA/ICJtaXNzaW5nIiA6IHIudHlwZSksDQogICAgICAgICAg ICAgICAgICAgICAgaSA9IHIgJiYgci50YXJnZXQgJiYgci50YXJnZXQuc3JjOw0KICAgICAg ICAgICAgICAgICAgICAobC5tZXNzYWdlID0gIkxvYWRpbmcgY2h1bmsgIiArIHQgKyAiIGZh aWxlZC5cbigiICsgYSArICI6ICIgKyBpICsgIikiKSwgKGwubmFtZSA9ICJDaHVua0xvYWRF cnJvciIpLCAobC50eXBlID0gYSksIChsLnJlcXVlc3QgPSBpKSwgb1sxXShsKTsNCiAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICJj aHVuay0iICsgdCwNCiAgICAgICAgICAgICAgICB0DQogICAgICAgICAgICAgICk7DQogICAg ICAgICAgICB9DQogICAgICAgIH07DQogICAgICAgIHZhciB0ID0gKHQsIHIpID0+IHsNCiAg ICAgICAgICB2YXIgbywNCiAgICAgICAgICAgIGEsDQogICAgICAgICAgICBpID0gclswXSwN CiAgICAgICAgICAgIGwgPSByWzFdLA0KICAgICAgICAgICAgcyA9IHJbMl0sDQogICAgICAg ICAgICB1ID0gMDsNCiAgICAgICAgICBpZiAoaS5zb21lKCh0KSA9PiAwICE9PSBlW3RdKSkg ew0KICAgICAgICAgICAgZm9yIChvIGluIGwpIG4ubyhsLCBvKSAmJiAobi5tW29dID0gbFtv XSk7DQogICAgICAgICAgICBpZiAocykgcyhuKTsNCiAgICAgICAgICB9DQogICAgICAgICAg Zm9yICh0ICYmIHQocik7IHUgPCBpLmxlbmd0aDsgdSsrKSAoYSA9IGlbdV0pLCBuLm8oZSwg YSkgJiYgZVthXSAmJiBlW2FdWzBdKCksIChlW2FdID0gMCk7DQogICAgICAgIH0sDQogICAg ICAgICAgciA9IChzZWxmLndlYnBhY2tDaHVua29uZWRyaXZlbmV3ID0gc2VsZi53ZWJwYWNr Q2h1bmtvbmVkcml2ZW5ldyB8fCBbXSk7DQogICAgICAgIHIuZm9yRWFjaCh0LmJpbmQobnVs bCwgMCkpLCAoci5wdXNoID0gdC5iaW5kKG51bGwsIHIucHVzaC5iaW5kKHIpKSk7DQogICAg ICB9KSgpLA0KICAgICAgKCgpID0+IHsNCiAgICAgICAgdmFyIGUgPSB7fTsNCiAgICAgICAg bi5yKGUpLCBuLmQoZSwgeyBoYXNCcm93c2VyRW52OiAoKSA9PiBucCwgaGFzU3RhbmRhcmRC cm93c2VyRW52OiAoKSA9PiBycCwgaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OiAo KSA9PiBhcCB9KTsNCiAgICAgICAgdmFyIHQgPSBuKDc5MSksDQogICAgICAgICAgciA9IG4u dCh0LCAyKSwNCiAgICAgICAgICBvID0gbigyNTApOw0KICAgICAgICBmdW5jdGlvbiBhKGUs IHQpIHsNCiAgICAgICAgICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307DQogICAgICAgICAg dmFyIG4sDQogICAgICAgICAgICByLA0KICAgICAgICAgICAgbyA9IHt9LA0KICAgICAgICAg ICAgYSA9IE9iamVjdC5rZXlzKGUpOw0KICAgICAgICAgIGZvciAociA9IDA7IHIgPCBhLmxl bmd0aDsgcisrKSAobiA9IGFbcl0pLCB0LmluZGV4T2YobikgPj0gMCB8fCAob1tuXSA9IGVb bl0pOw0KICAgICAgICAgIHJldHVybiBvOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IGkoKSB7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIChpID0gT2JqZWN0LmFz c2lnbg0KICAgICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24uYmluZCgpDQogICAgICAgICAg ICAgIDogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciB0ID0gMTsg dCA8IGFyZ3VtZW50cy5sZW5ndGg7IHQrKykgew0KICAgICAgICAgICAgICAgICAgdmFyIG4g PSBhcmd1bWVudHNbdF07DQogICAgICAgICAgICAgICAgICBmb3IgKHZhciByIGluIG4pIE9i amVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCByKSAmJiAoZVtyXSA9IG5b cl0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gZTsNCiAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICBpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykN CiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGwoZSkgew0KICAg ICAgICAgIHZhciB0LA0KICAgICAgICAgICAgbiwNCiAgICAgICAgICAgIHIgPSAiIjsNCiAg ICAgICAgICBpZiAoInN0cmluZyIgPT0gdHlwZW9mIGUgfHwgIm51bWJlciIgPT0gdHlwZW9m IGUpIHIgKz0gZTsNCiAgICAgICAgICBlbHNlIGlmICgib2JqZWN0IiA9PSB0eXBlb2YgZSkN CiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGUpKSBmb3IgKHQgPSAwOyB0IDwgZS5s ZW5ndGg7IHQrKykgZVt0XSAmJiAobiA9IGwoZVt0XSkpICYmIChyICYmIChyICs9ICIgIiks IChyICs9IG4pKTsNCiAgICAgICAgICAgIGVsc2UgZm9yICh0IGluIGUpIGVbdF0gJiYgKHIg JiYgKHIgKz0gIiAiKSwgKHIgKz0gdCkpOw0KICAgICAgICAgIHJldHVybiByOw0KICAgICAg ICB9DQogICAgICAgIGNvbnN0IHMgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgZm9yICh2 YXIgZSwgdCwgbiA9IDAsIHIgPSAiIjsgbiA8IGFyZ3VtZW50cy5sZW5ndGg7KSAoZSA9IGFy Z3VtZW50c1tuKytdKSAmJiAodCA9IGwoZSkpICYmIChyICYmIChyICs9ICIgIiksIChyICs9 IHQpKTsNCiAgICAgICAgICByZXR1cm4gcjsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rp b24gdShlLCB0KSB7DQogICAgICAgICAgY29uc3QgbiA9IGkoe30sIHQpOw0KICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChyKSA9PiB7 DQogICAgICAgICAgICAgIGlmIChyLnRvU3RyaW5nKCkubWF0Y2goL14oY29tcG9uZW50c3xz bG90cykkLykpIG5bcl0gPSBpKHt9LCBlW3JdLCBuW3JdKTsNCiAgICAgICAgICAgICAgZWxz ZSBpZiAoci50b1N0cmluZygpLm1hdGNoKC9eKGNvbXBvbmVudHNQcm9wc3xzbG90UHJvcHMp JC8pKSB7DQogICAgICAgICAgICAgICAgY29uc3QgbyA9IGVbcl0gfHwge30sDQogICAgICAg ICAgICAgICAgICBhID0gdFtyXTsNCiAgICAgICAgICAgICAgICAobltyXSA9IHt9KSwNCiAg ICAgICAgICAgICAgICAgIGEgJiYgT2JqZWN0LmtleXMoYSkNCiAgICAgICAgICAgICAgICAg ICAgPyBvICYmIE9iamVjdC5rZXlzKG8pDQogICAgICAgICAgICAgICAgICAgICAgPyAoKG5b cl0gPSBpKHt9LCBhKSksDQogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhv KS5mb3JFYWNoKChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIG5bcl1bZV0g PSB1KG9bZV0sIGFbZV0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSkpDQogICAgICAg ICAgICAgICAgICAgICAgOiAobltyXSA9IGEpDQogICAgICAgICAgICAgICAgICAgIDogKG5b cl0gPSBvKTsNCiAgICAgICAgICAgICAgfSBlbHNlIHZvaWQgMCA9PT0gbltyXSAmJiAoblty XSA9IGVbcl0pOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICBuDQogICAgICAgICAg KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBjKGUsIHQpIHsNCiAgICAgICAgICBs ZXQgbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzJd ID8gYXJndW1lbnRzWzJdIDogdm9pZCAwOw0KICAgICAgICAgIGNvbnN0IHIgPSB7fTsNCiAg ICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgo bykgPT4gew0KICAgICAgICAgICAgICByW29dID0gZVtvXQ0KICAgICAgICAgICAgICAgIC5y ZWR1Y2UoKGUsIHIpID0+IHsNCiAgICAgICAgICAgICAgICAgIGlmIChyKSB7DQogICAgICAg ICAgICAgICAgICAgIGNvbnN0IG8gPSB0KHIpOw0KICAgICAgICAgICAgICAgICAgICAiIiAh PT0gbyAmJiBlLnB1c2gobyksIG4gJiYgbltyXSAmJiBlLnB1c2gobltyXSk7DQogICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgICAg ICAgICB9LCBbXSkNCiAgICAgICAgICAgICAgICAuam9pbigiICIpOw0KICAgICAgICAgICAg fSksDQogICAgICAgICAgICByDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBkKGUpIHsNCiAgICAgICAgICBsZXQgdCA9ICJodHRwczovL211aS5jb20vcHJv ZHVjdGlvbi1lcnJvci8/Y29kZT0iICsgZTsNCiAgICAgICAgICBmb3IgKGxldCBuID0gMTsg biA8IGFyZ3VtZW50cy5sZW5ndGg7IG4gKz0gMSkgdCArPSAiJmFyZ3NbXT0iICsgZW5jb2Rl VVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSk7DQogICAgICAgICAgcmV0dXJuICJNaW5pZmll ZCBNVUkgZXJyb3IgIyIgKyBlICsgIjsgdmlzaXQgIiArIHQgKyAiIGZvciB0aGUgZnVsbCBt ZXNzYWdlLiI7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZihlKSB7DQogICAgICAg ICAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAgIT09IGFyZ3VtZW50 c1sxXSA/IGFyZ3VtZW50c1sxXSA6IDAsDQogICAgICAgICAgICBuID0gYXJndW1lbnRzLmxl bmd0aCA+IDIgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiAx Ow0KICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCh0LCBlKSwgbik7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcChlKSB7DQogICAgICAgICAgaWYgKGUudHlwZSkg cmV0dXJuIGU7DQogICAgICAgICAgaWYgKCIjIiA9PT0gZS5jaGFyQXQoMCkpDQogICAgICAg ICAgICByZXR1cm4gcCgNCiAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICAgICAgZSA9IGUuc2xpY2UoMSk7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IG5l dyBSZWdFeHAoIi57MSwiLmNvbmNhdChlLmxlbmd0aCA+PSA2ID8gMiA6IDEsICJ9IiksICJn Iik7DQogICAgICAgICAgICAgICAgbGV0IG4gPSBlLm1hdGNoKHQpOw0KICAgICAgICAgICAg ICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICBuICYmIDEgPT09IG5bMF0ubGVuZ3Ro ICYmIChuID0gbi5tYXAoKGUpID0+IGUgKyBlKSksDQogICAgICAgICAgICAgICAgICBuID8g InJnYiIuY29uY2F0KDQgPT09IG4ubGVuZ3RoID8gImEiIDogIiIsICIoIikuY29uY2F0KG4u bWFwKChlLCB0KSA9PiAodCA8IDMgPyBwYXJzZUludChlLCAxNikgOiBNYXRoLnJvdW5kKChw YXJzZUludChlLCAxNikgLyAyNTUpICogMWUzKSAvIDFlMykpLmpvaW4oIiwgIiksICIpIikg OiAiIg0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgIH0pKGUpDQogICAgICAg ICAgICApOw0KICAgICAgICAgIGNvbnN0IHQgPSBlLmluZGV4T2YoIigiKSwNCiAgICAgICAg ICAgIG4gPSBlLnN1YnN0cmluZygwLCB0KTsNCiAgICAgICAgICBpZiAoLTEgPT09IFsicmdi IiwgInJnYmEiLCAiaHNsIiwgImhzbGEiLCAiY29sb3IiXS5pbmRleE9mKG4pKSB0aHJvdyBu ZXcgRXJyb3IoZCg5LCBlKSk7DQogICAgICAgICAgbGV0IHIsDQogICAgICAgICAgICBvID0g ZS5zdWJzdHJpbmcodCArIDEsIGUubGVuZ3RoIC0gMSk7DQogICAgICAgICAgaWYgKCJjb2xv ciIgPT09IG4pIHsNCiAgICAgICAgICAgIGlmICgoKG8gPSBvLnNwbGl0KCIgIikpLCAociA9 IG8uc2hpZnQoKSksIDQgPT09IG8ubGVuZ3RoICYmICIvIiA9PT0gb1szXS5jaGFyQXQoMCkg JiYgKG9bM10gPSBvWzNdLnNsaWNlKDEpKSwgLTEgPT09IFsic3JnYiIsICJkaXNwbGF5LXAz IiwgImE5OC1yZ2IiLCAicHJvcGhvdG8tcmdiIiwgInJlYy0yMDIwIl0uaW5kZXhPZihyKSkp DQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihkKDEwLCByKSk7DQogICAgICAgICAg fSBlbHNlIG8gPSBvLnNwbGl0KCIsIik7DQogICAgICAgICAgcmV0dXJuIChvID0gby5tYXAo KGUpID0+IHBhcnNlRmxvYXQoZSkpKSwgeyB0eXBlOiBuLCB2YWx1ZXM6IG8sIGNvbG9yU3Bh Y2U6IHIgfTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBoKGUpIHsNCiAgICAgICAg ICBjb25zdCB7IHR5cGU6IHQsIGNvbG9yU3BhY2U6IG4gfSA9IGU7DQogICAgICAgICAgbGV0 IHsgdmFsdWVzOiByIH0gPSBlOw0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAt MSAhPT0gdC5pbmRleE9mKCJyZ2IiKSA/IChyID0gci5tYXAoKGUsIHQpID0+ICh0IDwgMyA/ IHBhcnNlSW50KGUsIDEwKSA6IGUpKSkgOiAtMSAhPT0gdC5pbmRleE9mKCJoc2wiKSAmJiAo KHJbMV0gPSAiIi5jb25jYXQoclsxXSwgIiUiKSksIChyWzJdID0gIiIuY29uY2F0KHJbMl0s ICIlIikpKSwNCiAgICAgICAgICAgIChyID0gLTEgIT09IHQuaW5kZXhPZigiY29sb3IiKSA/ ICIiLmNvbmNhdChuLCAiICIpLmNvbmNhdChyLmpvaW4oIiAiKSkgOiAiIi5jb25jYXQoci5q b2luKCIsICIpKSksDQogICAgICAgICAgICAiIi5jb25jYXQodCwgIigiKS5jb25jYXQociwg IikiKQ0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbShlKSB7 DQogICAgICAgICAgbGV0IHQgPQ0KICAgICAgICAgICAgImhzbCIgPT09IChlID0gcChlKSku dHlwZSB8fCAiaHNsYSIgPT09IGUudHlwZQ0KICAgICAgICAgICAgICA/IHAoDQogICAgICAg ICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICBlID0gcChlKTsN CiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdmFsdWVzOiB0IH0gPSBlLA0KICAgICAgICAg ICAgICAgICAgICBuID0gdFswXSwNCiAgICAgICAgICAgICAgICAgICAgciA9IHRbMV0gLyAx MDAsDQogICAgICAgICAgICAgICAgICAgIG8gPSB0WzJdIC8gMTAwLA0KICAgICAgICAgICAg ICAgICAgICBhID0gciAqIE1hdGgubWluKG8sIDEgLSBvKSwNCiAgICAgICAgICAgICAgICAg ICAgaSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSBh cmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1sxXSA/IGFyZ3Vt ZW50c1sxXSA6IChlICsgbiAvIDMwKSAlIDEyOw0KICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBvIC0gYSAqIE1hdGgubWF4KE1hdGgubWluKHQgLSAzLCA5IC0gdCwgMSksIC0xKTsN CiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAgIGxldCBsID0gInJn YiI7DQogICAgICAgICAgICAgICAgICBjb25zdCBzID0gW01hdGgucm91bmQoMjU1ICogaSgw KSksIE1hdGgucm91bmQoMjU1ICogaSg4KSksIE1hdGgucm91bmQoMjU1ICogaSg0KSldOw0K ICAgICAgICAgICAgICAgICAgcmV0dXJuICJoc2xhIiA9PT0gZS50eXBlICYmICgobCArPSAi YSIpLCBzLnB1c2godFszXSkpLCBoKHsgdHlwZTogbCwgdmFsdWVzOiBzIH0pOw0KICAgICAg ICAgICAgICAgIH0pKGUpDQogICAgICAgICAgICAgICkudmFsdWVzDQogICAgICAgICAgICAg IDogZS52YWx1ZXM7DQogICAgICAgICAgcmV0dXJuICh0ID0gdC5tYXAoKHQpID0+ICgiY29s b3IiICE9PSBlLnR5cGUgJiYgKHQgLz0gMjU1KSwgdCA8PSAwLjAzOTI4ID8gdCAvIDEyLjky IDogKCh0ICsgMC4wNTUpIC8gMS4wNTUpICoqIDIuNCkpKSwgTnVtYmVyKCgwLjIxMjYgKiB0 WzBdICsgMC43MTUyICogdFsxXSArIDAuMDcyMiAqIHRbMl0pLnRvRml4ZWQoMykpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGcoZSwgdCkgew0KICAgICAgICAgIHJldHVybiAo ZSA9IHAoZSkpLCAodCA9IGYodCkpLCAoInJnYiIgIT09IGUudHlwZSAmJiAiaHNsIiAhPT0g ZS50eXBlKSB8fCAoZS50eXBlICs9ICJhIiksICJjb2xvciIgPT09IGUudHlwZSA/IChlLnZh bHVlc1szXSA9ICIvIi5jb25jYXQodCkpIDogKGUudmFsdWVzWzNdID0gdCksIGgoZSk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gdihlLCB0KSB7DQogICAgICAgICAgaWYgKCgo ZSA9IHAoZSkpLCAodCA9IGYodCkpLCAtMSAhPT0gZS50eXBlLmluZGV4T2YoImhzbCIpKSkg ZS52YWx1ZXNbMl0gKj0gMSAtIHQ7DQogICAgICAgICAgZWxzZSBpZiAoLTEgIT09IGUudHlw ZS5pbmRleE9mKCJyZ2IiKSB8fCAtMSAhPT0gZS50eXBlLmluZGV4T2YoImNvbG9yIikpIGZv ciAobGV0IG4gPSAwOyBuIDwgMzsgbiArPSAxKSBlLnZhbHVlc1tuXSAqPSAxIC0gdDsNCiAg ICAgICAgICByZXR1cm4gaChlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB5KGUs IHQpIHsNCiAgICAgICAgICBpZiAoKChlID0gcChlKSksICh0ID0gZih0KSksIC0xICE9PSBl LnR5cGUuaW5kZXhPZigiaHNsIikpKSBlLnZhbHVlc1syXSArPSAoMTAwIC0gZS52YWx1ZXNb Ml0pICogdDsNCiAgICAgICAgICBlbHNlIGlmICgtMSAhPT0gZS50eXBlLmluZGV4T2YoInJn YiIpKSBmb3IgKGxldCBuID0gMDsgbiA8IDM7IG4gKz0gMSkgZS52YWx1ZXNbbl0gKz0gKDI1 NSAtIGUudmFsdWVzW25dKSAqIHQ7DQogICAgICAgICAgZWxzZSBpZiAoLTEgIT09IGUudHlw ZS5pbmRleE9mKCJjb2xvciIpKSBmb3IgKGxldCBuID0gMDsgbiA8IDM7IG4gKz0gMSkgZS52 YWx1ZXNbbl0gKz0gKDEgLSBlLnZhbHVlc1tuXSkgKiB0Ow0KICAgICAgICAgIHJldHVybiBo KGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGIoZSkgew0KICAgICAgICAgIHZh ciB0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTsNCiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24g KG4pIHsNCiAgICAgICAgICAgIHJldHVybiB2b2lkIDAgPT09IHRbbl0gJiYgKHRbbl0gPSBl KG4pKSwgdFtuXTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIHZhciB3ID0g L14oKGNoaWxkcmVufGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfGtleXxyZWZ8YXV0b0ZvY3Vz fGRlZmF1bHRWYWx1ZXxkZWZhdWx0Q2hlY2tlZHxpbm5lckhUTUx8c3VwcHJlc3NDb250ZW50 RWRpdGFibGVXYXJuaW5nfHN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x2YWx1ZUxpbmt8YWJi cnxhY2NlcHR8YWNjZXB0Q2hhcnNldHxhY2Nlc3NLZXl8YWN0aW9ufGFsbG93fGFsbG93VXNl ck1lZGlhfGFsbG93UGF5bWVudFJlcXVlc3R8YWxsb3dGdWxsU2NyZWVufGFsbG93VHJhbnNw YXJlbmN5fGFsdHxhc3luY3xhdXRvQ29tcGxldGV8YXV0b1BsYXl8Y2FwdHVyZXxjZWxsUGFk ZGluZ3xjZWxsU3BhY2luZ3xjaGFsbGVuZ2V8Y2hhclNldHxjaGVja2VkfGNpdGV8Y2xhc3NJ RHxjbGFzc05hbWV8Y29sc3xjb2xTcGFufGNvbnRlbnR8Y29udGVudEVkaXRhYmxlfGNvbnRl eHRNZW51fGNvbnRyb2xzfGNvbnRyb2xzTGlzdHxjb29yZHN8Y3Jvc3NPcmlnaW58ZGF0YXxk YXRlVGltZXxkZWNvZGluZ3xkZWZhdWx0fGRlZmVyfGRpcnxkaXNhYmxlZHxkaXNhYmxlUGlj dHVyZUluUGljdHVyZXxkb3dubG9hZHxkcmFnZ2FibGV8ZW5jVHlwZXxlbnRlcktleUhpbnR8 Zm9ybXxmb3JtQWN0aW9ufGZvcm1FbmNUeXBlfGZvcm1NZXRob2R8Zm9ybU5vVmFsaWRhdGV8 Zm9ybVRhcmdldHxmcmFtZUJvcmRlcnxoZWFkZXJzfGhlaWdodHxoaWRkZW58aGlnaHxocmVm fGhyZWZMYW5nfGh0bWxGb3J8aHR0cEVxdWl2fGlkfGlucHV0TW9kZXxpbnRlZ3JpdHl8aXN8 a2V5UGFyYW1zfGtleVR5cGV8a2luZHxsYWJlbHxsYW5nfGxpc3R8bG9hZGluZ3xsb29wfGxv d3xtYXJnaW5IZWlnaHR8bWFyZ2luV2lkdGh8bWF4fG1heExlbmd0aHxtZWRpYXxtZWRpYUdy b3VwfG1ldGhvZHxtaW58bWluTGVuZ3RofG11bHRpcGxlfG11dGVkfG5hbWV8bm9uY2V8bm9W YWxpZGF0ZXxvcGVufG9wdGltdW18cGF0dGVybnxwbGFjZWhvbGRlcnxwbGF5c0lubGluZXxw b3N0ZXJ8cHJlbG9hZHxwcm9maWxlfHJhZGlvR3JvdXB8cmVhZE9ubHl8cmVmZXJyZXJQb2xp Y3l8cmVsfHJlcXVpcmVkfHJldmVyc2VkfHJvbGV8cm93c3xyb3dTcGFufHNhbmRib3h8c2Nv cGV8c2NvcGVkfHNjcm9sbGluZ3xzZWFtbGVzc3xzZWxlY3RlZHxzaGFwZXxzaXplfHNpemVz fHNsb3R8c3BhbnxzcGVsbENoZWNrfHNyY3xzcmNEb2N8c3JjTGFuZ3xzcmNTZXR8c3RhcnR8 c3RlcHxzdHlsZXxzdW1tYXJ5fHRhYkluZGV4fHRhcmdldHx0aXRsZXx0cmFuc2xhdGV8dHlw ZXx1c2VNYXB8dmFsdWV8d2lkdGh8d21vZGV8d3JhcHxhYm91dHxkYXRhdHlwZXxpbmxpc3R8 cHJlZml4fHByb3BlcnR5fHJlc291cmNlfHR5cGVvZnx2b2NhYnxhdXRvQ2FwaXRhbGl6ZXxh dXRvQ29ycmVjdHxhdXRvU2F2ZXxjb2xvcnxpbmNyZW1lbnRhbHxmYWxsYmFja3xpbmVydHxp dGVtUHJvcHxpdGVtU2NvcGV8aXRlbVR5cGV8aXRlbUlEfGl0ZW1SZWZ8b258b3B0aW9ufHJl c3VsdHN8c2VjdXJpdHl8dW5zZWxlY3RhYmxlfGFjY2VudEhlaWdodHxhY2N1bXVsYXRlfGFk ZGl0aXZlfGFsaWdubWVudEJhc2VsaW5lfGFsbG93UmVvcmRlcnxhbHBoYWJldGljfGFtcGxp dHVkZXxhcmFiaWNGb3JtfGFzY2VudHxhdHRyaWJ1dGVOYW1lfGF0dHJpYnV0ZVR5cGV8YXV0 b1JldmVyc2V8YXppbXV0aHxiYXNlRnJlcXVlbmN5fGJhc2VsaW5lU2hpZnR8YmFzZVByb2Zp bGV8YmJveHxiZWdpbnxiaWFzfGJ5fGNhbGNNb2RlfGNhcEhlaWdodHxjbGlwfGNsaXBQYXRo VW5pdHN8Y2xpcFBhdGh8Y2xpcFJ1bGV8Y29sb3JJbnRlcnBvbGF0aW9ufGNvbG9ySW50ZXJw b2xhdGlvbkZpbHRlcnN8Y29sb3JQcm9maWxlfGNvbG9yUmVuZGVyaW5nfGNvbnRlbnRTY3Jp cHRUeXBlfGNvbnRlbnRTdHlsZVR5cGV8Y3Vyc29yfGN4fGN5fGR8ZGVjZWxlcmF0ZXxkZXNj ZW50fGRpZmZ1c2VDb25zdGFudHxkaXJlY3Rpb258ZGlzcGxheXxkaXZpc29yfGRvbWluYW50 QmFzZWxpbmV8ZHVyfGR4fGR5fGVkZ2VNb2RlfGVsZXZhdGlvbnxlbmFibGVCYWNrZ3JvdW5k fGVuZHxleHBvbmVudHxleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkfGZpbGx8ZmlsbE9wYWNp dHl8ZmlsbFJ1bGV8ZmlsdGVyfGZpbHRlclJlc3xmaWx0ZXJVbml0c3xmbG9vZENvbG9yfGZs b29kT3BhY2l0eXxmb2N1c2FibGV8Zm9udEZhbWlseXxmb250U2l6ZXxmb250U2l6ZUFkanVz dHxmb250U3RyZXRjaHxmb250U3R5bGV8Zm9udFZhcmlhbnR8Zm9udFdlaWdodHxmb3JtYXR8 ZnJvbXxmcnxmeHxmeXxnMXxnMnxnbHlwaE5hbWV8Z2x5cGhPcmllbnRhdGlvbkhvcml6b250 YWx8Z2x5cGhPcmllbnRhdGlvblZlcnRpY2FsfGdseXBoUmVmfGdyYWRpZW50VHJhbnNmb3Jt fGdyYWRpZW50VW5pdHN8aGFuZ2luZ3xob3JpekFkdlh8aG9yaXpPcmlnaW5YfGlkZW9ncmFw aGljfGltYWdlUmVuZGVyaW5nfGlufGluMnxpbnRlcmNlcHR8a3xrMXxrMnxrM3xrNHxrZXJu ZWxNYXRyaXh8a2VybmVsVW5pdExlbmd0aHxrZXJuaW5nfGtleVBvaW50c3xrZXlTcGxpbmVz fGtleVRpbWVzfGxlbmd0aEFkanVzdHxsZXR0ZXJTcGFjaW5nfGxpZ2h0aW5nQ29sb3J8bGlt aXRpbmdDb25lQW5nbGV8bG9jYWx8bWFya2VyRW5kfG1hcmtlck1pZHxtYXJrZXJTdGFydHxt YXJrZXJIZWlnaHR8bWFya2VyVW5pdHN8bWFya2VyV2lkdGh8bWFza3xtYXNrQ29udGVudFVu aXRzfG1hc2tVbml0c3xtYXRoZW1hdGljYWx8bW9kZXxudW1PY3RhdmVzfG9mZnNldHxvcGFj aXR5fG9wZXJhdG9yfG9yZGVyfG9yaWVudHxvcmllbnRhdGlvbnxvcmlnaW58b3ZlcmZsb3d8 b3ZlcmxpbmVQb3NpdGlvbnxvdmVybGluZVRoaWNrbmVzc3xwYW5vc2UxfHBhaW50T3JkZXJ8 cGF0aExlbmd0aHxwYXR0ZXJuQ29udGVudFVuaXRzfHBhdHRlcm5UcmFuc2Zvcm18cGF0dGVy blVuaXRzfHBvaW50ZXJFdmVudHN8cG9pbnRzfHBvaW50c0F0WHxwb2ludHNBdFl8cG9pbnRz QXRafHByZXNlcnZlQWxwaGF8cHJlc2VydmVBc3BlY3RSYXRpb3xwcmltaXRpdmVVbml0c3xy fHJhZGl1c3xyZWZYfHJlZll8cmVuZGVyaW5nSW50ZW50fHJlcGVhdENvdW50fHJlcGVhdER1 cnxyZXF1aXJlZEV4dGVuc2lvbnN8cmVxdWlyZWRGZWF0dXJlc3xyZXN0YXJ0fHJlc3VsdHxy b3RhdGV8cnh8cnl8c2NhbGV8c2VlZHxzaGFwZVJlbmRlcmluZ3xzbG9wZXxzcGFjaW5nfHNw ZWN1bGFyQ29uc3RhbnR8c3BlY3VsYXJFeHBvbmVudHxzcGVlZHxzcHJlYWRNZXRob2R8c3Rh cnRPZmZzZXR8c3RkRGV2aWF0aW9ufHN0ZW1ofHN0ZW12fHN0aXRjaFRpbGVzfHN0b3BDb2xv cnxzdG9wT3BhY2l0eXxzdHJpa2V0aHJvdWdoUG9zaXRpb258c3RyaWtldGhyb3VnaFRoaWNr bmVzc3xzdHJpbmd8c3Ryb2tlfHN0cm9rZURhc2hhcnJheXxzdHJva2VEYXNob2Zmc2V0fHN0 cm9rZUxpbmVjYXB8c3Ryb2tlTGluZWpvaW58c3Ryb2tlTWl0ZXJsaW1pdHxzdHJva2VPcGFj aXR5fHN0cm9rZVdpZHRofHN1cmZhY2VTY2FsZXxzeXN0ZW1MYW5ndWFnZXx0YWJsZVZhbHVl c3x0YXJnZXRYfHRhcmdldFl8dGV4dEFuY2hvcnx0ZXh0RGVjb3JhdGlvbnx0ZXh0UmVuZGVy aW5nfHRleHRMZW5ndGh8dG98dHJhbnNmb3JtfHUxfHUyfHVuZGVybGluZVBvc2l0aW9ufHVu ZGVybGluZVRoaWNrbmVzc3x1bmljb2RlfHVuaWNvZGVCaWRpfHVuaWNvZGVSYW5nZXx1bml0 c1BlckVtfHZBbHBoYWJldGljfHZIYW5naW5nfHZJZGVvZ3JhcGhpY3x2TWF0aGVtYXRpY2Fs fHZhbHVlc3x2ZWN0b3JFZmZlY3R8dmVyc2lvbnx2ZXJ0QWR2WXx2ZXJ0T3JpZ2luWHx2ZXJ0 T3JpZ2luWXx2aWV3Qm94fHZpZXdUYXJnZXR8dmlzaWJpbGl0eXx3aWR0aHN8d29yZFNwYWNp bmd8d3JpdGluZ01vZGV8eHx4SGVpZ2h0fHgxfHgyfHhDaGFubmVsU2VsZWN0b3J8eGxpbmtB Y3R1YXRlfHhsaW5rQXJjcm9sZXx4bGlua0hyZWZ8eGxpbmtSb2xlfHhsaW5rU2hvd3x4bGlu a1RpdGxlfHhsaW5rVHlwZXx4bWxCYXNlfHhtbG5zfHhtbG5zWGxpbmt8eG1sTGFuZ3x4bWxT cGFjZXx5fHkxfHkyfHlDaGFubmVsU2VsZWN0b3J8enx6b29tQW5kUGFufGZvcnxjbGFzc3xh dXRvZm9jdXMpfCgoW0RkXVtBYV1bVHRdW0FhXXxbQWFdW1JyXVtJaV1bQWFdfHgpLS4qKSkk LywNCiAgICAgICAgICB4ID0gYihmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJu IHcudGVzdChlKSB8fCAoMTExID09PSBlLmNoYXJDb2RlQXQoMCkgJiYgMTEwID09PSBlLmNo YXJDb2RlQXQoMSkgJiYgZS5jaGFyQ29kZUF0KDIpIDwgOTEpOw0KICAgICAgICAgIH0pOw0K ICAgICAgICB2YXIgUyA9IChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgZnVuY3Rpb24gZShl KSB7DQogICAgICAgICAgICB2YXIgdCA9IHRoaXM7DQogICAgICAgICAgICAodGhpcy5faW5z ZXJ0VGFnID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgdmFyIG47DQogICAgICAg ICAgICAgIChuID0gMCA9PT0gdC50YWdzLmxlbmd0aCA/ICh0Lmluc2VydGlvblBvaW50ID8g dC5pbnNlcnRpb25Qb2ludC5uZXh0U2libGluZyA6IHQucHJlcGVuZCA/IHQuY29udGFpbmVy LmZpcnN0Q2hpbGQgOiB0LmJlZm9yZSkgOiB0LnRhZ3NbdC50YWdzLmxlbmd0aCAtIDFdLm5l eHRTaWJsaW5nKSwNCiAgICAgICAgICAgICAgICB0LmNvbnRhaW5lci5pbnNlcnRCZWZvcmUo ZSwgbiksDQogICAgICAgICAgICAgICAgdC50YWdzLnB1c2goZSk7DQogICAgICAgICAgICB9 KSwNCiAgICAgICAgICAgICAgKHRoaXMuaXNTcGVlZHkgPSB2b2lkIDAgPT09IGUuc3BlZWR5 IHx8IGUuc3BlZWR5KSwNCiAgICAgICAgICAgICAgKHRoaXMudGFncyA9IFtdKSwNCiAgICAg ICAgICAgICAgKHRoaXMuY3RyID0gMCksDQogICAgICAgICAgICAgICh0aGlzLm5vbmNlID0g ZS5ub25jZSksDQogICAgICAgICAgICAgICh0aGlzLmtleSA9IGUua2V5KSwNCiAgICAgICAg ICAgICAgKHRoaXMuY29udGFpbmVyID0gZS5jb250YWluZXIpLA0KICAgICAgICAgICAgICAo dGhpcy5wcmVwZW5kID0gZS5wcmVwZW5kKSwNCiAgICAgICAgICAgICAgKHRoaXMuaW5zZXJ0 aW9uUG9pbnQgPSBlLmluc2VydGlvblBvaW50KSwNCiAgICAgICAgICAgICAgKHRoaXMuYmVm b3JlID0gbnVsbCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHZhciB0ID0gZS5wcm90b3R5 cGU7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICh0Lmh5ZHJhdGUgPSBmdW5j dGlvbiAoZSkgew0KICAgICAgICAgICAgICBlLmZvckVhY2godGhpcy5faW5zZXJ0VGFnKTsN CiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgKHQuaW5zZXJ0ID0gZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgICAgdGhpcy5jdHIgJSAodGhpcy5pc1NwZWVkeSA/IDY1ZTMgOiAx KSA9PT0gMCAmJg0KICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydFRhZygNCiAgICAgICAg ICAgICAgICAgIChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgdCA9 IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7DQogICAgICAgICAgICAgICAgICAg IHJldHVybiB0LnNldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIiwgZS5rZXkpLCB2b2lkIDAg IT09IGUubm9uY2UgJiYgdC5zZXRBdHRyaWJ1dGUoIm5vbmNlIiwgZS5ub25jZSksIHQuYXBw ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpKSwgdC5zZXRBdHRyaWJ1dGUo ImRhdGEtcyIsICIiKSwgdDsNCiAgICAgICAgICAgICAgICAgIH0pKHRoaXMpDQogICAgICAg ICAgICAgICAgKTsNCiAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLnRhZ3NbdGhpcy50YWdz Lmxlbmd0aCAtIDFdOw0KICAgICAgICAgICAgICBpZiAodGhpcy5pc1NwZWVkeSkgew0KICAg ICAgICAgICAgICAgIHZhciBuID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAg ICBpZiAoZS5zaGVldCkgcmV0dXJuIGUuc2hlZXQ7DQogICAgICAgICAgICAgICAgICBmb3Ig KHZhciB0ID0gMDsgdCA8IGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDsgdCsrKSBpZiAo ZG9jdW1lbnQuc3R5bGVTaGVldHNbdF0ub3duZXJOb2RlID09PSBlKSByZXR1cm4gZG9jdW1l bnQuc3R5bGVTaGVldHNbdF07DQogICAgICAgICAgICAgICAgfSkodCk7DQogICAgICAgICAg ICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIG4uaW5zZXJ0UnVsZShlLCBuLmNzc1J1 bGVzLmxlbmd0aCk7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAocikgew0KICAgICAgICAg ICAgICAgICAgMDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0gZWxzZSB0 LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKTsNCiAgICAgICAgICAg ICAgdGhpcy5jdHIrKzsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgKHQuZmx1c2gg PSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHRoaXMudGFncy5mb3JFYWNoKGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUucGFyZW50Tm9kZSAmJiBlLnBh cmVudE5vZGUucmVtb3ZlQ2hpbGQoZSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAgICh0aGlzLnRhZ3MgPSBbXSksDQogICAgICAgICAgICAgICAgKHRoaXMuY3RyID0g MCk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgIGUNCiAgICAgICAgICApOw0KICAg ICAgICB9KSgpLA0KICAgICAgICAgIGsgPSBNYXRoLmFicywNCiAgICAgICAgICBFID0gU3Ry aW5nLmZyb21DaGFyQ29kZSwNCiAgICAgICAgICBDID0gT2JqZWN0LmFzc2lnbjsNCiAgICAg ICAgZnVuY3Rpb24gUihlKSB7DQogICAgICAgICAgcmV0dXJuIGUudHJpbSgpOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIF8oZSwgdCwgbikgew0KICAgICAgICAgIHJldHVybiBl LnJlcGxhY2UodCwgbik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUChlLCB0KSB7 DQogICAgICAgICAgcmV0dXJuIGUuaW5kZXhPZih0KTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBPKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gMCB8IGUuY2hhckNvZGVBdCh0 KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBOKGUsIHQsIG4pIHsNCiAgICAgICAg ICByZXR1cm4gZS5zbGljZSh0LCBuKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBU KGUpIHsNCiAgICAgICAgICByZXR1cm4gZS5sZW5ndGg7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gQShlKSB7DQogICAgICAgICAgcmV0dXJuIGUubGVuZ3RoOw0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIE0oZSwgdCkgew0KICAgICAgICAgIHJldHVybiB0LnB1c2go ZSksIGU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHogPSAxLA0KICAgICAgICAgIGogPSAx LA0KICAgICAgICAgIEkgPSAwLA0KICAgICAgICAgIEwgPSAwLA0KICAgICAgICAgIEYgPSAw LA0KICAgICAgICAgIEIgPSAiIjsNCiAgICAgICAgZnVuY3Rpb24gRChlLCB0LCBuLCByLCBv LCBhLCBpKSB7DQogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGUsIHJvb3Q6IHQsIHBhcmVu dDogbiwgdHlwZTogciwgcHJvcHM6IG8sIGNoaWxkcmVuOiBhLCBsaW5lOiB6LCBjb2x1bW46 IGosIGxlbmd0aDogaSwgcmV0dXJuOiAiIiB9Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIFUoZSwgdCkgew0KICAgICAgICAgIHJldHVybiBDKEQoIiIsIG51bGwsIG51bGwsICIi LCBudWxsLCBudWxsLCAwKSwgZSwgeyBsZW5ndGg6IC1lLmxlbmd0aCB9LCB0KTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBXKCkgew0KICAgICAgICAgIHJldHVybiAoRiA9IEwg PiAwID8gTyhCLCAtLUwpIDogMCksIGotLSwgMTAgPT09IEYgJiYgKChqID0gMSksIHotLSks IEY7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVigpIHsNCiAgICAgICAgICByZXR1 cm4gKEYgPSBMIDwgSSA/IE8oQiwgTCsrKSA6IDApLCBqKyssIDEwID09PSBGICYmICgoaiA9 IDEpLCB6KyspLCBGOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEgoKSB7DQogICAg ICAgICAgcmV0dXJuIE8oQiwgTCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcSgp IHsNCiAgICAgICAgICByZXR1cm4gTDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiAk KGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gTihCLCBlLCB0KTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBLKGUpIHsNCiAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAg ICAgIGNhc2UgMDoNCiAgICAgICAgICAgIGNhc2UgOToNCiAgICAgICAgICAgIGNhc2UgMTA6 DQogICAgICAgICAgICBjYXNlIDEzOg0KICAgICAgICAgICAgY2FzZSAzMjoNCiAgICAgICAg ICAgICAgcmV0dXJuIDU7DQogICAgICAgICAgICBjYXNlIDMzOg0KICAgICAgICAgICAgY2Fz ZSA0MzoNCiAgICAgICAgICAgIGNhc2UgNDQ6DQogICAgICAgICAgICBjYXNlIDQ3Og0KICAg ICAgICAgICAgY2FzZSA2MjoNCiAgICAgICAgICAgIGNhc2UgNjQ6DQogICAgICAgICAgICBj YXNlIDEyNjoNCiAgICAgICAgICAgIGNhc2UgNTk6DQogICAgICAgICAgICBjYXNlIDEyMzoN CiAgICAgICAgICAgIGNhc2UgMTI1Og0KICAgICAgICAgICAgICByZXR1cm4gNDsNCiAgICAg ICAgICAgIGNhc2UgNTg6DQogICAgICAgICAgICAgIHJldHVybiAzOw0KICAgICAgICAgICAg Y2FzZSAzNDoNCiAgICAgICAgICAgIGNhc2UgMzk6DQogICAgICAgICAgICBjYXNlIDQwOg0K ICAgICAgICAgICAgY2FzZSA5MToNCiAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAg ICAgICBjYXNlIDQxOg0KICAgICAgICAgICAgY2FzZSA5MzoNCiAgICAgICAgICAgICAgcmV0 dXJuIDE7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIFEoZSkgew0KICAgICAgICAgIHJldHVybiAoeiA9IGogPSAxKSwg KEkgPSBUKChCID0gZSkpKSwgKEwgPSAwKSwgW107DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gRyhlKSB7DQogICAgICAgICAgcmV0dXJuIChCID0gIiIpLCBlOw0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIFkoZSkgew0KICAgICAgICAgIHJldHVybiBSKCQoTCAtIDEs IEooOTEgPT09IGUgPyBlICsgMiA6IDQwID09PSBlID8gZSArIDEgOiBlKSkpOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIFgoZSkgew0KICAgICAgICAgIGZvciAoOyAoRiA9IEgo KSkgJiYgRiA8IDMzOykgVigpOw0KICAgICAgICAgIHJldHVybiBLKGUpID4gMiB8fCBLKEYp ID4gMyA/ICIiIDogIiAiOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFooZSwgdCkg ew0KICAgICAgICAgIGZvciAoOyAtLXQgJiYgVigpICYmICEoRiA8IDQ4IHx8IEYgPiAxMDIg fHwgKEYgPiA1NyAmJiBGIDwgNjUpIHx8IChGID4gNzAgJiYgRiA8IDk3KSk7KTsNCiAgICAg ICAgICByZXR1cm4gJChlLCBxKCkgKyAodCA8IDYgJiYgMzIgPT0gSCgpICYmIDMyID09IFYo KSkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEooZSkgew0KICAgICAgICAgIGZv ciAoOyBWKCk7KQ0KICAgICAgICAgICAgc3dpdGNoIChGKSB7DQogICAgICAgICAgICAgIGNh c2UgZToNCiAgICAgICAgICAgICAgICByZXR1cm4gTDsNCiAgICAgICAgICAgICAgY2FzZSAz NDoNCiAgICAgICAgICAgICAgY2FzZSAzOToNCiAgICAgICAgICAgICAgICAzNCAhPT0gZSAm JiAzOSAhPT0gZSAmJiBKKEYpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgICBjYXNlIDQwOg0KICAgICAgICAgICAgICAgIDQxID09PSBlICYmIEooZSk7DQogICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgOTI6DQogICAgICAgICAg ICAgICAgVigpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBMOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIGVlKGUsIHQpIHsNCiAgICAgICAgICBmb3IgKDsgVigp ICYmIGUgKyBGICE9PSA1NyAmJiAoZSArIEYgIT09IDg0IHx8IDQ3ICE9PSBIKCkpOyk7DQog ICAgICAgICAgcmV0dXJuICIvKiIgKyAkKHQsIEwgLSAxKSArICIqIiArIEUoNDcgPT09IGUg PyBlIDogVigpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB0ZShlKSB7DQogICAg ICAgICAgZm9yICg7ICFLKEgoKSk7KSBWKCk7DQogICAgICAgICAgcmV0dXJuICQoZSwgTCk7 DQogICAgICAgIH0NCiAgICAgICAgdmFyIG5lID0gIi1tcy0iLA0KICAgICAgICAgIHJlID0g Ii1tb3otIiwNCiAgICAgICAgICBvZSA9ICItd2Via2l0LSIsDQogICAgICAgICAgYWUgPSAi Y29tbSIsDQogICAgICAgICAgaWUgPSAicnVsZSIsDQogICAgICAgICAgbGUgPSAiZGVjbCIs DQogICAgICAgICAgc2UgPSAiQGtleWZyYW1lcyI7DQogICAgICAgIGZ1bmN0aW9uIHVlKGUs IHQpIHsNCiAgICAgICAgICBmb3IgKHZhciBuID0gIiIsIHIgPSBBKGUpLCBvID0gMDsgbyA8 IHI7IG8rKykgbiArPSB0KGVbb10sIG8sIGUsIHQpIHx8ICIiOw0KICAgICAgICAgIHJldHVy biBuOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGNlKGUsIHQsIG4sIHIpIHsNCiAg ICAgICAgICBzd2l0Y2ggKGUudHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiQGxheWVyIjoN CiAgICAgICAgICAgICAgaWYgKGUuY2hpbGRyZW4ubGVuZ3RoKSBicmVhazsNCiAgICAgICAg ICAgIGNhc2UgIkBpbXBvcnQiOg0KICAgICAgICAgICAgY2FzZSBsZToNCiAgICAgICAgICAg ICAgcmV0dXJuIChlLnJldHVybiA9IGUucmV0dXJuIHx8IGUudmFsdWUpOw0KICAgICAgICAg ICAgY2FzZSBhZToNCiAgICAgICAgICAgICAgcmV0dXJuICIiOw0KICAgICAgICAgICAgY2Fz ZSBzZToNCiAgICAgICAgICAgICAgcmV0dXJuIChlLnJldHVybiA9IGUudmFsdWUgKyAieyIg KyB1ZShlLmNoaWxkcmVuLCByKSArICJ9Iik7DQogICAgICAgICAgICBjYXNlIGllOg0KICAg ICAgICAgICAgICBlLnZhbHVlID0gZS5wcm9wcy5qb2luKCIsIik7DQogICAgICAgICAgfQ0K ICAgICAgICAgIHJldHVybiBUKChuID0gdWUoZS5jaGlsZHJlbiwgcikpKSA/IChlLnJldHVy biA9IGUudmFsdWUgKyAieyIgKyBuICsgIn0iKSA6ICIiOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIGRlKGUpIHsNCiAgICAgICAgICByZXR1cm4gRyhmZSgiIiwgbnVsbCwgbnVs bCwgbnVsbCwgWyIiXSwgKGUgPSBRKGUpKSwgMCwgWzBdLCBlKSk7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gZmUoZSwgdCwgbiwgciwgbywgYSwgaSwgbCwgcykgew0KICAgICAg ICAgIGZvciAodmFyIHUgPSAwLCBjID0gMCwgZCA9IGksIGYgPSAwLCBwID0gMCwgaCA9IDAs IG0gPSAxLCBnID0gMSwgdiA9IDEsIHkgPSAwLCBiID0gIiIsIHcgPSBvLCB4ID0gYSwgUyA9 IHIsIGsgPSBiOyBnOykNCiAgICAgICAgICAgIHN3aXRjaCAoKChoID0geSksICh5ID0gVigp KSkpIHsNCiAgICAgICAgICAgICAgY2FzZSA0MDoNCiAgICAgICAgICAgICAgICBpZiAoMTA4 ICE9IGggJiYgNTggPT0gTyhrLCBkIC0gMSkpIHsNCiAgICAgICAgICAgICAgICAgIC0xICE9 IFAoKGsgKz0gXyhZKHkpLCAiJiIsICImXGYiKSksICImXGYiKSAmJiAodiA9IC0xKTsNCiAg ICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgY2FzZSAzNDoNCiAgICAgICAgICAgICAgY2FzZSAzOToNCiAgICAgICAgICAgICAgY2Fz ZSA5MToNCiAgICAgICAgICAgICAgICBrICs9IFkoeSk7DQogICAgICAgICAgICAgICAgYnJl YWs7DQogICAgICAgICAgICAgIGNhc2UgOToNCiAgICAgICAgICAgICAgY2FzZSAxMDoNCiAg ICAgICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAgY2FzZSAzMjoNCiAgICAgICAg ICAgICAgICBrICs9IFgoaCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgIGNhc2UgOTI6DQogICAgICAgICAgICAgICAgayArPSBaKHEoKSAtIDEsIDcpOw0KICAg ICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAgICBjYXNlIDQ3Og0KICAgICAg ICAgICAgICAgIHN3aXRjaCAoSCgpKSB7DQogICAgICAgICAgICAgICAgICBjYXNlIDQyOg0K ICAgICAgICAgICAgICAgICAgY2FzZSA0NzoNCiAgICAgICAgICAgICAgICAgICAgTShoZShl ZShWKCksIHEoKSksIHQsIG4pLCBzKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQog ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBrICs9ICIv IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICAgIGNhc2UgMTIzICogbToNCiAgICAgICAgICAgICAgICBsW3UrK10gPSBUKGspICog djsNCiAgICAgICAgICAgICAgY2FzZSAxMjUgKiBtOg0KICAgICAgICAgICAgICBjYXNlIDU5 Og0KICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgc3dpdGNoICh5KSB7 DQogICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICBjYXNlIDEy NToNCiAgICAgICAgICAgICAgICAgICAgZyA9IDA7DQogICAgICAgICAgICAgICAgICBjYXNl IDU5ICsgYzoNCiAgICAgICAgICAgICAgICAgICAgLTEgPT0gdiAmJiAoayA9IF8oaywgL1xm L2csICIiKSksIHAgPiAwICYmIFQoaykgLSBkICYmIE0ocCA+IDMyID8gbWUoayArICI7Iiwg ciwgbiwgZCAtIDEpIDogbWUoXyhrLCAiICIsICIiKSArICI7IiwgciwgbiwgZCAtIDIpLCBz KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICBjYXNl IDU5Og0KICAgICAgICAgICAgICAgICAgICBrICs9ICI7IjsNCiAgICAgICAgICAgICAgICAg IGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGlmICgoTSgoUyA9IHBlKGssIHQsIG4s IHUsIGMsIG8sIGwsIGIsICh3ID0gW10pLCAoeCA9IFtdKSwgZCkpLCBhKSwgMTIzID09PSB5 KSkNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoMCA9PT0gYykgZmUoaywgdCwgUywgUywg dywgYSwgZCwgbCwgeCk7DQogICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgc3dpdGNoICg5OSA9PT0gZiAmJiAxMTAgPT09IE8oaywgMykgPyAx MDAgOiBmKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTAwOg0KICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXNlIDEwODoNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgY2FzZSAxMDk6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTE1Og0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZlKGUsIFMsIFMsIHIgJiYgTShwZShlLCBTLCBT LCAwLCAwLCBvLCBsLCBiLCBvLCAodyA9IFtdKSwgZCksIHgpLCBvLCB4LCBkLCBsLCByID8g dyA6IHgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZlKGssIFMsIFMsIFMsIFsiIl0sIHgsIDAsIGwsIHgpOw0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAodSA9IGMgPSBw ID0gMCksIChtID0gdiA9IDEpLCAoYiA9IGsgPSAiIiksIChkID0gaSk7DQogICAgICAgICAg ICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgNTg6DQogICAgICAgICAgICAgICAg KGQgPSAxICsgVChrKSksIChwID0gaCk7DQogICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAg ICAgICAgICAgICAgaWYgKG0gPCAxKQ0KICAgICAgICAgICAgICAgICAgaWYgKDEyMyA9PSB5 KSAtLW07DQogICAgICAgICAgICAgICAgICBlbHNlIGlmICgxMjUgPT0geSAmJiAwID09IG0r KyAmJiAxMjUgPT0gVygpKSBjb250aW51ZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKCgo ayArPSBFKHkpKSwgeSAqIG0pKSB7DQogICAgICAgICAgICAgICAgICBjYXNlIDM4Og0KICAg ICAgICAgICAgICAgICAgICB2ID0gYyA+IDAgPyAxIDogKChrICs9ICJcZiIpLCAtMSk7DQog ICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgY2FzZSA0NDoN CiAgICAgICAgICAgICAgICAgICAgKGxbdSsrXSA9IChUKGspIC0gMSkgKiB2KSwgKHYgPSAx KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICBjYXNl IDY0Og0KICAgICAgICAgICAgICAgICAgICA0NSA9PT0gSCgpICYmIChrICs9IFkoVigpKSks IChmID0gSCgpKSwgKGMgPSBkID0gVCgoYiA9IGsgKz0gdGUocSgpKSkpKSwgeSsrOw0KICAg ICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgIGNhc2UgNDU6DQog ICAgICAgICAgICAgICAgICAgIDQ1ID09PSBoICYmIDIgPT0gVChrKSAmJiAobSA9IDApOw0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gYTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBwZShlLCB0LCBuLCByLCBvLCBhLCBpLCBs LCBzLCB1LCBjKSB7DQogICAgICAgICAgZm9yICh2YXIgZCA9IG8gLSAxLCBmID0gMCA9PT0g byA/IGEgOiBbIiJdLCBwID0gQShmKSwgaCA9IDAsIG0gPSAwLCBnID0gMDsgaCA8IHI7ICsr aCkNCiAgICAgICAgICAgIGZvciAodmFyIHYgPSAwLCB5ID0gTihlLCBkICsgMSwgKGQgPSBr KChtID0gaVtoXSkpKSksIGIgPSBlOyB2IDwgcDsgKyt2KSAoYiA9IFIobSA+IDAgPyBmW3Zd ICsgIiAiICsgeSA6IF8oeSwgLyZcZi9nLCBmW3ZdKSkpICYmIChzW2crK10gPSBiKTsNCiAg ICAgICAgICByZXR1cm4gRChlLCB0LCBuLCAwID09PSBvID8gaWUgOiBsLCBzLCB1LCBjKTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBoZShlLCB0LCBuKSB7DQogICAgICAgICAg cmV0dXJuIEQoZSwgdCwgbiwgYWUsIEUoRiksIE4oZSwgMiwgLTIpLCAwKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBtZShlLCB0LCBuLCByKSB7DQogICAgICAgICAgcmV0dXJu IEQoZSwgdCwgbiwgbGUsIE4oZSwgMCwgciksIE4oZSwgciArIDEsIC0xKSwgcik7DQogICAg ICAgIH0NCiAgICAgICAgdmFyIGdlID0gZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAg ICBmb3IgKHZhciByID0gMCwgbyA9IDA7IChyID0gbyksIChvID0gSCgpKSwgMzggPT09IHIg JiYgMTIgPT09IG8gJiYgKHRbbl0gPSAxKSwgIUsobyk7KSBWKCk7DQogICAgICAgICAgcmV0 dXJuICQoZSwgTCk7DQogICAgICAgIH0sDQogICAgICAgICAgdmUgPSBmdW5jdGlvbiAoZSwg dCkgew0KICAgICAgICAgICAgcmV0dXJuIEcoDQogICAgICAgICAgICAgIChmdW5jdGlvbiAo ZSwgdCkgew0KICAgICAgICAgICAgICAgIHZhciBuID0gLTEsDQogICAgICAgICAgICAgICAg ICByID0gNDQ7DQogICAgICAgICAgICAgICAgZG8gew0KICAgICAgICAgICAgICAgICAgc3dp dGNoIChLKHIpKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAg ICAgICAgICAgICAzOCA9PT0gciAmJiAxMiA9PT0gSCgpICYmICh0W25dID0gMSksIChlW25d ICs9IGdlKEwgLSAxLCB0LCBuKSk7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQog ICAgICAgICAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgICAgICAgICAgICBlW25d ICs9IFkocik7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAg ICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoNDQgPT09IHIpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIChlWysrbl0gPSA1OCA9PT0gSCgpID8gIiZcZiIg OiAiIiksICh0W25dID0gZVtuXS5sZW5ndGgpOw0KICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBk ZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgIGVbbl0gKz0gRShyKTsNCiAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IHdoaWxlICgociA9IFYoKSkpOw0KICAg ICAgICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICAgICAgICB9KShRKGUpLCB0KQ0KICAg ICAgICAgICAgKTsNCiAgICAgICAgICB9LA0KICAgICAgICAgIHllID0gbmV3IFdlYWtNYXAo KSwNCiAgICAgICAgICBiZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBpZiAoInJ1 bGUiID09PSBlLnR5cGUgJiYgZS5wYXJlbnQgJiYgIShlLmxlbmd0aCA8IDEpKSB7DQogICAg ICAgICAgICAgIGZvciAodmFyIHQgPSBlLnZhbHVlLCBuID0gZS5wYXJlbnQsIHIgPSBlLmNv bHVtbiA9PT0gbi5jb2x1bW4gJiYgZS5saW5lID09PSBuLmxpbmU7ICJydWxlIiAhPT0gbi50 eXBlOykgaWYgKCEobiA9IG4ucGFyZW50KSkgcmV0dXJuOw0KICAgICAgICAgICAgICBpZiAo KDEgIT09IGUucHJvcHMubGVuZ3RoIHx8IDU4ID09PSB0LmNoYXJDb2RlQXQoMCkgfHwgeWUu Z2V0KG4pKSAmJiAhcikgew0KICAgICAgICAgICAgICAgIHllLnNldChlLCAhMCk7DQogICAg ICAgICAgICAgICAgZm9yICh2YXIgbyA9IFtdLCBhID0gdmUodCwgbyksIGkgPSBuLnByb3Bz LCBsID0gMCwgcyA9IDA7IGwgPCBhLmxlbmd0aDsgbCsrKSBmb3IgKHZhciB1ID0gMDsgdSA8 IGkubGVuZ3RoOyB1KyssIHMrKykgZS5wcm9wc1tzXSA9IG9bbF0gPyBhW2xdLnJlcGxhY2Uo LyZcZi9nLCBpW3VdKSA6IGlbdV0gKyAiICIgKyBhW2xdOw0KICAgICAgICAgICAgICB9DQog ICAgICAgICAgICB9DQogICAgICAgICAgfSwNCiAgICAgICAgICB3ZSA9IGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICBpZiAoImRlY2wiID09PSBlLnR5cGUpIHsNCiAgICAgICAgICAg ICAgdmFyIHQgPSBlLnZhbHVlOw0KICAgICAgICAgICAgICAxMDggPT09IHQuY2hhckNvZGVB dCgwKSAmJiA5OCA9PT0gdC5jaGFyQ29kZUF0KDIpICYmICgoZS5yZXR1cm4gPSAiIiksIChl LnZhbHVlID0gIiIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9Ow0KICAgICAgICBm dW5jdGlvbiB4ZShlLCB0KSB7DQogICAgICAgICAgc3dpdGNoICgNCiAgICAgICAgICAoZnVu Y3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgIHJldHVybiA0NSBeIE8oZSwgMCkgPyAoKCgo KCgodCA8PCAyKSBeIE8oZSwgMCkpIDw8IDIpIF4gTyhlLCAxKSkgPDwgMikgXiBPKGUsIDIp KSA8PCAyKSBeIE8oZSwgMykgOiAwOw0KICAgICAgICAgIH0pKGUsIHQpDQogICAgICAgICAg KSB7DQogICAgICAgICAgICBjYXNlIDUxMDM6DQogICAgICAgICAgICAgIHJldHVybiBvZSAr ICJwcmludC0iICsgZSArIGU7DQogICAgICAgICAgICBjYXNlIDU3Mzc6DQogICAgICAgICAg ICBjYXNlIDQyMDE6DQogICAgICAgICAgICBjYXNlIDMxNzc6DQogICAgICAgICAgICBjYXNl IDM0MzM6DQogICAgICAgICAgICBjYXNlIDE2NDE6DQogICAgICAgICAgICBjYXNlIDQ0NTc6 DQogICAgICAgICAgICBjYXNlIDI5MjE6DQogICAgICAgICAgICBjYXNlIDU1NzI6DQogICAg ICAgICAgICBjYXNlIDYzNTY6DQogICAgICAgICAgICBjYXNlIDU4NDQ6DQogICAgICAgICAg ICBjYXNlIDMxOTE6DQogICAgICAgICAgICBjYXNlIDY2NDU6DQogICAgICAgICAgICBjYXNl IDMwMDU6DQogICAgICAgICAgICBjYXNlIDYzOTE6DQogICAgICAgICAgICBjYXNlIDU4Nzk6 DQogICAgICAgICAgICBjYXNlIDU2MjM6DQogICAgICAgICAgICBjYXNlIDYxMzU6DQogICAg ICAgICAgICBjYXNlIDQ1OTk6DQogICAgICAgICAgICBjYXNlIDQ4NTU6DQogICAgICAgICAg ICBjYXNlIDQyMTU6DQogICAgICAgICAgICBjYXNlIDYzODk6DQogICAgICAgICAgICBjYXNl IDUxMDk6DQogICAgICAgICAgICBjYXNlIDUzNjU6DQogICAgICAgICAgICBjYXNlIDU2MjE6 DQogICAgICAgICAgICBjYXNlIDM4Mjk6DQogICAgICAgICAgICAgIHJldHVybiBvZSArIGUg KyBlOw0KICAgICAgICAgICAgY2FzZSA1MzQ5Og0KICAgICAgICAgICAgY2FzZSA0MjQ2Og0K ICAgICAgICAgICAgY2FzZSA0ODEwOg0KICAgICAgICAgICAgY2FzZSA2OTY4Og0KICAgICAg ICAgICAgY2FzZSAyNzU2Og0KICAgICAgICAgICAgICByZXR1cm4gb2UgKyBlICsgcmUgKyBl ICsgbmUgKyBlICsgZTsNCiAgICAgICAgICAgIGNhc2UgNjgyODoNCiAgICAgICAgICAgIGNh c2UgNDI2ODoNCiAgICAgICAgICAgICAgcmV0dXJuIG9lICsgZSArIG5lICsgZSArIGU7DQog ICAgICAgICAgICBjYXNlIDYxNjU6DQogICAgICAgICAgICAgIHJldHVybiBvZSArIGUgKyBu ZSArICJmbGV4LSIgKyBlICsgZTsNCiAgICAgICAgICAgIGNhc2UgNTE4NzoNCiAgICAgICAg ICAgICAgcmV0dXJuIG9lICsgZSArIF8oZSwgLyhcdyspLisoOlteXSspLywgb2UgKyAiYm94 LSQxJDIiICsgbmUgKyAiZmxleC0kMSQyIikgKyBlOw0KICAgICAgICAgICAgY2FzZSA1NDQz Og0KICAgICAgICAgICAgICByZXR1cm4gb2UgKyBlICsgbmUgKyAiZmxleC1pdGVtLSIgKyBf KGUsIC9mbGV4LXwtc2VsZi8sICIiKSArIGU7DQogICAgICAgICAgICBjYXNlIDQ2NzU6DQog ICAgICAgICAgICAgIHJldHVybiBvZSArIGUgKyBuZSArICJmbGV4LWxpbmUtcGFjayIgKyBf KGUsIC9hbGlnbi1jb250ZW50fGZsZXgtfC1zZWxmLywgIiIpICsgZTsNCiAgICAgICAgICAg IGNhc2UgNTU0ODoNCiAgICAgICAgICAgICAgcmV0dXJuIG9lICsgZSArIG5lICsgXyhlLCAi c2hyaW5rIiwgIm5lZ2F0aXZlIikgKyBlOw0KICAgICAgICAgICAgY2FzZSA1MjkyOg0KICAg ICAgICAgICAgICByZXR1cm4gb2UgKyBlICsgbmUgKyBfKGUsICJiYXNpcyIsICJwcmVmZXJy ZWQtc2l6ZSIpICsgZTsNCiAgICAgICAgICAgIGNhc2UgNjA2MDoNCiAgICAgICAgICAgICAg cmV0dXJuIG9lICsgImJveC0iICsgXyhlLCAiLWdyb3ciLCAiIikgKyBvZSArIGUgKyBuZSAr IF8oZSwgImdyb3ciLCAicG9zaXRpdmUiKSArIGU7DQogICAgICAgICAgICBjYXNlIDQ1NTQ6 DQogICAgICAgICAgICAgIHJldHVybiBvZSArIF8oZSwgLyhbXi1dKSh0cmFuc2Zvcm0pL2cs ICIkMSIgKyBvZSArICIkMiIpICsgZTsNCiAgICAgICAgICAgIGNhc2UgNjE4NzoNCiAgICAg ICAgICAgICAgcmV0dXJuIF8oXyhfKGUsIC8oem9vbS18Z3JhYikvLCBvZSArICIkMSIpLCAv KGltYWdlLXNldCkvLCBvZSArICIkMSIpLCBlLCAiIikgKyBlOw0KICAgICAgICAgICAgY2Fz ZSA1NDk1Og0KICAgICAgICAgICAgY2FzZSAzOTU5Og0KICAgICAgICAgICAgICByZXR1cm4g XyhlLCAvKGltYWdlLXNldFwoW15dKikvLCBvZSArICIkMSRgJDEiKTsNCiAgICAgICAgICAg IGNhc2UgNDk2ODoNCiAgICAgICAgICAgICAgcmV0dXJuIF8oXyhlLCAvKC4rOikoZmxleC0p PyguKikvLCBvZSArICJib3gtcGFjazokMyIgKyBuZSArICJmbGV4LXBhY2s6JDMiKSwgL3Mu Ky1iW147XSsvLCAianVzdGlmeSIpICsgb2UgKyBlICsgZTsNCiAgICAgICAgICAgIGNhc2Ug NDA5NToNCiAgICAgICAgICAgIGNhc2UgMzU4MzoNCiAgICAgICAgICAgIGNhc2UgNDA2ODoN CiAgICAgICAgICAgIGNhc2UgMjUzMjoNCiAgICAgICAgICAgICAgcmV0dXJuIF8oZSwgLygu KyktaW5saW5lKC4rKS8sIG9lICsgIiQxJDIiKSArIGU7DQogICAgICAgICAgICBjYXNlIDgx MTY6DQogICAgICAgICAgICBjYXNlIDcwNTk6DQogICAgICAgICAgICBjYXNlIDU3NTM6DQog ICAgICAgICAgICBjYXNlIDU1MzU6DQogICAgICAgICAgICBjYXNlIDU0NDU6DQogICAgICAg ICAgICBjYXNlIDU3MDE6DQogICAgICAgICAgICBjYXNlIDQ5MzM6DQogICAgICAgICAgICBj YXNlIDQ2Nzc6DQogICAgICAgICAgICBjYXNlIDU1MzM6DQogICAgICAgICAgICBjYXNlIDU3 ODk6DQogICAgICAgICAgICBjYXNlIDUwMjE6DQogICAgICAgICAgICBjYXNlIDQ3NjU6DQog ICAgICAgICAgICAgIGlmIChUKGUpIC0gMSAtIHQgPiA2KQ0KICAgICAgICAgICAgICAgIHN3 aXRjaCAoTyhlLCB0ICsgMSkpIHsNCiAgICAgICAgICAgICAgICAgIGNhc2UgMTA5Og0KICAg ICAgICAgICAgICAgICAgICBpZiAoNDUgIT09IE8oZSwgdCArIDQpKSBicmVhazsNCiAgICAg ICAgICAgICAgICAgIGNhc2UgMTAyOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gXyhl LCAvKC4rOikoLispLShbXl0rKS8sICIkMSIgKyBvZSArICIkMi0kMyQxIiArIHJlICsgKDEw OCA9PSBPKGUsIHQgKyAzKSA/ICIkMyIgOiAiJDItJDMiKSkgKyBlOw0KICAgICAgICAgICAg ICAgICAgY2FzZSAxMTU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB+UChlLCAic3Ry ZXRjaCIpID8geGUoXyhlLCAic3RyZXRjaCIsICJmaWxsLWF2YWlsYWJsZSIpLCB0KSArIGUg OiBlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAg ICAgICBjYXNlIDQ5NDk6DQogICAgICAgICAgICAgIGlmICgxMTUgIT09IE8oZSwgdCArIDEp KSBicmVhazsNCiAgICAgICAgICAgIGNhc2UgNjQ0NDoNCiAgICAgICAgICAgICAgc3dpdGNo IChPKGUsIFQoZSkgLSAzIC0gKH5QKGUsICIhaW1wb3J0YW50IikgJiYgMTApKSkgew0KICAg ICAgICAgICAgICAgIGNhc2UgMTA3Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIF8oZSwg IjoiLCAiOiIgKyBvZSkgKyBlOw0KICAgICAgICAgICAgICAgIGNhc2UgMTAxOg0KICAgICAg ICAgICAgICAgICAgcmV0dXJuIF8oZSwgLyguKzopKFteOyFdKykoO3whLispPy8sICIkMSIg KyBvZSArICg0NSA9PT0gTyhlLCAxNCkgPyAiaW5saW5lLSIgOiAiIikgKyAiYm94JDMkMSIg KyBvZSArICIkMiQzJDEiICsgbmUgKyAiJDJib3gkMyIpICsgZTsNCiAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgNTkzNjoNCiAgICAg ICAgICAgICAgc3dpdGNoIChPKGUsIHQgKyAxMSkpIHsNCiAgICAgICAgICAgICAgICBjYXNl IDExNDoNCiAgICAgICAgICAgICAgICAgIHJldHVybiBvZSArIGUgKyBuZSArIF8oZSwgL1tz dmhdXHcrLVt0YmxyXXsyfS8sICJ0YiIpICsgZTsNCiAgICAgICAgICAgICAgICBjYXNlIDEw ODoNCiAgICAgICAgICAgICAgICAgIHJldHVybiBvZSArIGUgKyBuZSArIF8oZSwgL1tzdmhd XHcrLVt0YmxyXXsyfS8sICJ0Yi1ybCIpICsgZTsNCiAgICAgICAgICAgICAgICBjYXNlIDQ1 Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIG9lICsgZSArIG5lICsgXyhlLCAvW3N2aF1c dystW3RibHJdezJ9LywgImxyIikgKyBlOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgIHJldHVybiBvZSArIGUgKyBuZSArIGUgKyBlOw0KICAgICAgICAgIH0NCiAgICAgICAg ICByZXR1cm4gZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgU2UgPSBbDQogICAgICAgICAg ZnVuY3Rpb24gKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAgIGlmIChlLmxlbmd0aCA+IC0x ICYmICFlLnJldHVybikNCiAgICAgICAgICAgICAgc3dpdGNoIChlLnR5cGUpIHsNCiAgICAg ICAgICAgICAgICBjYXNlIGxlOg0KICAgICAgICAgICAgICAgICAgZS5yZXR1cm4gPSB4ZShl LnZhbHVlLCBlLmxlbmd0aCk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgICBjYXNlIHNlOg0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHVlKFtVKGUsIHsg dmFsdWU6IF8oZS52YWx1ZSwgIkAiLCAiQCIgKyBvZSkgfSldLCByKTsNCiAgICAgICAgICAg ICAgICBjYXNlIGllOg0KICAgICAgICAgICAgICAgICAgaWYgKGUubGVuZ3RoKQ0KICAgICAg ICAgICAgICAgICAgICByZXR1cm4gKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGUubWFwKHQpLmpvaW4oIiIpOw0KICAgICAgICAgICAgICAgICAg ICB9KShlLnByb3BzLCBmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICAgICAgICAgIHN3 aXRjaCAoDQogICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlLCB0KSB7DQogICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGUgPSB0LmV4ZWMoZSkpID8gZVswXSA6IGU7 DQogICAgICAgICAgICAgICAgICAgICAgfSkodCwgLyg6OnBsYWNcdyt8OnJlYWQtXHcrKS8p DQogICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBj YXNlICI6cmVhZC1vbmx5IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIjpyZWFk LXdyaXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVlKFtVKGUsIHsg cHJvcHM6IFtfKHQsIC86KHJlYWQtXHcrKS8sICI6LW1vei0kMSIpXSB9KV0sIHIpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgY2FzZSAiOjpwbGFjZWhvbGRlciI6DQogICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiB1ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbVShlLCB7IHByb3BzOiBbXyh0LCAvOihwbGFjXHcrKS8sICI6IiArIG9lICsgImlucHV0 LSQxIildIH0pLCBVKGUsIHsgcHJvcHM6IFtfKHQsIC86KHBsYWNcdyspLywgIjotbW96LSQx IildIH0pLCBVKGUsIHsgcHJvcHM6IFtfKHQsIC86KHBsYWNcdyspLywgbmUgKyAiaW5wdXQt JDEiKV0gfSldLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHINCiAgICAgICAgICAg ICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuICIiOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAg ICAgICAgICAgfQ0KICAgICAgICAgIH0sDQogICAgICAgIF0sDQogICAgICAgICAga2UgPSBm dW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgdmFyIHQgPSBlLmtleTsNCiAgICAgICAgICAg IGlmICgiY3NzIiA9PT0gdCkgew0KICAgICAgICAgICAgICB2YXIgbiA9IGRvY3VtZW50LnF1 ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2RhdGEtZW1vdGlvbl06bm90KFtkYXRhLXNdKSIpOw0K ICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sIGZ1bmN0aW9u IChlKSB7DQogICAgICAgICAgICAgICAgLTEgIT09IGUuZ2V0QXR0cmlidXRlKCJkYXRhLWVt b3Rpb24iKS5pbmRleE9mKCIgIikgJiYgKGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSks IGUuc2V0QXR0cmlidXRlKCJkYXRhLXMiLCAiIikpOw0KICAgICAgICAgICAgICB9KTsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciByID0gZS5zdHlsaXNQbHVnaW5zIHx8IFNl Ow0KICAgICAgICAgICAgdmFyIG8sDQogICAgICAgICAgICAgIGEsDQogICAgICAgICAgICAg IGkgPSB7fSwNCiAgICAgICAgICAgICAgbCA9IFtdOw0KICAgICAgICAgICAgKG8gPSBlLmNv bnRhaW5lciB8fCBkb2N1bWVudC5oZWFkKSwNCiAgICAgICAgICAgICAgQXJyYXkucHJvdG90 eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZVtkYXRh LWVtb3Rpb25ePSInICsgdCArICcgIl0nKSwgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgICBmb3IgKHZhciB0ID0gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZW1vdGlvbiIpLnNwbGl0 KCIgIiksIG4gPSAxOyBuIDwgdC5sZW5ndGg7IG4rKykgaVt0W25dXSA9ICEwOw0KICAgICAg ICAgICAgICAgIGwucHVzaChlKTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB2 YXIgcywNCiAgICAgICAgICAgICAgdSwNCiAgICAgICAgICAgICAgYyA9IFsNCiAgICAgICAg ICAgICAgICBjZSwNCiAgICAgICAgICAgICAgICAoKHUgPSBmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgICAgICAgcy5pbnNlcnQoZSk7DQogICAgICAgICAgICAgICAgfSksDQogICAg ICAgICAgICAgICAgICBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICBlLnJv b3QgfHwgKChlID0gZS5yZXR1cm4pICYmIHUoZSkpOw0KICAgICAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgIGQgPSAoZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgICB2YXIgdCA9IEEoZSk7DQogICAgICAgICAgICAgICAgcmV0dXJu IGZ1bmN0aW9uIChuLCByLCBvLCBhKSB7DQogICAgICAgICAgICAgICAgICBmb3IgKHZhciBp ID0gIiIsIGwgPSAwOyBsIDwgdDsgbCsrKSBpICs9IGVbbF0obiwgciwgbywgYSkgfHwgIiI7 DQogICAgICAgICAgICAgICAgICByZXR1cm4gaTsNCiAgICAgICAgICAgICAgICB9Ow0KICAg ICAgICAgICAgICB9KShbYmUsIHdlXS5jb25jYXQociwgYykpOw0KICAgICAgICAgICAgYSA9 IGZ1bmN0aW9uIChlLCB0LCBuLCByKSB7DQogICAgICAgICAgICAgIChzID0gbiksDQogICAg ICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICB1ZShkZShl KSwgZCk7DQogICAgICAgICAgICAgICAgfSkoZSA/IGUgKyAieyIgKyB0LnN0eWxlcyArICJ9 IiA6IHQuc3R5bGVzKSwNCiAgICAgICAgICAgICAgICByICYmIChmLmluc2VydGVkW3QubmFt ZV0gPSAhMCk7DQogICAgICAgICAgICB9Ow0KICAgICAgICAgICAgdmFyIGYgPSB7IGtleTog dCwgc2hlZXQ6IG5ldyBTKHsga2V5OiB0LCBjb250YWluZXI6IG8sIG5vbmNlOiBlLm5vbmNl LCBzcGVlZHk6IGUuc3BlZWR5LCBwcmVwZW5kOiBlLnByZXBlbmQsIGluc2VydGlvblBvaW50 OiBlLmluc2VydGlvblBvaW50IH0pLCBub25jZTogZS5ub25jZSwgaW5zZXJ0ZWQ6IGksIHJl Z2lzdGVyZWQ6IHt9LCBpbnNlcnQ6IGEgfTsNCiAgICAgICAgICAgIHJldHVybiBmLnNoZWV0 Lmh5ZHJhdGUobCksIGY7DQogICAgICAgICAgfTsNCiAgICAgICAgdmFyIEVlID0gew0KICAg ICAgICAgIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiAxLA0KICAgICAgICAgIGFzcGVjdFJh dGlvOiAxLA0KICAgICAgICAgIGJvcmRlckltYWdlT3V0c2V0OiAxLA0KICAgICAgICAgIGJv cmRlckltYWdlU2xpY2U6IDEsDQogICAgICAgICAgYm9yZGVySW1hZ2VXaWR0aDogMSwNCiAg ICAgICAgICBib3hGbGV4OiAxLA0KICAgICAgICAgIGJveEZsZXhHcm91cDogMSwNCiAgICAg ICAgICBib3hPcmRpbmFsR3JvdXA6IDEsDQogICAgICAgICAgY29sdW1uQ291bnQ6IDEsDQog ICAgICAgICAgY29sdW1uczogMSwNCiAgICAgICAgICBmbGV4OiAxLA0KICAgICAgICAgIGZs ZXhHcm93OiAxLA0KICAgICAgICAgIGZsZXhQb3NpdGl2ZTogMSwNCiAgICAgICAgICBmbGV4 U2hyaW5rOiAxLA0KICAgICAgICAgIGZsZXhOZWdhdGl2ZTogMSwNCiAgICAgICAgICBmbGV4 T3JkZXI6IDEsDQogICAgICAgICAgZ3JpZFJvdzogMSwNCiAgICAgICAgICBncmlkUm93RW5k OiAxLA0KICAgICAgICAgIGdyaWRSb3dTcGFuOiAxLA0KICAgICAgICAgIGdyaWRSb3dTdGFy dDogMSwNCiAgICAgICAgICBncmlkQ29sdW1uOiAxLA0KICAgICAgICAgIGdyaWRDb2x1bW5F bmQ6IDEsDQogICAgICAgICAgZ3JpZENvbHVtblNwYW46IDEsDQogICAgICAgICAgZ3JpZENv bHVtblN0YXJ0OiAxLA0KICAgICAgICAgIG1zR3JpZFJvdzogMSwNCiAgICAgICAgICBtc0dy aWRSb3dTcGFuOiAxLA0KICAgICAgICAgIG1zR3JpZENvbHVtbjogMSwNCiAgICAgICAgICBt c0dyaWRDb2x1bW5TcGFuOiAxLA0KICAgICAgICAgIGZvbnRXZWlnaHQ6IDEsDQogICAgICAg ICAgbGluZUhlaWdodDogMSwNCiAgICAgICAgICBvcGFjaXR5OiAxLA0KICAgICAgICAgIG9y ZGVyOiAxLA0KICAgICAgICAgIG9ycGhhbnM6IDEsDQogICAgICAgICAgdGFiU2l6ZTogMSwN CiAgICAgICAgICB3aWRvd3M6IDEsDQogICAgICAgICAgekluZGV4OiAxLA0KICAgICAgICAg IHpvb206IDEsDQogICAgICAgICAgV2Via2l0TGluZUNsYW1wOiAxLA0KICAgICAgICAgIGZp bGxPcGFjaXR5OiAxLA0KICAgICAgICAgIGZsb29kT3BhY2l0eTogMSwNCiAgICAgICAgICBz dG9wT3BhY2l0eTogMSwNCiAgICAgICAgICBzdHJva2VEYXNoYXJyYXk6IDEsDQogICAgICAg ICAgc3Ryb2tlRGFzaG9mZnNldDogMSwNCiAgICAgICAgICBzdHJva2VNaXRlcmxpbWl0OiAx LA0KICAgICAgICAgIHN0cm9rZU9wYWNpdHk6IDEsDQogICAgICAgICAgc3Ryb2tlV2lkdGg6 IDEsDQogICAgICAgIH0sDQogICAgICAgICAgQ2UgPSAvW0EtWl18Xm1zL2csDQogICAgICAg ICAgUmUgPSAvX0VNT18oW15fXSs/KV8oW15dKj8pX0VNT18vZywNCiAgICAgICAgICBfZSA9 IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gNDUgPT09IGUuY2hhckNvZGVB dCgxKTsNCiAgICAgICAgICB9LA0KICAgICAgICAgIFBlID0gZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICAgIHJldHVybiBudWxsICE9IGUgJiYgImJvb2xlYW4iICE9PSB0eXBlb2YgZTsN CiAgICAgICAgICB9LA0KICAgICAgICAgIE9lID0gYihmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgICAgcmV0dXJuIF9lKGUpID8gZSA6IGUucmVwbGFjZShDZSwgIi0kJiIpLnRvTG93ZXJD YXNlKCk7DQogICAgICAgICAgfSksDQogICAgICAgICAgTmUgPSBmdW5jdGlvbiAoZSwgdCkg ew0KICAgICAgICAgICAgc3dpdGNoIChlKSB7DQogICAgICAgICAgICAgIGNhc2UgImFuaW1h dGlvbiI6DQogICAgICAgICAgICAgIGNhc2UgImFuaW1hdGlvbk5hbWUiOg0KICAgICAgICAg ICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIHQpDQogICAgICAgICAgICAgICAgICBy ZXR1cm4gdC5yZXBsYWNlKFJlLCBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAg ICAgICAgICByZXR1cm4gKEFlID0geyBuYW1lOiB0LCBzdHlsZXM6IG4sIG5leHQ6IEFlIH0p LCB0Ow0KICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQogICAgICAgICAg ICByZXR1cm4gMSA9PT0gRWVbZV0gfHwgX2UoZSkgfHwgIm51bWJlciIgIT09IHR5cGVvZiB0 IHx8IDAgPT09IHQgPyB0IDogdCArICJweCI7DQogICAgICAgICAgfTsNCiAgICAgICAgZnVu Y3Rpb24gVGUoZSwgdCwgbikgew0KICAgICAgICAgIGlmIChudWxsID09IG4pIHJldHVybiAi IjsNCiAgICAgICAgICBpZiAodm9pZCAwICE9PSBuLl9fZW1vdGlvbl9zdHlsZXMpIHJldHVy biBuOw0KICAgICAgICAgIHN3aXRjaCAodHlwZW9mIG4pIHsNCiAgICAgICAgICAgIGNhc2Ug ImJvb2xlYW4iOg0KICAgICAgICAgICAgICByZXR1cm4gIiI7DQogICAgICAgICAgICBjYXNl ICJvYmplY3QiOg0KICAgICAgICAgICAgICBpZiAoMSA9PT0gbi5hbmltKSByZXR1cm4gKEFl ID0geyBuYW1lOiBuLm5hbWUsIHN0eWxlczogbi5zdHlsZXMsIG5leHQ6IEFlIH0pLCBuLm5h bWU7DQogICAgICAgICAgICAgIGlmICh2b2lkIDAgIT09IG4uc3R5bGVzKSB7DQogICAgICAg ICAgICAgICAgdmFyIHIgPSBuLm5leHQ7DQogICAgICAgICAgICAgICAgaWYgKHZvaWQgMCAh PT0gcikgZm9yICg7IHZvaWQgMCAhPT0gcjspIChBZSA9IHsgbmFtZTogci5uYW1lLCBzdHls ZXM6IHIuc3R5bGVzLCBuZXh0OiBBZSB9KSwgKHIgPSByLm5leHQpOw0KICAgICAgICAgICAg ICAgIHJldHVybiBuLnN0eWxlcyArICI7IjsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICByZXR1cm4gKGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgICAgICAgdmFy IHIgPSAiIjsNCiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuKSkgZm9yICh2 YXIgbyA9IDA7IG8gPCBuLmxlbmd0aDsgbysrKSByICs9IFRlKGUsIHQsIG5bb10pICsgIjsi Ow0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgIGZvciAodmFyIGEg aW4gbikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IG5bYV07DQogICAgICAgICAg ICAgICAgICAgIGlmICgib2JqZWN0IiAhPT0gdHlwZW9mIGkpIG51bGwgIT0gdCAmJiB2b2lk IDAgIT09IHRbaV0gPyAociArPSBhICsgInsiICsgdFtpXSArICJ9IikgOiBQZShpKSAmJiAo ciArPSBPZShhKSArICI6IiArIE5lKGEsIGkpICsgIjsiKTsNCiAgICAgICAgICAgICAgICAg ICAgZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoaSkgfHwgInN0cmluZyIgIT09IHR5cGVvZiBp WzBdIHx8IChudWxsICE9IHQgJiYgdm9pZCAwICE9PSB0W2lbMF1dKSkgew0KICAgICAgICAg ICAgICAgICAgICAgIHZhciBsID0gVGUoZSwgdCwgaSk7DQogICAgICAgICAgICAgICAgICAg ICAgc3dpdGNoIChhKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJhbmltYXRp b24iOg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYW5pbWF0aW9uTmFtZSI6DQog ICAgICAgICAgICAgICAgICAgICAgICAgIHIgKz0gT2UoYSkgKyAiOiIgKyBsICsgIjsiOw0K ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAg ICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgIHIgKz0gYSArICJ7IiAr IGwgKyAifSI7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICB9IGVsc2UgZm9yICh2YXIgcyA9IDA7IHMgPCBpLmxlbmd0aDsgcysrKSBQZShpW3NdKSAm JiAociArPSBPZShhKSArICI6IiArIE5lKGEsIGlbc10pICsgIjsiKTsNCiAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gcjsNCiAgICAgICAgICAgICAgfSko ZSwgdCwgbik7DQogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6DQogICAgICAgICAgICAg IGlmICh2b2lkIDAgIT09IGUpIHsNCiAgICAgICAgICAgICAgICB2YXIgbyA9IEFlLA0KICAg ICAgICAgICAgICAgICAgYSA9IG4oZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIChBZSA9 IG8pLCBUZShlLCB0LCBhKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAg ICAgICBpZiAobnVsbCA9PSB0KSByZXR1cm4gbjsNCiAgICAgICAgICB2YXIgaSA9IHRbbl07 DQogICAgICAgICAgcmV0dXJuIHZvaWQgMCAhPT0gaSA/IGkgOiBuOw0KICAgICAgICB9DQog ICAgICAgIHZhciBBZSwNCiAgICAgICAgICBNZSA9IC9sYWJlbDpccyooW15ccztcbntdKylc cyooO3wkKS9nOw0KICAgICAgICB2YXIgemUgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAg ICAgICAgIGlmICgxID09PSBlLmxlbmd0aCAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIGVbMF0g JiYgbnVsbCAhPT0gZVswXSAmJiB2b2lkIDAgIT09IGVbMF0uc3R5bGVzKSByZXR1cm4gZVsw XTsNCiAgICAgICAgICB2YXIgciA9ICEwLA0KICAgICAgICAgICAgbyA9ICIiOw0KICAgICAg ICAgIEFlID0gdm9pZCAwOw0KICAgICAgICAgIHZhciBhID0gZVswXTsNCiAgICAgICAgICBu dWxsID09IGEgfHwgdm9pZCAwID09PSBhLnJhdyA/ICgociA9ICExKSwgKG8gKz0gVGUobiwg dCwgYSkpKSA6IChvICs9IGFbMF0pOw0KICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwg ZS5sZW5ndGg7IGkrKykgKG8gKz0gVGUobiwgdCwgZVtpXSkpLCByICYmIChvICs9IGFbaV0p Ow0KICAgICAgICAgIE1lLmxhc3RJbmRleCA9IDA7DQogICAgICAgICAgZm9yICh2YXIgbCwg cyA9ICIiOyBudWxsICE9PSAobCA9IE1lLmV4ZWMobykpOykgcyArPSAiLSIgKyBsWzFdOw0K ICAgICAgICAgIHZhciB1ID0NCiAgICAgICAgICAgIChmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgICAgICBmb3IgKHZhciB0LCBuID0gMCwgciA9IDAsIG8gPSBlLmxlbmd0aDsgbyA+PSA0 OyArK3IsIG8gLT0gNCkNCiAgICAgICAgICAgICAgICAodCA9IDE1NDA0ODM0NzcgKiAoNjU1 MzUgJiAodCA9ICgyNTUgJiBlLmNoYXJDb2RlQXQocikpIHwgKCgyNTUgJiBlLmNoYXJDb2Rl QXQoKytyKSkgPDwgOCkgfCAoKDI1NSAmIGUuY2hhckNvZGVBdCgrK3IpKSA8PCAxNikgfCAo KDI1NSAmIGUuY2hhckNvZGVBdCgrK3IpKSA8PCAyNCkpKSArICgoNTk3OTcgKiAodCA+Pj4g MTYpKSA8PCAxNikpLA0KICAgICAgICAgICAgICAgICAgKG4gPSAoMTU0MDQ4MzQ3NyAqICg2 NTUzNSAmICh0IF49IHQgPj4+IDI0KSkgKyAoKDU5Nzk3ICogKHQgPj4+IDE2KSkgPDwgMTYp KSBeICgxNTQwNDgzNDc3ICogKDY1NTM1ICYgbikgKyAoKDU5Nzk3ICogKG4gPj4+IDE2KSkg PDwgMTYpKSk7DQogICAgICAgICAgICAgIHN3aXRjaCAobykgew0KICAgICAgICAgICAgICAg IGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgIG4gXj0gKDI1NSAmIGUuY2hhckNvZGVBdChy ICsgMikpIDw8IDE2Ow0KICAgICAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgICAg ICAgIG4gXj0gKDI1NSAmIGUuY2hhckNvZGVBdChyICsgMSkpIDw8IDg7DQogICAgICAgICAg ICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgbiA9IDE1NDA0ODM0NzcgKiAoNjU1 MzUgJiAobiBePSAyNTUgJiBlLmNoYXJDb2RlQXQocikpKSArICgoNTk3OTcgKiAobiA+Pj4g MTYpKSA8PCAxNik7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuICgo KG4gPSAxNTQwNDgzNDc3ICogKDY1NTM1ICYgKG4gXj0gbiA+Pj4gMTMpKSArICgoNTk3OTcg KiAobiA+Pj4gMTYpKSA8PCAxNikpIF4gKG4gPj4+IDE1KSkgPj4+IDApLnRvU3RyaW5nKDM2 KTsNCiAgICAgICAgICAgIH0pKG8pICsgczsNCiAgICAgICAgICByZXR1cm4geyBuYW1lOiB1 LCBzdHlsZXM6IG8sIG5leHQ6IEFlIH07DQogICAgICAgIH0sDQogICAgICAgICAgamUgPSAh IXIudXNlSW5zZXJ0aW9uRWZmZWN0ICYmIHIudXNlSW5zZXJ0aW9uRWZmZWN0LA0KICAgICAg ICAgIEllID0NCiAgICAgICAgICAgIGplIHx8DQogICAgICAgICAgICBmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgICAgICByZXR1cm4gZSgpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAg ICBMZSA9IGplIHx8IHQudXNlTGF5b3V0RWZmZWN0LA0KICAgICAgICAgIEZlID0gdC5jcmVh dGVDb250ZXh0KCJ1bmRlZmluZWQiICE9PSB0eXBlb2YgSFRNTEVsZW1lbnQgPyBrZSh7IGtl eTogImNzcyIgfSkgOiBudWxsKTsNCiAgICAgICAgRmUuUHJvdmlkZXI7DQogICAgICAgIHZh ciBCZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgcmV0dXJuICgwLCB0LmZvcndhcmRS ZWYpKGZ1bmN0aW9uIChuLCByKSB7DQogICAgICAgICAgICB2YXIgbyA9ICgwLCB0LnVzZUNv bnRleHQpKEZlKTsNCiAgICAgICAgICAgIHJldHVybiBlKG4sIG8sIHIpOw0KICAgICAgICAg IH0pOw0KICAgICAgICB9Ow0KICAgICAgICB2YXIgRGUgPSB0LmNyZWF0ZUNvbnRleHQoe30p Ow0KICAgICAgICB2YXIgVWUgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgIHZh ciByID0gZS5rZXkgKyAiLSIgKyB0Lm5hbWU7DQogICAgICAgICAgITEgPT09IG4gJiYgdm9p ZCAwID09PSBlLnJlZ2lzdGVyZWRbcl0gJiYgKGUucmVnaXN0ZXJlZFtyXSA9IHQuc3R5bGVz KTsNCiAgICAgICAgfSwNCiAgICAgICAgICBXZSA9IGZ1bmN0aW9uIChlLCB0LCBuKSB7DQog ICAgICAgICAgICBVZShlLCB0LCBuKTsNCiAgICAgICAgICAgIHZhciByID0gZS5rZXkgKyAi LSIgKyB0Lm5hbWU7DQogICAgICAgICAgICBpZiAodm9pZCAwID09PSBlLmluc2VydGVkW3Qu bmFtZV0pIHsNCiAgICAgICAgICAgICAgdmFyIG8gPSB0Ow0KICAgICAgICAgICAgICBkbyB7 DQogICAgICAgICAgICAgICAgZS5pbnNlcnQodCA9PT0gbyA/ICIuIiArIHIgOiAiIiwgbywg ZS5zaGVldCwgITApLCAobyA9IG8ubmV4dCk7DQogICAgICAgICAgICAgIH0gd2hpbGUgKHZv aWQgMCAhPT0gbyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSwNCiAgICAgICAgICBW ZSA9IHgsDQogICAgICAgICAgSGUgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0 dXJuICJ0aGVtZSIgIT09IGU7DQogICAgICAgICAgfSwNCiAgICAgICAgICBxZSA9IGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gInN0cmluZyIgPT09IHR5cGVvZiBlICYm IGUuY2hhckNvZGVBdCgwKSA+IDk2ID8gVmUgOiBIZTsNCiAgICAgICAgICB9LA0KICAgICAg ICAgICRlID0gZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgIHZhciByOw0KICAg ICAgICAgICAgaWYgKHQpIHsNCiAgICAgICAgICAgICAgdmFyIG8gPSB0LnNob3VsZEZvcndh cmRQcm9wOw0KICAgICAgICAgICAgICByID0NCiAgICAgICAgICAgICAgICBlLl9fZW1vdGlv bl9mb3J3YXJkUHJvcCAmJiBvDQogICAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uICh0KSB7 DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBlLl9fZW1vdGlvbl9mb3J3YXJkUHJvcCh0 KSAmJiBvKHQpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgOiBv Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgIT09IHR5 cGVvZiByICYmIG4gJiYgKHIgPSBlLl9fZW1vdGlvbl9mb3J3YXJkUHJvcCksIHI7DQogICAg ICAgICAgfSwNCiAgICAgICAgICBLZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICB2 YXIgdCA9IGUuY2FjaGUsDQogICAgICAgICAgICAgIG4gPSBlLnNlcmlhbGl6ZWQsDQogICAg ICAgICAgICAgIHIgPSBlLmlzU3RyaW5nVGFnOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAg ICAgICAgICAgICAgVWUodCwgbiwgciksDQogICAgICAgICAgICAgIEllKGZ1bmN0aW9uICgp IHsNCiAgICAgICAgICAgICAgICByZXR1cm4gV2UodCwgbiwgcik7DQogICAgICAgICAgICAg IH0pLA0KICAgICAgICAgICAgICBudWxsDQogICAgICAgICAgICApOw0KICAgICAgICAgIH0s DQogICAgICAgICAgUWUgPSBmdW5jdGlvbiBlKG4sIHIpIHsNCiAgICAgICAgICAgIHZhciBv LA0KICAgICAgICAgICAgICBhLA0KICAgICAgICAgICAgICBsID0gbi5fX2Vtb3Rpb25fcmVh bCA9PT0gbiwNCiAgICAgICAgICAgICAgcyA9IChsICYmIG4uX19lbW90aW9uX2Jhc2UpIHx8 IG47DQogICAgICAgICAgICB2b2lkIDAgIT09IHIgJiYgKChvID0gci5sYWJlbCksIChhID0g ci50YXJnZXQpKTsNCiAgICAgICAgICAgIHZhciB1ID0gJGUobiwgciwgbCksDQogICAgICAg ICAgICAgIGMgPSB1IHx8IHFlKHMpLA0KICAgICAgICAgICAgICBkID0gIWMoImFzIik7DQog ICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICB2YXIgZiA9 IGFyZ3VtZW50cywNCiAgICAgICAgICAgICAgICBwID0gbCAmJiB2b2lkIDAgIT09IG4uX19l bW90aW9uX3N0eWxlcyA/IG4uX19lbW90aW9uX3N0eWxlcy5zbGljZSgwKSA6IFtdOw0KICAg ICAgICAgICAgICBpZiAoKHZvaWQgMCAhPT0gbyAmJiBwLnB1c2goImxhYmVsOiIgKyBvICsg IjsiKSwgbnVsbCA9PSBmWzBdIHx8IHZvaWQgMCA9PT0gZlswXS5yYXcpKSBwLnB1c2guYXBw bHkocCwgZik7DQogICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIDAsIHAu cHVzaChmWzBdWzBdKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBoID0gZi5sZW5ndGgs IG0gPSAxOyBtIDwgaDsgbSsrKSBwLnB1c2goZlttXSwgZlswXVttXSk7DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgdmFyIGcgPSBCZShmdW5jdGlvbiAoZSwgbiwgcikgew0K ICAgICAgICAgICAgICAgIHZhciBvID0gKGQgJiYgZS5hcykgfHwgcywNCiAgICAgICAgICAg ICAgICAgIGkgPSAiIiwNCiAgICAgICAgICAgICAgICAgIGwgPSBbXSwNCiAgICAgICAgICAg ICAgICAgIGYgPSBlOw0KICAgICAgICAgICAgICAgIGlmIChudWxsID09IGUudGhlbWUpIHsN CiAgICAgICAgICAgICAgICAgIGZvciAodmFyIGggaW4gKChmID0ge30pLCBlKSkgZltoXSA9 IGVbaF07DQogICAgICAgICAgICAgICAgICBmLnRoZW1lID0gdC51c2VDb250ZXh0KERlKTsN CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgInN0cmluZyIgPT09IHR5cGVv ZiBlLmNsYXNzTmFtZQ0KICAgICAgICAgICAgICAgICAgPyAoaSA9IChmdW5jdGlvbiAoZSwg dCwgbikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgciA9ICIiOw0KICAgICAgICAgICAg ICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgICAgIG4uc3BsaXQoIiAiKS5m b3JFYWNoKGZ1bmN0aW9uIChuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2b2lkIDAg IT09IGVbbl0gPyB0LnB1c2goZVtuXSArICI7IikgOiAociArPSBuICsgIiAiKTsNCiAgICAg ICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICByDQogICAgICAg ICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICB9KShuLnJlZ2lzdGVyZWQsIGws IGUuY2xhc3NOYW1lKSkNCiAgICAgICAgICAgICAgICAgIDogbnVsbCAhPSBlLmNsYXNzTmFt ZSAmJiAoaSA9IGUuY2xhc3NOYW1lICsgIiAiKTsNCiAgICAgICAgICAgICAgICB2YXIgbSA9 IHplKHAuY29uY2F0KGwpLCBuLnJlZ2lzdGVyZWQsIGYpOw0KICAgICAgICAgICAgICAgIChp ICs9IG4ua2V5ICsgIi0iICsgbS5uYW1lKSwgdm9pZCAwICE9PSBhICYmIChpICs9ICIgIiAr IGEpOw0KICAgICAgICAgICAgICAgIHZhciBnID0gZCAmJiB2b2lkIDAgPT09IHUgPyBxZShv KSA6IGMsDQogICAgICAgICAgICAgICAgICB2ID0ge307DQogICAgICAgICAgICAgICAgZm9y ICh2YXIgeSBpbiBlKSAoZCAmJiAiYXMiID09PSB5KSB8fCAoZyh5KSAmJiAodlt5XSA9IGVb eV0pKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKHYuY2xhc3NOYW1lID0gaSksICh2LnJl ZiA9IHIpLCB0LmNyZWF0ZUVsZW1lbnQodC5GcmFnbWVudCwgbnVsbCwgdC5jcmVhdGVFbGVt ZW50KEtlLCB7IGNhY2hlOiBuLCBzZXJpYWxpemVkOiBtLCBpc1N0cmluZ1RhZzogInN0cmlu ZyIgPT09IHR5cGVvZiBvIH0pLCB0LmNyZWF0ZUVsZW1lbnQobywgdikpOw0KICAgICAgICAg ICAgICB9KTsNCiAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAoZy5k aXNwbGF5TmFtZSA9IHZvaWQgMCAhPT0gbyA/IG8gOiAiU3R5bGVkKCIgKyAoInN0cmluZyIg PT09IHR5cGVvZiBzID8gcyA6IHMuZGlzcGxheU5hbWUgfHwgcy5uYW1lIHx8ICJDb21wb25l bnQiKSArICIpIiksDQogICAgICAgICAgICAgICAgKGcuZGVmYXVsdFByb3BzID0gbi5kZWZh dWx0UHJvcHMpLA0KICAgICAgICAgICAgICAgIChnLl9fZW1vdGlvbl9yZWFsID0gZyksDQog ICAgICAgICAgICAgICAgKGcuX19lbW90aW9uX2Jhc2UgPSBzKSwNCiAgICAgICAgICAgICAg ICAoZy5fX2Vtb3Rpb25fc3R5bGVzID0gcCksDQogICAgICAgICAgICAgICAgKGcuX19lbW90 aW9uX2ZvcndhcmRQcm9wID0gdSksDQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVBy b3BlcnR5KGcsICJ0b1N0cmluZyIsIHsNCiAgICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5j dGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiLiIgKyBhOw0KICAgICAg ICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAo Zy53aXRoQ29tcG9uZW50ID0gZnVuY3Rpb24gKHQsIG4pIHsNCiAgICAgICAgICAgICAgICAg IHJldHVybiBlKHQsIGkoe30sIHIsIG4sIHsgc2hvdWxkRm9yd2FyZFByb3A6ICRlKGcsIG4s ICEwKSB9KSkuYXBwbHkodm9pZCAwLCBwKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICBnDQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9Ow0KICAgICAg ICAgIH0uYmluZCgpOw0KICAgICAgICBmdW5jdGlvbiBHZShlLCB0KSB7DQogICAgICAgICAg cmV0dXJuIFFlKGUsIHQpOw0KICAgICAgICB9DQogICAgICAgIFsNCiAgICAgICAgICAiYSIs DQogICAgICAgICAgImFiYnIiLA0KICAgICAgICAgICJhZGRyZXNzIiwNCiAgICAgICAgICAi YXJlYSIsDQogICAgICAgICAgImFydGljbGUiLA0KICAgICAgICAgICJhc2lkZSIsDQogICAg ICAgICAgImF1ZGlvIiwNCiAgICAgICAgICAiYiIsDQogICAgICAgICAgImJhc2UiLA0KICAg ICAgICAgICJiZGkiLA0KICAgICAgICAgICJiZG8iLA0KICAgICAgICAgICJiaWciLA0KICAg ICAgICAgICJibG9ja3F1b3RlIiwNCiAgICAgICAgICAiYm9keSIsDQogICAgICAgICAgImJy IiwNCiAgICAgICAgICAiYnV0dG9uIiwNCiAgICAgICAgICAiY2FudmFzIiwNCiAgICAgICAg ICAiY2FwdGlvbiIsDQogICAgICAgICAgImNpdGUiLA0KICAgICAgICAgICJjb2RlIiwNCiAg ICAgICAgICAiY29sIiwNCiAgICAgICAgICAiY29sZ3JvdXAiLA0KICAgICAgICAgICJkYXRh IiwNCiAgICAgICAgICAiZGF0YWxpc3QiLA0KICAgICAgICAgICJkZCIsDQogICAgICAgICAg ImRlbCIsDQogICAgICAgICAgImRldGFpbHMiLA0KICAgICAgICAgICJkZm4iLA0KICAgICAg ICAgICJkaWFsb2ciLA0KICAgICAgICAgICJkaXYiLA0KICAgICAgICAgICJkbCIsDQogICAg ICAgICAgImR0IiwNCiAgICAgICAgICAiZW0iLA0KICAgICAgICAgICJlbWJlZCIsDQogICAg ICAgICAgImZpZWxkc2V0IiwNCiAgICAgICAgICAiZmlnY2FwdGlvbiIsDQogICAgICAgICAg ImZpZ3VyZSIsDQogICAgICAgICAgImZvb3RlciIsDQogICAgICAgICAgImZvcm0iLA0KICAg ICAgICAgICJoMSIsDQogICAgICAgICAgImgyIiwNCiAgICAgICAgICAiaDMiLA0KICAgICAg ICAgICJoNCIsDQogICAgICAgICAgImg1IiwNCiAgICAgICAgICAiaDYiLA0KICAgICAgICAg ICJoZWFkIiwNCiAgICAgICAgICAiaGVhZGVyIiwNCiAgICAgICAgICAiaGdyb3VwIiwNCiAg ICAgICAgICAiaHIiLA0KICAgICAgICAgICJodG1sIiwNCiAgICAgICAgICAiaSIsDQogICAg ICAgICAgImlmcmFtZSIsDQogICAgICAgICAgImltZyIsDQogICAgICAgICAgImlucHV0IiwN CiAgICAgICAgICAiaW5zIiwNCiAgICAgICAgICAia2JkIiwNCiAgICAgICAgICAia2V5Z2Vu IiwNCiAgICAgICAgICAibGFiZWwiLA0KICAgICAgICAgICJsZWdlbmQiLA0KICAgICAgICAg ICJsaSIsDQogICAgICAgICAgImxpbmsiLA0KICAgICAgICAgICJtYWluIiwNCiAgICAgICAg ICAibWFwIiwNCiAgICAgICAgICAibWFyayIsDQogICAgICAgICAgIm1hcnF1ZWUiLA0KICAg ICAgICAgICJtZW51IiwNCiAgICAgICAgICAibWVudWl0ZW0iLA0KICAgICAgICAgICJtZXRh IiwNCiAgICAgICAgICAibWV0ZXIiLA0KICAgICAgICAgICJuYXYiLA0KICAgICAgICAgICJu b3NjcmlwdCIsDQogICAgICAgICAgIm9iamVjdCIsDQogICAgICAgICAgIm9sIiwNCiAgICAg ICAgICAib3B0Z3JvdXAiLA0KICAgICAgICAgICJvcHRpb24iLA0KICAgICAgICAgICJvdXRw dXQiLA0KICAgICAgICAgICJwIiwNCiAgICAgICAgICAicGFyYW0iLA0KICAgICAgICAgICJw aWN0dXJlIiwNCiAgICAgICAgICAicHJlIiwNCiAgICAgICAgICAicHJvZ3Jlc3MiLA0KICAg ICAgICAgICJxIiwNCiAgICAgICAgICAicnAiLA0KICAgICAgICAgICJydCIsDQogICAgICAg ICAgInJ1YnkiLA0KICAgICAgICAgICJzIiwNCiAgICAgICAgICAic2FtcCIsDQogICAgICAg ICAgInNjcmlwdCIsDQogICAgICAgICAgInNlY3Rpb24iLA0KICAgICAgICAgICJzZWxlY3Qi LA0KICAgICAgICAgICJzbWFsbCIsDQogICAgICAgICAgInNvdXJjZSIsDQogICAgICAgICAg InNwYW4iLA0KICAgICAgICAgICJzdHJvbmciLA0KICAgICAgICAgICJzdHlsZSIsDQogICAg ICAgICAgInN1YiIsDQogICAgICAgICAgInN1bW1hcnkiLA0KICAgICAgICAgICJzdXAiLA0K ICAgICAgICAgICJ0YWJsZSIsDQogICAgICAgICAgInRib2R5IiwNCiAgICAgICAgICAidGQi LA0KICAgICAgICAgICJ0ZXh0YXJlYSIsDQogICAgICAgICAgInRmb290IiwNCiAgICAgICAg ICAidGgiLA0KICAgICAgICAgICJ0aGVhZCIsDQogICAgICAgICAgInRpbWUiLA0KICAgICAg ICAgICJ0aXRsZSIsDQogICAgICAgICAgInRyIiwNCiAgICAgICAgICAidHJhY2siLA0KICAg ICAgICAgICJ1IiwNCiAgICAgICAgICAidWwiLA0KICAgICAgICAgICJ2YXIiLA0KICAgICAg ICAgICJ2aWRlbyIsDQogICAgICAgICAgIndiciIsDQogICAgICAgICAgImNpcmNsZSIsDQog ICAgICAgICAgImNsaXBQYXRoIiwNCiAgICAgICAgICAiZGVmcyIsDQogICAgICAgICAgImVs bGlwc2UiLA0KICAgICAgICAgICJmb3JlaWduT2JqZWN0IiwNCiAgICAgICAgICAiZyIsDQog ICAgICAgICAgImltYWdlIiwNCiAgICAgICAgICAibGluZSIsDQogICAgICAgICAgImxpbmVh ckdyYWRpZW50IiwNCiAgICAgICAgICAibWFzayIsDQogICAgICAgICAgInBhdGgiLA0KICAg ICAgICAgICJwYXR0ZXJuIiwNCiAgICAgICAgICAicG9seWdvbiIsDQogICAgICAgICAgInBv bHlsaW5lIiwNCiAgICAgICAgICAicmFkaWFsR3JhZGllbnQiLA0KICAgICAgICAgICJyZWN0 IiwNCiAgICAgICAgICAic3RvcCIsDQogICAgICAgICAgInN2ZyIsDQogICAgICAgICAgInRl eHQiLA0KICAgICAgICAgICJ0c3BhbiIsDQogICAgICAgIF0uZm9yRWFjaChmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgIFFlW2VdID0gUWUoZSk7DQogICAgICAgIH0pOw0KICAgICAgICBm dW5jdGlvbiBZZShlKSB7DQogICAgICAgICAgcmV0dXJuIG51bGwgIT09IGUgJiYgIm9iamVj dCIgPT09IHR5cGVvZiBlICYmIGUuY29uc3RydWN0b3IgPT09IE9iamVjdDsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBYZShlKSB7DQogICAgICAgICAgaWYgKCFZZShlKSkgcmV0 dXJuIGU7DQogICAgICAgICAgY29uc3QgdCA9IHt9Ow0KICAgICAgICAgIHJldHVybiAoDQog ICAgICAgICAgICBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChuKSA9PiB7DQogICAgICAgICAg ICAgIHRbbl0gPSBYZShlW25dKTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgdA0K ICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWmUoZSwgdCkgew0K ICAgICAgICAgIGxldCBuID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgdm9pZCAwICE9PSBh cmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiB7IGNsb25lOiAhMCB9Ow0KICAgICAgICAg IGNvbnN0IHIgPSBuLmNsb25lID8gaSh7fSwgZSkgOiBlOw0KICAgICAgICAgIHJldHVybiAo DQogICAgICAgICAgICBZZShlKSAmJg0KICAgICAgICAgICAgWWUodCkgJiYNCiAgICAgICAg ICAgIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG8pID0+IHsNCiAgICAgICAgICAgICAgIl9f cHJvdG9fXyIgIT09IG8gJiYgKFllKHRbb10pICYmIG8gaW4gZSAmJiBZZShlW29dKSA/IChy W29dID0gWmUoZVtvXSwgdFtvXSwgbikpIDogbi5jbG9uZSA/IChyW29dID0gWWUodFtvXSkg PyBYZSh0W29dKSA6IHRbb10pIDogKHJbb10gPSB0W29dKSk7DQogICAgICAgICAgICB9KSwN CiAgICAgICAgICAgIHINCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0 IEplID0gWyJ2YWx1ZXMiLCAidW5pdCIsICJzdGVwIl0sDQogICAgICAgICAgZXQgPSAoZSkg PT4gew0KICAgICAgICAgICAgY29uc3QgdCA9IE9iamVjdC5rZXlzKGUpLm1hcCgodCkgPT4g KHsga2V5OiB0LCB2YWw6IGVbdF0gfSkpIHx8IFtdOw0KICAgICAgICAgICAgcmV0dXJuIHQu c29ydCgoZSwgdCkgPT4gZS52YWwgLSB0LnZhbCksIHQucmVkdWNlKChlLCB0KSA9PiBpKHt9 LCBlLCB7IFt0LmtleV06IHQudmFsIH0pLCB7fSk7DQogICAgICAgICAgfTsNCiAgICAgICAg Y29uc3QgdHQgPSB7IGJvcmRlclJhZGl1czogNCB9LA0KICAgICAgICAgIG50ID0geyB4czog MCwgc206IDYwMCwgbWQ6IDkwMCwgbGc6IDEyMDAsIHhsOiAxNTM2IH0sDQogICAgICAgICAg cnQgPSB7IGtleXM6IFsieHMiLCAic20iLCAibWQiLCAibGciLCAieGwiXSwgdXA6IChlKSA9 PiAiQG1lZGlhIChtaW4td2lkdGg6Ii5jb25jYXQobnRbZV0sICJweCkiKSB9Ow0KICAgICAg ICBmdW5jdGlvbiBvdChlLCB0LCBuKSB7DQogICAgICAgICAgY29uc3QgciA9IGUudGhlbWUg fHwge307DQogICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodCkpIHsNCiAgICAgICAgICAg IGNvbnN0IGUgPSByLmJyZWFrcG9pbnRzIHx8IHJ0Ow0KICAgICAgICAgICAgcmV0dXJuIHQu cmVkdWNlKChyLCBvLCBhKSA9PiAoKHJbZS51cChlLmtleXNbYV0pXSA9IG4odFthXSkpLCBy KSwge30pOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVv ZiB0KSB7DQogICAgICAgICAgICBjb25zdCBlID0gci5icmVha3BvaW50cyB8fCBydDsNCiAg ICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoKHIsIG8pID0+IHsNCiAg ICAgICAgICAgICAgaWYgKC0xICE9PSBPYmplY3Qua2V5cyhlLnZhbHVlcyB8fCBudCkuaW5k ZXhPZihvKSkgew0KICAgICAgICAgICAgICAgIHJbZS51cChvKV0gPSBuKHRbb10sIG8pOw0K ICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBvOw0K ICAgICAgICAgICAgICAgIHJbZV0gPSB0W2VdOw0KICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgIHJldHVybiByOw0KICAgICAgICAgICAgfSwge30pOw0KICAgICAgICAgIH0NCiAg ICAgICAgICByZXR1cm4gbih0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBhdCgp IHsNCiAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIHZvaWQgMCAh PT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDoge307DQogICAgICAgICAgdmFyIHQ7 DQogICAgICAgICAgcmV0dXJuIChudWxsID09ICh0ID0gZS5rZXlzKSA/IHZvaWQgMCA6IHQu cmVkdWNlKCh0LCBuKSA9PiAoKHRbZS51cChuKV0gPSB7fSksIHQpLCB7fSkpIHx8IHt9Ow0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGl0KGUsIHQpIHsNCiAgICAgICAgICByZXR1 cm4gZS5yZWR1Y2UoKGUsIHQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IG4gPSBlW3RdOw0K ICAgICAgICAgICAgcmV0dXJuICghbiB8fCAwID09PSBPYmplY3Qua2V5cyhuKS5sZW5ndGgp ICYmIGRlbGV0ZSBlW3RdLCBlOw0KICAgICAgICAgIH0sIHQpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIGx0KGUpIHsNCiAgICAgICAgICBsZXQgeyB2YWx1ZXM6IHQsIGJyZWFr cG9pbnRzOiBuLCBiYXNlOiByIH0gPSBlOw0KICAgICAgICAgIGNvbnN0IG8gPQ0KICAgICAg ICAgICAgciB8fA0KICAgICAgICAgICAgKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAg ICAgIGlmICgib2JqZWN0IiAhPT0gdHlwZW9mIGUpIHJldHVybiB7fTsNCiAgICAgICAgICAg ICAgY29uc3QgbiA9IHt9LA0KICAgICAgICAgICAgICAgIHIgPSBPYmplY3Qua2V5cyh0KTsN CiAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5 KGUpDQogICAgICAgICAgICAgICAgICA/IHIuZm9yRWFjaCgodCwgcikgPT4gew0KICAgICAg ICAgICAgICAgICAgICByIDwgZS5sZW5ndGggJiYgKG5bdF0gPSAhMCk7DQogICAgICAgICAg ICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgOiByLmZvckVhY2goKHQpID0+IHsNCiAg ICAgICAgICAgICAgICAgICAgbnVsbCAhPSBlW3RdICYmIChuW3RdID0gITApOw0KICAgICAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgbg0KICAgICAgICAgICAgICApOw0K ICAgICAgICAgICAgfSkodCwgbiksDQogICAgICAgICAgICBhID0gT2JqZWN0LmtleXMobyk7 DQogICAgICAgICAgaWYgKDAgPT09IGEubGVuZ3RoKSByZXR1cm4gdDsNCiAgICAgICAgICBs ZXQgaTsNCiAgICAgICAgICByZXR1cm4gYS5yZWR1Y2UoKGUsIG4sIHIpID0+IChBcnJheS5p c0FycmF5KHQpID8gKChlW25dID0gbnVsbCAhPSB0W3JdID8gdFtyXSA6IHRbaV0pLCAoaSA9 IHIpKSA6ICJvYmplY3QiID09PSB0eXBlb2YgdCA/ICgoZVtuXSA9IG51bGwgIT0gdFtuXSA/ IHRbbl0gOiB0W2ldKSwgKGkgPSBuKSkgOiAoZVtuXSA9IHQpLCBlKSwge30pOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIHN0KGUpIHsNCiAgICAgICAgICBpZiAoInN0cmluZyIg IT09IHR5cGVvZiBlKSB0aHJvdyBuZXcgRXJyb3IoZCg3KSk7DQogICAgICAgICAgcmV0dXJu IGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBlLnNsaWNlKDEpOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIHV0KGUsIHQpIHsNCiAgICAgICAgICBsZXQgbiA9ICEoYXJndW1l bnRzLmxlbmd0aCA+IDIgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0pIHx8IGFyZ3VtZW50 c1syXTsNCiAgICAgICAgICBpZiAoIXQgfHwgInN0cmluZyIgIT09IHR5cGVvZiB0KSByZXR1 cm4gbnVsbDsNCiAgICAgICAgICBpZiAoZSAmJiBlLnZhcnMgJiYgbikgew0KICAgICAgICAg ICAgY29uc3QgbiA9ICJ2YXJzLiINCiAgICAgICAgICAgICAgLmNvbmNhdCh0KQ0KICAgICAg ICAgICAgICAuc3BsaXQoIi4iKQ0KICAgICAgICAgICAgICAucmVkdWNlKChlLCB0KSA9PiAo ZSAmJiBlW3RdID8gZVt0XSA6IG51bGwpLCBlKTsNCiAgICAgICAgICAgIGlmIChudWxsICE9 IG4pIHJldHVybiBuOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gdC5zcGxpdCgi LiIpLnJlZHVjZSgoZSwgdCkgPT4gKGUgJiYgbnVsbCAhPSBlW3RdID8gZVt0XSA6IG51bGwp LCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBjdChlLCB0LCBuKSB7DQogICAg ICAgICAgbGV0IHIsDQogICAgICAgICAgICBvID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYg dm9pZCAwICE9PSBhcmd1bWVudHNbM10gPyBhcmd1bWVudHNbM10gOiBuOw0KICAgICAgICAg IHJldHVybiAociA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlID8gZShuKSA6IEFycmF5Lmlz QXJyYXkoZSkgPyBlW25dIHx8IG8gOiB1dChlLCBuKSB8fCBvKSwgdCAmJiAociA9IHQociwg bywgZSkpLCByOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IGR0ID0gZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICBjb25zdCB7IHByb3A6IHQsIGNzc1Byb3BlcnR5OiBuID0gZS5wcm9w LCB0aGVtZUtleTogciwgdHJhbnNmb3JtOiBvIH0gPSBlLA0KICAgICAgICAgICAgYSA9IChl KSA9PiB7DQogICAgICAgICAgICAgIGlmIChudWxsID09IGVbdF0pIHJldHVybiBudWxsOw0K ICAgICAgICAgICAgICBjb25zdCBhID0gZVt0XSwNCiAgICAgICAgICAgICAgICBpID0gdXQo ZS50aGVtZSwgcikgfHwge307DQogICAgICAgICAgICAgIHJldHVybiBvdChlLCBhLCAoZSkg PT4gew0KICAgICAgICAgICAgICAgIGxldCByID0gY3QoaSwgbywgZSk7DQogICAgICAgICAg ICAgICAgcmV0dXJuIGUgPT09IHIgJiYgInN0cmluZyIgPT09IHR5cGVvZiBlICYmIChyID0g Y3QoaSwgbywgIiIuY29uY2F0KHQpLmNvbmNhdCgiZGVmYXVsdCIgPT09IGUgPyAiIiA6IHN0 KGUpKSwgZSkpLCAhMSA9PT0gbiA/IHIgOiB7IFtuXTogciB9Ow0KICAgICAgICAgICAgICB9 KTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgcmV0dXJuIChhLnByb3BUeXBlcyA9IHt9 KSwgKGEuZmlsdGVyUHJvcHMgPSBbdF0pLCBhOw0KICAgICAgICB9Ow0KICAgICAgICBjb25z dCBmdCA9IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIHQgPyBaZShlLCB0 LCB7IGNsb25lOiAhMSB9KSA6IGU7DQogICAgICAgIH07DQogICAgICAgIGNvbnN0IHB0ID0g eyBtOiAibWFyZ2luIiwgcDogInBhZGRpbmciIH0sDQogICAgICAgICAgaHQgPSB7IHQ6ICJU b3AiLCByOiAiUmlnaHQiLCBiOiAiQm90dG9tIiwgbDogIkxlZnQiLCB4OiBbIkxlZnQiLCAi UmlnaHQiXSwgeTogWyJUb3AiLCAiQm90dG9tIl0gfSwNCiAgICAgICAgICBtdCA9IHsgbWFy Z2luWDogIm14IiwgbWFyZ2luWTogIm15IiwgcGFkZGluZ1g6ICJweCIsIHBhZGRpbmdZOiAi cHkiIH0sDQogICAgICAgICAgZ3QgPSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGNv bnN0IHQgPSB7fTsNCiAgICAgICAgICAgIHJldHVybiAobikgPT4gKHZvaWQgMCA9PT0gdFtu XSAmJiAodFtuXSA9IGUobikpLCB0W25dKTsNCiAgICAgICAgICB9KSgoZSkgPT4gew0KICAg ICAgICAgICAgaWYgKGUubGVuZ3RoID4gMikgew0KICAgICAgICAgICAgICBpZiAoIW10W2Vd KSByZXR1cm4gW2VdOw0KICAgICAgICAgICAgICBlID0gbXRbZV07DQogICAgICAgICAgICB9 DQogICAgICAgICAgICBjb25zdCBbdCwgbl0gPSBlLnNwbGl0KCIiKSwNCiAgICAgICAgICAg ICAgciA9IHB0W3RdLA0KICAgICAgICAgICAgICBvID0gaHRbbl0gfHwgIiI7DQogICAgICAg ICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShvKSA/IG8ubWFwKChlKSA9PiByICsgZSkgOiBb ciArIG9dOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIHZ0ID0gWw0KICAgICAgICAgICAg Im0iLA0KICAgICAgICAgICAgIm10IiwNCiAgICAgICAgICAgICJtciIsDQogICAgICAgICAg ICAibWIiLA0KICAgICAgICAgICAgIm1sIiwNCiAgICAgICAgICAgICJteCIsDQogICAgICAg ICAgICAibXkiLA0KICAgICAgICAgICAgIm1hcmdpbiIsDQogICAgICAgICAgICAibWFyZ2lu VG9wIiwNCiAgICAgICAgICAgICJtYXJnaW5SaWdodCIsDQogICAgICAgICAgICAibWFyZ2lu Qm90dG9tIiwNCiAgICAgICAgICAgICJtYXJnaW5MZWZ0IiwNCiAgICAgICAgICAgICJtYXJn aW5YIiwNCiAgICAgICAgICAgICJtYXJnaW5ZIiwNCiAgICAgICAgICAgICJtYXJnaW5Jbmxp bmUiLA0KICAgICAgICAgICAgIm1hcmdpbklubGluZVN0YXJ0IiwNCiAgICAgICAgICAgICJt YXJnaW5JbmxpbmVFbmQiLA0KICAgICAgICAgICAgIm1hcmdpbkJsb2NrIiwNCiAgICAgICAg ICAgICJtYXJnaW5CbG9ja1N0YXJ0IiwNCiAgICAgICAgICAgICJtYXJnaW5CbG9ja0VuZCIs DQogICAgICAgICAgXSwNCiAgICAgICAgICB5dCA9IFsNCiAgICAgICAgICAgICJwIiwNCiAg ICAgICAgICAgICJwdCIsDQogICAgICAgICAgICAicHIiLA0KICAgICAgICAgICAgInBiIiwN CiAgICAgICAgICAgICJwbCIsDQogICAgICAgICAgICAicHgiLA0KICAgICAgICAgICAgInB5 IiwNCiAgICAgICAgICAgICJwYWRkaW5nIiwNCiAgICAgICAgICAgICJwYWRkaW5nVG9wIiwN CiAgICAgICAgICAgICJwYWRkaW5nUmlnaHQiLA0KICAgICAgICAgICAgInBhZGRpbmdCb3R0 b20iLA0KICAgICAgICAgICAgInBhZGRpbmdMZWZ0IiwNCiAgICAgICAgICAgICJwYWRkaW5n WCIsDQogICAgICAgICAgICAicGFkZGluZ1kiLA0KICAgICAgICAgICAgInBhZGRpbmdJbmxp bmUiLA0KICAgICAgICAgICAgInBhZGRpbmdJbmxpbmVTdGFydCIsDQogICAgICAgICAgICAi cGFkZGluZ0lubGluZUVuZCIsDQogICAgICAgICAgICAicGFkZGluZ0Jsb2NrIiwNCiAgICAg ICAgICAgICJwYWRkaW5nQmxvY2tTdGFydCIsDQogICAgICAgICAgICAicGFkZGluZ0Jsb2Nr RW5kIiwNCiAgICAgICAgICBdLA0KICAgICAgICAgIGJ0ID0gWy4uLnZ0LCAuLi55dF07DQog ICAgICAgIGZ1bmN0aW9uIHd0KGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICB2YXIgbzsNCiAg ICAgICAgICBjb25zdCBhID0gbnVsbCAhPSAobyA9IHV0KGUsIHQsICExKSkgPyBvIDogbjsN CiAgICAgICAgICByZXR1cm4gIm51bWJlciIgPT09IHR5cGVvZiBhID8gKGUpID0+ICgic3Ry aW5nIiA9PT0gdHlwZW9mIGUgPyBlIDogYSAqIGUpIDogQXJyYXkuaXNBcnJheShhKSA/IChl KSA9PiAoInN0cmluZyIgPT09IHR5cGVvZiBlID8gZSA6IGFbZV0pIDogImZ1bmN0aW9uIiA9 PT0gdHlwZW9mIGEgPyBhIDogKCkgPT4geyB9Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIHh0KGUpIHsNCiAgICAgICAgICByZXR1cm4gd3QoZSwgInNwYWNpbmciLCA4KTsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBTdChlLCB0KSB7DQogICAgICAgICAgaWYgKCJz dHJpbmciID09PSB0eXBlb2YgdCB8fCBudWxsID09IHQpIHJldHVybiB0Ow0KICAgICAgICAg IGNvbnN0IG4gPSBlKE1hdGguYWJzKHQpKTsNCiAgICAgICAgICByZXR1cm4gdCA+PSAwID8g biA6ICJudW1iZXIiID09PSB0eXBlb2YgbiA/IC1uIDogIi0iLmNvbmNhdChuKTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBrdChlLCB0LCBuLCByKSB7DQogICAgICAgICAgaWYg KC0xID09PSB0LmluZGV4T2YobikpIHJldHVybiBudWxsOw0KICAgICAgICAgIGNvbnN0IG8g PSAoZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgIHJldHVybiAobikgPT4gZS5yZWR1 Y2UoKGUsIHIpID0+ICgoZVtyXSA9IFN0KHQsIG4pKSwgZSksIHt9KTsNCiAgICAgICAgICB9 KShndChuKSwgcik7DQogICAgICAgICAgcmV0dXJuIG90KGUsIGVbbl0sIG8pOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIEV0KGUsIHQpIHsNCiAgICAgICAgICBjb25zdCBuID0g eHQoZS50aGVtZSk7DQogICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGUpDQogICAgICAg ICAgICAubWFwKChyKSA9PiBrdChlLCB0LCByLCBuKSkNCiAgICAgICAgICAgIC5yZWR1Y2Uo ZnQsIHt9KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBDdChlKSB7DQogICAgICAg ICAgcmV0dXJuIEV0KGUsIHZ0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBSdChl KSB7DQogICAgICAgICAgcmV0dXJuIEV0KGUsIHl0KTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBfdChlKSB7DQogICAgICAgICAgcmV0dXJuIEV0KGUsIGJ0KTsNCiAgICAgICAg fQ0KICAgICAgICAoQ3QucHJvcFR5cGVzID0ge30pLCAoQ3QuZmlsdGVyUHJvcHMgPSB2dCks IChSdC5wcm9wVHlwZXMgPSB7fSksIChSdC5maWx0ZXJQcm9wcyA9IHl0KSwgKF90LnByb3BU eXBlcyA9IHt9KSwgKF90LmZpbHRlclByb3BzID0gYnQpOw0KICAgICAgICBjb25zdCBQdCA9 IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRzLmxlbmd0 aCwgdCA9IG5ldyBBcnJheShlKSwgbiA9IDA7IG4gPCBlOyBuKyspIHRbbl0gPSBhcmd1bWVu dHNbbl07DQogICAgICAgICAgY29uc3QgciA9IHQucmVkdWNlKA0KICAgICAgICAgICAgKGUs IHQpID0+ICgNCiAgICAgICAgICAgICAgdC5maWx0ZXJQcm9wcy5mb3JFYWNoKChuKSA9PiB7 DQogICAgICAgICAgICAgICAgZVtuXSA9IHQ7DQogICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICBlDQogICAgICAgICAgICApLA0KICAgICAgICAgICAge30NCiAgICAgICAgICAp LA0KICAgICAgICAgICAgbyA9IChlKSA9PiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKHQsIG4p ID0+IChyW25dID8gZnQodCwgcltuXShlKSkgOiB0KSwge30pOw0KICAgICAgICAgIHJldHVy biAoby5wcm9wVHlwZXMgPSB7fSksIChvLmZpbHRlclByb3BzID0gdC5yZWR1Y2UoKGUsIHQp ID0+IGUuY29uY2F0KHQuZmlsdGVyUHJvcHMpLCBbXSkpLCBvOw0KICAgICAgICB9Ow0KICAg ICAgICBmdW5jdGlvbiBPdChlKSB7DQogICAgICAgICAgcmV0dXJuICJudW1iZXIiICE9PSB0 eXBlb2YgZSA/IGUgOiAiIi5jb25jYXQoZSwgInB4IHNvbGlkIik7DQogICAgICAgIH0NCiAg ICAgICAgY29uc3QgTnQgPSBkdCh7IHByb3A6ICJib3JkZXIiLCB0aGVtZUtleTogImJvcmRl cnMiLCB0cmFuc2Zvcm06IE90IH0pLA0KICAgICAgICAgIFR0ID0gZHQoeyBwcm9wOiAiYm9y ZGVyVG9wIiwgdGhlbWVLZXk6ICJib3JkZXJzIiwgdHJhbnNmb3JtOiBPdCB9KSwNCiAgICAg ICAgICBBdCA9IGR0KHsgcHJvcDogImJvcmRlclJpZ2h0IiwgdGhlbWVLZXk6ICJib3JkZXJz IiwgdHJhbnNmb3JtOiBPdCB9KSwNCiAgICAgICAgICBNdCA9IGR0KHsgcHJvcDogImJvcmRl ckJvdHRvbSIsIHRoZW1lS2V5OiAiYm9yZGVycyIsIHRyYW5zZm9ybTogT3QgfSksDQogICAg ICAgICAgenQgPSBkdCh7IHByb3A6ICJib3JkZXJMZWZ0IiwgdGhlbWVLZXk6ICJib3JkZXJz IiwgdHJhbnNmb3JtOiBPdCB9KSwNCiAgICAgICAgICBqdCA9IGR0KHsgcHJvcDogImJvcmRl ckNvbG9yIiwgdGhlbWVLZXk6ICJwYWxldHRlIiB9KSwNCiAgICAgICAgICBJdCA9IGR0KHsg cHJvcDogImJvcmRlclRvcENvbG9yIiwgdGhlbWVLZXk6ICJwYWxldHRlIiB9KSwNCiAgICAg ICAgICBMdCA9IGR0KHsgcHJvcDogImJvcmRlclJpZ2h0Q29sb3IiLCB0aGVtZUtleTogInBh bGV0dGUiIH0pLA0KICAgICAgICAgIEZ0ID0gZHQoeyBwcm9wOiAiYm9yZGVyQm90dG9tQ29s b3IiLCB0aGVtZUtleTogInBhbGV0dGUiIH0pLA0KICAgICAgICAgIEJ0ID0gZHQoeyBwcm9w OiAiYm9yZGVyTGVmdENvbG9yIiwgdGhlbWVLZXk6ICJwYWxldHRlIiB9KSwNCiAgICAgICAg ICBEdCA9IChlKSA9PiB7DQogICAgICAgICAgICBpZiAodm9pZCAwICE9PSBlLmJvcmRlclJh ZGl1cyAmJiBudWxsICE9PSBlLmJvcmRlclJhZGl1cykgew0KICAgICAgICAgICAgICBjb25z dCB0ID0gd3QoZS50aGVtZSwgInNoYXBlLmJvcmRlclJhZGl1cyIsIDQpLA0KICAgICAgICAg ICAgICAgIG4gPSAoZSkgPT4gKHsgYm9yZGVyUmFkaXVzOiBTdCh0LCBlKSB9KTsNCiAgICAg ICAgICAgICAgcmV0dXJuIG90KGUsIGUuYm9yZGVyUmFkaXVzLCBuKTsNCiAgICAgICAgICAg IH0NCiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgIH07DQogICAgICAgIChE dC5wcm9wVHlwZXMgPSB7fSksIChEdC5maWx0ZXJQcm9wcyA9IFsiYm9yZGVyUmFkaXVzIl0p Ow0KICAgICAgICBQdChOdCwgVHQsIEF0LCBNdCwgenQsIGp0LCBJdCwgTHQsIEZ0LCBCdCwg RHQpOw0KICAgICAgICBjb25zdCBVdCA9IChlKSA9PiB7DQogICAgICAgICAgaWYgKHZvaWQg MCAhPT0gZS5nYXAgJiYgbnVsbCAhPT0gZS5nYXApIHsNCiAgICAgICAgICAgIGNvbnN0IHQg PSB3dChlLnRoZW1lLCAic3BhY2luZyIsIDgpLA0KICAgICAgICAgICAgICBuID0gKGUpID0+ ICh7IGdhcDogU3QodCwgZSkgfSk7DQogICAgICAgICAgICByZXR1cm4gb3QoZSwgZS5nYXAs IG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfTsN CiAgICAgICAgKFV0LnByb3BUeXBlcyA9IHt9KSwgKFV0LmZpbHRlclByb3BzID0gWyJnYXAi XSk7DQogICAgICAgIGNvbnN0IFd0ID0gKGUpID0+IHsNCiAgICAgICAgICBpZiAodm9pZCAw ICE9PSBlLmNvbHVtbkdhcCAmJiBudWxsICE9PSBlLmNvbHVtbkdhcCkgew0KICAgICAgICAg ICAgY29uc3QgdCA9IHd0KGUudGhlbWUsICJzcGFjaW5nIiwgOCksDQogICAgICAgICAgICAg IG4gPSAoZSkgPT4gKHsgY29sdW1uR2FwOiBTdCh0LCBlKSB9KTsNCiAgICAgICAgICAgIHJl dHVybiBvdChlLCBlLmNvbHVtbkdhcCwgbik7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJl dHVybiBudWxsOw0KICAgICAgICB9Ow0KICAgICAgICAoV3QucHJvcFR5cGVzID0ge30pLCAo V3QuZmlsdGVyUHJvcHMgPSBbImNvbHVtbkdhcCJdKTsNCiAgICAgICAgY29uc3QgVnQgPSAo ZSkgPT4gew0KICAgICAgICAgIGlmICh2b2lkIDAgIT09IGUucm93R2FwICYmIG51bGwgIT09 IGUucm93R2FwKSB7DQogICAgICAgICAgICBjb25zdCB0ID0gd3QoZS50aGVtZSwgInNwYWNp bmciLCA4KSwNCiAgICAgICAgICAgICAgbiA9IChlKSA9PiAoeyByb3dHYXA6IFN0KHQsIGUp IH0pOw0KICAgICAgICAgICAgcmV0dXJuIG90KGUsIGUucm93R2FwLCBuKTsNCiAgICAgICAg ICB9DQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH07DQogICAgICAgIChWdC5w cm9wVHlwZXMgPSB7fSksIChWdC5maWx0ZXJQcm9wcyA9IFsicm93R2FwIl0pOw0KICAgICAg ICBQdCgNCiAgICAgICAgICBVdCwNCiAgICAgICAgICBXdCwNCiAgICAgICAgICBWdCwNCiAg ICAgICAgICBkdCh7IHByb3A6ICJncmlkQ29sdW1uIiB9KSwNCiAgICAgICAgICBkdCh7IHBy b3A6ICJncmlkUm93IiB9KSwNCiAgICAgICAgICBkdCh7IHByb3A6ICJncmlkQXV0b0Zsb3ci IH0pLA0KICAgICAgICAgIGR0KHsgcHJvcDogImdyaWRBdXRvQ29sdW1ucyIgfSksDQogICAg ICAgICAgZHQoeyBwcm9wOiAiZ3JpZEF1dG9Sb3dzIiB9KSwNCiAgICAgICAgICBkdCh7IHBy b3A6ICJncmlkVGVtcGxhdGVDb2x1bW5zIiB9KSwNCiAgICAgICAgICBkdCh7IHByb3A6ICJn cmlkVGVtcGxhdGVSb3dzIiB9KSwNCiAgICAgICAgICBkdCh7IHByb3A6ICJncmlkVGVtcGxh dGVBcmVhcyIgfSksDQogICAgICAgICAgZHQoeyBwcm9wOiAiZ3JpZEFyZWEiIH0pDQogICAg ICAgICk7DQogICAgICAgIGZ1bmN0aW9uIEh0KGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4g ImdyZXkiID09PSB0ID8gdCA6IGU7DQogICAgICAgIH0NCiAgICAgICAgUHQoDQogICAgICAg ICAgZHQoeyBwcm9wOiAiY29sb3IiLCB0aGVtZUtleTogInBhbGV0dGUiLCB0cmFuc2Zvcm06 IEh0IH0pLA0KICAgICAgICAgIGR0KHsgcHJvcDogImJnY29sb3IiLCBjc3NQcm9wZXJ0eTog ImJhY2tncm91bmRDb2xvciIsIHRoZW1lS2V5OiAicGFsZXR0ZSIsIHRyYW5zZm9ybTogSHQg fSksDQogICAgICAgICAgZHQoeyBwcm9wOiAiYmFja2dyb3VuZENvbG9yIiwgdGhlbWVLZXk6 ICJwYWxldHRlIiwgdHJhbnNmb3JtOiBIdCB9KQ0KICAgICAgICApOw0KICAgICAgICBmdW5j dGlvbiBxdChlKSB7DQogICAgICAgICAgcmV0dXJuIGUgPD0gMSAmJiAwICE9PSBlID8gIiIu Y29uY2F0KDEwMCAqIGUsICIlIikgOiBlOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0ICR0 ID0gZHQoeyBwcm9wOiAid2lkdGgiLCB0cmFuc2Zvcm06IHF0IH0pLA0KICAgICAgICAgIEt0 ID0gKGUpID0+IHsNCiAgICAgICAgICAgIGlmICh2b2lkIDAgIT09IGUubWF4V2lkdGggJiYg bnVsbCAhPT0gZS5tYXhXaWR0aCkgew0KICAgICAgICAgICAgICBjb25zdCB0ID0gKHQpID0+ IHsNCiAgICAgICAgICAgICAgICB2YXIgbiwgcjsNCiAgICAgICAgICAgICAgICBjb25zdCBv ID0gKG51bGwgPT0gKG4gPSBlLnRoZW1lKSB8fCBudWxsID09IChuID0gbi5icmVha3BvaW50 cykgfHwgbnVsbCA9PSAobiA9IG4udmFsdWVzKSA/IHZvaWQgMCA6IG5bdF0pIHx8IG50W3Rd Ow0KICAgICAgICAgICAgICAgIHJldHVybiBvID8gKCJweCIgIT09IChudWxsID09IChyID0g ZS50aGVtZSkgfHwgbnVsbCA9PSAociA9IHIuYnJlYWtwb2ludHMpID8gdm9pZCAwIDogci51 bml0KSA/IHsgbWF4V2lkdGg6ICIiLmNvbmNhdChvKS5jb25jYXQoZS50aGVtZS5icmVha3Bv aW50cy51bml0KSB9IDogeyBtYXhXaWR0aDogbyB9KSA6IHsgbWF4V2lkdGg6IHF0KHQpIH07 DQogICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgIHJldHVybiBvdChlLCBlLm1heFdp ZHRoLCB0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAg ICAgICAgIH07DQogICAgICAgIEt0LmZpbHRlclByb3BzID0gWyJtYXhXaWR0aCJdOw0KICAg ICAgICBjb25zdCBRdCA9IGR0KHsgcHJvcDogIm1pbldpZHRoIiwgdHJhbnNmb3JtOiBxdCB9 KSwNCiAgICAgICAgICBHdCA9IGR0KHsgcHJvcDogImhlaWdodCIsIHRyYW5zZm9ybTogcXQg fSksDQogICAgICAgICAgWXQgPSBkdCh7IHByb3A6ICJtYXhIZWlnaHQiLCB0cmFuc2Zvcm06 IHF0IH0pLA0KICAgICAgICAgIFh0ID0gZHQoeyBwcm9wOiAibWluSGVpZ2h0IiwgdHJhbnNm b3JtOiBxdCB9KSwNCiAgICAgICAgICBadCA9DQogICAgICAgICAgICAoZHQoeyBwcm9wOiAi c2l6ZSIsIGNzc1Byb3BlcnR5OiAid2lkdGgiLCB0cmFuc2Zvcm06IHF0IH0pLA0KICAgICAg ICAgICAgICBkdCh7IHByb3A6ICJzaXplIiwgY3NzUHJvcGVydHk6ICJoZWlnaHQiLCB0cmFu c2Zvcm06IHF0IH0pLA0KICAgICAgICAgICAgICBQdCgkdCwgS3QsIFF0LCBHdCwgWXQsIFh0 LCBkdCh7IHByb3A6ICJib3hTaXppbmciIH0pKSwNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgYm9yZGVyOiB7IHRoZW1lS2V5OiAiYm9yZGVycyIsIHRyYW5zZm9ybTogT3QgfSwN CiAgICAgICAgICAgICAgYm9yZGVyVG9wOiB7IHRoZW1lS2V5OiAiYm9yZGVycyIsIHRyYW5z Zm9ybTogT3QgfSwNCiAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IHsgdGhlbWVLZXk6ICJi b3JkZXJzIiwgdHJhbnNmb3JtOiBPdCB9LA0KICAgICAgICAgICAgICBib3JkZXJCb3R0b206 IHsgdGhlbWVLZXk6ICJib3JkZXJzIiwgdHJhbnNmb3JtOiBPdCB9LA0KICAgICAgICAgICAg ICBib3JkZXJMZWZ0OiB7IHRoZW1lS2V5OiAiYm9yZGVycyIsIHRyYW5zZm9ybTogT3QgfSwN CiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IHsgdGhlbWVLZXk6ICJwYWxldHRlIiB9LA0K ICAgICAgICAgICAgICBib3JkZXJUb3BDb2xvcjogeyB0aGVtZUtleTogInBhbGV0dGUiIH0s DQogICAgICAgICAgICAgIGJvcmRlclJpZ2h0Q29sb3I6IHsgdGhlbWVLZXk6ICJwYWxldHRl IiB9LA0KICAgICAgICAgICAgICBib3JkZXJCb3R0b21Db2xvcjogeyB0aGVtZUtleTogInBh bGV0dGUiIH0sDQogICAgICAgICAgICAgIGJvcmRlckxlZnRDb2xvcjogeyB0aGVtZUtleTog InBhbGV0dGUiIH0sDQogICAgICAgICAgICAgIGJvcmRlclJhZGl1czogeyB0aGVtZUtleTog InNoYXBlLmJvcmRlclJhZGl1cyIsIHN0eWxlOiBEdCB9LA0KICAgICAgICAgICAgICBjb2xv cjogeyB0aGVtZUtleTogInBhbGV0dGUiLCB0cmFuc2Zvcm06IEh0IH0sDQogICAgICAgICAg ICAgIGJnY29sb3I6IHsgdGhlbWVLZXk6ICJwYWxldHRlIiwgY3NzUHJvcGVydHk6ICJiYWNr Z3JvdW5kQ29sb3IiLCB0cmFuc2Zvcm06IEh0IH0sDQogICAgICAgICAgICAgIGJhY2tncm91 bmRDb2xvcjogeyB0aGVtZUtleTogInBhbGV0dGUiLCB0cmFuc2Zvcm06IEh0IH0sDQogICAg ICAgICAgICAgIHA6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHB0OiB7IHN0eWxl OiBSdCB9LA0KICAgICAgICAgICAgICBwcjogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAg ICAgcGI6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHBsOiB7IHN0eWxlOiBSdCB9 LA0KICAgICAgICAgICAgICBweDogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcHk6 IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHBhZGRpbmc6IHsgc3R5bGU6IFJ0IH0s DQogICAgICAgICAgICAgIHBhZGRpbmdUb3A6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAg ICAgIHBhZGRpbmdSaWdodDogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcGFkZGlu Z0JvdHRvbTogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IHsg c3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHBhZGRpbmdYOiB7IHN0eWxlOiBSdCB9LA0K ICAgICAgICAgICAgICBwYWRkaW5nWTogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAg cGFkZGluZ0lubGluZTogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcGFkZGluZ0lu bGluZVN0YXJ0OiB7IHN0eWxlOiBSdCB9LA0KICAgICAgICAgICAgICBwYWRkaW5nSW5saW5l RW5kOiB7IHN0eWxlOiBSdCB9LA0KICAgICAgICAgICAgICBwYWRkaW5nQmxvY2s6IHsgc3R5 bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHBhZGRpbmdCbG9ja1N0YXJ0OiB7IHN0eWxlOiBS dCB9LA0KICAgICAgICAgICAgICBwYWRkaW5nQmxvY2tFbmQ6IHsgc3R5bGU6IFJ0IH0sDQog ICAgICAgICAgICAgIG06IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG10OiB7IHN0 eWxlOiBDdCB9LA0KICAgICAgICAgICAgICBtcjogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAg ICAgICAgbWI6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1sOiB7IHN0eWxlOiBD dCB9LA0KICAgICAgICAgICAgICBteDogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAgICAgICAg bXk6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpbjogeyBzdHlsZTogQ3Qg fSwNCiAgICAgICAgICAgICAgbWFyZ2luVG9wOiB7IHN0eWxlOiBDdCB9LA0KICAgICAgICAg ICAgICBtYXJnaW5SaWdodDogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAgICAgICAgbWFyZ2lu Qm90dG9tOiB7IHN0eWxlOiBDdCB9LA0KICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiB7IHN0 eWxlOiBDdCB9LA0KICAgICAgICAgICAgICBtYXJnaW5YOiB7IHN0eWxlOiBDdCB9LA0KICAg ICAgICAgICAgICBtYXJnaW5ZOiB7IHN0eWxlOiBDdCB9LA0KICAgICAgICAgICAgICBtYXJn aW5JbmxpbmU6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpbklubGluZVN0 YXJ0OiB7IHN0eWxlOiBDdCB9LA0KICAgICAgICAgICAgICBtYXJnaW5JbmxpbmVFbmQ6IHsg c3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpbkJsb2NrOiB7IHN0eWxlOiBDdCB9 LA0KICAgICAgICAgICAgICBtYXJnaW5CbG9ja1N0YXJ0OiB7IHN0eWxlOiBDdCB9LA0KICAg ICAgICAgICAgICBtYXJnaW5CbG9ja0VuZDogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAgICAg ICAgZGlzcGxheVByaW50OiB7IGNzc1Byb3BlcnR5OiAhMSwgdHJhbnNmb3JtOiAoZSkgPT4g KHsgIkBtZWRpYSBwcmludCI6IHsgZGlzcGxheTogZSB9IH0pIH0sDQogICAgICAgICAgICAg IGRpc3BsYXk6IHt9LA0KICAgICAgICAgICAgICBvdmVyZmxvdzoge30sDQogICAgICAgICAg ICAgIHRleHRPdmVyZmxvdzoge30sDQogICAgICAgICAgICAgIHZpc2liaWxpdHk6IHt9LA0K ICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiB7fSwNCiAgICAgICAgICAgICAgZmxleEJhc2lz OiB7fSwNCiAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjoge30sDQogICAgICAgICAgICAg IGZsZXhXcmFwOiB7fSwNCiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IHt9LA0KICAg ICAgICAgICAgICBhbGlnbkl0ZW1zOiB7fSwNCiAgICAgICAgICAgICAgYWxpZ25Db250ZW50 OiB7fSwNCiAgICAgICAgICAgICAgb3JkZXI6IHt9LA0KICAgICAgICAgICAgICBmbGV4OiB7 fSwNCiAgICAgICAgICAgICAgZmxleEdyb3c6IHt9LA0KICAgICAgICAgICAgICBmbGV4U2hy aW5rOiB7fSwNCiAgICAgICAgICAgICAgYWxpZ25TZWxmOiB7fSwNCiAgICAgICAgICAgICAg anVzdGlmeUl0ZW1zOiB7fSwNCiAgICAgICAgICAgICAganVzdGlmeVNlbGY6IHt9LA0KICAg ICAgICAgICAgICBnYXA6IHsgc3R5bGU6IFV0IH0sDQogICAgICAgICAgICAgIHJvd0dhcDog eyBzdHlsZTogVnQgfSwNCiAgICAgICAgICAgICAgY29sdW1uR2FwOiB7IHN0eWxlOiBXdCB9 LA0KICAgICAgICAgICAgICBncmlkQ29sdW1uOiB7fSwNCiAgICAgICAgICAgICAgZ3JpZFJv dzoge30sDQogICAgICAgICAgICAgIGdyaWRBdXRvRmxvdzoge30sDQogICAgICAgICAgICAg IGdyaWRBdXRvQ29sdW1uczoge30sDQogICAgICAgICAgICAgIGdyaWRBdXRvUm93czoge30s DQogICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IHt9LA0KICAgICAgICAgICAg ICBncmlkVGVtcGxhdGVSb3dzOiB7fSwNCiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQXJl YXM6IHt9LA0KICAgICAgICAgICAgICBncmlkQXJlYToge30sDQogICAgICAgICAgICAgIHBv c2l0aW9uOiB7fSwNCiAgICAgICAgICAgICAgekluZGV4OiB7IHRoZW1lS2V5OiAiekluZGV4 IiB9LA0KICAgICAgICAgICAgICB0b3A6IHt9LA0KICAgICAgICAgICAgICByaWdodDoge30s DQogICAgICAgICAgICAgIGJvdHRvbToge30sDQogICAgICAgICAgICAgIGxlZnQ6IHt9LA0K ICAgICAgICAgICAgICBib3hTaGFkb3c6IHsgdGhlbWVLZXk6ICJzaGFkb3dzIiB9LA0KICAg ICAgICAgICAgICB3aWR0aDogeyB0cmFuc2Zvcm06IHF0IH0sDQogICAgICAgICAgICAgIG1h eFdpZHRoOiB7IHN0eWxlOiBLdCB9LA0KICAgICAgICAgICAgICBtaW5XaWR0aDogeyB0cmFu c2Zvcm06IHF0IH0sDQogICAgICAgICAgICAgIGhlaWdodDogeyB0cmFuc2Zvcm06IHF0IH0s DQogICAgICAgICAgICAgIG1heEhlaWdodDogeyB0cmFuc2Zvcm06IHF0IH0sDQogICAgICAg ICAgICAgIG1pbkhlaWdodDogeyB0cmFuc2Zvcm06IHF0IH0sDQogICAgICAgICAgICAgIGJv eFNpemluZzoge30sDQogICAgICAgICAgICAgIGZvbnRGYW1pbHk6IHsgdGhlbWVLZXk6ICJ0 eXBvZ3JhcGh5IiB9LA0KICAgICAgICAgICAgICBmb250U2l6ZTogeyB0aGVtZUtleTogInR5 cG9ncmFwaHkiIH0sDQogICAgICAgICAgICAgIGZvbnRTdHlsZTogeyB0aGVtZUtleTogInR5 cG9ncmFwaHkiIH0sDQogICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IHsgdGhlbWVLZXk6ICJ0 eXBvZ3JhcGh5IiB9LA0KICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiB7fSwNCiAgICAg ICAgICAgICAgdGV4dFRyYW5zZm9ybToge30sDQogICAgICAgICAgICAgIGxpbmVIZWlnaHQ6 IHt9LA0KICAgICAgICAgICAgICB0ZXh0QWxpZ246IHt9LA0KICAgICAgICAgICAgICB0eXBv Z3JhcGh5OiB7IGNzc1Byb3BlcnR5OiAhMSwgdGhlbWVLZXk6ICJ0eXBvZ3JhcGh5IiB9LA0K ICAgICAgICAgICAgfSk7DQogICAgICAgIGNvbnN0IEp0ID0gKGZ1bmN0aW9uICgpIHsNCiAg ICAgICAgICBmdW5jdGlvbiBlKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAgIGNvbnN0IG8g PSB7IFtlXTogdCwgdGhlbWU6IG4gfSwNCiAgICAgICAgICAgICAgYSA9IHJbZV07DQogICAg ICAgICAgICBpZiAoIWEpIHJldHVybiB7IFtlXTogdCB9Ow0KICAgICAgICAgICAgY29uc3Qg eyBjc3NQcm9wZXJ0eTogaSA9IGUsIHRoZW1lS2V5OiBsLCB0cmFuc2Zvcm06IHMsIHN0eWxl OiB1IH0gPSBhOw0KICAgICAgICAgICAgaWYgKG51bGwgPT0gdCkgcmV0dXJuIG51bGw7DQog ICAgICAgICAgICBpZiAoInR5cG9ncmFwaHkiID09PSBsICYmICJpbmhlcml0IiA9PT0gdCkg cmV0dXJuIHsgW2VdOiB0IH07DQogICAgICAgICAgICBjb25zdCBjID0gdXQobiwgbCkgfHwg e307DQogICAgICAgICAgICBpZiAodSkgcmV0dXJuIHUobyk7DQogICAgICAgICAgICByZXR1 cm4gb3QobywgdCwgKHQpID0+IHsNCiAgICAgICAgICAgICAgbGV0IG4gPSBjdChjLCBzLCB0 KTsNCiAgICAgICAgICAgICAgcmV0dXJuIHQgPT09IG4gJiYgInN0cmluZyIgPT09IHR5cGVv ZiB0ICYmIChuID0gY3QoYywgcywgIiIuY29uY2F0KGUpLmNvbmNhdCgiZGVmYXVsdCIgPT09 IHQgPyAiIiA6IHN0KHQpKSwgdCkpLCAhMSA9PT0gaSA/IG4gOiB7IFtpXTogbiB9Ow0KICAg ICAgICAgICAgfSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBmdW5jdGlvbiB0 KG4pIHsNCiAgICAgICAgICAgIHZhciByOw0KICAgICAgICAgICAgY29uc3QgeyBzeDogbywg dGhlbWU6IGEgPSB7fSB9ID0gbiB8fCB7fTsNCiAgICAgICAgICAgIGlmICghbykgcmV0dXJu IG51bGw7DQogICAgICAgICAgICBjb25zdCBpID0gbnVsbCAhPSAociA9IGEudW5zdGFibGVf c3hDb25maWcpID8gciA6IFp0Ow0KICAgICAgICAgICAgZnVuY3Rpb24gbChuKSB7DQogICAg ICAgICAgICAgIGxldCByID0gbjsNCiAgICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09 IHR5cGVvZiBuKSByID0gbihhKTsNCiAgICAgICAgICAgICAgZWxzZSBpZiAoIm9iamVjdCIg IT09IHR5cGVvZiBuKSByZXR1cm4gbjsNCiAgICAgICAgICAgICAgaWYgKCFyKSByZXR1cm4g bnVsbDsNCiAgICAgICAgICAgICAgY29uc3QgbyA9IGF0KGEuYnJlYWtwb2ludHMpLA0KICAg ICAgICAgICAgICAgIGwgPSBPYmplY3Qua2V5cyhvKTsNCiAgICAgICAgICAgICAgbGV0IHMg PSBvOw0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgIE9iamVjdC5r ZXlzKHIpLmZvckVhY2goKG4pID0+IHsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IG8gPSAo KGwgPSByW25dKSwgKHUgPSBhKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGwgPyBsKHUpIDog bCk7DQogICAgICAgICAgICAgICAgICB2YXIgbCwgdTsNCiAgICAgICAgICAgICAgICAgIGlm IChudWxsICE9PSBvICYmIHZvaWQgMCAhPT0gbykNCiAgICAgICAgICAgICAgICAgICAgaWYg KCJvYmplY3QiID09PSB0eXBlb2YgbykNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoaVtu XSkgcyA9IGZ0KHMsIGUobiwgbywgYSwgaSkpOw0KICAgICAgICAgICAgICAgICAgICAgIGVs c2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IG90KHsgdGhlbWU6IGEg fSwgbywgKGUpID0+ICh7IFtuXTogZSB9KSk7DQogICAgICAgICAgICAgICAgICAgICAgICAh KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZSA9 IGFyZ3VtZW50cy5sZW5ndGgsIHQgPSBuZXcgQXJyYXkoZSksIG4gPSAwOyBuIDwgZTsgbisr KSB0W25dID0gYXJndW1lbnRzW25dOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCByID0gdC5yZWR1Y2UoKGUsIHQpID0+IGUuY29uY2F0KE9iamVjdC5rZXlzKHQpKSwgW10p LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gPSBuZXcgU2V0KHIpOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdC5ldmVyeSgoZSkgPT4gby5zaXplID09PSBP YmplY3Qua2V5cyhlKS5sZW5ndGgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSkoZSwg bykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAocyA9IGZ0KHMsIGUpKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICA6IChzW25dID0gdCh7IHN4OiBvLCB0aGVtZTogYSB9KSk7 DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHMg PSBmdChzLCBlKG4sIG8sIGEsIGkpKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICAgICBpdChsLCBzKQ0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkobykgPyBvLm1hcChsKSA6IGwobyk7DQog ICAgICAgICAgfTsNCiAgICAgICAgfSkoKTsNCiAgICAgICAgSnQuZmlsdGVyUHJvcHMgPSBb InN4Il07DQogICAgICAgIGNvbnN0IGVuID0gSnQsDQogICAgICAgICAgdG4gPSBbImJyZWFr cG9pbnRzIiwgInBhbGV0dGUiLCAic3BhY2luZyIsICJzaGFwZSJdOw0KICAgICAgICBjb25z dCBubiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5n dGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDoge307 DQogICAgICAgICAgY29uc3QgeyBicmVha3BvaW50czogdCA9IHt9LCBwYWxldHRlOiBuID0g e30sIHNwYWNpbmc6IHIsIHNoYXBlOiBvID0ge30gfSA9IGUsDQogICAgICAgICAgICBsID0g YShlLCB0biksDQogICAgICAgICAgICBzID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAg ICAgIGNvbnN0IHsgdmFsdWVzOiB0ID0geyB4czogMCwgc206IDYwMCwgbWQ6IDkwMCwgbGc6 IDEyMDAsIHhsOiAxNTM2IH0sIHVuaXQ6IG4gPSAicHgiLCBzdGVwOiByID0gNSB9ID0gZSwN CiAgICAgICAgICAgICAgICBvID0gYShlLCBKZSksDQogICAgICAgICAgICAgICAgbCA9IGV0 KHQpLA0KICAgICAgICAgICAgICAgIHMgPSBPYmplY3Qua2V5cyhsKTsNCiAgICAgICAgICAg ICAgZnVuY3Rpb24gdShlKSB7DQogICAgICAgICAgICAgICAgY29uc3QgciA9ICJudW1iZXIi ID09PSB0eXBlb2YgdFtlXSA/IHRbZV0gOiBlOw0KICAgICAgICAgICAgICAgIHJldHVybiAi QG1lZGlhIChtaW4td2lkdGg6Ii5jb25jYXQocikuY29uY2F0KG4sICIpIik7DQogICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgZnVuY3Rpb24gYyhlKSB7DQogICAgICAgICAgICAg ICAgY29uc3QgbyA9ICJudW1iZXIiID09PSB0eXBlb2YgdFtlXSA/IHRbZV0gOiBlOw0KICAg ICAgICAgICAgICAgIHJldHVybiAiQG1lZGlhIChtYXgtd2lkdGg6Ii5jb25jYXQobyAtIHIg LyAxMDApLmNvbmNhdChuLCAiKSIpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg IGZ1bmN0aW9uIGQoZSwgbykgew0KICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBzLmluZGV4 T2Yobyk7DQogICAgICAgICAgICAgICAgcmV0dXJuICJAbWVkaWEgKG1pbi13aWR0aDoiLmNv bmNhdCgibnVtYmVyIiA9PT0gdHlwZW9mIHRbZV0gPyB0W2VdIDogZSkuY29uY2F0KG4sICIp IGFuZCAiKSArICIobWF4LXdpZHRoOiIuY29uY2F0KCgtMSAhPT0gYSAmJiAibnVtYmVyIiA9 PT0gdHlwZW9mIHRbc1thXV0gPyB0W3NbYV1dIDogbykgLSByIC8gMTAwKS5jb25jYXQobiwg IikiKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gaSgNCiAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICBrZXlzOiBzLA0KICAgICAgICAgICAg ICAgICAgdmFsdWVzOiBsLA0KICAgICAgICAgICAgICAgICAgdXA6IHUsDQogICAgICAgICAg ICAgICAgICBkb3duOiBjLA0KICAgICAgICAgICAgICAgICAgYmV0d2VlbjogZCwNCiAgICAg ICAgICAgICAgICAgIG9ubHk6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAg IHJldHVybiBzLmluZGV4T2YoZSkgKyAxIDwgcy5sZW5ndGggPyBkKGUsIHNbcy5pbmRleE9m KGUpICsgMV0pIDogdShlKTsNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAg ICAgICBub3Q6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHQg PSBzLmluZGV4T2YoZSk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAwID09PSB0ID8g dShzWzFdKSA6IHQgPT09IHMubGVuZ3RoIC0gMSA/IGMoc1t0XSkgOiBkKGUsIHNbcy5pbmRl eE9mKGUpICsgMV0pLnJlcGxhY2UoIkBtZWRpYSIsICJAbWVkaWEgbm90IGFsbCBhbmQiKTsN CiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICB1bml0OiBuLA0KICAg ICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgbw0KICAgICAgICAgICAgICApOw0K ICAgICAgICAgICAgfSkodCksDQogICAgICAgICAgICB1ID0gKGZ1bmN0aW9uICgpIHsNCiAg ICAgICAgICAgICAgbGV0IGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiB2b2lkIDAgIT09 IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6IDg7DQogICAgICAgICAgICAgIGlmIChl Lm11aSkgcmV0dXJuIGU7DQogICAgICAgICAgICAgIGNvbnN0IHQgPSB4dCh7IHNwYWNpbmc6 IGUgfSksDQogICAgICAgICAgICAgICAgbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAg ICAgICAgIGZvciAodmFyIGUgPSBhcmd1bWVudHMubGVuZ3RoLCBuID0gbmV3IEFycmF5KGUp LCByID0gMDsgciA8IGU7IHIrKykgbltyXSA9IGFyZ3VtZW50c1tyXTsNCiAgICAgICAgICAg ICAgICAgIHJldHVybiAoMCA9PT0gbi5sZW5ndGggPyBbMV0gOiBuKQ0KICAgICAgICAgICAg ICAgICAgICAubWFwKChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgY29uc3QgbiA9 IHQoZSk7DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJudW1iZXIiID09PSB0eXBl b2YgbiA/ICIiLmNvbmNhdChuLCAicHgiKSA6IG47DQogICAgICAgICAgICAgICAgICAgIH0p DQogICAgICAgICAgICAgICAgICAgIC5qb2luKCIgIik7DQogICAgICAgICAgICAgICAgfTsN CiAgICAgICAgICAgICAgcmV0dXJuIChuLm11aSA9ICEwKSwgbjsNCiAgICAgICAgICAgIH0p KHIpOw0KICAgICAgICAgIGxldCBjID0gWmUoeyBicmVha3BvaW50czogcywgZGlyZWN0aW9u OiAibHRyIiwgY29tcG9uZW50czoge30sIHBhbGV0dGU6IGkoeyBtb2RlOiAibGlnaHQiIH0s IG4pLCBzcGFjaW5nOiB1LCBzaGFwZTogaSh7fSwgdHQsIG8pIH0sIGwpOw0KICAgICAgICAg IGZvciAodmFyIGQgPSBhcmd1bWVudHMubGVuZ3RoLCBmID0gbmV3IEFycmF5KGQgPiAxID8g ZCAtIDEgOiAwKSwgcCA9IDE7IHAgPCBkOyBwKyspIGZbcCAtIDFdID0gYXJndW1lbnRzW3Bd Ow0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAoYyA9IGYucmVkdWNlKChlLCB0 KSA9PiBaZShlLCB0KSwgYykpLA0KICAgICAgICAgICAgKGMudW5zdGFibGVfc3hDb25maWcg PSBpKHt9LCBadCwgbnVsbCA9PSBsID8gdm9pZCAwIDogbC51bnN0YWJsZV9zeENvbmZpZykp LA0KICAgICAgICAgICAgKGMudW5zdGFibGVfc3ggPSBmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgICAgICByZXR1cm4gZW4oeyBzeDogZSwgdGhlbWU6IHRoaXMgfSk7DQogICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgIGMNCiAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAg ICAgIHJuID0gWyJ2YXJpYW50Il07DQogICAgICAgIGZ1bmN0aW9uIG9uKGUpIHsNCiAgICAg ICAgICByZXR1cm4gMCA9PT0gZS5sZW5ndGg7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gYW4oZSkgew0KICAgICAgICAgIGNvbnN0IHsgdmFyaWFudDogdCB9ID0gZSwNCiAgICAg ICAgICAgIG4gPSBhKGUsIHJuKTsNCiAgICAgICAgICBsZXQgciA9IHQgfHwgIiI7DQogICAg ICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIE9iamVjdC5rZXlzKG4pDQogICAgICAgICAg ICAgIC5zb3J0KCkNCiAgICAgICAgICAgICAgLmZvckVhY2goKHQpID0+IHsNCiAgICAgICAg ICAgICAgICByICs9ICJjb2xvciIgPT09IHQgPyAob24ocikgPyBlW3RdIDogc3QoZVt0XSkp IDogIiIuY29uY2F0KG9uKHIpID8gdCA6IHN0KHQpKS5jb25jYXQoc3QoZVt0XS50b1N0cmlu ZygpKSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgcg0KICAgICAgICAgICk7 DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgbG4gPSBbIm5hbWUiLCAic2xvdCIsICJza2lw VmFyaWFudHNSZXNvbHZlciIsICJza2lwU3giLCAib3ZlcnJpZGVzUmVzb2x2ZXIiXTsNCiAg ICAgICAgY29uc3Qgc24gPSAoZSkgPT4gew0KICAgICAgICAgIGNvbnN0IHQgPSB7fTsNCiAg ICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgZSAmJg0KICAgICAgICAgICAgZS5mb3JF YWNoKChlKSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IG4gPSBhbihlLnByb3BzKTsNCiAg ICAgICAgICAgICAgdFtuXSA9IGUuc3R5bGU7DQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgIHQNCiAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICAgIHVuID0gKGUsIHQs IG4pID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogciA9IHt9IH0gPSBl LA0KICAgICAgICAgICAgICBvID0gW107DQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAg ICAgICAgICBuICYmDQogICAgICAgICAgICAgIG4uZm9yRWFjaCgobikgPT4gew0KICAgICAg ICAgICAgICAgIGxldCBhID0gITA7DQogICAgICAgICAgICAgICAgT2JqZWN0LmtleXMobi5w cm9wcykuZm9yRWFjaCgodCkgPT4gew0KICAgICAgICAgICAgICAgICAgclt0XSAhPT0gbi5w cm9wc1t0XSAmJiBlW3RdICE9PSBuLnByb3BzW3RdICYmIChhID0gITEpOw0KICAgICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgYSAmJiBvLnB1c2godFthbihuLnByb3Bz KV0pOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgbw0KICAgICAgICAgICAg KTsNCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBjbihlKSB7DQogICAgICAgICAg cmV0dXJuICJvd25lclN0YXRlIiAhPT0gZSAmJiAidGhlbWUiICE9PSBlICYmICJzeCIgIT09 IGUgJiYgImFzIiAhPT0gZTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBkbiA9IG5uKCks DQogICAgICAgICAgZm4gPSAoZSkgPT4gKGUgPyBlLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgp ICsgZS5zbGljZSgxKSA6IGUpOw0KICAgICAgICBmdW5jdGlvbiBwbihlKSB7DQogICAgICAg ICAgbGV0IHsgZGVmYXVsdFRoZW1lOiB0LCB0aGVtZTogbiwgdGhlbWVJZDogciB9ID0gZTsN CiAgICAgICAgICByZXR1cm4gKG8gPSBuKSwgMCA9PT0gT2JqZWN0LmtleXMobykubGVuZ3Ro ID8gdCA6IG5bcl0gfHwgbjsNCiAgICAgICAgICB2YXIgbzsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBobihlKSB7DQogICAgICAgICAgcmV0dXJuIGUgPyAodCwgbikgPT4gbltl XSA6IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgbW4gPSAoZSkgPT4gew0KICAg ICAgICAgIGxldCB7IHN0eWxlZEFyZzogdCwgcHJvcHM6IG4sIGRlZmF1bHRUaGVtZTogciwg dGhlbWVJZDogbyB9ID0gZTsNCiAgICAgICAgICBjb25zdCBhID0gdChpKHt9LCBuLCB7IHRo ZW1lOiBwbihpKHt9LCBuLCB7IGRlZmF1bHRUaGVtZTogciwgdGhlbWVJZDogbyB9KSkgfSkp Ow0KICAgICAgICAgIGxldCBsOw0KICAgICAgICAgIGlmICgoYSAmJiBhLnZhcmlhbnRzICYm ICgobCA9IGEudmFyaWFudHMpLCBkZWxldGUgYS52YXJpYW50cyksIGwpKSB7DQogICAgICAg ICAgICByZXR1cm4gW2EsIC4uLnVuKG4sIHNuKGwpLCBsKV07DQogICAgICAgICAgfQ0KICAg ICAgICAgIHJldHVybiBhOw0KICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBnbigpIHsN CiAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0g YXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDoge307DQogICAgICAgICAgY29uc3QgeyB0 aGVtZUlkOiB0LCBkZWZhdWx0VGhlbWU6IG4gPSBkbiwgcm9vdFNob3VsZEZvcndhcmRQcm9w OiByID0gY24sIHNsb3RTaG91bGRGb3J3YXJkUHJvcDogbyA9IGNuIH0gPSBlLA0KICAgICAg ICAgICAgbCA9IChlKSA9PiBlbihpKHt9LCBlLCB7IHRoZW1lOiBwbihpKHt9LCBlLCB7IGRl ZmF1bHRUaGVtZTogbiwgdGhlbWVJZDogdCB9KSkgfSkpOw0KICAgICAgICAgIHJldHVybiAo DQogICAgICAgICAgICAobC5fX211aV9zeXN0ZW1TeCA9ICEwKSwNCiAgICAgICAgICAgIGZ1 bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGxldCBzID0gYXJndW1lbnRzLmxlbmd0aCA+ IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMV0gPyBhcmd1bWVudHNbMV0gOiB7fTsNCiAg ICAgICAgICAgICAgKChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJh eShlLl9fZW1vdGlvbl9zdHlsZXMpICYmIChlLl9fZW1vdGlvbl9zdHlsZXMgPSB0KGUuX19l bW90aW9uX3N0eWxlcykpOw0KICAgICAgICAgICAgICB9KShlLCAoZSkgPT4gZS5maWx0ZXIo KGUpID0+ICEobnVsbCAhPSBlICYmIGUuX19tdWlfc3lzdGVtU3gpKSk7DQogICAgICAgICAg ICAgIGNvbnN0IHsgbmFtZTogdSwgc2xvdDogYywgc2tpcFZhcmlhbnRzUmVzb2x2ZXI6IGQs IHNraXBTeDogZiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IHAgPSBobihmbihjKSkgfSA9IHMsDQog ICAgICAgICAgICAgICAgaCA9IGEocywgbG4pLA0KICAgICAgICAgICAgICAgIG0gPSB2b2lk IDAgIT09IGQgPyBkIDogKGMgJiYgIlJvb3QiICE9PSBjICYmICJyb290IiAhPT0gYykgfHwg ITEsDQogICAgICAgICAgICAgICAgZyA9IGYgfHwgITE7DQogICAgICAgICAgICAgIGxldCB2 ID0gY247DQogICAgICAgICAgICAgICJSb290IiA9PT0gYyB8fCAicm9vdCIgPT09IGMNCiAg ICAgICAgICAgICAgICA/ICh2ID0gcikNCiAgICAgICAgICAgICAgICA6IGMNCiAgICAgICAg ICAgICAgICAgID8gKHYgPSBvKQ0KICAgICAgICAgICAgICAgICAgOiAoZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJzdHJpbmciID09PSB0eXBlb2YgZSAm JiBlLmNoYXJDb2RlQXQoMCkgPiA5NjsNCiAgICAgICAgICAgICAgICAgIH0pKGUpICYmICh2 ID0gdm9pZCAwKTsNCiAgICAgICAgICAgICAgY29uc3QgeSA9IEdlKGUsIGkoeyBzaG91bGRG b3J3YXJkUHJvcDogdiwgbGFiZWw6IHVuZGVmaW5lZCB9LCBoKSksDQogICAgICAgICAgICAg ICAgYiA9IGZ1bmN0aW9uIChyKSB7DQogICAgICAgICAgICAgICAgICBmb3IgKHZhciBvID0g YXJndW1lbnRzLmxlbmd0aCwgYSA9IG5ldyBBcnJheShvID4gMSA/IG8gLSAxIDogMCksIHMg PSAxOyBzIDwgbzsgcysrKSBhW3MgLSAxXSA9IGFyZ3VtZW50c1tzXTsNCiAgICAgICAgICAg ICAgICAgIGNvbnN0IGMgPSBhDQogICAgICAgICAgICAgICAgICAgID8gYS5tYXAoKGUpID0+ IHsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGUg JiYgZS5fX2Vtb3Rpb25fcmVhbCAhPT0gZSkgcmV0dXJuIChyKSA9PiBtbih7IHN0eWxlZEFy ZzogZSwgcHJvcHM6IHIsIGRlZmF1bHRUaGVtZTogbiwgdGhlbWVJZDogdCB9KTsNCiAgICAg ICAgICAgICAgICAgICAgICBpZiAoWWUoZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IGxldCB0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBuID0gZTsNCiAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgIGUgJiYN CiAgICAgICAgICAgICAgICAgICAgICAgICAgZS52YXJpYW50cyAmJg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAoKHQgPSBlLnZhcmlhbnRzKSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZWxldGUgbi52YXJpYW50cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobiA9IChuKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9 IGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bihuLCBzbih0KSwgdCkuZm9yRWFjaCgoZSkgPT4g ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBaZShyLCBlKTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICBuDQogICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgICAgICAgICAg ICAgfSkNCiAgICAgICAgICAgICAgICAgICAgOiBbXTsNCiAgICAgICAgICAgICAgICAgIGxl dCBkID0gcjsNCiAgICAgICAgICAgICAgICAgIGlmIChZZShyKSkgew0KICAgICAgICAgICAg ICAgICAgICBsZXQgZTsNCiAgICAgICAgICAgICAgICAgICAgciAmJg0KICAgICAgICAgICAg ICAgICAgICAgIHIudmFyaWFudHMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAoKGUgPSBy LnZhcmlhbnRzKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBkLnZhcmlhbnRz LA0KICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSAodCkgPT4gew0KICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbiA9IHI7DQogICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW4odCwgc24oZSksIGUpLmZv ckVhY2goKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSBaZShu LCBlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuDQogICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAg ICAgICAgICAgICAgICAgICB9KSk7DQogICAgICAgICAgICAgICAgICB9IGVsc2UgImZ1bmN0 aW9uIiA9PT0gdHlwZW9mIHIgJiYgci5fX2Vtb3Rpb25fcmVhbCAhPT0gciAmJiAoZCA9IChl KSA9PiBtbih7IHN0eWxlZEFyZzogciwgcHJvcHM6IGUsIGRlZmF1bHRUaGVtZTogbiwgdGhl bWVJZDogdCB9KSk7DQogICAgICAgICAgICAgICAgICB1ICYmDQogICAgICAgICAgICAgICAg ICAgIHAgJiYNCiAgICAgICAgICAgICAgICAgICAgYy5wdXNoKChlKSA9PiB7DQogICAgICAg ICAgICAgICAgICAgICAgY29uc3QgciA9IHBuKGkoe30sIGUsIHsgZGVmYXVsdFRoZW1lOiBu LCB0aGVtZUlkOiB0IH0pKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIG8gPSAoKGUsIHQp ID0+ICh0LmNvbXBvbmVudHMgJiYgdC5jb21wb25lbnRzW2VdICYmIHQuY29tcG9uZW50c1tl XS5zdHlsZU92ZXJyaWRlcyA/IHQuY29tcG9uZW50c1tlXS5zdHlsZU92ZXJyaWRlcyA6IG51 bGwpKSh1LCByKTsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAobykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgdCA9IHt9Ow0KICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMobyku Zm9yRWFjaCgobikgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBbbywg YV0gPSBuOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRbb10gPSAiZnVuY3Rpb24i ID09PSB0eXBlb2YgYSA/IGEoaSh7fSwgZSwgeyB0aGVtZTogciB9KSkgOiBhOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcChl LCB0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICB1ICYmDQogICAgICAgICAgICAgICAg ICAgICFtICYmDQogICAgICAgICAgICAgICAgICAgIGMucHVzaCgoZSkgPT4gew0KICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBwbihpKHt9LCBlLCB7IGRlZmF1bHRUaGVtZTog biwgdGhlbWVJZDogdCB9KSk7DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoZSwg dCwgbiwgcikgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG87DQogICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBhID0gbnVsbCA9PSBuIHx8IG51bGwgPT0gKG8gPSBu LmNvbXBvbmVudHMpIHx8IG51bGwgPT0gKG8gPSBvW3JdKSA/IHZvaWQgMCA6IG8udmFyaWFu dHM7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW4oZSwgdCwgYSk7DQogICAg ICAgICAgICAgICAgICAgICAgfSkoDQogICAgICAgICAgICAgICAgICAgICAgICBlLA0KICAg ICAgICAgICAgICAgICAgICAgICAgKChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBuID0gW107DQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0 ICYmIHQuY29tcG9uZW50cyAmJiB0LmNvbXBvbmVudHNbZV0gJiYgdC5jb21wb25lbnRzW2Vd LnZhcmlhbnRzICYmIChuID0gdC5jb21wb25lbnRzW2VdLnZhcmlhbnRzKSwgc24obik7DQog ICAgICAgICAgICAgICAgICAgICAgICB9KSh1LCByKSwNCiAgICAgICAgICAgICAgICAgICAg ICAgIHIsDQogICAgICAgICAgICAgICAgICAgICAgICB1DQogICAgICAgICAgICAgICAgICAg ICAgKTsNCiAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgIGcg fHwgYy5wdXNoKGwpOw0KICAgICAgICAgICAgICAgICAgY29uc3QgZiA9IGMubGVuZ3RoIC0g YS5sZW5ndGg7DQogICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyKSAmJiBm ID4gMCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gbmV3IEFycmF5KGYpLmZp bGwoIiIpOw0KICAgICAgICAgICAgICAgICAgICAoZCA9IFsuLi5yLCAuLi5lXSksIChkLnJh dyA9IFsuLi5yLnJhdywgLi4uZV0pOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgY29uc3QgaCA9IHkoZCwgLi4uYyk7DQogICAgICAgICAgICAgICAgICByZXR1 cm4gZS5tdWlOYW1lICYmIChoLm11aU5hbWUgPSBlLm11aU5hbWUpLCBoOw0KICAgICAgICAg ICAgICAgIH07DQogICAgICAgICAgICAgIHJldHVybiB5LndpdGhDb25maWcgJiYgKGIud2l0 aENvbmZpZyA9IHkud2l0aENvbmZpZyksIGI7DQogICAgICAgICAgICB9DQogICAgICAgICAg KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB2bihlLCB0KSB7DQogICAgICAgICAg cmV0dXJuIGkoeyB0b29sYmFyOiB7IG1pbkhlaWdodDogNTYsIFtlLnVwKCJ4cyIpXTogeyAi QG1lZGlhIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSI6IHsgbWluSGVpZ2h0OiA0OCB9IH0s IFtlLnVwKCJzbSIpXTogeyBtaW5IZWlnaHQ6IDY0IH0gfSB9LCB0KTsNCiAgICAgICAgfQ0K ICAgICAgICBjb25zdCB5biA9IHsgYmxhY2s6ICIjMDAwIiwgd2hpdGU6ICIjZmZmIiB9LA0K ICAgICAgICAgIGJuID0gew0KICAgICAgICAgICAgNTA6ICIjZmFmYWZhIiwNCiAgICAgICAg ICAgIDEwMDogIiNmNWY1ZjUiLA0KICAgICAgICAgICAgMjAwOiAiI2VlZWVlZSIsDQogICAg ICAgICAgICAzMDA6ICIjZTBlMGUwIiwNCiAgICAgICAgICAgIDQwMDogIiNiZGJkYmQiLA0K ICAgICAgICAgICAgNTAwOiAiIzllOWU5ZSIsDQogICAgICAgICAgICA2MDA6ICIjNzU3NTc1 IiwNCiAgICAgICAgICAgIDcwMDogIiM2MTYxNjEiLA0KICAgICAgICAgICAgODAwOiAiIzQy NDI0MiIsDQogICAgICAgICAgICA5MDA6ICIjMjEyMTIxIiwNCiAgICAgICAgICAgIEExMDA6 ICIjZjVmNWY1IiwNCiAgICAgICAgICAgIEEyMDA6ICIjZWVlZWVlIiwNCiAgICAgICAgICAg IEE0MDA6ICIjYmRiZGJkIiwNCiAgICAgICAgICAgIEE3MDA6ICIjNjE2MTYxIiwNCiAgICAg ICAgICB9LA0KICAgICAgICAgIHduID0gew0KICAgICAgICAgICAgNTA6ICIjZjNlNWY1IiwN CiAgICAgICAgICAgIDEwMDogIiNlMWJlZTciLA0KICAgICAgICAgICAgMjAwOiAiI2NlOTNk OCIsDQogICAgICAgICAgICAzMDA6ICIjYmE2OGM4IiwNCiAgICAgICAgICAgIDQwMDogIiNh YjQ3YmMiLA0KICAgICAgICAgICAgNTAwOiAiIzljMjdiMCIsDQogICAgICAgICAgICA2MDA6 ICIjOGUyNGFhIiwNCiAgICAgICAgICAgIDcwMDogIiM3YjFmYTIiLA0KICAgICAgICAgICAg ODAwOiAiIzZhMWI5YSIsDQogICAgICAgICAgICA5MDA6ICIjNGExNDhjIiwNCiAgICAgICAg ICAgIEExMDA6ICIjZWE4MGZjIiwNCiAgICAgICAgICAgIEEyMDA6ICIjZTA0MGZiIiwNCiAg ICAgICAgICAgIEE0MDA6ICIjZDUwMGY5IiwNCiAgICAgICAgICAgIEE3MDA6ICIjYWEwMGZm IiwNCiAgICAgICAgICB9LA0KICAgICAgICAgIHhuID0gew0KICAgICAgICAgICAgNTA6ICIj ZmZlYmVlIiwNCiAgICAgICAgICAgIDEwMDogIiNmZmNkZDIiLA0KICAgICAgICAgICAgMjAw OiAiI2VmOWE5YSIsDQogICAgICAgICAgICAzMDA6ICIjZTU3MzczIiwNCiAgICAgICAgICAg IDQwMDogIiNlZjUzNTAiLA0KICAgICAgICAgICAgNTAwOiAiI2Y0NDMzNiIsDQogICAgICAg ICAgICA2MDA6ICIjZTUzOTM1IiwNCiAgICAgICAgICAgIDcwMDogIiNkMzJmMmYiLA0KICAg ICAgICAgICAgODAwOiAiI2M2MjgyOCIsDQogICAgICAgICAgICA5MDA6ICIjYjcxYzFjIiwN CiAgICAgICAgICAgIEExMDA6ICIjZmY4YTgwIiwNCiAgICAgICAgICAgIEEyMDA6ICIjZmY1 MjUyIiwNCiAgICAgICAgICAgIEE0MDA6ICIjZmYxNzQ0IiwNCiAgICAgICAgICAgIEE3MDA6 ICIjZDUwMDAwIiwNCiAgICAgICAgICB9LA0KICAgICAgICAgIFNuID0gew0KICAgICAgICAg ICAgNTA6ICIjZmZmM2UwIiwNCiAgICAgICAgICAgIDEwMDogIiNmZmUwYjIiLA0KICAgICAg ICAgICAgMjAwOiAiI2ZmY2M4MCIsDQogICAgICAgICAgICAzMDA6ICIjZmZiNzRkIiwNCiAg ICAgICAgICAgIDQwMDogIiNmZmE3MjYiLA0KICAgICAgICAgICAgNTAwOiAiI2ZmOTgwMCIs DQogICAgICAgICAgICA2MDA6ICIjZmI4YzAwIiwNCiAgICAgICAgICAgIDcwMDogIiNmNTdj MDAiLA0KICAgICAgICAgICAgODAwOiAiI2VmNmMwMCIsDQogICAgICAgICAgICA5MDA6ICIj ZTY1MTAwIiwNCiAgICAgICAgICAgIEExMDA6ICIjZmZkMTgwIiwNCiAgICAgICAgICAgIEEy MDA6ICIjZmZhYjQwIiwNCiAgICAgICAgICAgIEE0MDA6ICIjZmY5MTAwIiwNCiAgICAgICAg ICAgIEE3MDA6ICIjZmY2ZDAwIiwNCiAgICAgICAgICB9LA0KICAgICAgICAgIGtuID0gew0K ICAgICAgICAgICAgNTA6ICIjZTNmMmZkIiwNCiAgICAgICAgICAgIDEwMDogIiNiYmRlZmIi LA0KICAgICAgICAgICAgMjAwOiAiIzkwY2FmOSIsDQogICAgICAgICAgICAzMDA6ICIjNjRi NWY2IiwNCiAgICAgICAgICAgIDQwMDogIiM0MmE1ZjUiLA0KICAgICAgICAgICAgNTAwOiAi IzIxOTZmMyIsDQogICAgICAgICAgICA2MDA6ICIjMWU4OGU1IiwNCiAgICAgICAgICAgIDcw MDogIiMxOTc2ZDIiLA0KICAgICAgICAgICAgODAwOiAiIzE1NjVjMCIsDQogICAgICAgICAg ICA5MDA6ICIjMGQ0N2ExIiwNCiAgICAgICAgICAgIEExMDA6ICIjODJiMWZmIiwNCiAgICAg ICAgICAgIEEyMDA6ICIjNDQ4YWZmIiwNCiAgICAgICAgICAgIEE0MDA6ICIjMjk3OWZmIiwN CiAgICAgICAgICAgIEE3MDA6ICIjMjk2MmZmIiwNCiAgICAgICAgICB9LA0KICAgICAgICAg IEVuID0gew0KICAgICAgICAgICAgNTA6ICIjZTFmNWZlIiwNCiAgICAgICAgICAgIDEwMDog IiNiM2U1ZmMiLA0KICAgICAgICAgICAgMjAwOiAiIzgxZDRmYSIsDQogICAgICAgICAgICAz MDA6ICIjNGZjM2Y3IiwNCiAgICAgICAgICAgIDQwMDogIiMyOWI2ZjYiLA0KICAgICAgICAg ICAgNTAwOiAiIzAzYTlmNCIsDQogICAgICAgICAgICA2MDA6ICIjMDM5YmU1IiwNCiAgICAg ICAgICAgIDcwMDogIiMwMjg4ZDEiLA0KICAgICAgICAgICAgODAwOiAiIzAyNzdiZCIsDQog ICAgICAgICAgICA5MDA6ICIjMDE1NzliIiwNCiAgICAgICAgICAgIEExMDA6ICIjODBkOGZm IiwNCiAgICAgICAgICAgIEEyMDA6ICIjNDBjNGZmIiwNCiAgICAgICAgICAgIEE0MDA6ICIj MDBiMGZmIiwNCiAgICAgICAgICAgIEE3MDA6ICIjMDA5MWVhIiwNCiAgICAgICAgICB9LA0K ICAgICAgICAgIENuID0gew0KICAgICAgICAgICAgNTA6ICIjZThmNWU5IiwNCiAgICAgICAg ICAgIDEwMDogIiNjOGU2YzkiLA0KICAgICAgICAgICAgMjAwOiAiI2E1ZDZhNyIsDQogICAg ICAgICAgICAzMDA6ICIjODFjNzg0IiwNCiAgICAgICAgICAgIDQwMDogIiM2NmJiNmEiLA0K ICAgICAgICAgICAgNTAwOiAiIzRjYWY1MCIsDQogICAgICAgICAgICA2MDA6ICIjNDNhMDQ3 IiwNCiAgICAgICAgICAgIDcwMDogIiMzODhlM2MiLA0KICAgICAgICAgICAgODAwOiAiIzJl N2QzMiIsDQogICAgICAgICAgICA5MDA6ICIjMWI1ZTIwIiwNCiAgICAgICAgICAgIEExMDA6 ICIjYjlmNmNhIiwNCiAgICAgICAgICAgIEEyMDA6ICIjNjlmMGFlIiwNCiAgICAgICAgICAg IEE0MDA6ICIjMDBlNjc2IiwNCiAgICAgICAgICAgIEE3MDA6ICIjMDBjODUzIiwNCiAgICAg ICAgICB9LA0KICAgICAgICAgIFJuID0gWyJtb2RlIiwgImNvbnRyYXN0VGhyZXNob2xkIiwg InRvbmFsT2Zmc2V0Il0sDQogICAgICAgICAgX24gPSB7DQogICAgICAgICAgICB0ZXh0OiB7 IHByaW1hcnk6ICJyZ2JhKDAsIDAsIDAsIDAuODcpIiwgc2Vjb25kYXJ5OiAicmdiYSgwLCAw LCAwLCAwLjYpIiwgZGlzYWJsZWQ6ICJyZ2JhKDAsIDAsIDAsIDAuMzgpIiB9LA0KICAgICAg ICAgICAgZGl2aWRlcjogInJnYmEoMCwgMCwgMCwgMC4xMikiLA0KICAgICAgICAgICAgYmFj a2dyb3VuZDogeyBwYXBlcjogeW4ud2hpdGUsIGRlZmF1bHQ6IHluLndoaXRlIH0sDQogICAg ICAgICAgICBhY3Rpb246IHsNCiAgICAgICAgICAgICAgYWN0aXZlOiAicmdiYSgwLCAwLCAw LCAwLjU0KSIsDQogICAgICAgICAgICAgIGhvdmVyOiAicmdiYSgwLCAwLCAwLCAwLjA0KSIs DQogICAgICAgICAgICAgIGhvdmVyT3BhY2l0eTogMC4wNCwNCiAgICAgICAgICAgICAgc2Vs ZWN0ZWQ6ICJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwNCiAgICAgICAgICAgICAgc2VsZWN0ZWRP cGFjaXR5OiAwLjA4LA0KICAgICAgICAgICAgICBkaXNhYmxlZDogInJnYmEoMCwgMCwgMCwg MC4yNikiLA0KICAgICAgICAgICAgICBkaXNhYmxlZEJhY2tncm91bmQ6ICJyZ2JhKDAsIDAs IDAsIDAuMTIpIiwNCiAgICAgICAgICAgICAgZGlzYWJsZWRPcGFjaXR5OiAwLjM4LA0KICAg ICAgICAgICAgICBmb2N1czogInJnYmEoMCwgMCwgMCwgMC4xMikiLA0KICAgICAgICAgICAg ICBmb2N1c09wYWNpdHk6IDAuMTIsDQogICAgICAgICAgICAgIGFjdGl2YXRlZE9wYWNpdHk6 IDAuMTIsDQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0sDQogICAgICAgICAgUG4gPSB7 DQogICAgICAgICAgICB0ZXh0OiB7IHByaW1hcnk6IHluLndoaXRlLCBzZWNvbmRhcnk6ICJy Z2JhKDI1NSwgMjU1LCAyNTUsIDAuNykiLCBkaXNhYmxlZDogInJnYmEoMjU1LCAyNTUsIDI1 NSwgMC41KSIsIGljb246ICJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkiIH0sDQogICAgICAg ICAgICBkaXZpZGVyOiAicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIsDQogICAgICAgICAg ICBiYWNrZ3JvdW5kOiB7IHBhcGVyOiAiIzEyMTIxMiIsIGRlZmF1bHQ6ICIjMTIxMjEyIiB9 LA0KICAgICAgICAgICAgYWN0aW9uOiB7DQogICAgICAgICAgICAgIGFjdGl2ZTogeW4ud2hp dGUsDQogICAgICAgICAgICAgIGhvdmVyOiAicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIs DQogICAgICAgICAgICAgIGhvdmVyT3BhY2l0eTogMC4wOCwNCiAgICAgICAgICAgICAgc2Vs ZWN0ZWQ6ICJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpIiwNCiAgICAgICAgICAgICAgc2Vs ZWN0ZWRPcGFjaXR5OiAwLjE2LA0KICAgICAgICAgICAgICBkaXNhYmxlZDogInJnYmEoMjU1 LCAyNTUsIDI1NSwgMC4zKSIsDQogICAgICAgICAgICAgIGRpc2FibGVkQmFja2dyb3VuZDog InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiLA0KICAgICAgICAgICAgICBkaXNhYmxlZE9w YWNpdHk6IDAuMzgsDQogICAgICAgICAgICAgIGZvY3VzOiAicmdiYSgyNTUsIDI1NSwgMjU1 LCAwLjEyKSIsDQogICAgICAgICAgICAgIGZvY3VzT3BhY2l0eTogMC4xMiwNCiAgICAgICAg ICAgICAgYWN0aXZhdGVkT3BhY2l0eTogMC4yNCwNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgfTsNCiAgICAgICAgZnVuY3Rpb24gT24oZSwgdCwgbiwgcikgew0KICAgICAgICAgIGNv bnN0IG8gPSByLmxpZ2h0IHx8IHIsDQogICAgICAgICAgICBhID0gci5kYXJrIHx8IDEuNSAq IHI7DQogICAgICAgICAgZVt0XSB8fCAoZS5oYXNPd25Qcm9wZXJ0eShuKSA/IChlW3RdID0g ZVtuXSkgOiAibGlnaHQiID09PSB0ID8gKGUubGlnaHQgPSB5KGUubWFpbiwgbykpIDogImRh cmsiID09PSB0ICYmIChlLmRhcmsgPSB2KGUubWFpbiwgYSkpKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBObihlKSB7DQogICAgICAgICAgY29uc3QgeyBtb2RlOiB0ID0gImxp Z2h0IiwgY29udHJhc3RUaHJlc2hvbGQ6IG4gPSAzLCB0b25hbE9mZnNldDogciA9IDAuMiB9 ID0gZSwNCiAgICAgICAgICAgIG8gPSBhKGUsIFJuKSwNCiAgICAgICAgICAgIGwgPQ0KICAg ICAgICAgICAgICBlLnByaW1hcnkgfHwNCiAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsN CiAgICAgICAgICAgICAgICByZXR1cm4gImRhcmsiID09PSAoYXJndW1lbnRzLmxlbmd0aCA+ IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0gPyBhcmd1bWVudHNbMF0gOiAibGlnaHQi KSA/IHsgbWFpbjoga25bMjAwXSwgbGlnaHQ6IGtuWzUwXSwgZGFyazoga25bNDAwXSB9IDog eyBtYWluOiBrbls3MDBdLCBsaWdodDoga25bNDAwXSwgZGFyazoga25bODAwXSB9Ow0KICAg ICAgICAgICAgICB9KSh0KSwNCiAgICAgICAgICAgIHMgPQ0KICAgICAgICAgICAgICBlLnNl Y29uZGFyeSB8fA0KICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAg ICAgIHJldHVybiAiZGFyayIgPT09IChhcmd1bWVudHMubGVuZ3RoID4gMCAmJiB2b2lkIDAg IT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6ICJsaWdodCIpID8geyBtYWluOiB3 blsyMDBdLCBsaWdodDogd25bNTBdLCBkYXJrOiB3bls0MDBdIH0gOiB7IG1haW46IHduWzUw MF0sIGxpZ2h0OiB3blszMDBdLCBkYXJrOiB3bls3MDBdIH07DQogICAgICAgICAgICAgIH0p KHQpLA0KICAgICAgICAgICAgdSA9DQogICAgICAgICAgICAgIGUuZXJyb3IgfHwNCiAgICAg ICAgICAgICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gImRhcmsi ID09PSAoYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0g PyBhcmd1bWVudHNbMF0gOiAibGlnaHQiKSA/IHsgbWFpbjogeG5bNTAwXSwgbGlnaHQ6IHhu WzMwMF0sIGRhcms6IHhuWzcwMF0gfSA6IHsgbWFpbjogeG5bNzAwXSwgbGlnaHQ6IHhuWzQw MF0sIGRhcms6IHhuWzgwMF0gfTsNCiAgICAgICAgICAgICAgfSkodCksDQogICAgICAgICAg ICBjID0NCiAgICAgICAgICAgICAgZS5pbmZvIHx8DQogICAgICAgICAgICAgIChmdW5jdGlv biAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJkYXJrIiA9PT0gKGFyZ3VtZW50cy5s ZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDog ImxpZ2h0IikgPyB7IG1haW46IEVuWzQwMF0sIGxpZ2h0OiBFblszMDBdLCBkYXJrOiBFbls3 MDBdIH0gOiB7IG1haW46IEVuWzcwMF0sIGxpZ2h0OiBFbls1MDBdLCBkYXJrOiBFbls5MDBd IH07DQogICAgICAgICAgICAgIH0pKHQpLA0KICAgICAgICAgICAgZiA9DQogICAgICAgICAg ICAgIGUuc3VjY2VzcyB8fA0KICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgICAgIHJldHVybiAiZGFyayIgPT09IChhcmd1bWVudHMubGVuZ3RoID4gMCAmJiB2 b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6ICJsaWdodCIpID8geyBt YWluOiBDbls0MDBdLCBsaWdodDogQ25bMzAwXSwgZGFyazogQ25bNzAwXSB9IDogeyBtYWlu OiBDbls4MDBdLCBsaWdodDogQ25bNTAwXSwgZGFyazogQ25bOTAwXSB9Ow0KICAgICAgICAg ICAgICB9KSh0KSwNCiAgICAgICAgICAgIHAgPQ0KICAgICAgICAgICAgICBlLndhcm5pbmcg fHwNCiAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1 cm4gImRhcmsiID09PSAoYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1 bWVudHNbMF0gPyBhcmd1bWVudHNbMF0gOiAibGlnaHQiKSA/IHsgbWFpbjogU25bNDAwXSwg bGlnaHQ6IFNuWzMwMF0sIGRhcms6IFNuWzcwMF0gfSA6IHsgbWFpbjogIiNlZDZjMDIiLCBs aWdodDogU25bNTAwXSwgZGFyazogU25bOTAwXSB9Ow0KICAgICAgICAgICAgICB9KSh0KTsN CiAgICAgICAgICBmdW5jdGlvbiBoKGUpIHsNCiAgICAgICAgICAgIGNvbnN0IHQgPQ0KICAg ICAgICAgICAgICAoZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBu ID0gbShlKSwNCiAgICAgICAgICAgICAgICAgIHIgPSBtKHQpOw0KICAgICAgICAgICAgICAg IHJldHVybiAoTWF0aC5tYXgobiwgcikgKyAwLjA1KSAvIChNYXRoLm1pbihuLCByKSArIDAu MDUpOw0KICAgICAgICAgICAgICB9KShlLCBQbi50ZXh0LnByaW1hcnkpID49IG4NCiAgICAg ICAgICAgICAgICA/IFBuLnRleHQucHJpbWFyeQ0KICAgICAgICAgICAgICAgIDogX24udGV4 dC5wcmltYXJ5Ow0KICAgICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgICAgfQ0KICAgICAg ICAgIGNvbnN0IGcgPSAoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgY29sb3I6IHQsIG5h bWU6IG4sIG1haW5TaGFkZTogbyA9IDUwMCwgbGlnaHRTaGFkZTogYSA9IDMwMCwgZGFya1No YWRlOiBsID0gNzAwIH0gPSBlOw0KICAgICAgICAgICAgaWYgKCgodCA9IGkoe30sIHQpKSwg IXQubWFpbiAmJiB0W29dICYmICh0Lm1haW4gPSB0W29dKSwgIXQuaGFzT3duUHJvcGVydHko Im1haW4iKSkpIHRocm93IG5ldyBFcnJvcihkKDExLCBuID8gIiAoIi5jb25jYXQobiwgIiki KSA6ICIiLCBvKSk7DQogICAgICAgICAgICBpZiAoInN0cmluZyIgIT09IHR5cGVvZiB0Lm1h aW4pIHRocm93IG5ldyBFcnJvcihkKDEyLCBuID8gIiAoIi5jb25jYXQobiwgIikiKSA6ICIi LCBKU09OLnN0cmluZ2lmeSh0Lm1haW4pKSk7DQogICAgICAgICAgICByZXR1cm4gT24odCwg ImxpZ2h0IiwgYSwgciksIE9uKHQsICJkYXJrIiwgbCwgciksIHQuY29udHJhc3RUZXh0IHx8 ICh0LmNvbnRyYXN0VGV4dCA9IGgodC5tYWluKSksIHQ7DQogICAgICAgICAgfSwNCiAgICAg ICAgICAgIHYgPSB7IGRhcms6IFBuLCBsaWdodDogX24gfTsNCiAgICAgICAgICByZXR1cm4g WmUoDQogICAgICAgICAgICBpKA0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg Y29tbW9uOiBpKHt9LCB5biksDQogICAgICAgICAgICAgICAgbW9kZTogdCwNCiAgICAgICAg ICAgICAgICBwcmltYXJ5OiBnKHsgY29sb3I6IGwsIG5hbWU6ICJwcmltYXJ5IiB9KSwNCiAg ICAgICAgICAgICAgICBzZWNvbmRhcnk6IGcoeyBjb2xvcjogcywgbmFtZTogInNlY29uZGFy eSIsIG1haW5TaGFkZTogIkE0MDAiLCBsaWdodFNoYWRlOiAiQTIwMCIsIGRhcmtTaGFkZTog IkE3MDAiIH0pLA0KICAgICAgICAgICAgICAgIGVycm9yOiBnKHsgY29sb3I6IHUsIG5hbWU6 ICJlcnJvciIgfSksDQogICAgICAgICAgICAgICAgd2FybmluZzogZyh7IGNvbG9yOiBwLCBu YW1lOiAid2FybmluZyIgfSksDQogICAgICAgICAgICAgICAgaW5mbzogZyh7IGNvbG9yOiBj LCBuYW1lOiAiaW5mbyIgfSksDQogICAgICAgICAgICAgICAgc3VjY2VzczogZyh7IGNvbG9y OiBmLCBuYW1lOiAic3VjY2VzcyIgfSksDQogICAgICAgICAgICAgICAgZ3JleTogYm4sDQog ICAgICAgICAgICAgICAgY29udHJhc3RUaHJlc2hvbGQ6IG4sDQogICAgICAgICAgICAgICAg Z2V0Q29udHJhc3RUZXh0OiBoLA0KICAgICAgICAgICAgICAgIGF1Z21lbnRDb2xvcjogZywN CiAgICAgICAgICAgICAgICB0b25hbE9mZnNldDogciwNCiAgICAgICAgICAgICAgfSwNCiAg ICAgICAgICAgICAgdlt0XQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIG8NCiAgICAg ICAgICApOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IFRuID0gWyJmb250RmFtaWx5Iiwg ImZvbnRTaXplIiwgImZvbnRXZWlnaHRMaWdodCIsICJmb250V2VpZ2h0UmVndWxhciIsICJm b250V2VpZ2h0TWVkaXVtIiwgImZvbnRXZWlnaHRCb2xkIiwgImh0bWxGb250U2l6ZSIsICJh bGxWYXJpYW50cyIsICJweFRvUmVtIl07DQogICAgICAgIGNvbnN0IEFuID0geyB0ZXh0VHJh bnNmb3JtOiAidXBwZXJjYXNlIiB9LA0KICAgICAgICAgIE1uID0gJyJSb2JvdG8iLCAiSGVs dmV0aWNhIiwgIkFyaWFsIiwgc2Fucy1zZXJpZic7DQogICAgICAgIGZ1bmN0aW9uIHpuKGUs IHQpIHsNCiAgICAgICAgICBjb25zdCBuID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHQgPyB0 KGUpIDogdCwNCiAgICAgICAgICAgIHsgZm9udEZhbWlseTogciA9IE1uLCBmb250U2l6ZTog byA9IDE0LCBmb250V2VpZ2h0TGlnaHQ6IGwgPSAzMDAsIGZvbnRXZWlnaHRSZWd1bGFyOiBz ID0gNDAwLCBmb250V2VpZ2h0TWVkaXVtOiB1ID0gNTAwLCBmb250V2VpZ2h0Qm9sZDogYyA9 IDcwMCwgaHRtbEZvbnRTaXplOiBkID0gMTYsIGFsbFZhcmlhbnRzOiBmLCBweFRvUmVtOiBw IH0gPSBuLA0KICAgICAgICAgICAgaCA9IGEobiwgVG4pOw0KICAgICAgICAgIGNvbnN0IG0g PSBvIC8gMTQsDQogICAgICAgICAgICBnID0gcCB8fCAoKGUpID0+ICIiLmNvbmNhdCgoZSAv IGQpICogbSwgInJlbSIpKSwNCiAgICAgICAgICAgIHYgPSAoZSwgdCwgbiwgbywgYSkgPT4g ew0KICAgICAgICAgICAgICByZXR1cm4gaSh7IGZvbnRGYW1pbHk6IHIsIGZvbnRXZWlnaHQ6 IGUsIGZvbnRTaXplOiBnKHQpLCBsaW5lSGVpZ2h0OiBuIH0sIHIgPT09IE1uID8geyBsZXR0 ZXJTcGFjaW5nOiAiIi5jb25jYXQoKChsID0gbyAvIHQpLCBNYXRoLnJvdW5kKDFlNSAqIGwp IC8gMWU1KSwgImVtIikgfSA6IHt9LCBhLCBmKTsNCiAgICAgICAgICAgICAgdmFyIGw7DQog ICAgICAgICAgICB9LA0KICAgICAgICAgICAgeSA9IHsNCiAgICAgICAgICAgICAgaDE6IHYo bCwgOTYsIDEuMTY3LCAtMS41KSwNCiAgICAgICAgICAgICAgaDI6IHYobCwgNjAsIDEuMiwg LTAuNSksDQogICAgICAgICAgICAgIGgzOiB2KHMsIDQ4LCAxLjE2NywgMCksDQogICAgICAg ICAgICAgIGg0OiB2KHMsIDM0LCAxLjIzNSwgMC4yNSksDQogICAgICAgICAgICAgIGg1OiB2 KHMsIDI0LCAxLjMzNCwgMCksDQogICAgICAgICAgICAgIGg2OiB2KHUsIDIwLCAxLjYsIDAu MTUpLA0KICAgICAgICAgICAgICBzdWJ0aXRsZTE6IHYocywgMTYsIDEuNzUsIDAuMTUpLA0K ICAgICAgICAgICAgICBzdWJ0aXRsZTI6IHYodSwgMTQsIDEuNTcsIDAuMSksDQogICAgICAg ICAgICAgIGJvZHkxOiB2KHMsIDE2LCAxLjUsIDAuMTUpLA0KICAgICAgICAgICAgICBib2R5 MjogdihzLCAxNCwgMS40MywgMC4xNSksDQogICAgICAgICAgICAgIGJ1dHRvbjogdih1LCAx NCwgMS43NSwgMC40LCBBbiksDQogICAgICAgICAgICAgIGNhcHRpb246IHYocywgMTIsIDEu NjYsIDAuNCksDQogICAgICAgICAgICAgIG92ZXJsaW5lOiB2KHMsIDEyLCAyLjY2LCAxLCBB biksDQogICAgICAgICAgICAgIGluaGVyaXQ6IHsgZm9udEZhbWlseTogImluaGVyaXQiLCBm b250V2VpZ2h0OiAiaW5oZXJpdCIsIGZvbnRTaXplOiAiaW5oZXJpdCIsIGxpbmVIZWlnaHQ6 ICJpbmhlcml0IiwgbGV0dGVyU3BhY2luZzogImluaGVyaXQiIH0sDQogICAgICAgICAgICB9 Ow0KICAgICAgICAgIHJldHVybiBaZShpKHsgaHRtbEZvbnRTaXplOiBkLCBweFRvUmVtOiBn LCBmb250RmFtaWx5OiByLCBmb250U2l6ZTogbywgZm9udFdlaWdodExpZ2h0OiBsLCBmb250 V2VpZ2h0UmVndWxhcjogcywgZm9udFdlaWdodE1lZGl1bTogdSwgZm9udFdlaWdodEJvbGQ6 IGMgfSwgeSksIGgsIHsgY2xvbmU6ICExIH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIGpuKCkgew0KICAgICAgICAgIHJldHVybiBbDQogICAgICAgICAgICAiIg0KICAgICAg ICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gMCA/IHZvaWQgMCA6IGFyZ3Vt ZW50c1swXSwgInB4ICIpDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRzLmxlbmd0 aCA8PSAxID8gdm9pZCAwIDogYXJndW1lbnRzWzFdLCAicHggIikNCiAgICAgICAgICAgICAg LmNvbmNhdChhcmd1bWVudHMubGVuZ3RoIDw9IDIgPyB2b2lkIDAgOiBhcmd1bWVudHNbMl0s ICJweCAiKQ0KICAgICAgICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gMyA/ IHZvaWQgMCA6IGFyZ3VtZW50c1szXSwgInB4IHJnYmEoMCwwLDAsIikNCiAgICAgICAgICAg ICAgLmNvbmNhdCgwLjIsICIpIiksDQogICAgICAgICAgICAiIg0KICAgICAgICAgICAgICAu Y29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gNCA/IHZvaWQgMCA6IGFyZ3VtZW50c1s0XSwg InB4ICIpDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRzLmxlbmd0aCA8PSA1ID8g dm9pZCAwIDogYXJndW1lbnRzWzVdLCAicHggIikNCiAgICAgICAgICAgICAgLmNvbmNhdChh cmd1bWVudHMubGVuZ3RoIDw9IDYgPyB2b2lkIDAgOiBhcmd1bWVudHNbNl0sICJweCAiKQ0K ICAgICAgICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gNyA/IHZvaWQgMCA6 IGFyZ3VtZW50c1s3XSwgInB4IHJnYmEoMCwwLDAsIikNCiAgICAgICAgICAgICAgLmNvbmNh dCgwLjE0LCAiKSIpLA0KICAgICAgICAgICAgIiINCiAgICAgICAgICAgICAgLmNvbmNhdChh cmd1bWVudHMubGVuZ3RoIDw9IDggPyB2b2lkIDAgOiBhcmd1bWVudHNbOF0sICJweCAiKQ0K ICAgICAgICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gOSA/IHZvaWQgMCA6 IGFyZ3VtZW50c1s5XSwgInB4ICIpDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRz Lmxlbmd0aCA8PSAxMCA/IHZvaWQgMCA6IGFyZ3VtZW50c1sxMF0sICJweCAiKQ0KICAgICAg ICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gMTEgPyB2b2lkIDAgOiBhcmd1 bWVudHNbMTFdLCAicHggcmdiYSgwLDAsMCwiKQ0KICAgICAgICAgICAgICAuY29uY2F0KDAu MTIsICIpIiksDQogICAgICAgICAgXS5qb2luKCIsIik7DQogICAgICAgIH0NCiAgICAgICAg Y29uc3QgSW4gPSBbDQogICAgICAgICAgIm5vbmUiLA0KICAgICAgICAgIGpuKDAsIDIsIDEs IC0xLCAwLCAxLCAxLCAwLCAwLCAxLCAzLCAwKSwNCiAgICAgICAgICBqbigwLCAzLCAxLCAt MiwgMCwgMiwgMiwgMCwgMCwgMSwgNSwgMCksDQogICAgICAgICAgam4oMCwgMywgMywgLTIs IDAsIDMsIDQsIDAsIDAsIDEsIDgsIDApLA0KICAgICAgICAgIGpuKDAsIDIsIDQsIC0xLCAw LCA0LCA1LCAwLCAwLCAxLCAxMCwgMCksDQogICAgICAgICAgam4oMCwgMywgNSwgLTEsIDAs IDUsIDgsIDAsIDAsIDEsIDE0LCAwKSwNCiAgICAgICAgICBqbigwLCAzLCA1LCAtMSwgMCwg NiwgMTAsIDAsIDAsIDEsIDE4LCAwKSwNCiAgICAgICAgICBqbigwLCA0LCA1LCAtMiwgMCwg NywgMTAsIDEsIDAsIDIsIDE2LCAxKSwNCiAgICAgICAgICBqbigwLCA1LCA1LCAtMywgMCwg OCwgMTAsIDEsIDAsIDMsIDE0LCAyKSwNCiAgICAgICAgICBqbigwLCA1LCA2LCAtMywgMCwg OSwgMTIsIDEsIDAsIDMsIDE2LCAyKSwNCiAgICAgICAgICBqbigwLCA2LCA2LCAtMywgMCwg MTAsIDE0LCAxLCAwLCA0LCAxOCwgMyksDQogICAgICAgICAgam4oMCwgNiwgNywgLTQsIDAs IDExLCAxNSwgMSwgMCwgNCwgMjAsIDMpLA0KICAgICAgICAgIGpuKDAsIDcsIDgsIC00LCAw LCAxMiwgMTcsIDIsIDAsIDUsIDIyLCA0KSwNCiAgICAgICAgICBqbigwLCA3LCA4LCAtNCwg MCwgMTMsIDE5LCAyLCAwLCA1LCAyNCwgNCksDQogICAgICAgICAgam4oMCwgNywgOSwgLTQs IDAsIDE0LCAyMSwgMiwgMCwgNSwgMjYsIDQpLA0KICAgICAgICAgIGpuKDAsIDgsIDksIC01 LCAwLCAxNSwgMjIsIDIsIDAsIDYsIDI4LCA1KSwNCiAgICAgICAgICBqbigwLCA4LCAxMCwg LTUsIDAsIDE2LCAyNCwgMiwgMCwgNiwgMzAsIDUpLA0KICAgICAgICAgIGpuKDAsIDgsIDEx LCAtNSwgMCwgMTcsIDI2LCAyLCAwLCA2LCAzMiwgNSksDQogICAgICAgICAgam4oMCwgOSwg MTEsIC01LCAwLCAxOCwgMjgsIDIsIDAsIDcsIDM0LCA2KSwNCiAgICAgICAgICBqbigwLCA5 LCAxMiwgLTYsIDAsIDE5LCAyOSwgMiwgMCwgNywgMzYsIDYpLA0KICAgICAgICAgIGpuKDAs IDEwLCAxMywgLTYsIDAsIDIwLCAzMSwgMywgMCwgOCwgMzgsIDcpLA0KICAgICAgICAgIGpu KDAsIDEwLCAxMywgLTYsIDAsIDIxLCAzMywgMywgMCwgOCwgNDAsIDcpLA0KICAgICAgICAg IGpuKDAsIDEwLCAxNCwgLTYsIDAsIDIyLCAzNSwgMywgMCwgOCwgNDIsIDcpLA0KICAgICAg ICAgIGpuKDAsIDExLCAxNCwgLTcsIDAsIDIzLCAzNiwgMywgMCwgOSwgNDQsIDgpLA0KICAg ICAgICAgIGpuKDAsIDExLCAxNSwgLTcsIDAsIDI0LCAzOCwgMywgMCwgOSwgNDYsIDgpLA0K ICAgICAgICBdLA0KICAgICAgICAgIExuID0gWyJkdXJhdGlvbiIsICJlYXNpbmciLCAiZGVs YXkiXSwNCiAgICAgICAgICBGbiA9IHsgZWFzZUluT3V0OiAiY3ViaWMtYmV6aWVyKDAuNCwg MCwgMC4yLCAxKSIsIGVhc2VPdXQ6ICJjdWJpYy1iZXppZXIoMC4wLCAwLCAwLjIsIDEpIiwg ZWFzZUluOiAiY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSkiLCBzaGFycDogImN1YmljLWJl emllcigwLjQsIDAsIDAuNiwgMSkiIH0sDQogICAgICAgICAgQm4gPSB7IHNob3J0ZXN0OiAx NTAsIHNob3J0ZXI6IDIwMCwgc2hvcnQ6IDI1MCwgc3RhbmRhcmQ6IDMwMCwgY29tcGxleDog Mzc1LCBlbnRlcmluZ1NjcmVlbjogMjI1LCBsZWF2aW5nU2NyZWVuOiAxOTUgfTsNCiAgICAg ICAgZnVuY3Rpb24gRG4oZSkgew0KICAgICAgICAgIHJldHVybiAiIi5jb25jYXQoTWF0aC5y b3VuZChlKSwgIm1zIik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVW4oZSkgew0K ICAgICAgICAgIGlmICghZSkgcmV0dXJuIDA7DQogICAgICAgICAgY29uc3QgdCA9IGUgLyAz NjsNCiAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCgxMCAqICg0ICsgMTUgKiB0ICoqIDAu MjUgKyB0IC8gNSkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFduKGUpIHsNCiAg ICAgICAgICBjb25zdCB0ID0gaSh7fSwgRm4sIGUuZWFzaW5nKSwNCiAgICAgICAgICAgIG4g PSBpKHt9LCBCbiwgZS5kdXJhdGlvbik7DQogICAgICAgICAgcmV0dXJuIGkoDQogICAgICAg ICAgICB7DQogICAgICAgICAgICAgIGdldEF1dG9IZWlnaHREdXJhdGlvbjogVW4sDQogICAg ICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxldCBl ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0gPyBh cmd1bWVudHNbMF0gOiBbImFsbCJdLA0KICAgICAgICAgICAgICAgICAgciA9IGFyZ3VtZW50 cy5sZW5ndGggPiAxICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzFdID8gYXJndW1lbnRzWzFd IDoge307DQogICAgICAgICAgICAgICAgY29uc3QgeyBkdXJhdGlvbjogbyA9IG4uc3RhbmRh cmQsIGVhc2luZzogaSA9IHQuZWFzZUluT3V0LCBkZWxheTogbCA9IDAgfSA9IHI7DQogICAg ICAgICAgICAgICAgYShyLCBMbik7DQogICAgICAgICAgICAgICAgcmV0dXJuIChBcnJheS5p c0FycmF5KGUpID8gZSA6IFtlXSkNCiAgICAgICAgICAgICAgICAgIC5tYXAoKGUpID0+DQog ICAgICAgICAgICAgICAgICAgICIiDQogICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdChl LCAiICIpDQogICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCgic3RyaW5nIiA9PT0gdHlw ZW9mIG8gPyBvIDogRG4obyksICIgIikNCiAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0 KGksICIgIikNCiAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0KCJzdHJpbmciID09PSB0 eXBlb2YgbCA/IGwgOiBEbihsKSkNCiAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAg ICAgICAgIC5qb2luKCIsIik7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICB9LA0K ICAgICAgICAgICAgZSwNCiAgICAgICAgICAgIHsgZWFzaW5nOiB0LCBkdXJhdGlvbjogbiB9 DQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBWbiA9IHsgbW9iaWxl U3RlcHBlcjogMWUzLCBmYWI6IDEwNTAsIHNwZWVkRGlhbDogMTA1MCwgYXBwQmFyOiAxMTAw LCBkcmF3ZXI6IDEyMDAsIG1vZGFsOiAxMzAwLCBzbmFja2JhcjogMTQwMCwgdG9vbHRpcDog MTUwMCB9LA0KICAgICAgICAgIEhuID0gWyJicmVha3BvaW50cyIsICJtaXhpbnMiLCAic3Bh Y2luZyIsICJwYWxldHRlIiwgInRyYW5zaXRpb25zIiwgInR5cG9ncmFwaHkiLCAic2hhcGUi XTsNCiAgICAgICAgZnVuY3Rpb24gcW4oKSB7DQogICAgICAgICAgbGV0IGUgPSBhcmd1bWVu dHMubGVuZ3RoID4gMCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1sw XSA6IHt9Ow0KICAgICAgICAgIGNvbnN0IHsgbWl4aW5zOiB0ID0ge30sIHBhbGV0dGU6IG4g PSB7fSwgdHJhbnNpdGlvbnM6IHIgPSB7fSwgdHlwb2dyYXBoeTogbyA9IHt9IH0gPSBlLA0K ICAgICAgICAgICAgbCA9IGEoZSwgSG4pOw0KICAgICAgICAgIGlmIChlLnZhcnMpIHRocm93 IG5ldyBFcnJvcihkKDE4KSk7DQogICAgICAgICAgY29uc3QgcyA9IE5uKG4pLA0KICAgICAg ICAgICAgdSA9IG5uKGUpOw0KICAgICAgICAgIGxldCBjID0gWmUodSwgeyBtaXhpbnM6IHZu KHUuYnJlYWtwb2ludHMsIHQpLCBwYWxldHRlOiBzLCBzaGFkb3dzOiBJbi5zbGljZSgpLCB0 eXBvZ3JhcGh5OiB6bihzLCBvKSwgdHJhbnNpdGlvbnM6IFduKHIpLCB6SW5kZXg6IGkoe30s IFZuKSB9KTsNCiAgICAgICAgICBjID0gWmUoYywgbCk7DQogICAgICAgICAgZm9yICh2YXIg ZiA9IGFyZ3VtZW50cy5sZW5ndGgsIHAgPSBuZXcgQXJyYXkoZiA+IDEgPyBmIC0gMSA6IDAp LCBoID0gMTsgaCA8IGY7IGgrKykgcFtoIC0gMV0gPSBhcmd1bWVudHNbaF07DQogICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgIChjID0gcC5yZWR1Y2UoKGUsIHQpID0+IFplKGUs IHQpLCBjKSksDQogICAgICAgICAgICAoYy51bnN0YWJsZV9zeENvbmZpZyA9IGkoe30sIFp0 LCBudWxsID09IGwgPyB2b2lkIDAgOiBsLnVuc3RhYmxlX3N4Q29uZmlnKSksDQogICAgICAg ICAgICAoYy51bnN0YWJsZV9zeCA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHJl dHVybiBlbih7IHN4OiBlLCB0aGVtZTogdGhpcyB9KTsNCiAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgYw0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgJG4g PSBxbiwNCiAgICAgICAgICBLbiA9ICRuKCksDQogICAgICAgICAgUW4gPSAiJCRtYXRlcmlh bCIsDQogICAgICAgICAgR24gPSAoZSkgPT4gY24oZSkgJiYgImNsYXNzZXMiICE9PSBlLA0K ICAgICAgICAgIFluID0gZ24oeyB0aGVtZUlkOiBRbiwgZGVmYXVsdFRoZW1lOiBLbiwgcm9v dFNob3VsZEZvcndhcmRQcm9wOiBHbiB9KTsNCiAgICAgICAgY29uc3QgWG4gPSBmdW5jdGlv biAoKSB7DQogICAgICAgICAgbGV0IGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiB2b2lk IDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6IG51bGw7DQogICAgICAgICAg Y29uc3QgbiA9IHQudXNlQ29udGV4dChEZSk7DQogICAgICAgICAgcmV0dXJuIG4gJiYgKChy ID0gbiksIDAgIT09IE9iamVjdC5rZXlzKHIpLmxlbmd0aCkgPyBuIDogZTsNCiAgICAgICAg ICB2YXIgcjsNCiAgICAgICAgfSwNCiAgICAgICAgICBabiA9IG5uKCk7DQogICAgICAgIGNv bnN0IEpuID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgIHJldHVybiBYbihhcmd1bWVudHMu bGVuZ3RoID4gMCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6 IFpuKTsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gZXIoZSkgew0KICAgICAgICAg IGxldCB7IHByb3BzOiB0LCBuYW1lOiBuLCBkZWZhdWx0VGhlbWU6IHIsIHRoZW1lSWQ6IG8g fSA9IGUsDQogICAgICAgICAgICBhID0gSm4ocik7DQogICAgICAgICAgbyAmJiAoYSA9IGFb b10gfHwgYSk7DQogICAgICAgICAgY29uc3QgaSA9IChmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgICAgY29uc3QgeyB0aGVtZTogdCwgbmFtZTogbiwgcHJvcHM6IHIgfSA9IGU7DQogICAg ICAgICAgICByZXR1cm4gdCAmJiB0LmNvbXBvbmVudHMgJiYgdC5jb21wb25lbnRzW25dICYm IHQuY29tcG9uZW50c1tuXS5kZWZhdWx0UHJvcHMgPyB1KHQuY29tcG9uZW50c1tuXS5kZWZh dWx0UHJvcHMsIHIpIDogcjsNCiAgICAgICAgICB9KSh7IHRoZW1lOiBhLCBuYW1lOiBuLCBw cm9wczogdCB9KTsNCiAgICAgICAgICByZXR1cm4gaTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiB0cihlKSB7DQogICAgICAgICAgbGV0IHsgcHJvcHM6IHQsIG5hbWU6IG4gfSA9 IGU7DQogICAgICAgICAgcmV0dXJuIGVyKHsgcHJvcHM6IHQsIG5hbWU6IG4sIGRlZmF1bHRU aGVtZTogS24sIHRoZW1lSWQ6IFFuIH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IG5yKGUsIHQpIHsNCiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgZSA/IGUodCkg OiBlICYmIChlLmN1cnJlbnQgPSB0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBy cigpIHsNCiAgICAgICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRzLmxlbmd0aCwgbiA9IG5l dyBBcnJheShlKSwgciA9IDA7IHIgPCBlOyByKyspIG5bcl0gPSBhcmd1bWVudHNbcl07DQog ICAgICAgICAgcmV0dXJuIHQudXNlTWVtbygNCiAgICAgICAgICAgICgpID0+DQogICAgICAg ICAgICAgIG4uZXZlcnkoKGUpID0+IG51bGwgPT0gZSkNCiAgICAgICAgICAgICAgICA/IG51 bGwNCiAgICAgICAgICAgICAgICA6IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICBuLmZv ckVhY2goKHQpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgbnIodCwgZSk7DQogICAgICAg ICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgbg0KICAg ICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgY29uc3Qgb3IgPSByciwNCiAgICAgICAg ICBhciA9ICJ1bmRlZmluZWQiICE9PSB0eXBlb2Ygd2luZG93ID8gdC51c2VMYXlvdXRFZmZl Y3QgOiB0LnVzZUVmZmVjdDsNCiAgICAgICAgY29uc3QgaXIgPSBmdW5jdGlvbiAoZSkgew0K ICAgICAgICAgIGNvbnN0IG4gPSB0LnVzZVJlZihlKTsNCiAgICAgICAgICByZXR1cm4gKA0K ICAgICAgICAgICAgYXIoKCkgPT4gew0KICAgICAgICAgICAgICBuLmN1cnJlbnQgPSBlOw0K ICAgICAgICAgICAgfSksDQogICAgICAgICAgICB0LnVzZVJlZihmdW5jdGlvbiAoKSB7DQog ICAgICAgICAgICAgIHJldHVybiAoMCwgbi5jdXJyZW50KSguLi5hcmd1bWVudHMpOw0KICAg ICAgICAgICAgfSkuY3VycmVudA0KICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAgICAg ICAgbHIgPSBpcjsNCiAgICAgICAgbGV0IHNyLA0KICAgICAgICAgIHVyID0gITAsDQogICAg ICAgICAgY3IgPSAhMTsNCiAgICAgICAgY29uc3QgZHIgPSB7IHRleHQ6ICEwLCBzZWFyY2g6 ICEwLCB1cmw6ICEwLCB0ZWw6ICEwLCBlbWFpbDogITAsIHBhc3N3b3JkOiAhMCwgbnVtYmVy OiAhMCwgZGF0ZTogITAsIG1vbnRoOiAhMCwgd2VlazogITAsIHRpbWU6ICEwLCBkYXRldGlt ZTogITAsICJkYXRldGltZS1sb2NhbCI6ICEwIH07DQogICAgICAgIGZ1bmN0aW9uIGZyKGUp IHsNCiAgICAgICAgICBlLm1ldGFLZXkgfHwgZS5hbHRLZXkgfHwgZS5jdHJsS2V5IHx8ICh1 ciA9ICEwKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBwcigpIHsNCiAgICAgICAg ICB1ciA9ICExOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGhyKCkgew0KICAgICAg ICAgICJoaWRkZW4iID09PSB0aGlzLnZpc2liaWxpdHlTdGF0ZSAmJiBjciAmJiAodXIgPSAh MCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbXIoZSkgew0KICAgICAgICAgIGNv bnN0IHsgdGFyZ2V0OiB0IH0gPSBlOw0KICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICBy ZXR1cm4gdC5tYXRjaGVzKCI6Zm9jdXMtdmlzaWJsZSIpOw0KICAgICAgICAgIH0gY2F0Y2gg KG4pIHsgfQ0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICB1ciB8fA0KICAgICAg ICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGNvbnN0IHsgdHlwZTogdCwg dGFnTmFtZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuICEoIklOUFVUIiAhPT0g biB8fCAhZHJbdF0gfHwgZS5yZWFkT25seSkgfHwgKCJURVhUQVJFQSIgPT09IG4gJiYgIWUu cmVhZE9ubHkpIHx8ICEhZS5pc0NvbnRlbnRFZGl0YWJsZTsNCiAgICAgICAgICAgIH0pKHQp DQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBnciA9IGZ1bmN0aW9u ICgpIHsNCiAgICAgICAgICBjb25zdCBlID0gdC51c2VDYWxsYmFjaygoZSkgPT4gew0KICAg ICAgICAgICAgdmFyIHQ7DQogICAgICAgICAgICBudWxsICE9IGUgJiYNCiAgICAgICAgICAg ICAgKCh0ID0gZS5vd25lckRvY3VtZW50KS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwg ZnIsICEwKSwNCiAgICAgICAgICAgICAgICB0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93 biIsIHByLCAhMCksDQogICAgICAgICAgICAgICAgdC5hZGRFdmVudExpc3RlbmVyKCJwb2lu dGVyZG93biIsIHByLCAhMCksDQogICAgICAgICAgICAgICAgdC5hZGRFdmVudExpc3RlbmVy KCJ0b3VjaHN0YXJ0IiwgcHIsICEwKSwNCiAgICAgICAgICAgICAgICB0LmFkZEV2ZW50TGlz dGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLCBociwgITApKTsNCiAgICAgICAgICB9LCBbXSks DQogICAgICAgICAgICBuID0gdC51c2VSZWYoITEpOw0KICAgICAgICAgIHJldHVybiB7DQog ICAgICAgICAgICBpc0ZvY3VzVmlzaWJsZVJlZjogbiwNCiAgICAgICAgICAgIG9uRm9jdXM6 IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHJldHVybiAhIW1yKGUpICYmICgobi5j dXJyZW50ID0gITApLCAhMCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgb25CbHVy OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAg ICAgISFuLmN1cnJlbnQgJiYNCiAgICAgICAgICAgICAgICAoKGNyID0gITApLA0KICAgICAg ICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChzciksDQogICAgICAgICAgICAgICAg ICAoc3IgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAg IGNyID0gITE7DQogICAgICAgICAgICAgICAgICB9LCAxMDApKSwNCiAgICAgICAgICAgICAg ICAgIChuLmN1cnJlbnQgPSAhMSksDQogICAgICAgICAgICAgICAgICAhMCkNCiAgICAgICAg ICAgICAgKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICByZWY6IGUsDQogICAgICAg ICAgfTsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gdnIoZSwgdCkgew0KICAgICAg ICAgIHJldHVybiB0IHx8ICh0ID0gZS5zbGljZSgwKSksIE9iamVjdC5mcmVlemUoT2JqZWN0 LmRlZmluZVByb3BlcnRpZXMoZSwgeyByYXc6IHsgdmFsdWU6IE9iamVjdC5mcmVlemUodCkg fSB9KSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24geXIoZSwgdCkgew0KICAgICAg ICAgIHJldHVybiAoDQogICAgICAgICAgICAoeXIgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YN CiAgICAgICAgICAgICAgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpDQogICAgICAg ICAgICAgIDogZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gKGUu X19wcm90b19fID0gdCksIGU7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgeXIo ZSwgdCkNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGJyKGUs IHQpIHsNCiAgICAgICAgICAoZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHQucHJvdG90 eXBlKSksIChlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGUpLCB5cihlLCB0KTsNCiAgICAg ICAgfQ0KICAgICAgICBjb25zdCB3ciA9IHQuY3JlYXRlQ29udGV4dChudWxsKTsNCiAgICAg ICAgZnVuY3Rpb24geHIoZSwgbikgew0KICAgICAgICAgIHZhciByID0gT2JqZWN0LmNyZWF0 ZShudWxsKTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgZSAmJg0KICAgICAg ICAgICAgdC5DaGlsZHJlbi5tYXAoZSwgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAg cmV0dXJuIGU7DQogICAgICAgICAgICB9KS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICAgIHJbZS5rZXldID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAg cmV0dXJuIG4gJiYgKDAsIHQuaXNWYWxpZEVsZW1lbnQpKGUpID8gbihlKSA6IGU7DQogICAg ICAgICAgICAgIH0pKGUpOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICByDQogICAg ICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBTcihlLCB0LCBuKSB7DQog ICAgICAgICAgcmV0dXJuIG51bGwgIT0gblt0XSA/IG5bdF0gOiBlLnByb3BzW3RdOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGtyKGUsIG4sIHIpIHsNCiAgICAgICAgICB2YXIg byA9IHhyKGUuY2hpbGRyZW4pLA0KICAgICAgICAgICAgYSA9IChmdW5jdGlvbiAoZSwgdCkg ew0KICAgICAgICAgICAgICBmdW5jdGlvbiBuKG4pIHsNCiAgICAgICAgICAgICAgICByZXR1 cm4gbiBpbiB0ID8gdFtuXSA6IGVbbl07DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgKGUgPSBlIHx8IHt9KSwgKHQgPSB0IHx8IHt9KTsNCiAgICAgICAgICAgICAgdmFyIHIs DQogICAgICAgICAgICAgICAgbyA9IE9iamVjdC5jcmVhdGUobnVsbCksDQogICAgICAgICAg ICAgICAgYSA9IFtdOw0KICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIGUpIGkgaW4gdCA/ IGEubGVuZ3RoICYmICgob1tpXSA9IGEpLCAoYSA9IFtdKSkgOiBhLnB1c2goaSk7DQogICAg ICAgICAgICAgIHZhciBsID0ge307DQogICAgICAgICAgICAgIGZvciAodmFyIHMgaW4gdCkg ew0KICAgICAgICAgICAgICAgIGlmIChvW3NdKQ0KICAgICAgICAgICAgICAgICAgZm9yIChy ID0gMDsgciA8IG9bc10ubGVuZ3RoOyByKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdmFy IHUgPSBvW3NdW3JdOw0KICAgICAgICAgICAgICAgICAgICBsW29bc11bcl1dID0gbih1KTsN CiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBsW3NdID0gbihzKTsNCiAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgYS5sZW5ndGg7 IHIrKykgbFthW3JdXSA9IG4oYVtyXSk7DQogICAgICAgICAgICAgIHJldHVybiBsOw0KICAg ICAgICAgICAgfSkobiwgbyk7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIE9i amVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24gKGkpIHsNCiAgICAgICAgICAgICAgdmFy IGwgPSBhW2ldOw0KICAgICAgICAgICAgICBpZiAoKDAsIHQuaXNWYWxpZEVsZW1lbnQpKGwp KSB7DQogICAgICAgICAgICAgICAgdmFyIHMgPSBpIGluIG4sDQogICAgICAgICAgICAgICAg ICB1ID0gaSBpbiBvLA0KICAgICAgICAgICAgICAgICAgYyA9IG5baV0sDQogICAgICAgICAg ICAgICAgICBkID0gKDAsIHQuaXNWYWxpZEVsZW1lbnQpKGMpICYmICFjLnByb3BzLmluOw0K ICAgICAgICAgICAgICAgICF1IHx8IChzICYmICFkKQ0KICAgICAgICAgICAgICAgICAgPyB1 IHx8ICFzIHx8IGQNCiAgICAgICAgICAgICAgICAgICAgPyB1ICYmIHMgJiYgKDAsIHQuaXNW YWxpZEVsZW1lbnQpKGMpICYmIChhW2ldID0gKDAsIHQuY2xvbmVFbGVtZW50KShsLCB7IG9u RXhpdGVkOiByLmJpbmQobnVsbCwgbCksIGluOiBjLnByb3BzLmluLCBleGl0OiBTcihsLCAi ZXhpdCIsIGUpLCBlbnRlcjogU3IobCwgImVudGVyIiwgZSkgfSkpDQogICAgICAgICAgICAg ICAgICAgIDogKGFbaV0gPSAoMCwgdC5jbG9uZUVsZW1lbnQpKGwsIHsgaW46ICExIH0pKQ0K ICAgICAgICAgICAgICAgICAgOiAoYVtpXSA9ICgwLCB0LmNsb25lRWxlbWVudCkobCwgeyBv bkV4aXRlZDogci5iaW5kKG51bGwsIGwpLCBpbjogITAsIGV4aXQ6IFNyKGwsICJleGl0Iiwg ZSksIGVudGVyOiBTcihsLCAiZW50ZXIiLCBlKSB9KSk7DQogICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgYQ0KICAgICAgICAgICk7DQogICAgICAgIH0N CiAgICAgICAgdmFyIEVyID0NCiAgICAgICAgICBPYmplY3QudmFsdWVzIHx8DQogICAgICAg ICAgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlKS5t YXAoZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIGVbdF07DQogICAgICAg ICAgICB9KTsNCiAgICAgICAgICB9LA0KICAgICAgICAgIENyID0gKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICBmdW5jdGlvbiBuKHQsIG4pIHsNCiAgICAgICAgICAgICAgdmFyIHIs DQogICAgICAgICAgICAgICAgbyA9IChyID0gZS5jYWxsKHRoaXMsIHQsIG4pIHx8IHRoaXMp LmhhbmRsZUV4aXRlZC5iaW5kKA0KICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICAgICAgICAgIGlmICh2b2lkIDAgPT09IGUpIHRocm93IG5ldyBSZWZl cmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFz bid0IGJlZW4gY2FsbGVkIik7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBlOw0KICAg ICAgICAgICAgICAgICAgfSkocikNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAg ICByZXR1cm4gKHIuc3RhdGUgPSB7IGNvbnRleHRWYWx1ZTogeyBpc01vdW50aW5nOiAhMCB9 LCBoYW5kbGVFeGl0ZWQ6IG8sIGZpcnN0UmVuZGVyOiAhMCB9KSwgcjsNCiAgICAgICAgICAg IH0NCiAgICAgICAgICAgIGJyKG4sIGUpOw0KICAgICAgICAgICAgdmFyIHIgPSBuLnByb3Rv dHlwZTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIChyLmNvbXBvbmVu dERpZE1vdW50ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICh0aGlzLm1vdW50 ZWQgPSAhMCksIHRoaXMuc2V0U3RhdGUoeyBjb250ZXh0VmFsdWU6IHsgaXNNb3VudGluZzog ITEgfSB9KTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIChyLmNvbXBvbmVu dFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRoaXMubW91 bnRlZCA9ICExOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgKG4uZ2V0RGVy aXZlZFN0YXRlRnJvbVByb3BzID0gZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICAgICAg ICB2YXIgciwNCiAgICAgICAgICAgICAgICAgIG8sDQogICAgICAgICAgICAgICAgICBhID0g bi5jaGlsZHJlbiwNCiAgICAgICAgICAgICAgICAgIGkgPSBuLmhhbmRsZUV4aXRlZDsNCiAg ICAgICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IG4u Zmlyc3RSZW5kZXINCiAgICAgICAgICAgICAgICAgICAgPyAoKHIgPSBlKSwNCiAgICAgICAg ICAgICAgICAgICAgICAobyA9IGkpLA0KICAgICAgICAgICAgICAgICAgICAgIHhyKHIuY2hp bGRyZW4sIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g KDAsIHQuY2xvbmVFbGVtZW50KShlLCB7IG9uRXhpdGVkOiBvLmJpbmQobnVsbCwgZSksIGlu OiAhMCwgYXBwZWFyOiBTcihlLCAiYXBwZWFyIiwgciksIGVudGVyOiBTcihlLCAiZW50ZXIi LCByKSwgZXhpdDogU3IoZSwgImV4aXQiLCByKSB9KTsNCiAgICAgICAgICAgICAgICAgICAg ICB9KSkNCiAgICAgICAgICAgICAgICAgICAgOiBrcihlLCBhLCBpKSwNCiAgICAgICAgICAg ICAgICAgIGZpcnN0UmVuZGVyOiAhMSwNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgICAgKHIuaGFuZGxlRXhpdGVkID0gZnVuY3Rpb24gKGUs IHQpIHsNCiAgICAgICAgICAgICAgICB2YXIgbiA9IHhyKHRoaXMucHJvcHMuY2hpbGRyZW4p Ow0KICAgICAgICAgICAgICAgIGUua2V5IGluIG4gfHwNCiAgICAgICAgICAgICAgICAgIChl LnByb3BzLm9uRXhpdGVkICYmIGUucHJvcHMub25FeGl0ZWQodCksDQogICAgICAgICAgICAg ICAgICAgIHRoaXMubW91bnRlZCAmJg0KICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0 YXRlKGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIG4gPSBpKHt9 LCB0LmNoaWxkcmVuKTsNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlIG5b ZS5rZXldLCB7IGNoaWxkcmVuOiBuIH07DQogICAgICAgICAgICAgICAgICAgIH0pKTsNCiAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIChyLnJlbmRlciA9IGZ1bmN0aW9uICgp IHsNCiAgICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMucHJvcHMsDQogICAgICAgICAgICAg ICAgICBuID0gZS5jb21wb25lbnQsDQogICAgICAgICAgICAgICAgICByID0gZS5jaGlsZEZh Y3RvcnksDQogICAgICAgICAgICAgICAgICBvID0gYShlLCBbImNvbXBvbmVudCIsICJjaGls ZEZhY3RvcnkiXSksDQogICAgICAgICAgICAgICAgICBpID0gdGhpcy5zdGF0ZS5jb250ZXh0 VmFsdWUsDQogICAgICAgICAgICAgICAgICBsID0gRXIodGhpcy5zdGF0ZS5jaGlsZHJlbiku bWFwKHIpOw0KICAgICAgICAgICAgICAgIHJldHVybiBkZWxldGUgby5hcHBlYXIsIGRlbGV0 ZSBvLmVudGVyLCBkZWxldGUgby5leGl0LCBudWxsID09PSBuID8gdC5jcmVhdGVFbGVtZW50 KHdyLlByb3ZpZGVyLCB7IHZhbHVlOiBpIH0sIGwpIDogdC5jcmVhdGVFbGVtZW50KHdyLlBy b3ZpZGVyLCB7IHZhbHVlOiBpIH0sIHQuY3JlYXRlRWxlbWVudChuLCBvLCBsKSk7DQogICAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBuDQogICAgICAgICAgICApOw0KICAgICAg ICAgIH0pKHQuQ29tcG9uZW50KTsNCiAgICAgICAgKENyLnByb3BUeXBlcyA9IHt9KSwNCiAg ICAgICAgICAoQ3IuZGVmYXVsdFByb3BzID0gew0KICAgICAgICAgICAgY29tcG9uZW50OiAi ZGl2IiwNCiAgICAgICAgICAgIGNoaWxkRmFjdG9yeTogZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgICAgcmV0dXJuIGU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0pOw0KICAg ICAgICBjb25zdCBSciA9IENyOw0KICAgICAgICBuKDExMCk7DQogICAgICAgIHZhciBfciA9 IEJlKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgdmFyIHIgPSBlLnN0eWxlcywNCiAg ICAgICAgICAgIG8gPSB6ZShbcl0sIHZvaWQgMCwgdC51c2VDb250ZXh0KERlKSksDQogICAg ICAgICAgICBhID0gdC51c2VSZWYoKTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgTGUoDQogICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2 YXIgZSA9IG4ua2V5ICsgIi1nbG9iYWwiLA0KICAgICAgICAgICAgICAgICAgdCA9IG5ldyBu LnNoZWV0LmNvbnN0cnVjdG9yKHsga2V5OiBlLCBub25jZTogbi5zaGVldC5ub25jZSwgY29u dGFpbmVyOiBuLnNoZWV0LmNvbnRhaW5lciwgc3BlZWR5OiBuLnNoZWV0LmlzU3BlZWR5IH0p LA0KICAgICAgICAgICAgICAgICAgciA9ICExLA0KICAgICAgICAgICAgICAgICAgaSA9IGRv Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtZW1vdGlvbj0iJyArIGUgKyAiICIg KyBvLm5hbWUgKyAnIl0nKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgICAgICAgbi5zaGVldC50YWdzLmxlbmd0aCAmJiAodC5iZWZvcmUgPSBuLnNoZWV0LnRh Z3NbMF0pLA0KICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gaSAmJiAoKHIgPSAhMCksIGku c2V0QXR0cmlidXRlKCJkYXRhLWVtb3Rpb24iLCBlKSwgdC5oeWRyYXRlKFtpXSkpLA0KICAg ICAgICAgICAgICAgICAgKGEuY3VycmVudCA9IFt0LCByXSksDQogICAgICAgICAgICAgICAg ICBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHQuZmx1c2goKTsNCiAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICB9LA0K ICAgICAgICAgICAgICBbbl0NCiAgICAgICAgICAgICksDQogICAgICAgICAgICBMZSgNCiAg ICAgICAgICAgICAgZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBlID0gYS5j dXJyZW50LA0KICAgICAgICAgICAgICAgICAgdCA9IGVbMF07DQogICAgICAgICAgICAgICAg aWYgKGVbMV0pIGVbMV0gPSAhMTsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAg ICAgICAgICAgIGlmICgodm9pZCAwICE9PSBvLm5leHQgJiYgV2Uobiwgby5uZXh0LCAhMCks IHQudGFncy5sZW5ndGgpKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciByID0gdC50YWdz W3QudGFncy5sZW5ndGggLSAxXS5uZXh0RWxlbWVudFNpYmxpbmc7DQogICAgICAgICAgICAg ICAgICAgICh0LmJlZm9yZSA9IHIpLCB0LmZsdXNoKCk7DQogICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICBuLmluc2VydCgiIiwgbywgdCwgITEpOw0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgW24sIG8ubmFtZV0N CiAgICAgICAgICAgICksDQogICAgICAgICAgICBudWxsDQogICAgICAgICAgKTsNCiAgICAg ICAgfSk7DQogICAgICAgIGZ1bmN0aW9uIFByKCkgew0KICAgICAgICAgIGZvciAodmFyIGUg PSBhcmd1bWVudHMubGVuZ3RoLCB0ID0gbmV3IEFycmF5KGUpLCBuID0gMDsgbiA8IGU7IG4r KykgdFtuXSA9IGFyZ3VtZW50c1tuXTsNCiAgICAgICAgICByZXR1cm4gemUodCk7DQogICAg ICAgIH0NCiAgICAgICAgdmFyIE9yID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgIHZhciBl ID0gUHIuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpLA0KICAgICAgICAgICAgdCA9ICJhbmlt YXRpb24tIiArIGUubmFtZTsNCiAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgbmFt ZTogdCwNCiAgICAgICAgICAgIHN0eWxlczogIkBrZXlmcmFtZXMgIiArIHQgKyAieyIgKyBl LnN0eWxlcyArICJ9IiwNCiAgICAgICAgICAgIGFuaW06IDEsDQogICAgICAgICAgICB0b1N0 cmluZzogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICByZXR1cm4gIl9FTU9fIiArIHRo aXMubmFtZSArICJfIiArIHRoaXMuc3R5bGVzICsgIl9FTU9fIjsNCiAgICAgICAgICAgIH0s DQogICAgICAgICAgfTsNCiAgICAgICAgfTsNCiAgICAgICAgdmFyIE5yID0gbigxODQpOw0K ICAgICAgICBjb25zdCBUciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgY29uc3QgeyBj bGFzc05hbWU6IG4sIGNsYXNzZXM6IHIsIHB1bHNhdGU6IG8gPSAhMSwgcmlwcGxlWDogYSwg cmlwcGxlWTogaSwgcmlwcGxlU2l6ZTogbCwgaW46IHUsIG9uRXhpdGVkOiBjLCB0aW1lb3V0 OiBkIH0gPSBlLA0KICAgICAgICAgICAgW2YsIHBdID0gdC51c2VTdGF0ZSghMSksDQogICAg ICAgICAgICBoID0gcyhuLCByLnJpcHBsZSwgci5yaXBwbGVWaXNpYmxlLCBvICYmIHIucmlw cGxlUHVsc2F0ZSksDQogICAgICAgICAgICBtID0geyB3aWR0aDogbCwgaGVpZ2h0OiBsLCB0 b3A6IC1sIC8gMiArIGksIGxlZnQ6IC1sIC8gMiArIGEgfSwNCiAgICAgICAgICAgIGcgPSBz KHIuY2hpbGQsIGYgJiYgci5jaGlsZExlYXZpbmcsIG8gJiYgci5jaGlsZFB1bHNhdGUpOw0K ICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICB1IHx8IGYgfHwgcCghMCksDQogICAg ICAgICAgICB0LnVzZUVmZmVjdCgoKSA9PiB7DQogICAgICAgICAgICAgIGlmICghdSAmJiBu dWxsICE9IGMpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBlID0gc2V0VGltZW91dChjLCBk KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gew0KICAgICAgICAgICAgICAgICAg Y2xlYXJUaW1lb3V0KGUpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgIH0N CiAgICAgICAgICAgIH0sIFtjLCB1LCBkXSksDQogICAgICAgICAgICAoMCwgTnIuanN4KSgi c3BhbiIsIHsgY2xhc3NOYW1lOiBoLCBzdHlsZTogbSwgY2hpbGRyZW46ICgwLCBOci5qc3gp KCJzcGFuIiwgeyBjbGFzc05hbWU6IGcgfSkgfSkNCiAgICAgICAgICApOw0KICAgICAgICB9 LA0KICAgICAgICAgIEFyID0gKGUpID0+IGUsDQogICAgICAgICAgTXIgPSAoKCkgPT4gew0K ICAgICAgICAgICAgbGV0IGUgPSBBcjsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAg ICAgICAgIGNvbmZpZ3VyZSh0KSB7DQogICAgICAgICAgICAgICAgZSA9IHQ7DQogICAgICAg ICAgICAgIH0sDQogICAgICAgICAgICAgIGdlbmVyYXRlOiAodCkgPT4gZSh0KSwNCiAgICAg ICAgICAgICAgcmVzZXQoKSB7DQogICAgICAgICAgICAgICAgZSA9IEFyOw0KICAgICAgICAg ICAgICB9LA0KICAgICAgICAgICAgfTsNCiAgICAgICAgICB9KSgpLA0KICAgICAgICAgIHpy ID0gew0KICAgICAgICAgICAgYWN0aXZlOiAiYWN0aXZlIiwNCiAgICAgICAgICAgIGNoZWNr ZWQ6ICJjaGVja2VkIiwNCiAgICAgICAgICAgIGNvbXBsZXRlZDogImNvbXBsZXRlZCIsDQog ICAgICAgICAgICBkaXNhYmxlZDogImRpc2FibGVkIiwNCiAgICAgICAgICAgIGVycm9yOiAi ZXJyb3IiLA0KICAgICAgICAgICAgZXhwYW5kZWQ6ICJleHBhbmRlZCIsDQogICAgICAgICAg ICBmb2N1c2VkOiAiZm9jdXNlZCIsDQogICAgICAgICAgICBmb2N1c1Zpc2libGU6ICJmb2N1 c1Zpc2libGUiLA0KICAgICAgICAgICAgb3BlbjogIm9wZW4iLA0KICAgICAgICAgICAgcmVh ZE9ubHk6ICJyZWFkT25seSIsDQogICAgICAgICAgICByZXF1aXJlZDogInJlcXVpcmVkIiwN CiAgICAgICAgICAgIHNlbGVjdGVkOiAic2VsZWN0ZWQiLA0KICAgICAgICAgIH07DQogICAg ICAgIGZ1bmN0aW9uIGpyKGUsIHQpIHsNCiAgICAgICAgICBsZXQgbiA9IGFyZ3VtZW50cy5s ZW5ndGggPiAyICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzJdID8gYXJndW1lbnRzWzJdIDog Ik11aSI7DQogICAgICAgICAgY29uc3QgciA9IHpyW3RdOw0KICAgICAgICAgIHJldHVybiBy ID8gIiIuY29uY2F0KG4sICItIikuY29uY2F0KHIpIDogIiIuY29uY2F0KE1yLmdlbmVyYXRl KGUpLCAiLSIpLmNvbmNhdCh0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBJcihl LCB0KSB7DQogICAgICAgICAgbGV0IG4gPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiB2b2lk IDAgIT09IGFyZ3VtZW50c1syXSA/IGFyZ3VtZW50c1syXSA6ICJNdWkiOw0KICAgICAgICAg IGNvbnN0IHIgPSB7fTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgdC5mb3JF YWNoKCh0KSA9PiB7DQogICAgICAgICAgICAgIHJbdF0gPSBqcihlLCB0LCBuKTsNCiAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgcg0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAg ICAgICAgY29uc3QgTHIgPSBJcigiTXVpVG91Y2hSaXBwbGUiLCBbInJvb3QiLCAicmlwcGxl IiwgInJpcHBsZVZpc2libGUiLCAicmlwcGxlUHVsc2F0ZSIsICJjaGlsZCIsICJjaGlsZExl YXZpbmciLCAiY2hpbGRQdWxzYXRlIl0pOw0KICAgICAgICB2YXIgRnIsIEJyLCBEciwgVXI7 DQogICAgICAgIGNvbnN0IFdyID0gWyJjZW50ZXIiLCAiY2xhc3NlcyIsICJjbGFzc05hbWUi XTsNCiAgICAgICAgbGV0IFZyLCBIciwgcXIsICRyOw0KICAgICAgICBjb25zdCBLciA9IE9y KFZyIHx8IChWciA9IEZyIHx8IChGciA9IHZyKFsiXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06 IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRy YW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG4iXSkpKSksDQog ICAgICAgICAgUXIgPSBPcihIciB8fCAoSHIgPSBCciB8fCAoQnIgPSB2cihbIlxuICAwJSB7 XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4g IH1cbiJdKSkpKSwNCiAgICAgICAgICBHciA9IE9yKHFyIHx8IChxciA9IERyIHx8IChEciA9 IHZyKFsiXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5cbiAgNTAl IHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAg dHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuIl0pKSkpLA0KICAgICAgICAgIFlyID0gWW4o InNwYW4iLCB7IG5hbWU6ICJNdWlUb3VjaFJpcHBsZSIsIHNsb3Q6ICJSb290IiB9KSh7IG92 ZXJmbG93OiAiaGlkZGVuIiwgcG9pbnRlckV2ZW50czogIm5vbmUiLCBwb3NpdGlvbjogImFi c29sdXRlIiwgekluZGV4OiAwLCB0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGxlZnQ6 IDAsIGJvcmRlclJhZGl1czogImluaGVyaXQiIH0pLA0KICAgICAgICAgIFhyID0gWW4oVHIs IHsgbmFtZTogIk11aVRvdWNoUmlwcGxlIiwgc2xvdDogIlJpcHBsZSIgfSkoDQogICAgICAg ICAgICAkciB8fA0KICAgICAgICAgICAgKCRyID0NCiAgICAgICAgICAgICAgVXIgfHwNCiAg ICAgICAgICAgICAgKFVyID0gdnIoWw0KICAgICAgICAgICAgICAgICJcbiAgb3BhY2l0eTog MDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICYuIiwNCiAgICAgICAgICAgICAgICAi IHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBh bmltYXRpb24tbmFtZTogIiwNCiAgICAgICAgICAgICAgICAiO1xuICAgIGFuaW1hdGlvbi1k dXJhdGlvbjogIiwNCiAgICAgICAgICAgICAgICAibXM7XG4gICAgYW5pbWF0aW9uLXRpbWlu Zy1mdW5jdGlvbjogIiwNCiAgICAgICAgICAgICAgICAiO1xuICB9XG5cbiAgJi4iLA0KICAg ICAgICAgICAgICAgICIge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogIiwNCiAgICAgICAg ICAgICAgICAibXM7XG4gIH1cblxuICAmIC4iLA0KICAgICAgICAgICAgICAgICIge1xuICAg IG9wYWNpdHk6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4g ICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3Jv dW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAmIC4iLA0KICAgICAgICAgICAg ICAgICIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYW5pbWF0aW9uLW5hbWU6ICIsDQogICAg ICAgICAgICAgICAgIjtcbiAgICBhbmltYXRpb24tZHVyYXRpb246ICIsDQogICAgICAgICAg ICAgICAgIm1zO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICIsDQogICAgICAg ICAgICAgICAgIjtcbiAgfVxuXG4gICYgLiIsDQogICAgICAgICAgICAgICAgIiB7XG4gICAg cG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwcHg7 XG4gICAgdG9wOiAwO1xuICAgIGFuaW1hdGlvbi1uYW1lOiAiLA0KICAgICAgICAgICAgICAg ICI7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTAwbXM7XG4gICAgYW5pbWF0aW9uLXRp bWluZy1mdW5jdGlvbjogIiwNCiAgICAgICAgICAgICAgICAiO1xuICAgIGFuaW1hdGlvbi1p dGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMjAwbXM7 XG4gIH1cbiIsDQogICAgICAgICAgICAgIF0pKSksDQogICAgICAgICAgICBMci5yaXBwbGVW aXNpYmxlLA0KICAgICAgICAgICAgS3IsDQogICAgICAgICAgICA1NTAsDQogICAgICAgICAg ICAoZSkgPT4gew0KICAgICAgICAgICAgICBsZXQgeyB0aGVtZTogdCB9ID0gZTsNCiAgICAg ICAgICAgICAgcmV0dXJuIHQudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dDsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgICBMci5yaXBwbGVQdWxzYXRlLA0KICAgICAgICAgICAg KGUpID0+IHsNCiAgICAgICAgICAgICAgbGV0IHsgdGhlbWU6IHQgfSA9IGU7DQogICAgICAg ICAgICAgIHJldHVybiB0LnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXI7DQogICAgICAg ICAgICB9LA0KICAgICAgICAgICAgTHIuY2hpbGQsDQogICAgICAgICAgICBMci5jaGlsZExl YXZpbmcsDQogICAgICAgICAgICBRciwNCiAgICAgICAgICAgIDU1MCwNCiAgICAgICAgICAg IChlKSA9PiB7DQogICAgICAgICAgICAgIGxldCB7IHRoZW1lOiB0IH0gPSBlOw0KICAgICAg ICAgICAgICByZXR1cm4gdC50cmFuc2l0aW9ucy5lYXNpbmcuZWFzZUluT3V0Ow0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgIExyLmNoaWxkUHVsc2F0ZSwNCiAgICAgICAgICAgIEdy LA0KICAgICAgICAgICAgKGUpID0+IHsNCiAgICAgICAgICAgICAgbGV0IHsgdGhlbWU6IHQg fSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiB0LnRyYW5zaXRpb25zLmVhc2luZy5lYXNl SW5PdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgKSwNCiAgICAgICAgICBaciA9IHQu Zm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgbikgew0KICAgICAgICAgICAgY29uc3QgciA9IHRy KHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlUb3VjaFJpcHBsZSIgfSksDQogICAgICAgICAgICAg IHsgY2VudGVyOiBvID0gITEsIGNsYXNzZXM6IGwgPSB7fSwgY2xhc3NOYW1lOiB1IH0gPSBy LA0KICAgICAgICAgICAgICBjID0gYShyLCBXciksDQogICAgICAgICAgICAgIFtkLCBmXSA9 IHQudXNlU3RhdGUoW10pLA0KICAgICAgICAgICAgICBwID0gdC51c2VSZWYoMCksDQogICAg ICAgICAgICAgIGggPSB0LnVzZVJlZihudWxsKTsNCiAgICAgICAgICAgIHQudXNlRWZmZWN0 KCgpID0+IHsNCiAgICAgICAgICAgICAgaC5jdXJyZW50ICYmIChoLmN1cnJlbnQoKSwgKGgu Y3VycmVudCA9IG51bGwpKTsNCiAgICAgICAgICAgIH0sIFtkXSk7DQogICAgICAgICAgICBj b25zdCBtID0gdC51c2VSZWYoITEpLA0KICAgICAgICAgICAgICBnID0gdC51c2VSZWYoMCks DQogICAgICAgICAgICAgIHYgPSB0LnVzZVJlZihudWxsKSwNCiAgICAgICAgICAgICAgeSA9 IHQudXNlUmVmKG51bGwpOw0KICAgICAgICAgICAgdC51c2VFZmZlY3QoDQogICAgICAgICAg ICAgICgpID0+ICgpID0+IHsNCiAgICAgICAgICAgICAgICBnLmN1cnJlbnQgJiYgY2xlYXJU aW1lb3V0KGcuY3VycmVudCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIFtd DQogICAgICAgICAgICApOw0KICAgICAgICAgICAgY29uc3QgYiA9IHQudXNlQ2FsbGJhY2so DQogICAgICAgICAgICAgIChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBwdWxz YXRlOiB0LCByaXBwbGVYOiBuLCByaXBwbGVZOiByLCByaXBwbGVTaXplOiBvLCBjYjogYSB9 ID0gZTsNCiAgICAgICAgICAgICAgICBmKChlKSA9PiBbDQogICAgICAgICAgICAgICAgICAu Li5lLA0KICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoDQogICAgICAgICAgICAgICAg ICAgIFhyLA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg Y2xhc3Nlczogew0KICAgICAgICAgICAgICAgICAgICAgICAgcmlwcGxlOiBzKGwucmlwcGxl LCBMci5yaXBwbGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgcmlwcGxlVmlzaWJsZTog cyhsLnJpcHBsZVZpc2libGUsIExyLnJpcHBsZVZpc2libGUpLA0KICAgICAgICAgICAgICAg ICAgICAgICAgcmlwcGxlUHVsc2F0ZTogcyhsLnJpcHBsZVB1bHNhdGUsIExyLnJpcHBsZVB1 bHNhdGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQ6IHMobC5jaGlsZCwgTHIu Y2hpbGQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRMZWF2aW5nOiBzKGwuY2hp bGRMZWF2aW5nLCBMci5jaGlsZExlYXZpbmcpLA0KICAgICAgICAgICAgICAgICAgICAgICAg Y2hpbGRQdWxzYXRlOiBzKGwuY2hpbGRQdWxzYXRlLCBMci5jaGlsZFB1bHNhdGUpLA0KICAg ICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgdGltZW91dDog NTUwLA0KICAgICAgICAgICAgICAgICAgICAgIHB1bHNhdGU6IHQsDQogICAgICAgICAgICAg ICAgICAgICAgcmlwcGxlWDogbiwNCiAgICAgICAgICAgICAgICAgICAgICByaXBwbGVZOiBy LA0KICAgICAgICAgICAgICAgICAgICAgIHJpcHBsZVNpemU6IG8sDQogICAgICAgICAgICAg ICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIHAuY3VycmVudA0KICAgICAgICAgICAg ICAgICAgKSwNCiAgICAgICAgICAgICAgICBdKSwNCiAgICAgICAgICAgICAgICAgIChwLmN1 cnJlbnQgKz0gMSksDQogICAgICAgICAgICAgICAgICAoaC5jdXJyZW50ID0gYSk7DQogICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAgIFtsXQ0KICAgICAgICAgICAgKSwNCiAgICAg ICAgICAgICAgdyA9IHQudXNlQ2FsbGJhY2soDQogICAgICAgICAgICAgICAgZnVuY3Rpb24g KCkgew0KICAgICAgICAgICAgICAgICAgbGV0IGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAm JiB2b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6IHt9LA0KICAgICAg ICAgICAgICAgICAgICB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBh cmd1bWVudHNbMV0gPyBhcmd1bWVudHNbMV0gOiB7fSwNCiAgICAgICAgICAgICAgICAgICAg biA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzJdID8g YXJndW1lbnRzWzJdIDogKCkgPT4geyB9Ow0KICAgICAgICAgICAgICAgICAgY29uc3QgeyBw dWxzYXRlOiByID0gITEsIGNlbnRlcjogYSA9IG8gfHwgdC5wdWxzYXRlLCBmYWtlRWxlbWVu dDogaSA9ICExIH0gPSB0Ow0KICAgICAgICAgICAgICAgICAgaWYgKCJtb3VzZWRvd24iID09 PSAobnVsbCA9PSBlID8gdm9pZCAwIDogZS50eXBlKSAmJiBtLmN1cnJlbnQpIHJldHVybiB2 b2lkIChtLmN1cnJlbnQgPSAhMSk7DQogICAgICAgICAgICAgICAgICAidG91Y2hzdGFydCIg PT09IChudWxsID09IGUgPyB2b2lkIDAgOiBlLnR5cGUpICYmIChtLmN1cnJlbnQgPSAhMCk7 DQogICAgICAgICAgICAgICAgICBjb25zdCBsID0gaSA/IG51bGwgOiB5LmN1cnJlbnQsDQog ICAgICAgICAgICAgICAgICAgIHMgPSBsID8gbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6 IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgbGVmdDogMCwgdG9wOiAwIH07DQogICAgICAgICAg ICAgICAgICBsZXQgdSwgYywgZDsNCiAgICAgICAgICAgICAgICAgIGlmIChhIHx8IHZvaWQg MCA9PT0gZSB8fCAoMCA9PT0gZS5jbGllbnRYICYmIDAgPT09IGUuY2xpZW50WSkgfHwgKCFl LmNsaWVudFggJiYgIWUudG91Y2hlcykpICh1ID0gTWF0aC5yb3VuZChzLndpZHRoIC8gMikp LCAoYyA9IE1hdGgucm91bmQocy5oZWlnaHQgLyAyKSk7DQogICAgICAgICAgICAgICAgICBl bHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBjbGllbnRYOiB0LCBjbGllbnRZ OiBuIH0gPSBlLnRvdWNoZXMgJiYgZS50b3VjaGVzLmxlbmd0aCA+IDAgPyBlLnRvdWNoZXNb MF0gOiBlOw0KICAgICAgICAgICAgICAgICAgICAodSA9IE1hdGgucm91bmQodCAtIHMubGVm dCkpLCAoYyA9IE1hdGgucm91bmQobiAtIHMudG9wKSk7DQogICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICBpZiAoYSkgKGQgPSBNYXRoLnNxcnQoKDIgKiBzLndpZHRo ICoqIDIgKyBzLmhlaWdodCAqKiAyKSAvIDMpKSwgZCAlIDIgPT09IDAgJiYgKGQgKz0gMSk7 DQogICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qg ZSA9IDIgKiBNYXRoLm1heChNYXRoLmFicygobCA/IGwuY2xpZW50V2lkdGggOiAwKSAtIHUp LCB1KSArIDIsDQogICAgICAgICAgICAgICAgICAgICAgdCA9IDIgKiBNYXRoLm1heChNYXRo LmFicygobCA/IGwuY2xpZW50SGVpZ2h0IDogMCkgLSBjKSwgYykgKyAyOw0KICAgICAgICAg ICAgICAgICAgICBkID0gTWF0aC5zcXJ0KGUgKiogMiArIHQgKiogMik7DQogICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICBudWxsICE9IGUgJiYgZS50b3VjaGVzDQog ICAgICAgICAgICAgICAgICAgID8gbnVsbCA9PT0gdi5jdXJyZW50ICYmDQogICAgICAgICAg ICAgICAgICAgICgodi5jdXJyZW50ID0gKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAg IGIoeyBwdWxzYXRlOiByLCByaXBwbGVYOiB1LCByaXBwbGVZOiBjLCByaXBwbGVTaXplOiBk LCBjYjogbiB9KTsNCiAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAg ICAgICAgKGcuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAg ICAgICAgICAgdi5jdXJyZW50ICYmICh2LmN1cnJlbnQoKSwgKHYuY3VycmVudCA9IG51bGwp KTsNCiAgICAgICAgICAgICAgICAgICAgICB9LCA4MCkpKQ0KICAgICAgICAgICAgICAgICAg ICA6IGIoeyBwdWxzYXRlOiByLCByaXBwbGVYOiB1LCByaXBwbGVZOiBjLCByaXBwbGVTaXpl OiBkLCBjYjogbiB9KTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIFtv LCBiXQ0KICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICB4ID0gdC51c2VDYWxsYmFj aygoKSA9PiB7DQogICAgICAgICAgICAgICAgdyh7fSwgeyBwdWxzYXRlOiAhMCB9KTsNCiAg ICAgICAgICAgICAgfSwgW3ddKSwNCiAgICAgICAgICAgICAgUyA9IHQudXNlQ2FsbGJhY2so KGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgICBpZiAoKGNsZWFyVGltZW91dChnLmN1cnJl bnQpLCAidG91Y2hlbmQiID09PSAobnVsbCA9PSBlID8gdm9pZCAwIDogZS50eXBlKSAmJiB2 LmN1cnJlbnQpKQ0KICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAg ICAgICAgdi5jdXJyZW50KCksDQogICAgICAgICAgICAgICAgICAgICh2LmN1cnJlbnQgPSBu dWxsKSwNCiAgICAgICAgICAgICAgICAgICAgdm9pZCAoZy5jdXJyZW50ID0gc2V0VGltZW91 dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgUyhlLCB0KTsNCiAgICAgICAgICAg ICAgICAgICAgfSkpDQogICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICh2 LmN1cnJlbnQgPSBudWxsKSwgZigoZSkgPT4gKGUubGVuZ3RoID4gMCA/IGUuc2xpY2UoMSkg OiBlKSksIChoLmN1cnJlbnQgPSB0KTsNCiAgICAgICAgICAgICAgfSwgW10pOw0KICAgICAg ICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgdC51c2VJbXBlcmF0aXZlSGFuZGxlKG4s ICgpID0+ICh7IHB1bHNhdGU6IHgsIHN0YXJ0OiB3LCBzdG9wOiBTIH0pLCBbeCwgdywgU10p LA0KICAgICAgICAgICAgICAoMCwgTnIuanN4KShZciwgaSh7IGNsYXNzTmFtZTogcyhMci5y b290LCBsLnJvb3QsIHUpLCByZWY6IHkgfSwgYywgeyBjaGlsZHJlbjogKDAsIE5yLmpzeCko UnIsIHsgY29tcG9uZW50OiBudWxsLCBleGl0OiAhMCwgY2hpbGRyZW46IGQgfSkgfSkpDQog ICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIEpyID0gWnI7DQogICAg ICAgIGZ1bmN0aW9uIGVvKGUpIHsNCiAgICAgICAgICByZXR1cm4ganIoIk11aUJ1dHRvbkJh c2UiLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCB0byA9IElyKCJNdWlCdXR0b25C YXNlIiwgWyJyb290IiwgImRpc2FibGVkIiwgImZvY3VzVmlzaWJsZSJdKSwNCiAgICAgICAg ICBubyA9IFsNCiAgICAgICAgICAgICJhY3Rpb24iLA0KICAgICAgICAgICAgImNlbnRlclJp cHBsZSIsDQogICAgICAgICAgICAiY2hpbGRyZW4iLA0KICAgICAgICAgICAgImNsYXNzTmFt ZSIsDQogICAgICAgICAgICAiY29tcG9uZW50IiwNCiAgICAgICAgICAgICJkaXNhYmxlZCIs DQogICAgICAgICAgICAiZGlzYWJsZVJpcHBsZSIsDQogICAgICAgICAgICAiZGlzYWJsZVRv dWNoUmlwcGxlIiwNCiAgICAgICAgICAgICJmb2N1c1JpcHBsZSIsDQogICAgICAgICAgICAi Zm9jdXNWaXNpYmxlQ2xhc3NOYW1lIiwNCiAgICAgICAgICAgICJMaW5rQ29tcG9uZW50IiwN CiAgICAgICAgICAgICJvbkJsdXIiLA0KICAgICAgICAgICAgIm9uQ2xpY2siLA0KICAgICAg ICAgICAgIm9uQ29udGV4dE1lbnUiLA0KICAgICAgICAgICAgIm9uRHJhZ0xlYXZlIiwNCiAg ICAgICAgICAgICJvbkZvY3VzIiwNCiAgICAgICAgICAgICJvbkZvY3VzVmlzaWJsZSIsDQog ICAgICAgICAgICAib25LZXlEb3duIiwNCiAgICAgICAgICAgICJvbktleVVwIiwNCiAgICAg ICAgICAgICJvbk1vdXNlRG93biIsDQogICAgICAgICAgICAib25Nb3VzZUxlYXZlIiwNCiAg ICAgICAgICAgICJvbk1vdXNlVXAiLA0KICAgICAgICAgICAgIm9uVG91Y2hFbmQiLA0KICAg ICAgICAgICAgIm9uVG91Y2hNb3ZlIiwNCiAgICAgICAgICAgICJvblRvdWNoU3RhcnQiLA0K ICAgICAgICAgICAgInRhYkluZGV4IiwNCiAgICAgICAgICAgICJUb3VjaFJpcHBsZVByb3Bz IiwNCiAgICAgICAgICAgICJ0b3VjaFJpcHBsZVJlZiIsDQogICAgICAgICAgICAidHlwZSIs DQogICAgICAgICAgXSwNCiAgICAgICAgICBybyA9IFluKCJidXR0b24iLCB7IG5hbWU6ICJN dWlCdXR0b25CYXNlIiwgc2xvdDogIlJvb3QiLCBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQp ID0+IHQucm9vdCB9KSh7DQogICAgICAgICAgICBkaXNwbGF5OiAiaW5saW5lLWZsZXgiLA0K ICAgICAgICAgICAgYWxpZ25JdGVtczogImNlbnRlciIsDQogICAgICAgICAgICBqdXN0aWZ5 Q29udGVudDogImNlbnRlciIsDQogICAgICAgICAgICBwb3NpdGlvbjogInJlbGF0aXZlIiwN CiAgICAgICAgICAgIGJveFNpemluZzogImJvcmRlci1ib3giLA0KICAgICAgICAgICAgV2Vi a2l0VGFwSGlnaGxpZ2h0Q29sb3I6ICJ0cmFuc3BhcmVudCIsDQogICAgICAgICAgICBiYWNr Z3JvdW5kQ29sb3I6ICJ0cmFuc3BhcmVudCIsDQogICAgICAgICAgICBvdXRsaW5lOiAwLA0K ICAgICAgICAgICAgYm9yZGVyOiAwLA0KICAgICAgICAgICAgbWFyZ2luOiAwLA0KICAgICAg ICAgICAgYm9yZGVyUmFkaXVzOiAwLA0KICAgICAgICAgICAgcGFkZGluZzogMCwNCiAgICAg ICAgICAgIGN1cnNvcjogInBvaW50ZXIiLA0KICAgICAgICAgICAgdXNlclNlbGVjdDogIm5v bmUiLA0KICAgICAgICAgICAgdmVydGljYWxBbGlnbjogIm1pZGRsZSIsDQogICAgICAgICAg ICBNb3pBcHBlYXJhbmNlOiAibm9uZSIsDQogICAgICAgICAgICBXZWJraXRBcHBlYXJhbmNl OiAibm9uZSIsDQogICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogIm5vbmUiLA0KICAgICAg ICAgICAgY29sb3I6ICJpbmhlcml0IiwNCiAgICAgICAgICAgICImOjotbW96LWZvY3VzLWlu bmVyIjogeyBib3JkZXJTdHlsZTogIm5vbmUiIH0sDQogICAgICAgICAgICBbIiYuIi5jb25j YXQodG8uZGlzYWJsZWQpXTogeyBwb2ludGVyRXZlbnRzOiAibm9uZSIsIGN1cnNvcjogImRl ZmF1bHQiIH0sDQogICAgICAgICAgICAiQG1lZGlhIHByaW50IjogeyBjb2xvckFkanVzdDog ImV4YWN0IiB9LA0KICAgICAgICAgIH0pLA0KICAgICAgICAgIG9vID0gdC5mb3J3YXJkUmVm KGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICBjb25zdCByID0gdHIoeyBwcm9wczog ZSwgbmFtZTogIk11aUJ1dHRvbkJhc2UiIH0pLA0KICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgYWN0aW9uOiBvLA0KICAgICAgICAgICAgICAgIGNlbnRlclJpcHBsZTogbCA9 ICExLA0KICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB1LA0KICAgICAgICAgICAgICAgIGNs YXNzTmFtZTogZCwNCiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGYgPSAiYnV0dG9uIiwN CiAgICAgICAgICAgICAgICBkaXNhYmxlZDogcCA9ICExLA0KICAgICAgICAgICAgICAgIGRp c2FibGVSaXBwbGU6IGggPSAhMSwNCiAgICAgICAgICAgICAgICBkaXNhYmxlVG91Y2hSaXBw bGU6IG0gPSAhMSwNCiAgICAgICAgICAgICAgICBmb2N1c1JpcHBsZTogZyA9ICExLA0KICAg ICAgICAgICAgICAgIExpbmtDb21wb25lbnQ6IHYgPSAiYSIsDQogICAgICAgICAgICAgICAg b25CbHVyOiB5LA0KICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGIsDQogICAgICAgICAgICAg ICAgb25Db250ZXh0TWVudTogdywNCiAgICAgICAgICAgICAgICBvbkRyYWdMZWF2ZTogeCwN CiAgICAgICAgICAgICAgICBvbkZvY3VzOiBTLA0KICAgICAgICAgICAgICAgIG9uRm9jdXNW aXNpYmxlOiBrLA0KICAgICAgICAgICAgICAgIG9uS2V5RG93bjogRSwNCiAgICAgICAgICAg ICAgICBvbktleVVwOiBDLA0KICAgICAgICAgICAgICAgIG9uTW91c2VEb3duOiBSLA0KICAg ICAgICAgICAgICAgIG9uTW91c2VMZWF2ZTogXywNCiAgICAgICAgICAgICAgICBvbk1vdXNl VXA6IFAsDQogICAgICAgICAgICAgICAgb25Ub3VjaEVuZDogTywNCiAgICAgICAgICAgICAg ICBvblRvdWNoTW92ZTogTiwNCiAgICAgICAgICAgICAgICBvblRvdWNoU3RhcnQ6IFQsDQog ICAgICAgICAgICAgICAgdGFiSW5kZXg6IEEgPSAwLA0KICAgICAgICAgICAgICAgIFRvdWNo UmlwcGxlUHJvcHM6IE0sDQogICAgICAgICAgICAgICAgdG91Y2hSaXBwbGVSZWY6IHosDQog ICAgICAgICAgICAgICAgdHlwZTogaiwNCiAgICAgICAgICAgICAgfSA9IHIsDQogICAgICAg ICAgICAgIEkgPSBhKHIsIG5vKSwNCiAgICAgICAgICAgICAgTCA9IHQudXNlUmVmKG51bGwp LA0KICAgICAgICAgICAgICBGID0gdC51c2VSZWYobnVsbCksDQogICAgICAgICAgICAgIEIg PSBvcihGLCB6KSwNCiAgICAgICAgICAgICAgeyBpc0ZvY3VzVmlzaWJsZVJlZjogRCwgb25G b2N1czogVSwgb25CbHVyOiBXLCByZWY6IFYgfSA9IGdyKCksDQogICAgICAgICAgICAgIFtI LCBxXSA9IHQudXNlU3RhdGUoITEpOw0KICAgICAgICAgICAgcCAmJiBIICYmIHEoITEpLA0K ICAgICAgICAgICAgICB0LnVzZUltcGVyYXRpdmVIYW5kbGUoDQogICAgICAgICAgICAgICAg bywNCiAgICAgICAgICAgICAgICAoKSA9PiAoew0KICAgICAgICAgICAgICAgICAgZm9jdXNW aXNpYmxlOiAoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHEoITApLCBMLmN1cnJlbnQu Zm9jdXMoKTsNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICAgW10NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIGNvbnN0 IFskLCBLXSA9IHQudXNlU3RhdGUoITEpOw0KICAgICAgICAgICAgdC51c2VFZmZlY3QoKCkg PT4gew0KICAgICAgICAgICAgICBLKCEwKTsNCiAgICAgICAgICAgIH0sIFtdKTsNCiAgICAg ICAgICAgIGNvbnN0IFEgPSAkICYmICFoICYmICFwOw0KICAgICAgICAgICAgZnVuY3Rpb24g RyhlLCB0KSB7DQogICAgICAgICAgICAgIGxldCBuID0gYXJndW1lbnRzLmxlbmd0aCA+IDIg JiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiBtOw0KICAgICAg ICAgICAgICByZXR1cm4gbHIoKHIpID0+IHsNCiAgICAgICAgICAgICAgICB0ICYmIHQocik7 DQogICAgICAgICAgICAgICAgcmV0dXJuICFuICYmIEYuY3VycmVudCAmJiBGLmN1cnJlbnRb ZV0ociksICEwOw0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIHQudXNlRWZmZWN0KCgpID0+IHsNCiAgICAgICAgICAgICAgSCAmJiBnICYmICFoICYm ICQgJiYgRi5jdXJyZW50LnB1bHNhdGUoKTsNCiAgICAgICAgICAgIH0sIFtoLCBnLCBILCAk XSk7DQogICAgICAgICAgICBjb25zdCBZID0gRygic3RhcnQiLCBSKSwNCiAgICAgICAgICAg ICAgWCA9IEcoInN0b3AiLCB3KSwNCiAgICAgICAgICAgICAgWiA9IEcoInN0b3AiLCB4KSwN CiAgICAgICAgICAgICAgSiA9IEcoInN0b3AiLCBQKSwNCiAgICAgICAgICAgICAgZWUgPSBH KCJzdG9wIiwgKGUpID0+IHsNCiAgICAgICAgICAgICAgICBIICYmIGUucHJldmVudERlZmF1 bHQoKSwgXyAmJiBfKGUpOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgdGUg PSBHKCJzdGFydCIsIFQpLA0KICAgICAgICAgICAgICBuZSA9IEcoInN0b3AiLCBPKSwNCiAg ICAgICAgICAgICAgcmUgPSBHKCJzdG9wIiwgTiksDQogICAgICAgICAgICAgIG9lID0gRygN CiAgICAgICAgICAgICAgICAic3RvcCIsDQogICAgICAgICAgICAgICAgKGUpID0+IHsNCiAg ICAgICAgICAgICAgICAgIFcoZSksICExID09PSBELmN1cnJlbnQgJiYgcSghMSksIHkgJiYg eShlKTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICExDQogICAgICAg ICAgICAgICksDQogICAgICAgICAgICAgIGFlID0gbHIoKGUpID0+IHsNCiAgICAgICAgICAg ICAgICBMLmN1cnJlbnQgfHwgKEwuY3VycmVudCA9IGUuY3VycmVudFRhcmdldCksIFUoZSks ICEwID09PSBELmN1cnJlbnQgJiYgKHEoITApLCBrICYmIGsoZSkpLCBTICYmIFMoZSk7DQog ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBpZSA9ICgpID0+IHsNCiAgICAgICAg ICAgICAgICBjb25zdCBlID0gTC5jdXJyZW50Ow0KICAgICAgICAgICAgICAgIHJldHVybiBm ICYmICJidXR0b24iICE9PSBmICYmICEoIkEiID09PSBlLnRhZ05hbWUgJiYgZS5ocmVmKTsN CiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgbGUgPSB0LnVzZVJlZighMSksDQog ICAgICAgICAgICAgIHNlID0gbHIoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBnICYmDQog ICAgICAgICAgICAgICAgICAhbGUuY3VycmVudCAmJg0KICAgICAgICAgICAgICAgICAgSCAm Jg0KICAgICAgICAgICAgICAgICAgRi5jdXJyZW50ICYmDQogICAgICAgICAgICAgICAgICAi ICIgPT09IGUua2V5ICYmDQogICAgICAgICAgICAgICAgICAoKGxlLmN1cnJlbnQgPSAhMCks DQogICAgICAgICAgICAgICAgICAgIEYuY3VycmVudC5zdG9wKGUsICgpID0+IHsNCiAgICAg ICAgICAgICAgICAgICAgICBGLmN1cnJlbnQuc3RhcnQoZSk7DQogICAgICAgICAgICAgICAg ICAgIH0pKSwNCiAgICAgICAgICAgICAgICAgIGUudGFyZ2V0ID09PSBlLmN1cnJlbnRUYXJn ZXQgJiYgaWUoKSAmJiAiICIgPT09IGUua2V5ICYmIGUucHJldmVudERlZmF1bHQoKSwNCiAg ICAgICAgICAgICAgICAgIEUgJiYgRShlKSwNCiAgICAgICAgICAgICAgICAgIGUudGFyZ2V0 ID09PSBlLmN1cnJlbnRUYXJnZXQgJiYgaWUoKSAmJiAiRW50ZXIiID09PSBlLmtleSAmJiAh cCAmJiAoZS5wcmV2ZW50RGVmYXVsdCgpLCBiICYmIGIoZSkpOw0KICAgICAgICAgICAgICB9 KSwNCiAgICAgICAgICAgICAgdWUgPSBscigoZSkgPT4gew0KICAgICAgICAgICAgICAgIGcg JiYNCiAgICAgICAgICAgICAgICAgICIgIiA9PT0gZS5rZXkgJiYNCiAgICAgICAgICAgICAg ICAgIEYuY3VycmVudCAmJg0KICAgICAgICAgICAgICAgICAgSCAmJg0KICAgICAgICAgICAg ICAgICAgIWUuZGVmYXVsdFByZXZlbnRlZCAmJg0KICAgICAgICAgICAgICAgICAgKChsZS5j dXJyZW50ID0gITEpLA0KICAgICAgICAgICAgICAgICAgICBGLmN1cnJlbnQuc3RvcChlLCAo KSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgRi5jdXJyZW50LnB1bHNhdGUoZSk7DQog ICAgICAgICAgICAgICAgICAgIH0pKSwNCiAgICAgICAgICAgICAgICAgIEMgJiYgQyhlKSwN CiAgICAgICAgICAgICAgICAgIGIgJiYgZS50YXJnZXQgPT09IGUuY3VycmVudFRhcmdldCAm JiBpZSgpICYmICIgIiA9PT0gZS5rZXkgJiYgIWUuZGVmYXVsdFByZXZlbnRlZCAmJiBiKGUp Ow0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGxldCBjZSA9IGY7DQogICAgICAg ICAgICAiYnV0dG9uIiA9PT0gY2UgJiYgKEkuaHJlZiB8fCBJLnRvKSAmJiAoY2UgPSB2KTsN CiAgICAgICAgICAgIGNvbnN0IGRlID0ge307DQogICAgICAgICAgICAiYnV0dG9uIiA9PT0g Y2UgPyAoKGRlLnR5cGUgPSB2b2lkIDAgPT09IGogPyAiYnV0dG9uIiA6IGopLCAoZGUuZGlz YWJsZWQgPSBwKSkgOiAoSS5ocmVmIHx8IEkudG8gfHwgKGRlLnJvbGUgPSAiYnV0dG9uIiks IHAgJiYgKGRlWyJhcmlhLWRpc2FibGVkIl0gPSBwKSk7DQogICAgICAgICAgICBjb25zdCBm ZSA9IG9yKG4sIFYsIEwpOw0KICAgICAgICAgICAgY29uc3QgcGUgPSBpKHt9LCByLCB7IGNl bnRlclJpcHBsZTogbCwgY29tcG9uZW50OiBmLCBkaXNhYmxlZDogcCwgZGlzYWJsZVJpcHBs ZTogaCwgZGlzYWJsZVRvdWNoUmlwcGxlOiBtLCBmb2N1c1JpcHBsZTogZywgdGFiSW5kZXg6 IEEsIGZvY3VzVmlzaWJsZTogSCB9KSwNCiAgICAgICAgICAgICAgaGUgPSAoKGUpID0+IHsN CiAgICAgICAgICAgICAgICBjb25zdCB7IGRpc2FibGVkOiB0LCBmb2N1c1Zpc2libGU6IG4s IGZvY3VzVmlzaWJsZUNsYXNzTmFtZTogciwgY2xhc3NlczogbyB9ID0gZSwNCiAgICAgICAg ICAgICAgICAgIGEgPSBjKHsgcm9vdDogWyJyb290IiwgdCAmJiAiZGlzYWJsZWQiLCBuICYm ICJmb2N1c1Zpc2libGUiXSB9LCBlbywgbyk7DQogICAgICAgICAgICAgICAgcmV0dXJuIG4g JiYgciAmJiAoYS5yb290ICs9ICIgIi5jb25jYXQocikpLCBhOw0KICAgICAgICAgICAgICB9 KShwZSk7DQogICAgICAgICAgICByZXR1cm4gKDAsDQogICAgICAgICAgICAgIE5yLmpzeHMp KHJvLCBpKHsgYXM6IGNlLCBjbGFzc05hbWU6IHMoaGUucm9vdCwgZCksIG93bmVyU3RhdGU6 IHBlLCBvbkJsdXI6IG9lLCBvbkNsaWNrOiBiLCBvbkNvbnRleHRNZW51OiBYLCBvbkZvY3Vz OiBhZSwgb25LZXlEb3duOiBzZSwgb25LZXlVcDogdWUsIG9uTW91c2VEb3duOiBZLCBvbk1v dXNlTGVhdmU6IGVlLCBvbk1vdXNlVXA6IEosIG9uRHJhZ0xlYXZlOiBaLCBvblRvdWNoRW5k OiBuZSwgb25Ub3VjaE1vdmU6IHJlLCBvblRvdWNoU3RhcnQ6IHRlLCByZWY6IGZlLCB0YWJJ bmRleDogcCA/IC0xIDogQSwgdHlwZTogaiB9LCBkZSwgSSwgeyBjaGlsZHJlbjogW3UsIFEg PyAoMCwgTnIuanN4KShKciwgaSh7IHJlZjogQiwgY2VudGVyOiBsIH0sIE0pKSA6IG51bGxd IH0pKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBhbyA9IG9vLA0KICAgICAgICAgIGlv ID0gc3Q7DQogICAgICAgIGZ1bmN0aW9uIGxvKGUpIHsNCiAgICAgICAgICByZXR1cm4ganIo Ik11aUJ1dHRvbiIsIGUpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IHNvID0gSXIoIk11 aUJ1dHRvbiIsIFsNCiAgICAgICAgICAicm9vdCIsDQogICAgICAgICAgInRleHQiLA0KICAg ICAgICAgICJ0ZXh0SW5oZXJpdCIsDQogICAgICAgICAgInRleHRQcmltYXJ5IiwNCiAgICAg ICAgICAidGV4dFNlY29uZGFyeSIsDQogICAgICAgICAgInRleHRTdWNjZXNzIiwNCiAgICAg ICAgICAidGV4dEVycm9yIiwNCiAgICAgICAgICAidGV4dEluZm8iLA0KICAgICAgICAgICJ0 ZXh0V2FybmluZyIsDQogICAgICAgICAgIm91dGxpbmVkIiwNCiAgICAgICAgICAib3V0bGlu ZWRJbmhlcml0IiwNCiAgICAgICAgICAib3V0bGluZWRQcmltYXJ5IiwNCiAgICAgICAgICAi b3V0bGluZWRTZWNvbmRhcnkiLA0KICAgICAgICAgICJvdXRsaW5lZFN1Y2Nlc3MiLA0KICAg ICAgICAgICJvdXRsaW5lZEVycm9yIiwNCiAgICAgICAgICAib3V0bGluZWRJbmZvIiwNCiAg ICAgICAgICAib3V0bGluZWRXYXJuaW5nIiwNCiAgICAgICAgICAiY29udGFpbmVkIiwNCiAg ICAgICAgICAiY29udGFpbmVkSW5oZXJpdCIsDQogICAgICAgICAgImNvbnRhaW5lZFByaW1h cnkiLA0KICAgICAgICAgICJjb250YWluZWRTZWNvbmRhcnkiLA0KICAgICAgICAgICJjb250 YWluZWRTdWNjZXNzIiwNCiAgICAgICAgICAiY29udGFpbmVkRXJyb3IiLA0KICAgICAgICAg ICJjb250YWluZWRJbmZvIiwNCiAgICAgICAgICAiY29udGFpbmVkV2FybmluZyIsDQogICAg ICAgICAgImRpc2FibGVFbGV2YXRpb24iLA0KICAgICAgICAgICJmb2N1c1Zpc2libGUiLA0K ICAgICAgICAgICJkaXNhYmxlZCIsDQogICAgICAgICAgImNvbG9ySW5oZXJpdCIsDQogICAg ICAgICAgInRleHRTaXplU21hbGwiLA0KICAgICAgICAgICJ0ZXh0U2l6ZU1lZGl1bSIsDQog ICAgICAgICAgInRleHRTaXplTGFyZ2UiLA0KICAgICAgICAgICJvdXRsaW5lZFNpemVTbWFs bCIsDQogICAgICAgICAgIm91dGxpbmVkU2l6ZU1lZGl1bSIsDQogICAgICAgICAgIm91dGxp bmVkU2l6ZUxhcmdlIiwNCiAgICAgICAgICAiY29udGFpbmVkU2l6ZVNtYWxsIiwNCiAgICAg ICAgICAiY29udGFpbmVkU2l6ZU1lZGl1bSIsDQogICAgICAgICAgImNvbnRhaW5lZFNpemVM YXJnZSIsDQogICAgICAgICAgInNpemVNZWRpdW0iLA0KICAgICAgICAgICJzaXplU21hbGwi LA0KICAgICAgICAgICJzaXplTGFyZ2UiLA0KICAgICAgICAgICJmdWxsV2lkdGgiLA0KICAg ICAgICAgICJzdGFydEljb24iLA0KICAgICAgICAgICJlbmRJY29uIiwNCiAgICAgICAgICAi aWNvblNpemVTbWFsbCIsDQogICAgICAgICAgImljb25TaXplTWVkaXVtIiwNCiAgICAgICAg ICAiaWNvblNpemVMYXJnZSIsDQogICAgICAgIF0pOw0KICAgICAgICBjb25zdCB1byA9IHQu Y3JlYXRlQ29udGV4dCh7fSk7DQogICAgICAgIGNvbnN0IGNvID0gdC5jcmVhdGVDb250ZXh0 KHZvaWQgMCksDQogICAgICAgICAgZm8gPSBbImNoaWxkcmVuIiwgImNvbG9yIiwgImNvbXBv bmVudCIsICJjbGFzc05hbWUiLCAiZGlzYWJsZWQiLCAiZGlzYWJsZUVsZXZhdGlvbiIsICJk aXNhYmxlRm9jdXNSaXBwbGUiLCAiZW5kSWNvbiIsICJmb2N1c1Zpc2libGVDbGFzc05hbWUi LCAiZnVsbFdpZHRoIiwgInNpemUiLCAic3RhcnRJY29uIiwgInR5cGUiLCAidmFyaWFudCJd LA0KICAgICAgICAgIHBvID0gKGUpID0+DQogICAgICAgICAgICBpKHt9LCAic21hbGwiID09 PSBlLnNpemUgJiYgeyAiJiA+ICo6bnRoLW9mLXR5cGUoMSkiOiB7IGZvbnRTaXplOiAxOCB9 IH0sICJtZWRpdW0iID09PSBlLnNpemUgJiYgeyAiJiA+ICo6bnRoLW9mLXR5cGUoMSkiOiB7 IGZvbnRTaXplOiAyMCB9IH0sICJsYXJnZSIgPT09IGUuc2l6ZSAmJiB7ICImID4gKjpudGgt b2YtdHlwZSgxKSI6IHsgZm9udFNpemU6IDIyIH0gfSksDQogICAgICAgICAgaG8gPSBZbihh bywgew0KICAgICAgICAgICAgc2hvdWxkRm9yd2FyZFByb3A6IChlKSA9PiBHbihlKSB8fCAi Y2xhc3NlcyIgPT09IGUsDQogICAgICAgICAgICBuYW1lOiAiTXVpQnV0dG9uIiwNCiAgICAg ICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAgICAgICAgIG92ZXJyaWRlc1Jlc29sdmVyOiAo ZSwgdCkgPT4gew0KICAgICAgICAgICAgICBjb25zdCB7IG93bmVyU3RhdGU6IG4gfSA9IGU7 DQogICAgICAgICAgICAgIHJldHVybiBbDQogICAgICAgICAgICAgICAgdC5yb290LA0KICAg ICAgICAgICAgICAgIHRbbi52YXJpYW50XSwNCiAgICAgICAgICAgICAgICB0WyIiLmNvbmNh dChuLnZhcmlhbnQpLmNvbmNhdChpbyhuLmNvbG9yKSldLA0KICAgICAgICAgICAgICAgIHRb InNpemUiLmNvbmNhdChpbyhuLnNpemUpKV0sDQogICAgICAgICAgICAgICAgdFsiIi5jb25j YXQobi52YXJpYW50LCAiU2l6ZSIpLmNvbmNhdChpbyhuLnNpemUpKV0sDQogICAgICAgICAg ICAgICAgImluaGVyaXQiID09PSBuLmNvbG9yICYmIHQuY29sb3JJbmhlcml0LA0KICAgICAg ICAgICAgICAgIG4uZGlzYWJsZUVsZXZhdGlvbiAmJiB0LmRpc2FibGVFbGV2YXRpb24sDQog ICAgICAgICAgICAgICAgbi5mdWxsV2lkdGggJiYgdC5mdWxsV2lkdGgsDQogICAgICAgICAg ICAgIF07DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0pKA0KICAgICAgICAgICAgKGUp ID0+IHsNCiAgICAgICAgICAgICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9 IGU7DQogICAgICAgICAgICAgIHZhciByLCBvOw0KICAgICAgICAgICAgICBjb25zdCBhID0g ImxpZ2h0IiA9PT0gdC5wYWxldHRlLm1vZGUgPyB0LnBhbGV0dGUuZ3JleVszMDBdIDogdC5w YWxldHRlLmdyZXlbODAwXSwNCiAgICAgICAgICAgICAgICBsID0gImxpZ2h0IiA9PT0gdC5w YWxldHRlLm1vZGUgPyB0LnBhbGV0dGUuZ3JleS5BMTAwIDogdC5wYWxldHRlLmdyZXlbNzAw XTsNCiAgICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgICAge30sDQogICAg ICAgICAgICAgICAgdC50eXBvZ3JhcGh5LmJ1dHRvbiwNCiAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICBtaW5XaWR0aDogNjQsDQogICAgICAgICAgICAgICAgICBwYWRk aW5nOiAiNnB4IDE2cHgiLA0KICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAodC52 YXJzIHx8IHQpLnNoYXBlLmJvcmRlclJhZGl1cywNCiAgICAgICAgICAgICAgICAgIHRyYW5z aXRpb246IHQudHJhbnNpdGlvbnMuY3JlYXRlKFsiYmFja2dyb3VuZC1jb2xvciIsICJib3gt c2hhZG93IiwgImJvcmRlci1jb2xvciIsICJjb2xvciJdLCB7IGR1cmF0aW9uOiB0LnRyYW5z aXRpb25zLmR1cmF0aW9uLnNob3J0IH0pLA0KICAgICAgICAgICAgICAgICAgIiY6aG92ZXIi OiBpKA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgdGV4 dERlY29yYXRpb246ICJub25lIiwNCiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5k Q29sb3I6IHQudmFycyA/ICJyZ2JhKCIuY29uY2F0KHQudmFycy5wYWxldHRlLnRleHQucHJp bWFyeUNoYW5uZWwsICIgLyAiKS5jb25jYXQodC52YXJzLnBhbGV0dGUuYWN0aW9uLmhvdmVy T3BhY2l0eSwgIikiKSA6IGcodC5wYWxldHRlLnRleHQucHJpbWFyeSwgdC5wYWxldHRlLmFj dGlvbi5ob3Zlck9wYWNpdHkpLA0KICAgICAgICAgICAgICAgICAgICAgICJAbWVkaWEgKGhv dmVyOiBub25lKSI6IHsgYmFja2dyb3VuZENvbG9yOiAidHJhbnNwYXJlbnQiIH0sDQogICAg ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICJ0ZXh0IiA9PT0gbi52 YXJpYW50ICYmDQogICAgICAgICAgICAgICAgICAgICJpbmhlcml0IiAhPT0gbi5jb2xvciAm JiB7DQogICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0LnZhcnMNCiAg ICAgICAgICAgICAgICAgICAgICAgID8gInJnYmEoIi5jb25jYXQodC52YXJzLnBhbGV0dGVb bi5jb2xvcl0ubWFpbkNoYW5uZWwsICIgLyAiKS5jb25jYXQodC52YXJzLnBhbGV0dGUuYWN0 aW9uLmhvdmVyT3BhY2l0eSwgIikiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgOiBnKHQu cGFsZXR0ZVtuLmNvbG9yXS5tYWluLCB0LnBhbGV0dGUuYWN0aW9uLmhvdmVyT3BhY2l0eSks DQogICAgICAgICAgICAgICAgICAgICAgIkBtZWRpYSAoaG92ZXI6IG5vbmUpIjogeyBiYWNr Z3JvdW5kQ29sb3I6ICJ0cmFuc3BhcmVudCIgfSwNCiAgICAgICAgICAgICAgICAgICAgfSwN CiAgICAgICAgICAgICAgICAgICAgIm91dGxpbmVkIiA9PT0gbi52YXJpYW50ICYmDQogICAg ICAgICAgICAgICAgICAgICJpbmhlcml0IiAhPT0gbi5jb2xvciAmJiB7DQogICAgICAgICAg ICAgICAgICAgICAgYm9yZGVyOiAiMXB4IHNvbGlkICIuY29uY2F0KCh0LnZhcnMgfHwgdCku cGFsZXR0ZVtuLmNvbG9yXS5tYWluKSwNCiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3Jv dW5kQ29sb3I6IHQudmFycw0KICAgICAgICAgICAgICAgICAgICAgICAgPyAicmdiYSgiLmNv bmNhdCh0LnZhcnMucGFsZXR0ZVtuLmNvbG9yXS5tYWluQ2hhbm5lbCwgIiAvICIpLmNvbmNh dCh0LnZhcnMucGFsZXR0ZS5hY3Rpb24uaG92ZXJPcGFjaXR5LCAiKSIpDQogICAgICAgICAg ICAgICAgICAgICAgICA6IGcodC5wYWxldHRlW24uY29sb3JdLm1haW4sIHQucGFsZXR0ZS5h Y3Rpb24uaG92ZXJPcGFjaXR5KSwNCiAgICAgICAgICAgICAgICAgICAgICAiQG1lZGlhICho b3Zlcjogbm9uZSkiOiB7IGJhY2tncm91bmRDb2xvcjogInRyYW5zcGFyZW50IiB9LA0KICAg ICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAiY29udGFpbmVkIiA9 PT0gbi52YXJpYW50ICYmIHsNCiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29s b3I6IHQudmFycyA/IHQudmFycy5wYWxldHRlLkJ1dHRvbi5pbmhlcml0Q29udGFpbmVkSG92 ZXJCZyA6IGwsDQogICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAodC52YXJzIHx8 IHQpLnNoYWRvd3NbNF0sDQogICAgICAgICAgICAgICAgICAgICAgIkBtZWRpYSAoaG92ZXI6 IG5vbmUpIjogeyBib3hTaGFkb3c6ICh0LnZhcnMgfHwgdCkuc2hhZG93c1syXSwgYmFja2dy b3VuZENvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGUuZ3JleVszMDBdIH0sDQogICAgICAg ICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICJjb250YWluZWQiID09PSBu LnZhcmlhbnQgJiYgImluaGVyaXQiICE9PSBuLmNvbG9yICYmIHsgYmFja2dyb3VuZENvbG9y OiAodC52YXJzIHx8IHQpLnBhbGV0dGVbbi5jb2xvcl0uZGFyaywgIkBtZWRpYSAoaG92ZXI6 IG5vbmUpIjogeyBiYWNrZ3JvdW5kQ29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZVtuLmNv bG9yXS5tYWluIH0gfQ0KICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAg ICImOmFjdGl2ZSI6IGkoe30sICJjb250YWluZWQiID09PSBuLnZhcmlhbnQgJiYgeyBib3hT aGFkb3c6ICh0LnZhcnMgfHwgdCkuc2hhZG93c1s4XSB9KSwNCiAgICAgICAgICAgICAgICAg IFsiJi4iLmNvbmNhdChzby5mb2N1c1Zpc2libGUpXTogaSh7fSwgImNvbnRhaW5lZCIgPT09 IG4udmFyaWFudCAmJiB7IGJveFNoYWRvdzogKHQudmFycyB8fCB0KS5zaGFkb3dzWzZdIH0p LA0KICAgICAgICAgICAgICAgICAgWyImLiIuY29uY2F0KHNvLmRpc2FibGVkKV06IGkoDQog ICAgICAgICAgICAgICAgICAgIHsgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS5hY3Rp b24uZGlzYWJsZWQgfSwNCiAgICAgICAgICAgICAgICAgICAgIm91dGxpbmVkIiA9PT0gbi52 YXJpYW50ICYmIHsgYm9yZGVyOiAiMXB4IHNvbGlkICIuY29uY2F0KCh0LnZhcnMgfHwgdCku cGFsZXR0ZS5hY3Rpb24uZGlzYWJsZWRCYWNrZ3JvdW5kKSB9LA0KICAgICAgICAgICAgICAg ICAgICAiY29udGFpbmVkIiA9PT0gbi52YXJpYW50ICYmIHsgY29sb3I6ICh0LnZhcnMgfHwg dCkucGFsZXR0ZS5hY3Rpb24uZGlzYWJsZWQsIGJveFNoYWRvdzogKHQudmFycyB8fCB0KS5z aGFkb3dzWzBdLCBiYWNrZ3JvdW5kQ29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS5hY3Rp b24uZGlzYWJsZWRCYWNrZ3JvdW5kIH0NCiAgICAgICAgICAgICAgICAgICksDQogICAgICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAidGV4dCIgPT09IG4udmFyaWFudCAmJiB7 IHBhZGRpbmc6ICI2cHggOHB4IiB9LA0KICAgICAgICAgICAgICAgICJ0ZXh0IiA9PT0gbi52 YXJpYW50ICYmICJpbmhlcml0IiAhPT0gbi5jb2xvciAmJiB7IGNvbG9yOiAodC52YXJzIHx8 IHQpLnBhbGV0dGVbbi5jb2xvcl0ubWFpbiB9LA0KICAgICAgICAgICAgICAgICJvdXRsaW5l ZCIgPT09IG4udmFyaWFudCAmJiB7IHBhZGRpbmc6ICI1cHggMTVweCIsIGJvcmRlcjogIjFw eCBzb2xpZCBjdXJyZW50Q29sb3IiIH0sDQogICAgICAgICAgICAgICAgIm91dGxpbmVkIiA9 PT0gbi52YXJpYW50ICYmDQogICAgICAgICAgICAgICAgImluaGVyaXQiICE9PSBuLmNvbG9y ICYmIHsNCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGVb bi5jb2xvcl0ubWFpbiwNCiAgICAgICAgICAgICAgICAgIGJvcmRlcjogdC52YXJzID8gIjFw eCBzb2xpZCByZ2JhKCIuY29uY2F0KHQudmFycy5wYWxldHRlW24uY29sb3JdLm1haW5DaGFu bmVsLCAiIC8gMC41KSIpIDogIjFweCBzb2xpZCAiLmNvbmNhdChnKHQucGFsZXR0ZVtuLmNv bG9yXS5tYWluLCAwLjUpKSwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAg ICJjb250YWluZWQiID09PSBuLnZhcmlhbnQgJiYgew0KICAgICAgICAgICAgICAgICAgY29s b3I6IHQudmFycyA/IHQudmFycy5wYWxldHRlLnRleHQucHJpbWFyeSA6IG51bGwgPT0gKHIg PSAobyA9IHQucGFsZXR0ZSkuZ2V0Q29udHJhc3RUZXh0KSA/IHZvaWQgMCA6IHIuY2FsbChv LCB0LnBhbGV0dGUuZ3JleVszMDBdKSwNCiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRD b2xvcjogdC52YXJzID8gdC52YXJzLnBhbGV0dGUuQnV0dG9uLmluaGVyaXRDb250YWluZWRC ZyA6IGEsDQogICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICh0LnZhcnMgfHwgdCkuc2hh ZG93c1syXSwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICJjb250YWlu ZWQiID09PSBuLnZhcmlhbnQgJiYgImluaGVyaXQiICE9PSBuLmNvbG9yICYmIHsgY29sb3I6 ICh0LnZhcnMgfHwgdCkucGFsZXR0ZVtuLmNvbG9yXS5jb250cmFzdFRleHQsIGJhY2tncm91 bmRDb2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlW24uY29sb3JdLm1haW4gfSwNCiAgICAg ICAgICAgICAgICAiaW5oZXJpdCIgPT09IG4uY29sb3IgJiYgeyBjb2xvcjogImluaGVyaXQi LCBib3JkZXJDb2xvcjogImN1cnJlbnRDb2xvciIgfSwNCiAgICAgICAgICAgICAgICAic21h bGwiID09PSBuLnNpemUgJiYgInRleHQiID09PSBuLnZhcmlhbnQgJiYgeyBwYWRkaW5nOiAi NHB4IDVweCIsIGZvbnRTaXplOiB0LnR5cG9ncmFwaHkucHhUb1JlbSgxMykgfSwNCiAgICAg ICAgICAgICAgICAibGFyZ2UiID09PSBuLnNpemUgJiYgInRleHQiID09PSBuLnZhcmlhbnQg JiYgeyBwYWRkaW5nOiAiOHB4IDExcHgiLCBmb250U2l6ZTogdC50eXBvZ3JhcGh5LnB4VG9S ZW0oMTUpIH0sDQogICAgICAgICAgICAgICAgInNtYWxsIiA9PT0gbi5zaXplICYmICJvdXRs aW5lZCIgPT09IG4udmFyaWFudCAmJiB7IHBhZGRpbmc6ICIzcHggOXB4IiwgZm9udFNpemU6 IHQudHlwb2dyYXBoeS5weFRvUmVtKDEzKSB9LA0KICAgICAgICAgICAgICAgICJsYXJnZSIg PT09IG4uc2l6ZSAmJiAib3V0bGluZWQiID09PSBuLnZhcmlhbnQgJiYgeyBwYWRkaW5nOiAi N3B4IDIxcHgiLCBmb250U2l6ZTogdC50eXBvZ3JhcGh5LnB4VG9SZW0oMTUpIH0sDQogICAg ICAgICAgICAgICAgInNtYWxsIiA9PT0gbi5zaXplICYmICJjb250YWluZWQiID09PSBuLnZh cmlhbnQgJiYgeyBwYWRkaW5nOiAiNHB4IDEwcHgiLCBmb250U2l6ZTogdC50eXBvZ3JhcGh5 LnB4VG9SZW0oMTMpIH0sDQogICAgICAgICAgICAgICAgImxhcmdlIiA9PT0gbi5zaXplICYm ICJjb250YWluZWQiID09PSBuLnZhcmlhbnQgJiYgeyBwYWRkaW5nOiAiOHB4IDIycHgiLCBm b250U2l6ZTogdC50eXBvZ3JhcGh5LnB4VG9SZW0oMTUpIH0sDQogICAgICAgICAgICAgICAg bi5mdWxsV2lkdGggJiYgeyB3aWR0aDogIjEwMCUiIH0NCiAgICAgICAgICAgICAgKTsNCiAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAoZSkgPT4gew0KICAgICAgICAgICAgICBsZXQg eyBvd25lclN0YXRlOiB0IH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAg ICAgICAgICAgIHQuZGlzYWJsZUVsZXZhdGlvbiAmJiB7DQogICAgICAgICAgICAgICAgICBi b3hTaGFkb3c6ICJub25lIiwNCiAgICAgICAgICAgICAgICAgICImOmhvdmVyIjogeyBib3hT aGFkb3c6ICJub25lIiB9LA0KICAgICAgICAgICAgICAgICAgWyImLiIuY29uY2F0KHNvLmZv Y3VzVmlzaWJsZSldOiB7IGJveFNoYWRvdzogIm5vbmUiIH0sDQogICAgICAgICAgICAgICAg ICAiJjphY3RpdmUiOiB7IGJveFNoYWRvdzogIm5vbmUiIH0sDQogICAgICAgICAgICAgICAg ICBbIiYuIi5jb25jYXQoc28uZGlzYWJsZWQpXTogeyBib3hTaGFkb3c6ICJub25lIiB9LA0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICApLA0KICAgICAgICAgIG1vID0gWW4oInNwYW4iLCB7DQogICAgICAgICAgICBu YW1lOiAiTXVpQnV0dG9uIiwNCiAgICAgICAgICAgIHNsb3Q6ICJTdGFydEljb24iLA0KICAg ICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAg IGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFt0 LnN0YXJ0SWNvbiwgdFsiaWNvblNpemUiLmNvbmNhdChpbyhuLnNpemUpKV1dOw0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgb3du ZXJTdGF0ZTogdCB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKHsgZGlzcGxheTogImlu aGVyaXQiLCBtYXJnaW5SaWdodDogOCwgbWFyZ2luTGVmdDogLTQgfSwgInNtYWxsIiA9PT0g dC5zaXplICYmIHsgbWFyZ2luTGVmdDogLTIgfSwgcG8odCkpOw0KICAgICAgICAgIH0pLA0K ICAgICAgICAgIGdvID0gWW4oInNwYW4iLCB7DQogICAgICAgICAgICBuYW1lOiAiTXVpQnV0 dG9uIiwNCiAgICAgICAgICAgIHNsb3Q6ICJFbmRJY29uIiwNCiAgICAgICAgICAgIG92ZXJy aWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICBjb25zdCB7IG93bmVy U3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBbdC5lbmRJY29uLCB0WyJp Y29uU2l6ZSIuY29uY2F0KGlvKG4uc2l6ZSkpXV07DQogICAgICAgICAgICB9LA0KICAgICAg ICAgIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyBvd25lclN0YXRlOiB0IH0gPSBl Ow0KICAgICAgICAgICAgcmV0dXJuIGkoeyBkaXNwbGF5OiAiaW5oZXJpdCIsIG1hcmdpblJp Z2h0OiAtNCwgbWFyZ2luTGVmdDogOCB9LCAic21hbGwiID09PSB0LnNpemUgJiYgeyBtYXJn aW5SaWdodDogLTIgfSwgcG8odCkpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIHZvID0g dC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICBjb25zdCByID0g dC51c2VDb250ZXh0KHVvKSwNCiAgICAgICAgICAgICAgbyA9IHQudXNlQ29udGV4dChjbyks DQogICAgICAgICAgICAgIGwgPSB0cih7IHByb3BzOiB1KHIsIGUpLCBuYW1lOiAiTXVpQnV0 dG9uIiB9KSwNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBk LA0KICAgICAgICAgICAgICAgIGNvbG9yOiBmID0gInByaW1hcnkiLA0KICAgICAgICAgICAg ICAgIGNvbXBvbmVudDogcCA9ICJidXR0b24iLA0KICAgICAgICAgICAgICAgIGNsYXNzTmFt ZTogaCwNCiAgICAgICAgICAgICAgICBkaXNhYmxlZDogbSA9ICExLA0KICAgICAgICAgICAg ICAgIGRpc2FibGVFbGV2YXRpb246IGcgPSAhMSwNCiAgICAgICAgICAgICAgICBkaXNhYmxl Rm9jdXNSaXBwbGU6IHYgPSAhMSwNCiAgICAgICAgICAgICAgICBlbmRJY29uOiB5LA0KICAg ICAgICAgICAgICAgIGZvY3VzVmlzaWJsZUNsYXNzTmFtZTogYiwNCiAgICAgICAgICAgICAg ICBmdWxsV2lkdGg6IHcgPSAhMSwNCiAgICAgICAgICAgICAgICBzaXplOiB4ID0gIm1lZGl1 bSIsDQogICAgICAgICAgICAgICAgc3RhcnRJY29uOiBTLA0KICAgICAgICAgICAgICAgIHR5 cGU6IGssDQogICAgICAgICAgICAgICAgdmFyaWFudDogRSA9ICJ0ZXh0IiwNCiAgICAgICAg ICAgICAgfSA9IGwsDQogICAgICAgICAgICAgIEMgPSBhKGwsIGZvKSwNCiAgICAgICAgICAg ICAgUiA9IGkoe30sIGwsIHsgY29sb3I6IGYsIGNvbXBvbmVudDogcCwgZGlzYWJsZWQ6IG0s IGRpc2FibGVFbGV2YXRpb246IGcsIGRpc2FibGVGb2N1c1JpcHBsZTogdiwgZnVsbFdpZHRo OiB3LCBzaXplOiB4LCB0eXBlOiBrLCB2YXJpYW50OiBFIH0pLA0KICAgICAgICAgICAgICBf ID0gKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBjb2xvcjogdCwgZGlzYWJs ZUVsZXZhdGlvbjogbiwgZnVsbFdpZHRoOiByLCBzaXplOiBvLCB2YXJpYW50OiBhLCBjbGFz c2VzOiBsIH0gPSBlOw0KICAgICAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAg ICAgICAge30sDQogICAgICAgICAgICAgICAgICBsLA0KICAgICAgICAgICAgICAgICAgYygN CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIHJvb3Q6IFsi cm9vdCIsIGEsICIiLmNvbmNhdChhKS5jb25jYXQoaW8odCkpLCAic2l6ZSIuY29uY2F0KGlv KG8pKSwgIiIuY29uY2F0KGEsICJTaXplIikuY29uY2F0KGlvKG8pKSwgImluaGVyaXQiID09 PSB0ICYmICJjb2xvckluaGVyaXQiLCBuICYmICJkaXNhYmxlRWxldmF0aW9uIiwgciAmJiAi ZnVsbFdpZHRoIl0sDQogICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFsibGFiZWwiXSwN CiAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb246IFsic3RhcnRJY29uIiwgImljb25T aXplIi5jb25jYXQoaW8obykpXSwNCiAgICAgICAgICAgICAgICAgICAgICBlbmRJY29uOiBb ImVuZEljb24iLCAiaWNvblNpemUiLmNvbmNhdChpbyhvKSldLA0KICAgICAgICAgICAgICAg ICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBsbywNCiAgICAgICAgICAgICAgICAgICAg bA0KICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAg ICAgIH0pKFIpLA0KICAgICAgICAgICAgICBQID0gUyAmJiAoMCwgTnIuanN4KShtbywgeyBj bGFzc05hbWU6IF8uc3RhcnRJY29uLCBvd25lclN0YXRlOiBSLCBjaGlsZHJlbjogUyB9KSwN CiAgICAgICAgICAgICAgTyA9IHkgJiYgKDAsIE5yLmpzeCkoZ28sIHsgY2xhc3NOYW1lOiBf LmVuZEljb24sIG93bmVyU3RhdGU6IFIsIGNoaWxkcmVuOiB5IH0pLA0KICAgICAgICAgICAg ICBOID0gbyB8fCAiIjsNCiAgICAgICAgICAgIHJldHVybiAoMCwNCiAgICAgICAgICAgICAg TnIuanN4cykoaG8sIGkoeyBvd25lclN0YXRlOiBSLCBjbGFzc05hbWU6IHMoci5jbGFzc05h bWUsIF8ucm9vdCwgaCwgTiksIGNvbXBvbmVudDogcCwgZGlzYWJsZWQ6IG0sIGZvY3VzUmlw cGxlOiAhdiwgZm9jdXNWaXNpYmxlQ2xhc3NOYW1lOiBzKF8uZm9jdXNWaXNpYmxlLCBiKSwg cmVmOiBuLCB0eXBlOiBrIH0sIEMsIHsgY2xhc3NlczogXywgY2hpbGRyZW46IFtQLCBkLCBP XSB9KSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgeW8gPSB2bzsNCiAgICAgICAgZnVu Y3Rpb24gYm8oZSkgew0KICAgICAgICAgIHJldHVybiAic3RyaW5nIiA9PT0gdHlwZW9mIGU7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gd28oZSkgew0KICAgICAgICAgIGxldCB0 ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMV0gPyBh cmd1bWVudHNbMV0gOiBbXTsNCiAgICAgICAgICBpZiAodm9pZCAwID09PSBlKSByZXR1cm4g e307DQogICAgICAgICAgY29uc3QgbiA9IHt9Ow0KICAgICAgICAgIHJldHVybiAoDQogICAg ICAgICAgICBPYmplY3Qua2V5cyhlKQ0KICAgICAgICAgICAgICAuZmlsdGVyKChuKSA9PiBu Lm1hdGNoKC9eb25bQS1aXS8pICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlW25dICYmICF0 LmluY2x1ZGVzKG4pKQ0KICAgICAgICAgICAgICAuZm9yRWFjaCgodCkgPT4gew0KICAgICAg ICAgICAgICAgIG5bdF0gPSBlW3RdOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg IG4NCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHhvKGUpIHsN CiAgICAgICAgICBpZiAodm9pZCAwID09PSBlKSByZXR1cm4ge307DQogICAgICAgICAgY29u c3QgdCA9IHt9Ow0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBPYmplY3Qua2V5 cyhlKQ0KICAgICAgICAgICAgICAuZmlsdGVyKCh0KSA9PiAhKHQubWF0Y2goL15vbltBLVpd LykgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGVbdF0pKQ0KICAgICAgICAgICAgICAuZm9y RWFjaCgobikgPT4gew0KICAgICAgICAgICAgICAgIHRbbl0gPSBlW25dOw0KICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgIHQNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAg ICAgIGNvbnN0IFNvID0gWyJlbGVtZW50VHlwZSIsICJleHRlcm5hbFNsb3RQcm9wcyIsICJv d25lclN0YXRlIiwgInNraXBSZXNvbHZpbmdTbG90UHJvcHMiXTsNCiAgICAgICAgZnVuY3Rp b24ga28oZSkgew0KICAgICAgICAgIHZhciB0Ow0KICAgICAgICAgIGNvbnN0IHsgZWxlbWVu dFR5cGU6IG4sIGV4dGVybmFsU2xvdFByb3BzOiByLCBvd25lclN0YXRlOiBvLCBza2lwUmVz b2x2aW5nU2xvdFByb3BzOiBsID0gITEgfSA9IGUsDQogICAgICAgICAgICB1ID0gYShlLCBT byksDQogICAgICAgICAgICBjID0gbA0KICAgICAgICAgICAgICA/IHt9DQogICAgICAgICAg ICAgIDogKGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJm dW5jdGlvbiIgPT09IHR5cGVvZiBlID8gZSh0LCBuKSA6IGU7DQogICAgICAgICAgICAgIH0p KHIsIG8pLA0KICAgICAgICAgICAgeyBwcm9wczogZCwgaW50ZXJuYWxSZWY6IGYgfSA9IChm dW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICBjb25zdCB7IGdldFNsb3RQcm9wczogdCwg YWRkaXRpb25hbFByb3BzOiBuLCBleHRlcm5hbFNsb3RQcm9wczogciwgZXh0ZXJuYWxGb3J3 YXJkZWRQcm9wczogbywgY2xhc3NOYW1lOiBhIH0gPSBlOw0KICAgICAgICAgICAgICBpZiAo IXQpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBlID0gcyhudWxsID09IG4gPyB2b2lkIDAg OiBuLmNsYXNzTmFtZSwgYSwgbnVsbCA9PSBvID8gdm9pZCAwIDogby5jbGFzc05hbWUsIG51 bGwgPT0gciA/IHZvaWQgMCA6IHIuY2xhc3NOYW1lKSwNCiAgICAgICAgICAgICAgICAgIHQg PSBpKHt9LCBudWxsID09IG4gPyB2b2lkIDAgOiBuLnN0eWxlLCBudWxsID09IG8gPyB2b2lk IDAgOiBvLnN0eWxlLCBudWxsID09IHIgPyB2b2lkIDAgOiByLnN0eWxlKSwNCiAgICAgICAg ICAgICAgICAgIGwgPSBpKHt9LCBuLCBvLCByKTsNCiAgICAgICAgICAgICAgICByZXR1cm4g ZS5sZW5ndGggPiAwICYmIChsLmNsYXNzTmFtZSA9IGUpLCBPYmplY3Qua2V5cyh0KS5sZW5n dGggPiAwICYmIChsLnN0eWxlID0gdCksIHsgcHJvcHM6IGwsIGludGVybmFsUmVmOiB2b2lk IDAgfTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBjb25zdCBsID0gd28oaSh7 fSwgbywgcikpLA0KICAgICAgICAgICAgICAgIHUgPSB4byhyKSwNCiAgICAgICAgICAgICAg ICBjID0geG8obyksDQogICAgICAgICAgICAgICAgZCA9IHQobCksDQogICAgICAgICAgICAg ICAgZiA9IHMobnVsbCA9PSBkID8gdm9pZCAwIDogZC5jbGFzc05hbWUsIG51bGwgPT0gbiA/ IHZvaWQgMCA6IG4uY2xhc3NOYW1lLCBhLCBudWxsID09IG8gPyB2b2lkIDAgOiBvLmNsYXNz TmFtZSwgbnVsbCA9PSByID8gdm9pZCAwIDogci5jbGFzc05hbWUpLA0KICAgICAgICAgICAg ICAgIHAgPSBpKHt9LCBudWxsID09IGQgPyB2b2lkIDAgOiBkLnN0eWxlLCBudWxsID09IG4g PyB2b2lkIDAgOiBuLnN0eWxlLCBudWxsID09IG8gPyB2b2lkIDAgOiBvLnN0eWxlLCBudWxs ID09IHIgPyB2b2lkIDAgOiByLnN0eWxlKSwNCiAgICAgICAgICAgICAgICBoID0gaSh7fSwg ZCwgbiwgYywgdSk7DQogICAgICAgICAgICAgIHJldHVybiBmLmxlbmd0aCA+IDAgJiYgKGgu Y2xhc3NOYW1lID0gZiksIE9iamVjdC5rZXlzKHApLmxlbmd0aCA+IDAgJiYgKGguc3R5bGUg PSBwKSwgeyBwcm9wczogaCwgaW50ZXJuYWxSZWY6IGQucmVmIH07DQogICAgICAgICAgICB9 KShpKHt9LCB1LCB7IGV4dGVybmFsU2xvdFByb3BzOiBjIH0pKSwNCiAgICAgICAgICAgIHAg PSAoZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMCA9 PT0gZSB8fCBibyhlKSA/IHQgOiBpKHt9LCB0LCB7IG93bmVyU3RhdGU6IGkoe30sIHQub3du ZXJTdGF0ZSwgbikgfSk7DQogICAgICAgICAgICB9KShuLCBpKHt9LCBkLCB7IHJlZjogcnIo ZiwgbnVsbCA9PSBjID8gdm9pZCAwIDogYy5yZWYsIG51bGwgPT0gKHQgPSBlLmFkZGl0aW9u YWxQcm9wcykgPyB2b2lkIDAgOiB0LnJlZikgfSksIG8pOw0KICAgICAgICAgIHJldHVybiBw Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEVvKGUpIHsNCiAgICAgICAgICByZXR1 cm4gKGUgJiYgZS5vd25lckRvY3VtZW50KSB8fCBkb2N1bWVudDsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBDbygpIHsNCiAgICAgICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRz Lmxlbmd0aCwgdCA9IG5ldyBBcnJheShlKSwgbiA9IDA7IG4gPCBlOyBuKyspIHRbbl0gPSBh cmd1bWVudHNbbl07DQogICAgICAgICAgcmV0dXJuIHQucmVkdWNlKA0KICAgICAgICAgICAg KGUsIHQpID0+DQogICAgICAgICAgICAgIG51bGwgPT0gdA0KICAgICAgICAgICAgICAgID8g ZQ0KICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAg Zm9yICh2YXIgbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBuZXcgQXJyYXkobiksIG8gPSAw OyBvIDwgbjsgbysrKSByW29dID0gYXJndW1lbnRzW29dOw0KICAgICAgICAgICAgICAgICAg ZS5hcHBseSh0aGlzLCByKSwgdC5hcHBseSh0aGlzLCByKTsNCiAgICAgICAgICAgICAgICB9 LA0KICAgICAgICAgICAgKCkgPT4geyB9DQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBSbyhlKSB7DQogICAgICAgICAgcmV0dXJuIEVvKGUpLmRlZmF1bHRW aWV3IHx8IHdpbmRvdzsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBfbyhlLCB0KSB7 DQogICAgICAgICAgdCA/IGUuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsICJ0cnVlIikg OiBlLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBQbyhlKSB7DQogICAgICAgICAgcmV0dXJuIHBhcnNlSW50KFJvKGUpLmdl dENvbXB1dGVkU3R5bGUoZSkucGFkZGluZ1JpZ2h0LCAxMCkgfHwgMDsNCiAgICAgICAgfQ0K ICAgICAgICBmdW5jdGlvbiBPbyhlLCB0LCBuLCByLCBvKSB7DQogICAgICAgICAgY29uc3Qg YSA9IFt0LCBuLCAuLi5yXTsNCiAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwoZS5jaGlsZHJl biwgKGUpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHQgPSAtMSA9PT0gYS5pbmRleE9mKGUp LA0KICAgICAgICAgICAgICBuID0gIShmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAg IGNvbnN0IHQgPSAtMSAhPT0gWyJURU1QTEFURSIsICJTQ1JJUFQiLCAiU1RZTEUiLCAiTElO SyIsICJNQVAiLCAiTUVUQSIsICJOT1NDUklQVCIsICJQSUNUVVJFIiwgIkNPTCIsICJDT0xH Uk9VUCIsICJQQVJBTSIsICJTTE9UIiwgIlNPVVJDRSIsICJUUkFDSyJdLmluZGV4T2YoZS50 YWdOYW1lKSwNCiAgICAgICAgICAgICAgICAgIG4gPSAiSU5QVVQiID09PSBlLnRhZ05hbWUg JiYgImhpZGRlbiIgPT09IGUuZ2V0QXR0cmlidXRlKCJ0eXBlIik7DQogICAgICAgICAgICAg ICAgcmV0dXJuIHQgfHwgbjsNCiAgICAgICAgICAgICAgfSkoZSk7DQogICAgICAgICAgICB0 ICYmIG4gJiYgX28oZSwgbyk7DQogICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gTm8oZSwgdCkgew0KICAgICAgICAgIGxldCBuID0gLTE7DQogICAgICAgICAg cmV0dXJuIGUuc29tZSgoZSwgcikgPT4gISF0KGUpICYmICgobiA9IHIpLCAhMCkpLCBuOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFRvKGUsIHQpIHsNCiAgICAgICAgICBjb25z dCBuID0gW10sDQogICAgICAgICAgICByID0gZS5jb250YWluZXI7DQogICAgICAgICAgaWYg KCF0LmRpc2FibGVTY3JvbGxMb2NrKSB7DQogICAgICAgICAgICBpZiAoDQogICAgICAgICAg ICAgIChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBFbyhlKTsN CiAgICAgICAgICAgICAgICByZXR1cm4gdC5ib2R5ID09PSBlID8gUm8oZSkuaW5uZXJXaWR0 aCA+IHQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogZS5zY3JvbGxIZWlnaHQgPiBl LmNsaWVudEhlaWdodDsNCiAgICAgICAgICAgICAgfSkocikNCiAgICAgICAgICAgICkgew0K ICAgICAgICAgICAgICBjb25zdCBlID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAg ICAgY29uc3QgdCA9IGUuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOw0KICAgICAgICAg ICAgICAgIHJldHVybiBNYXRoLmFicyh3aW5kb3cuaW5uZXJXaWR0aCAtIHQpOw0KICAgICAg ICAgICAgICB9KShFbyhyKSk7DQogICAgICAgICAgICAgIG4ucHVzaCh7IHZhbHVlOiByLnN0 eWxlLnBhZGRpbmdSaWdodCwgcHJvcGVydHk6ICJwYWRkaW5nLXJpZ2h0IiwgZWw6IHIgfSks IChyLnN0eWxlLnBhZGRpbmdSaWdodCA9ICIiLmNvbmNhdChQbyhyKSArIGUsICJweCIpKTsN CiAgICAgICAgICAgICAgY29uc3QgdCA9IEVvKHIpLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tdWkt Zml4ZWQiKTsNCiAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHQsICh0KSA9PiB7DQog ICAgICAgICAgICAgICAgbi5wdXNoKHsgdmFsdWU6IHQuc3R5bGUucGFkZGluZ1JpZ2h0LCBw cm9wZXJ0eTogInBhZGRpbmctcmlnaHQiLCBlbDogdCB9KSwgKHQuc3R5bGUucGFkZGluZ1Jp Z2h0ID0gIiIuY29uY2F0KFBvKHQpICsgZSwgInB4IikpOw0KICAgICAgICAgICAgICB9KTsN CiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGxldCBlOw0KICAgICAgICAgICAgaWYgKHIu cGFyZW50Tm9kZSBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpIGUgPSBFbyhyKS5ib2R5 Ow0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgIGNvbnN0IHQgPSByLnBhcmVu dEVsZW1lbnQsDQogICAgICAgICAgICAgICAgbiA9IFJvKHIpOw0KICAgICAgICAgICAgICBl ID0gIkhUTUwiID09PSAobnVsbCA9PSB0ID8gdm9pZCAwIDogdC5ub2RlTmFtZSkgJiYgInNj cm9sbCIgPT09IG4uZ2V0Q29tcHV0ZWRTdHlsZSh0KS5vdmVyZmxvd1kgPyB0IDogcjsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIG4ucHVzaCh7IHZhbHVlOiBlLnN0eWxlLm92ZXJm bG93LCBwcm9wZXJ0eTogIm92ZXJmbG93IiwgZWw6IGUgfSwgeyB2YWx1ZTogZS5zdHlsZS5v dmVyZmxvd1gsIHByb3BlcnR5OiAib3ZlcmZsb3cteCIsIGVsOiBlIH0sIHsgdmFsdWU6IGUu c3R5bGUub3ZlcmZsb3dZLCBwcm9wZXJ0eTogIm92ZXJmbG93LXkiLCBlbDogZSB9KSwNCiAg ICAgICAgICAgICAgKGUuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIik7DQogICAgICAgICAg fQ0KICAgICAgICAgIHJldHVybiAoKSA9PiB7DQogICAgICAgICAgICBuLmZvckVhY2goKGUp ID0+IHsNCiAgICAgICAgICAgICAgbGV0IHsgdmFsdWU6IHQsIGVsOiBuLCBwcm9wZXJ0eTog ciB9ID0gZTsNCiAgICAgICAgICAgICAgdCA/IG4uc3R5bGUuc2V0UHJvcGVydHkociwgdCkg OiBuLnN0eWxlLnJlbW92ZVByb3BlcnR5KHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAg ICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBBbyA9IG5ldyAoY2xhc3Mgew0KICAg ICAgICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICAgICAgKHRoaXMuY29udGFpbmVycyA9 IHZvaWQgMCksICh0aGlzLm1vZGFscyA9IHZvaWQgMCksICh0aGlzLm1vZGFscyA9IFtdKSwg KHRoaXMuY29udGFpbmVycyA9IFtdKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYWRkKGUs IHQpIHsNCiAgICAgICAgICAgIGxldCBuID0gdGhpcy5tb2RhbHMuaW5kZXhPZihlKTsNCiAg ICAgICAgICAgIGlmICgtMSAhPT0gbikgcmV0dXJuIG47DQogICAgICAgICAgICAobiA9IHRo aXMubW9kYWxzLmxlbmd0aCksIHRoaXMubW9kYWxzLnB1c2goZSksIGUubW9kYWxSZWYgJiYg X28oZS5tb2RhbFJlZiwgITEpOw0KICAgICAgICAgICAgY29uc3QgciA9IChmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgICAgICBjb25zdCB0ID0gW107DQogICAgICAgICAgICAgIHJldHVy biAoDQogICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKGUuY2hpbGRyZW4sIChlKSA9 PiB7DQogICAgICAgICAgICAgICAgICAidHJ1ZSIgPT09IGUuZ2V0QXR0cmlidXRlKCJhcmlh LWhpZGRlbiIpICYmIHQucHVzaChlKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICAgICB0DQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9KSh0KTsNCiAgICAg ICAgICAgIE9vKHQsIGUubW91bnQsIGUubW9kYWxSZWYsIHIsICEwKTsNCiAgICAgICAgICAg IGNvbnN0IG8gPSBObyh0aGlzLmNvbnRhaW5lcnMsIChlKSA9PiBlLmNvbnRhaW5lciA9PT0g dCk7DQogICAgICAgICAgICByZXR1cm4gLTEgIT09IG8gPyAodGhpcy5jb250YWluZXJzW29d Lm1vZGFscy5wdXNoKGUpLCBuKSA6ICh0aGlzLmNvbnRhaW5lcnMucHVzaCh7IG1vZGFsczog W2VdLCBjb250YWluZXI6IHQsIHJlc3RvcmU6IG51bGwsIGhpZGRlblNpYmxpbmdzOiByIH0p LCBuKTsNCiAgICAgICAgICB9DQogICAgICAgICAgbW91bnQoZSwgdCkgew0KICAgICAgICAg ICAgY29uc3QgbiA9IE5vKHRoaXMuY29udGFpbmVycywgKHQpID0+IC0xICE9PSB0Lm1vZGFs cy5pbmRleE9mKGUpKSwNCiAgICAgICAgICAgICAgciA9IHRoaXMuY29udGFpbmVyc1tuXTsN CiAgICAgICAgICAgIHIucmVzdG9yZSB8fCAoci5yZXN0b3JlID0gVG8ociwgdCkpOw0KICAg ICAgICAgIH0NCiAgICAgICAgICByZW1vdmUoZSkgew0KICAgICAgICAgICAgbGV0IHQgPSAh KGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzFdKSB8fCBh cmd1bWVudHNbMV07DQogICAgICAgICAgICBjb25zdCBuID0gdGhpcy5tb2RhbHMuaW5kZXhP ZihlKTsNCiAgICAgICAgICAgIGlmICgtMSA9PT0gbikgcmV0dXJuIG47DQogICAgICAgICAg ICBjb25zdCByID0gTm8odGhpcy5jb250YWluZXJzLCAodCkgPT4gLTEgIT09IHQubW9kYWxz LmluZGV4T2YoZSkpLA0KICAgICAgICAgICAgICBvID0gdGhpcy5jb250YWluZXJzW3JdOw0K ICAgICAgICAgICAgaWYgKChvLm1vZGFscy5zcGxpY2Uoby5tb2RhbHMuaW5kZXhPZihlKSwg MSksIHRoaXMubW9kYWxzLnNwbGljZShuLCAxKSwgMCA9PT0gby5tb2RhbHMubGVuZ3RoKSkN CiAgICAgICAgICAgICAgby5yZXN0b3JlICYmIG8ucmVzdG9yZSgpLCBlLm1vZGFsUmVmICYm IF9vKGUubW9kYWxSZWYsIHQpLCBPbyhvLmNvbnRhaW5lciwgZS5tb3VudCwgZS5tb2RhbFJl Ziwgby5oaWRkZW5TaWJsaW5ncywgITEpLCB0aGlzLmNvbnRhaW5lcnMuc3BsaWNlKHIsIDEp Ow0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgIGNvbnN0IGUgPSBvLm1vZGFs c1tvLm1vZGFscy5sZW5ndGggLSAxXTsNCiAgICAgICAgICAgICAgZS5tb2RhbFJlZiAmJiBf byhlLm1vZGFsUmVmLCAhMSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4g bjsNCiAgICAgICAgICB9DQogICAgICAgICAgaXNUb3BNb2RhbChlKSB7DQogICAgICAgICAg ICByZXR1cm4gdGhpcy5tb2RhbHMubGVuZ3RoID4gMCAmJiB0aGlzLm1vZGFsc1t0aGlzLm1v ZGFscy5sZW5ndGggLSAxXSA9PT0gZTsNCiAgICAgICAgICB9DQogICAgICAgIH0pKCk7DQog ICAgICAgIGZ1bmN0aW9uIE1vKGUpIHsNCiAgICAgICAgICBjb25zdCB7DQogICAgICAgICAg ICBjb250YWluZXI6IG4sDQogICAgICAgICAgICBkaXNhYmxlRXNjYXBlS2V5RG93bjogciA9 ICExLA0KICAgICAgICAgICAgZGlzYWJsZVNjcm9sbExvY2s6IG8gPSAhMSwNCiAgICAgICAg ICAgIG1hbmFnZXI6IGEgPSBBbywNCiAgICAgICAgICAgIGNsb3NlQWZ0ZXJUcmFuc2l0aW9u OiBsID0gITEsDQogICAgICAgICAgICBvblRyYW5zaXRpb25FbnRlcjogcywNCiAgICAgICAg ICAgIG9uVHJhbnNpdGlvbkV4aXRlZDogdSwNCiAgICAgICAgICAgIGNoaWxkcmVuOiBjLA0K ICAgICAgICAgICAgb25DbG9zZTogZCwNCiAgICAgICAgICAgIG9wZW46IGYsDQogICAgICAg ICAgICByb290UmVmOiBwLA0KICAgICAgICAgIH0gPSBlLA0KICAgICAgICAgICAgaCA9IHQu dXNlUmVmKHt9KSwNCiAgICAgICAgICAgIG0gPSB0LnVzZVJlZihudWxsKSwNCiAgICAgICAg ICAgIGcgPSB0LnVzZVJlZihudWxsKSwNCiAgICAgICAgICAgIHYgPSBycihnLCBwKSwNCiAg ICAgICAgICAgIFt5LCBiXSA9IHQudXNlU3RhdGUoIWYpLA0KICAgICAgICAgICAgdyA9IChm dW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gISFlICYmIGUucHJvcHMuaGFz T3duUHJvcGVydHkoImluIik7DQogICAgICAgICAgICB9KShjKTsNCiAgICAgICAgICBsZXQg eCA9ICEwOw0KICAgICAgICAgICgiZmFsc2UiICE9PSBlWyJhcmlhLWhpZGRlbiJdICYmICEx ICE9PSBlWyJhcmlhLWhpZGRlbiJdKSB8fCAoeCA9ICExKTsNCiAgICAgICAgICBjb25zdCBT ID0gKCkgPT4gKChoLmN1cnJlbnQubW9kYWxSZWYgPSBnLmN1cnJlbnQpLCAoaC5jdXJyZW50 Lm1vdW50ID0gbS5jdXJyZW50KSwgaC5jdXJyZW50KSwNCiAgICAgICAgICAgIGsgPSAoKSA9 PiB7DQogICAgICAgICAgICAgIGEubW91bnQoUygpLCB7IGRpc2FibGVTY3JvbGxMb2NrOiBv IH0pLCBnLmN1cnJlbnQgJiYgKGcuY3VycmVudC5zY3JvbGxUb3AgPSAwKTsNCiAgICAgICAg ICAgIH0sDQogICAgICAgICAgICBFID0gaXIoKCkgPT4gew0KICAgICAgICAgICAgICBjb25z dCBlID0NCiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAg ICAgIHJldHVybiAiZnVuY3Rpb24iID09PSB0eXBlb2YgZSA/IGUoKSA6IGU7DQogICAgICAg ICAgICAgICAgfSkobikgfHwgRW8obS5jdXJyZW50KS5ib2R5Ow0KICAgICAgICAgICAgICBh LmFkZChTKCksIGUpLCBnLmN1cnJlbnQgJiYgaygpOw0KICAgICAgICAgICAgfSksDQogICAg ICAgICAgICBDID0gdC51c2VDYWxsYmFjaygoKSA9PiBhLmlzVG9wTW9kYWwoUygpKSwgW2Fd KSwNCiAgICAgICAgICAgIFIgPSBpcigoZSkgPT4gew0KICAgICAgICAgICAgICAobS5jdXJy ZW50ID0gZSksIGUgJiYgKGYgJiYgQygpID8gaygpIDogZy5jdXJyZW50ICYmIF9vKGcuY3Vy cmVudCwgeCkpOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICBfID0gdC51c2VDYWxs YmFjaygoKSA9PiB7DQogICAgICAgICAgICAgIGEucmVtb3ZlKFMoKSwgeCk7DQogICAgICAg ICAgICB9LCBbeCwgYV0pOw0KICAgICAgICAgIHQudXNlRWZmZWN0KA0KICAgICAgICAgICAg KCkgPT4gKCkgPT4gew0KICAgICAgICAgICAgICBfKCk7DQogICAgICAgICAgICB9LA0KICAg ICAgICAgICAgW19dDQogICAgICAgICAgKSwNCiAgICAgICAgICAgIHQudXNlRWZmZWN0KCgp ID0+IHsNCiAgICAgICAgICAgICAgZiA/IEUoKSA6ICh3ICYmIGwpIHx8IF8oKTsNCiAgICAg ICAgICAgIH0sIFtmLCBfLCB3LCBsLCBFXSk7DQogICAgICAgICAgY29uc3QgUCA9IChlKSA9 PiAodCkgPT4gew0KICAgICAgICAgICAgdmFyIG47DQogICAgICAgICAgICBudWxsID09IChu ID0gZS5vbktleURvd24pIHx8IG4uY2FsbChlLCB0KSwgIkVzY2FwZSIgPT09IHQua2V5ICYm IDIyOSAhPT0gdC53aGljaCAmJiBDKCkgJiYgKHIgfHwgKHQuc3RvcFByb3BhZ2F0aW9uKCks IGQgJiYgZCh0LCAiZXNjYXBlS2V5RG93biIpKSk7DQogICAgICAgICAgfSwNCiAgICAgICAg ICAgIE8gPSAoZSkgPT4gKHQpID0+IHsNCiAgICAgICAgICAgICAgdmFyIG47DQogICAgICAg ICAgICAgIG51bGwgPT0gKG4gPSBlLm9uQ2xpY2spIHx8IG4uY2FsbChlLCB0KSwgdC50YXJn ZXQgPT09IHQuY3VycmVudFRhcmdldCAmJiBkICYmIGQodCwgImJhY2tkcm9wQ2xpY2siKTsN CiAgICAgICAgICAgIH07DQogICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgIGdldFJv b3RQcm9wczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICBsZXQgdCA9IGFyZ3VtZW50 cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBd IDoge307DQogICAgICAgICAgICAgIGNvbnN0IG4gPSB3byhlKTsNCiAgICAgICAgICAgICAg ZGVsZXRlIG4ub25UcmFuc2l0aW9uRW50ZXIsIGRlbGV0ZSBuLm9uVHJhbnNpdGlvbkV4aXRl ZDsNCiAgICAgICAgICAgICAgY29uc3QgciA9IGkoe30sIG4sIHQpOw0KICAgICAgICAgICAg ICByZXR1cm4gaSh7IHJvbGU6ICJwcmVzZW50YXRpb24iIH0sIHIsIHsgb25LZXlEb3duOiBQ KHIpLCByZWY6IHYgfSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZ2V0QmFja2Ry b3BQcm9wczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50 cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBd IDoge307DQogICAgICAgICAgICAgIHJldHVybiBpKHsgImFyaWEtaGlkZGVuIjogITAgfSwg ZSwgeyBvbkNsaWNrOiBPKGUpLCBvcGVuOiBmIH0pOw0KICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgIGdldFRyYW5zaXRpb25Qcm9wczogKCkgPT4gKHsNCiAgICAgICAgICAgICAgb25F bnRlcjogQ28oDQogICAgICAgICAgICAgICAgKCkgPT4gew0KICAgICAgICAgICAgICAgICAg YighMSksIHMgJiYgcygpOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAg bnVsbCA9PSBjID8gdm9pZCAwIDogYy5wcm9wcy5vbkVudGVyDQogICAgICAgICAgICAgICks DQogICAgICAgICAgICAgIG9uRXhpdGVkOiBDbygNCiAgICAgICAgICAgICAgICAoKSA9PiB7 DQogICAgICAgICAgICAgICAgICBiKCEwKSwgdSAmJiB1KCksIGwgJiYgXygpOw0KICAgICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgbnVsbCA9PSBjID8gdm9pZCAwIDogYy5w cm9wcy5vbkV4aXRlZA0KICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgfSksDQogICAg ICAgICAgICByb290UmVmOiB2LA0KICAgICAgICAgICAgcG9ydGFsUmVmOiBSLA0KICAgICAg ICAgICAgaXNUb3BNb2RhbDogQywNCiAgICAgICAgICAgIGV4aXRlZDogeSwNCiAgICAgICAg ICAgIGhhc1RyYW5zaXRpb246IHcsDQogICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAg ICBjb25zdCB6byA9IFsiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIiwgImFbaHJlZl0i LCAiYnV0dG9uIiwgIlt0YWJpbmRleF0iLCAiYXVkaW9bY29udHJvbHNdIiwgInZpZGVvW2Nv bnRyb2xzXSIsICdbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT0iZmFs c2UiXSknXS5qb2luKCIsIik7DQogICAgICAgIGZ1bmN0aW9uIGpvKGUpIHsNCiAgICAgICAg ICBjb25zdCB0ID0gW10sDQogICAgICAgICAgICBuID0gW107DQogICAgICAgICAgcmV0dXJu ICgNCiAgICAgICAgICAgIEFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKHpvKSkuZm9y RWFjaCgoZSwgcikgPT4gew0KICAgICAgICAgICAgICBjb25zdCBvID0gKGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IHBhcnNlSW50KGUuZ2V0QXR0cmlidXRl KCJ0YWJpbmRleCIpIHx8ICIiLCAxMCk7DQogICAgICAgICAgICAgICAgcmV0dXJuIE51bWJl ci5pc05hTih0KSA/ICgidHJ1ZSIgPT09IGUuY29udGVudEVkaXRhYmxlIHx8ICgoIkFVRElP IiA9PT0gZS5ub2RlTmFtZSB8fCAiVklERU8iID09PSBlLm5vZGVOYW1lIHx8ICJERVRBSUxT IiA9PT0gZS5ub2RlTmFtZSkgJiYgbnVsbCA9PT0gZS5nZXRBdHRyaWJ1dGUoInRhYmluZGV4 IikpID8gMCA6IGUudGFiSW5kZXgpIDogdDsNCiAgICAgICAgICAgICAgfSkoZSk7DQogICAg ICAgICAgICAgIC0xICE9PSBvICYmDQogICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICAgICAgICByZXR1cm4gISgNCiAgICAgICAgICAgICAgICAgICAgZS5k aXNhYmxlZCB8fA0KICAgICAgICAgICAgICAgICAgICAoIklOUFVUIiA9PT0gZS50YWdOYW1l ICYmICJoaWRkZW4iID09PSBlLnR5cGUpIHx8DQogICAgICAgICAgICAgICAgICAgIChmdW5j dGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgIGlmICgiSU5QVVQiICE9PSBlLnRh Z05hbWUgfHwgInJhZGlvIiAhPT0gZS50eXBlKSByZXR1cm4gITE7DQogICAgICAgICAgICAg ICAgICAgICAgaWYgKCFlLm5hbWUpIHJldHVybiAhMTsNCiAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB0ID0gKHQpID0+IGUub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1 dFt0eXBlPSJyYWRpbyJdJy5jb25jYXQodCkpOw0KICAgICAgICAgICAgICAgICAgICAgIGxl dCBuID0gdCgnW25hbWU9IicuY29uY2F0KGUubmFtZSwgJyJdOmNoZWNrZWQnKSk7DQogICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIG4gfHwgKG4gPSB0KCdbbmFtZT0iJy5jb25jYXQo ZS5uYW1lLCAnIl0nKSkpLCBuICE9PSBlOw0KICAgICAgICAgICAgICAgICAgICB9KShlKQ0K ICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICB9KShlKSAmJg0KICAgICAg ICAgICAgICAgICgwID09PSBvID8gdC5wdXNoKGUpIDogbi5wdXNoKHsgZG9jdW1lbnRPcmRl cjogciwgdGFiSW5kZXg6IG8sIG5vZGU6IGUgfSkpOw0KICAgICAgICAgICAgfSksDQogICAg ICAgICAgICBuDQogICAgICAgICAgICAgIC5zb3J0KChlLCB0KSA9PiAoZS50YWJJbmRleCA9 PT0gdC50YWJJbmRleCA/IGUuZG9jdW1lbnRPcmRlciAtIHQuZG9jdW1lbnRPcmRlciA6IGUu dGFiSW5kZXggLSB0LnRhYkluZGV4KSkNCiAgICAgICAgICAgICAgLm1hcCgoZSkgPT4gZS5u b2RlKQ0KICAgICAgICAgICAgICAuY29uY2F0KHQpDQogICAgICAgICAgKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBJbygpIHsNCiAgICAgICAgICByZXR1cm4gITA7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTG8oZSkgew0KICAgICAgICAgIGNvbnN0IHsgY2hp bGRyZW46IG4sIGRpc2FibGVBdXRvRm9jdXM6IHIgPSAhMSwgZGlzYWJsZUVuZm9yY2VGb2N1 czogbyA9ICExLCBkaXNhYmxlUmVzdG9yZUZvY3VzOiBhID0gITEsIGdldFRhYmJhYmxlOiBp ID0gam8sIGlzRW5hYmxlZDogbCA9IElvLCBvcGVuOiBzIH0gPSBlLA0KICAgICAgICAgICAg dSA9IHQudXNlUmVmKCExKSwNCiAgICAgICAgICAgIGMgPSB0LnVzZVJlZihudWxsKSwNCiAg ICAgICAgICAgIGQgPSB0LnVzZVJlZihudWxsKSwNCiAgICAgICAgICAgIGYgPSB0LnVzZVJl ZihudWxsKSwNCiAgICAgICAgICAgIHAgPSB0LnVzZVJlZihudWxsKSwNCiAgICAgICAgICAg IGggPSB0LnVzZVJlZighMSksDQogICAgICAgICAgICBtID0gdC51c2VSZWYobnVsbCksDQog ICAgICAgICAgICBnID0gcnIobi5yZWYsIG0pLA0KICAgICAgICAgICAgdiA9IHQudXNlUmVm KG51bGwpOw0KICAgICAgICAgIHQudXNlRWZmZWN0KCgpID0+IHsNCiAgICAgICAgICAgIHMg JiYgbS5jdXJyZW50ICYmIChoLmN1cnJlbnQgPSAhcik7DQogICAgICAgICAgfSwgW3IsIHNd KSwNCiAgICAgICAgICAgIHQudXNlRWZmZWN0KCgpID0+IHsNCiAgICAgICAgICAgICAgaWYg KCFzIHx8ICFtLmN1cnJlbnQpIHJldHVybjsNCiAgICAgICAgICAgICAgY29uc3QgZSA9IEVv KG0uY3VycmVudCk7DQogICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAg bS5jdXJyZW50LmNvbnRhaW5zKGUuYWN0aXZlRWxlbWVudCkgfHwgKG0uY3VycmVudC5oYXNB dHRyaWJ1dGUoInRhYkluZGV4IikgfHwgbS5jdXJyZW50LnNldEF0dHJpYnV0ZSgidGFiSW5k ZXgiLCAiLTEiKSwgaC5jdXJyZW50ICYmIG0uY3VycmVudC5mb2N1cygpKSwNCiAgICAgICAg ICAgICAgICAoKSA9PiB7DQogICAgICAgICAgICAgICAgICBhIHx8IChmLmN1cnJlbnQgJiYg Zi5jdXJyZW50LmZvY3VzICYmICgodS5jdXJyZW50ID0gITApLCBmLmN1cnJlbnQuZm9jdXMo KSksIChmLmN1cnJlbnQgPSBudWxsKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICApOw0KICAgICAgICAgICAgfSwgW3NdKSwNCiAgICAgICAgICAgIHQudXNlRWZmZWN0 KCgpID0+IHsNCiAgICAgICAgICAgICAgaWYgKCFzIHx8ICFtLmN1cnJlbnQpIHJldHVybjsN CiAgICAgICAgICAgICAgY29uc3QgZSA9IEVvKG0uY3VycmVudCksDQogICAgICAgICAgICAg ICAgdCA9ICh0KSA9PiB7DQogICAgICAgICAgICAgICAgICAodi5jdXJyZW50ID0gdCksICFv ICYmIGwoKSAmJiAiVGFiIiA9PT0gdC5rZXkgJiYgZS5hY3RpdmVFbGVtZW50ID09PSBtLmN1 cnJlbnQgJiYgdC5zaGlmdEtleSAmJiAoKHUuY3VycmVudCA9ICEwKSwgZC5jdXJyZW50ICYm IGQuY3VycmVudC5mb2N1cygpKTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAg ICAgIG4gPSAoKSA9PiB7DQogICAgICAgICAgICAgICAgICBjb25zdCB0ID0gbS5jdXJyZW50 Ow0KICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IHQpIHJldHVybjsNCiAgICAgICAg ICAgICAgICAgIGlmICghZS5oYXNGb2N1cygpIHx8ICFsKCkgfHwgdS5jdXJyZW50KSByZXR1 cm4gdm9pZCAodS5jdXJyZW50ID0gITEpOw0KICAgICAgICAgICAgICAgICAgaWYgKHQuY29u dGFpbnMoZS5hY3RpdmVFbGVtZW50KSkgcmV0dXJuOw0KICAgICAgICAgICAgICAgICAgaWYg KG8gJiYgZS5hY3RpdmVFbGVtZW50ICE9PSBjLmN1cnJlbnQgJiYgZS5hY3RpdmVFbGVtZW50 ICE9PSBkLmN1cnJlbnQpIHJldHVybjsNCiAgICAgICAgICAgICAgICAgIGlmIChlLmFjdGl2 ZUVsZW1lbnQgIT09IHAuY3VycmVudCkgcC5jdXJyZW50ID0gbnVsbDsNCiAgICAgICAgICAg ICAgICAgIGVsc2UgaWYgKG51bGwgIT09IHAuY3VycmVudCkgcmV0dXJuOw0KICAgICAgICAg ICAgICAgICAgaWYgKCFoLmN1cnJlbnQpIHJldHVybjsNCiAgICAgICAgICAgICAgICAgIGxl dCBuID0gW107DQogICAgICAgICAgICAgICAgICBpZiAoKChlLmFjdGl2ZUVsZW1lbnQgIT09 IGMuY3VycmVudCAmJiBlLmFjdGl2ZUVsZW1lbnQgIT09IGQuY3VycmVudCkgfHwgKG4gPSBp KG0uY3VycmVudCkpLCBuLmxlbmd0aCA+IDApKSB7DQogICAgICAgICAgICAgICAgICAgIHZh ciByLCBhOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gQm9vbGVhbigobnVsbCA9 PSAociA9IHYuY3VycmVudCkgPyB2b2lkIDAgOiByLnNoaWZ0S2V5KSAmJiAiVGFiIiA9PT0g KG51bGwgPT0gKGEgPSB2LmN1cnJlbnQpID8gdm9pZCAwIDogYS5rZXkpKSwNCiAgICAgICAg ICAgICAgICAgICAgICB0ID0gblswXSwNCiAgICAgICAgICAgICAgICAgICAgICBvID0gbltu Lmxlbmd0aCAtIDFdOw0KICAgICAgICAgICAgICAgICAgICAic3RyaW5nIiAhPT0gdHlwZW9m IHQgJiYgInN0cmluZyIgIT09IHR5cGVvZiBvICYmIChlID8gby5mb2N1cygpIDogdC5mb2N1 cygpKTsNCiAgICAgICAgICAgICAgICAgIH0gZWxzZSB0LmZvY3VzKCk7DQogICAgICAgICAg ICAgICAgfTsNCiAgICAgICAgICAgICAgZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwg biksIGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHQsICEwKTsNCiAgICAgICAgICAg ICAgY29uc3QgciA9IHNldEludGVydmFsKCgpID0+IHsNCiAgICAgICAgICAgICAgICBlLmFj dGl2ZUVsZW1lbnQgJiYgIkJPRFkiID09PSBlLmFjdGl2ZUVsZW1lbnQudGFnTmFtZSAmJiBu KCk7DQogICAgICAgICAgICAgIH0sIDUwKTsNCiAgICAgICAgICAgICAgcmV0dXJuICgpID0+ IHsNCiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHIpLCBlLnJlbW92ZUV2ZW50TGlz dGVuZXIoImZvY3VzaW4iLCBuKSwgZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwg dCwgITApOw0KICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfSwgW3IsIG8sIGEsIGws IHMsIGldKTsNCiAgICAgICAgICBjb25zdCB5ID0gKGUpID0+IHsNCiAgICAgICAgICAgIG51 bGwgPT09IGYuY3VycmVudCAmJiAoZi5jdXJyZW50ID0gZS5yZWxhdGVkVGFyZ2V0KSwgKGgu Y3VycmVudCA9ICEwKTsNCiAgICAgICAgICB9Ow0KICAgICAgICAgIHJldHVybiAoMCwgTnIu anN4cykodC5GcmFnbWVudCwgew0KICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsgdGFiSW5kZXg6IHMgPyAwIDogLTEsIG9uRm9j dXM6IHksIHJlZjogYywgImRhdGEtdGVzdGlkIjogInNlbnRpbmVsU3RhcnQiIH0pLA0KICAg ICAgICAgICAgICB0LmNsb25lRWxlbWVudChuLCB7DQogICAgICAgICAgICAgICAgcmVmOiBn LA0KICAgICAgICAgICAgICAgIG9uRm9jdXM6IChlKSA9PiB7DQogICAgICAgICAgICAgICAg ICBudWxsID09PSBmLmN1cnJlbnQgJiYgKGYuY3VycmVudCA9IGUucmVsYXRlZFRhcmdldCks IChoLmN1cnJlbnQgPSAhMCksIChwLmN1cnJlbnQgPSBlLnRhcmdldCk7DQogICAgICAgICAg ICAgICAgICBjb25zdCB0ID0gbi5wcm9wcy5vbkZvY3VzOw0KICAgICAgICAgICAgICAgICAg dCAmJiB0KGUpOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyB0YWJJbmRleDogcyA/IDAgOiAtMSwg b25Gb2N1czogeSwgcmVmOiBkLCAiZGF0YS10ZXN0aWQiOiAic2VudGluZWxFbmQiIH0pLA0K ICAgICAgICAgICAgXSwNCiAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIg Rm8gPSBuKDE2NCk7DQogICAgICAgIGNvbnN0IEJvID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9u IChlLCBuKSB7DQogICAgICAgICAgY29uc3QgeyBjaGlsZHJlbjogciwgY29udGFpbmVyOiBv LCBkaXNhYmxlUG9ydGFsOiBhID0gITEgfSA9IGUsDQogICAgICAgICAgICBbaSwgbF0gPSB0 LnVzZVN0YXRlKG51bGwpLA0KICAgICAgICAgICAgcyA9IHJyKHQuaXNWYWxpZEVsZW1lbnQo cikgPyByLnJlZiA6IG51bGwsIG4pOw0KICAgICAgICAgIGlmICgNCiAgICAgICAgICAgIChh cigoKSA9PiB7DQogICAgICAgICAgICAgIGEgfHwNCiAgICAgICAgICAgICAgICBsKA0KICAg ICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHJl dHVybiAiZnVuY3Rpb24iID09PSB0eXBlb2YgZSA/IGUoKSA6IGU7DQogICAgICAgICAgICAg ICAgICB9KShvKSB8fCBkb2N1bWVudC5ib2R5DQogICAgICAgICAgICAgICAgKTsNCiAgICAg ICAgICAgIH0sIFtvLCBhXSksDQogICAgICAgICAgICAgIGFyKCgpID0+IHsNCiAgICAgICAg ICAgICAgICBpZiAoaSAmJiAhYSkNCiAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAg ICAgICAgICAgICAgICAgIG5yKG4sIGkpLA0KICAgICAgICAgICAgICAgICAgICAoKSA9PiB7 DQogICAgICAgICAgICAgICAgICAgICAgbnIobiwgbnVsbCk7DQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgIH0sIFtuLCBpLCBh XSksDQogICAgICAgICAgICAgIGEpDQogICAgICAgICAgKSB7DQogICAgICAgICAgICBpZiAo dC5pc1ZhbGlkRWxlbWVudChyKSkgew0KICAgICAgICAgICAgICBjb25zdCBlID0geyByZWY6 IHMgfTsNCiAgICAgICAgICAgICAgcmV0dXJuIHQuY2xvbmVFbGVtZW50KHIsIGUpOw0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICgwLCBOci5qc3gpKHQuRnJhZ21lbnQs IHsgY2hpbGRyZW46IHIgfSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiAoMCwg TnIuanN4KSh0LkZyYWdtZW50LCB7IGNoaWxkcmVuOiBpID8gRm8uY3JlYXRlUG9ydGFsKHIs IGkpIDogaSB9KTsNCiAgICAgICAgfSk7DQogICAgICAgIGNvbnN0IERvID0gITE7DQogICAg ICAgIHZhciBVbyA9ICJ1bm1vdW50ZWQiLA0KICAgICAgICAgIFdvID0gImV4aXRlZCIsDQog ICAgICAgICAgVm8gPSAiZW50ZXJpbmciLA0KICAgICAgICAgIEhvID0gImVudGVyZWQiLA0K ICAgICAgICAgIHFvID0gImV4aXRpbmciLA0KICAgICAgICAgICRvID0gKGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICBmdW5jdGlvbiBuKHQsIG4pIHsNCiAgICAgICAgICAgICAgdmFy IHI7DQogICAgICAgICAgICAgIHIgPSBlLmNhbGwodGhpcywgdCwgbikgfHwgdGhpczsNCiAg ICAgICAgICAgICAgdmFyIG8sDQogICAgICAgICAgICAgICAgYSA9IG4gJiYgIW4uaXNNb3Vu dGluZyA/IHQuZW50ZXIgOiB0LmFwcGVhcjsNCiAgICAgICAgICAgICAgcmV0dXJuIChyLmFw cGVhclN0YXR1cyA9IG51bGwpLCB0LmluID8gKGEgPyAoKG8gPSBXbyksIChyLmFwcGVhclN0 YXR1cyA9IFZvKSkgOiAobyA9IEhvKSkgOiAobyA9IHQudW5tb3VudE9uRXhpdCB8fCB0Lm1v dW50T25FbnRlciA/IFVvIDogV28pLCAoci5zdGF0ZSA9IHsgc3RhdHVzOiBvIH0pLCAoci5u ZXh0Q2FsbGJhY2sgPSBudWxsKSwgcjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJy KG4sIGUpLA0KICAgICAgICAgICAgICAobi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBm dW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlLmluICYmIHQuc3Rh dHVzID09PSBVbyA/IHsgc3RhdHVzOiBXbyB9IDogbnVsbDsNCiAgICAgICAgICAgICAgfSk7 DQogICAgICAgICAgICB2YXIgciA9IG4ucHJvdG90eXBlOw0KICAgICAgICAgICAgcmV0dXJu ICgNCiAgICAgICAgICAgICAgKHIuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiAoKSB7 DQogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoITAsIHRoaXMuYXBwZWFyU3Rh dHVzKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIChyLmNvbXBvbmVudERp ZFVwZGF0ZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSBudWxs Ow0KICAgICAgICAgICAgICAgIGlmIChlICE9PSB0aGlzLnByb3BzKSB7DQogICAgICAgICAg ICAgICAgICB2YXIgbiA9IHRoaXMuc3RhdGUuc3RhdHVzOw0KICAgICAgICAgICAgICAgICAg dGhpcy5wcm9wcy5pbiA/IG4gIT09IFZvICYmIG4gIT09IEhvICYmICh0ID0gVm8pIDogKG4g IT09IFZvICYmIG4gIT09IEhvKSB8fCAodCA9IHFvKTsNCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoITEsIHQpOw0KICAgICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgICAgKHIuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlv biAoKSB7DQogICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxOZXh0Q2FsbGJhY2soKTsNCiAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIChyLmdldFRpbWVvdXRzID0gZnVuY3Rp b24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBlLA0KICAgICAgICAgICAgICAgICAgdCwN CiAgICAgICAgICAgICAgICAgIG4sDQogICAgICAgICAgICAgICAgICByID0gdGhpcy5wcm9w cy50aW1lb3V0Ow0KICAgICAgICAgICAgICAgIHJldHVybiAoZSA9IHQgPSBuID0gciksIG51 bGwgIT0gciAmJiAibnVtYmVyIiAhPT0gdHlwZW9mIHIgJiYgKChlID0gci5leGl0KSwgKHQg PSByLmVudGVyKSwgKG4gPSB2b2lkIDAgIT09IHIuYXBwZWFyID8gci5hcHBlYXIgOiB0KSks IHsgZXhpdDogZSwgZW50ZXI6IHQsIGFwcGVhcjogbiB9Ow0KICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgKHIudXBkYXRlU3RhdHVzID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAg ICAgICAgICAgICAgICBpZiAoKHZvaWQgMCA9PT0gZSAmJiAoZSA9ICExKSwgbnVsbCAhPT0g dCkpDQogICAgICAgICAgICAgICAgICBpZiAoKHRoaXMuY2FuY2VsTmV4dENhbGxiYWNrKCks IHQgPT09IFZvKSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy51bm1v dW50T25FeGl0IHx8IHRoaXMucHJvcHMubW91bnRPbkVudGVyKSB7DQogICAgICAgICAgICAg ICAgICAgICAgdmFyIG4gPSB0aGlzLnByb3BzLm5vZGVSZWYgPyB0aGlzLnByb3BzLm5vZGVS ZWYuY3VycmVudCA6IEZvLmZpbmRET01Ob2RlKHRoaXMpOw0KICAgICAgICAgICAgICAgICAg ICAgIG4gJiYNCiAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICBlLnNjcm9sbFRvcDsNCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pKG4pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgIHRoaXMucGVyZm9ybUVudGVyKGUpOw0KICAgICAgICAgICAgICAgICAgfSBlbHNlIHRo aXMucGVyZm9ybUV4aXQoKTsNCiAgICAgICAgICAgICAgICBlbHNlIHRoaXMucHJvcHMudW5t b3VudE9uRXhpdCAmJiB0aGlzLnN0YXRlLnN0YXR1cyA9PT0gV28gJiYgdGhpcy5zZXRTdGF0 ZSh7IHN0YXR1czogVW8gfSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAo ci5wZXJmb3JtRW50ZXIgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgIHZhciB0 ID0gdGhpcywNCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnByb3BzLmVudGVyLA0KICAg ICAgICAgICAgICAgICAgciA9IHRoaXMuY29udGV4dCA/IHRoaXMuY29udGV4dC5pc01vdW50 aW5nIDogZSwNCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLnByb3BzLm5vZGVSZWYgPyBb cl0gOiBbRm8uZmluZERPTU5vZGUodGhpcyksIHJdLA0KICAgICAgICAgICAgICAgICAgYSA9 IG9bMF0sDQogICAgICAgICAgICAgICAgICBpID0gb1sxXSwNCiAgICAgICAgICAgICAgICAg IGwgPSB0aGlzLmdldFRpbWVvdXRzKCksDQogICAgICAgICAgICAgICAgICBzID0gciA/IGwu YXBwZWFyIDogbC5lbnRlcjsNCiAgICAgICAgICAgICAgICAoIWUgJiYgIW4pIHx8IERvDQog ICAgICAgICAgICAgICAgICA/IHRoaXMuc2FmZVNldFN0YXRlKHsgc3RhdHVzOiBIbyB9LCBm dW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHQucHJvcHMub25FbnRlcmVkKGEp Ow0KICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgIDogKHRoaXMucHJv cHMub25FbnRlcihhLCBpKSwNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYWZlU2V0U3Rh dGUoeyBzdGF0dXM6IFZvIH0sIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAg ICB0LnByb3BzLm9uRW50ZXJpbmcoYSwgaSksDQogICAgICAgICAgICAgICAgICAgICAgICB0 Lm9uVHJhbnNpdGlvbkVuZChzLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgIHQuc2FmZVNldFN0YXRlKHsgc3RhdHVzOiBIbyB9LCBmdW5jdGlvbiAoKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5wcm9wcy5vbkVudGVyZWQoYSwgaSk7DQog ICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAg fSk7DQogICAgICAgICAgICAgICAgICAgIH0pKTsNCiAgICAgICAgICAgICAgfSksDQogICAg ICAgICAgICAgIChyLnBlcmZvcm1FeGl0ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAg ICAgIHZhciBlID0gdGhpcywNCiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLnByb3BzLmV4 aXQsDQogICAgICAgICAgICAgICAgICBuID0gdGhpcy5nZXRUaW1lb3V0cygpLA0KICAgICAg ICAgICAgICAgICAgciA9IHRoaXMucHJvcHMubm9kZVJlZiA/IHZvaWQgMCA6IEZvLmZpbmRE T01Ob2RlKHRoaXMpOw0KICAgICAgICAgICAgICAgIHQgJiYgIURvDQogICAgICAgICAgICAg ICAgICA/ICh0aGlzLnByb3BzLm9uRXhpdChyKSwNCiAgICAgICAgICAgICAgICAgICAgdGhp cy5zYWZlU2V0U3RhdGUoeyBzdGF0dXM6IHFvIH0sIGZ1bmN0aW9uICgpIHsNCiAgICAgICAg ICAgICAgICAgICAgICBlLnByb3BzLm9uRXhpdGluZyhyKSwNCiAgICAgICAgICAgICAgICAg ICAgICAgIGUub25UcmFuc2l0aW9uRW5kKG4uZXhpdCwgZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICBlLnNhZmVTZXRTdGF0ZSh7IHN0YXR1czogV28gfSwgZnVu Y3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJvcHMub25FeGl0 ZWQocik7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAg ICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0pKQ0KICAgICAgICAgICAgICAg ICAgOiB0aGlzLnNhZmVTZXRTdGF0ZSh7IHN0YXR1czogV28gfSwgZnVuY3Rpb24gKCkgew0K ICAgICAgICAgICAgICAgICAgICBlLnByb3BzLm9uRXhpdGVkKHIpOw0KICAgICAgICAgICAg ICAgICAgfSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAoci5jYW5jZWxO ZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgbnVsbCAhPT0g dGhpcy5uZXh0Q2FsbGJhY2sgJiYgKHRoaXMubmV4dENhbGxiYWNrLmNhbmNlbCgpLCAodGhp cy5uZXh0Q2FsbGJhY2sgPSBudWxsKSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAoci5zYWZlU2V0U3RhdGUgPSBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAg ICAgICh0ID0gdGhpcy5zZXROZXh0Q2FsbGJhY2sodCkpLCB0aGlzLnNldFN0YXRlKGUsIHQp Ow0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgKHIuc2V0TmV4dENhbGxiYWNr ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMsDQogICAg ICAgICAgICAgICAgICBuID0gITA7DQogICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAg ICAgICAgICAgICAgICh0aGlzLm5leHRDYWxsYmFjayA9IGZ1bmN0aW9uIChyKSB7DQogICAg ICAgICAgICAgICAgICAgIG4gJiYgKChuID0gITEpLCAodC5uZXh0Q2FsbGJhY2sgPSBudWxs KSwgZShyKSk7DQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICh0 aGlzLm5leHRDYWxsYmFjay5jYW5jZWwgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAg ICAgICAgIG4gPSAhMTsNCiAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAg ICAgdGhpcy5uZXh0Q2FsbGJhY2sNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgICAgKHIub25UcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24gKGUs IHQpIHsNCiAgICAgICAgICAgICAgICB0aGlzLnNldE5leHRDYWxsYmFjayh0KTsNCiAgICAg ICAgICAgICAgICB2YXIgbiA9IHRoaXMucHJvcHMubm9kZVJlZiA/IHRoaXMucHJvcHMubm9k ZVJlZi5jdXJyZW50IDogRm8uZmluZERPTU5vZGUodGhpcyksDQogICAgICAgICAgICAgICAg ICByID0gbnVsbCA9PSBlICYmICF0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyOw0KICAgICAg ICAgICAgICAgIGlmIChuICYmICFyKSB7DQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5w cm9wcy5hZGRFbmRMaXN0ZW5lcikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgbyA9IHRo aXMucHJvcHMubm9kZVJlZiA/IFt0aGlzLm5leHRDYWxsYmFja10gOiBbbiwgdGhpcy5uZXh0 Q2FsbGJhY2tdLA0KICAgICAgICAgICAgICAgICAgICAgIGEgPSBvWzBdLA0KICAgICAgICAg ICAgICAgICAgICAgIGkgPSBvWzFdOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3Bz LmFkZEVuZExpc3RlbmVyKGEsIGkpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgbnVsbCAhPSBlICYmIHNldFRpbWVvdXQodGhpcy5uZXh0Q2FsbGJhY2ssIGUp Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBzZXRUaW1lb3V0KHRoaXMubmV4dENhbGxiYWNr LCAwKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIChyLnJlbmRlciA9IGZ1 bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMuc3RhdGUuc3RhdHVz Ow0KICAgICAgICAgICAgICAgIGlmIChlID09PSBVbykgcmV0dXJuIG51bGw7DQogICAgICAg ICAgICAgICAgdmFyIG4gPSB0aGlzLnByb3BzLA0KICAgICAgICAgICAgICAgICAgciA9IG4u Y2hpbGRyZW4sDQogICAgICAgICAgICAgICAgICBvID0NCiAgICAgICAgICAgICAgICAgICAg KG4uaW4sDQogICAgICAgICAgICAgICAgICAgICAgbi5tb3VudE9uRW50ZXIsDQogICAgICAg ICAgICAgICAgICAgICAgbi51bm1vdW50T25FeGl0LA0KICAgICAgICAgICAgICAgICAgICAg IG4uYXBwZWFyLA0KICAgICAgICAgICAgICAgICAgICAgIG4uZW50ZXIsDQogICAgICAgICAg ICAgICAgICAgICAgbi5leGl0LA0KICAgICAgICAgICAgICAgICAgICAgIG4udGltZW91dCwN CiAgICAgICAgICAgICAgICAgICAgICBuLmFkZEVuZExpc3RlbmVyLA0KICAgICAgICAgICAg ICAgICAgICAgIG4ub25FbnRlciwNCiAgICAgICAgICAgICAgICAgICAgICBuLm9uRW50ZXJp bmcsDQogICAgICAgICAgICAgICAgICAgICAgbi5vbkVudGVyZWQsDQogICAgICAgICAgICAg ICAgICAgICAgbi5vbkV4aXQsDQogICAgICAgICAgICAgICAgICAgICAgbi5vbkV4aXRpbmcs DQogICAgICAgICAgICAgICAgICAgICAgbi5vbkV4aXRlZCwNCiAgICAgICAgICAgICAgICAg ICAgICBuLm5vZGVSZWYsDQogICAgICAgICAgICAgICAgICAgICAgYShuLCBbDQogICAgICAg ICAgICAgICAgICAgICAgICAiY2hpbGRyZW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAg ImluIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJtb3VudE9uRW50ZXIiLA0KICAgICAg ICAgICAgICAgICAgICAgICAgInVubW91bnRPbkV4aXQiLA0KICAgICAgICAgICAgICAgICAg ICAgICAgImFwcGVhciIsDQogICAgICAgICAgICAgICAgICAgICAgICAiZW50ZXIiLA0KICAg ICAgICAgICAgICAgICAgICAgICAgImV4aXQiLA0KICAgICAgICAgICAgICAgICAgICAgICAg InRpbWVvdXQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgImFkZEVuZExpc3RlbmVyIiwN CiAgICAgICAgICAgICAgICAgICAgICAgICJvbkVudGVyIiwNCiAgICAgICAgICAgICAgICAg ICAgICAgICJvbkVudGVyaW5nIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJvbkVudGVy ZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIm9uRXhpdCIsDQogICAgICAgICAgICAg ICAgICAgICAgICAib25FeGl0aW5nIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJvbkV4 aXRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAibm9kZVJlZiIsDQogICAgICAgICAg ICAgICAgICAgICAgXSkpOw0KICAgICAgICAgICAgICAgIHJldHVybiB0LmNyZWF0ZUVsZW1l bnQod3IuUHJvdmlkZXIsIHsgdmFsdWU6IG51bGwgfSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9m IHIgPyByKGUsIG8pIDogdC5jbG9uZUVsZW1lbnQodC5DaGlsZHJlbi5vbmx5KHIpLCBvKSk7 DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBuDQogICAgICAgICAgICApOw0K ICAgICAgICAgIH0pKHQuQ29tcG9uZW50KTsNCiAgICAgICAgZnVuY3Rpb24gS28oKSB7IH0N CiAgICAgICAgKCRvLmNvbnRleHRUeXBlID0gd3IpLA0KICAgICAgICAgICgkby5wcm9wVHlw ZXMgPSB7fSksDQogICAgICAgICAgKCRvLmRlZmF1bHRQcm9wcyA9IHsgaW46ICExLCBtb3Vu dE9uRW50ZXI6ICExLCB1bm1vdW50T25FeGl0OiAhMSwgYXBwZWFyOiAhMSwgZW50ZXI6ICEw LCBleGl0OiAhMCwgb25FbnRlcjogS28sIG9uRW50ZXJpbmc6IEtvLCBvbkVudGVyZWQ6IEtv LCBvbkV4aXQ6IEtvLCBvbkV4aXRpbmc6IEtvLCBvbkV4aXRlZDogS28gfSksDQogICAgICAg ICAgKCRvLlVOTU9VTlRFRCA9IFVvKSwNCiAgICAgICAgICAoJG8uRVhJVEVEID0gV28pLA0K ICAgICAgICAgICgkby5FTlRFUklORyA9IFZvKSwNCiAgICAgICAgICAoJG8uRU5URVJFRCA9 IEhvKSwNCiAgICAgICAgICAoJG8uRVhJVElORyA9IHFvKTsNCiAgICAgICAgY29uc3QgUW8g PSAkbzsNCiAgICAgICAgZnVuY3Rpb24gR28oKSB7DQogICAgICAgICAgY29uc3QgZSA9IEpu KEtuKTsNCiAgICAgICAgICByZXR1cm4gZVtRbl0gfHwgZTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBZbyhlLCB0KSB7DQogICAgICAgICAgdmFyIG4sIHI7DQogICAgICAgICAg Y29uc3QgeyB0aW1lb3V0OiBvLCBlYXNpbmc6IGEsIHN0eWxlOiBpID0ge30gfSA9IGU7DQog ICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgIGR1cmF0aW9uOiBudWxsICE9IChuID0g aS50cmFuc2l0aW9uRHVyYXRpb24pID8gbiA6ICJudW1iZXIiID09PSB0eXBlb2YgbyA/IG8g OiBvW3QubW9kZV0gfHwgMCwNCiAgICAgICAgICAgIGVhc2luZzogbnVsbCAhPSAociA9IGku dHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uKSA/IHIgOiAib2JqZWN0IiA9PT0gdHlwZW9mIGEg PyBhW3QubW9kZV0gOiBhLA0KICAgICAgICAgICAgZGVsYXk6IGkudHJhbnNpdGlvbkRlbGF5 LA0KICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgWG8gPSBbImFkZEVu ZExpc3RlbmVyIiwgImFwcGVhciIsICJjaGlsZHJlbiIsICJlYXNpbmciLCAiaW4iLCAib25F bnRlciIsICJvbkVudGVyZWQiLCAib25FbnRlcmluZyIsICJvbkV4aXQiLCAib25FeGl0ZWQi LCAib25FeGl0aW5nIiwgInN0eWxlIiwgInRpbWVvdXQiLCAiVHJhbnNpdGlvbkNvbXBvbmVu dCJdLA0KICAgICAgICAgIFpvID0geyBlbnRlcmluZzogeyBvcGFjaXR5OiAxIH0sIGVudGVy ZWQ6IHsgb3BhY2l0eTogMSB9IH0sDQogICAgICAgICAgSm8gPSB0LmZvcndhcmRSZWYoZnVu Y3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICAgIGNvbnN0IHIgPSBHbygpLA0KICAgICAgICAg ICAgICBvID0geyBlbnRlcjogci50cmFuc2l0aW9ucy5kdXJhdGlvbi5lbnRlcmluZ1NjcmVl biwgZXhpdDogci50cmFuc2l0aW9ucy5kdXJhdGlvbi5sZWF2aW5nU2NyZWVuIH0sDQogICAg ICAgICAgICAgIHsgYWRkRW5kTGlzdGVuZXI6IGwsIGFwcGVhcjogcyA9ICEwLCBjaGlsZHJl bjogdSwgZWFzaW5nOiBjLCBpbjogZCwgb25FbnRlcjogZiwgb25FbnRlcmVkOiBwLCBvbkVu dGVyaW5nOiBoLCBvbkV4aXQ6IG0sIG9uRXhpdGVkOiBnLCBvbkV4aXRpbmc6IHYsIHN0eWxl OiB5LCB0aW1lb3V0OiBiID0gbywgVHJhbnNpdGlvbkNvbXBvbmVudDogdyA9IFFvIH0gPSBl LA0KICAgICAgICAgICAgICB4ID0gYShlLCBYbyksDQogICAgICAgICAgICAgIFMgPSB0LnVz ZVJlZihudWxsKSwNCiAgICAgICAgICAgICAgayA9IG9yKFMsIHUucmVmLCBuKSwNCiAgICAg ICAgICAgICAgRSA9IChlKSA9PiAodCkgPT4gew0KICAgICAgICAgICAgICAgIGlmIChlKSB7 DQogICAgICAgICAgICAgICAgICBjb25zdCBuID0gUy5jdXJyZW50Ow0KICAgICAgICAgICAg ICAgICAgdm9pZCAwID09PSB0ID8gZShuKSA6IGUobiwgdCk7DQogICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBDID0gRShoKSwNCiAgICAgICAg ICAgICAgUiA9IEUoKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgICAoKGUpID0+IHsNCiAg ICAgICAgICAgICAgICAgIGUuc2Nyb2xsVG9wOw0KICAgICAgICAgICAgICAgIH0pKGUpOw0K ICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBZbyh7IHN0eWxlOiB5LCB0aW1lb3V0OiBiLCBl YXNpbmc6IGMgfSwgeyBtb2RlOiAiZW50ZXIiIH0pOw0KICAgICAgICAgICAgICAgIChlLnN0 eWxlLndlYmtpdFRyYW5zaXRpb24gPSByLnRyYW5zaXRpb25zLmNyZWF0ZSgib3BhY2l0eSIs IG4pKSwgKGUuc3R5bGUudHJhbnNpdGlvbiA9IHIudHJhbnNpdGlvbnMuY3JlYXRlKCJvcGFj aXR5IiwgbikpLCBmICYmIGYoZSwgdCk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICBfID0gRShwKSwNCiAgICAgICAgICAgICAgUCA9IEUodiksDQogICAgICAgICAgICAg IE8gPSBFKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IFlvKHsgc3R5bGU6 IHksIHRpbWVvdXQ6IGIsIGVhc2luZzogYyB9LCB7IG1vZGU6ICJleGl0IiB9KTsNCiAgICAg ICAgICAgICAgICAoZS5zdHlsZS53ZWJraXRUcmFuc2l0aW9uID0gci50cmFuc2l0aW9ucy5j cmVhdGUoIm9wYWNpdHkiLCB0KSksIChlLnN0eWxlLnRyYW5zaXRpb24gPSByLnRyYW5zaXRp b25zLmNyZWF0ZSgib3BhY2l0eSIsIHQpKSwgbSAmJiBtKGUpOw0KICAgICAgICAgICAgICB9 KSwNCiAgICAgICAgICAgICAgTiA9IEUoZyk7DQogICAgICAgICAgICByZXR1cm4gKDAsIE5y LmpzeCkoDQogICAgICAgICAgICAgIHcsDQogICAgICAgICAgICAgIGkoDQogICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgYXBwZWFyOiBzLA0KICAgICAgICAgICAgICAg ICAgaW46IGQsDQogICAgICAgICAgICAgICAgICBub2RlUmVmOiBTLA0KICAgICAgICAgICAg ICAgICAgb25FbnRlcjogUiwNCiAgICAgICAgICAgICAgICAgIG9uRW50ZXJlZDogXywNCiAg ICAgICAgICAgICAgICAgIG9uRW50ZXJpbmc6IEMsDQogICAgICAgICAgICAgICAgICBvbkV4 aXQ6IE8sDQogICAgICAgICAgICAgICAgICBvbkV4aXRlZDogTiwNCiAgICAgICAgICAgICAg ICAgIG9uRXhpdGluZzogUCwNCiAgICAgICAgICAgICAgICAgIGFkZEVuZExpc3RlbmVyOiAo ZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBsICYmIGwoUy5jdXJyZW50LCBlKTsNCiAg ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICB0aW1lb3V0OiBiLA0KICAg ICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgeCwNCiAgICAgICAgICAgICAgICB7 IGNoaWxkcmVuOiAoZSwgbikgPT4gdC5jbG9uZUVsZW1lbnQodSwgaSh7IHN0eWxlOiBpKHsg b3BhY2l0eTogMCwgdmlzaWJpbGl0eTogImV4aXRlZCIgIT09IGUgfHwgZCA/IHZvaWQgMCA6 ICJoaWRkZW4iIH0sIFpvW2VdLCB5LCB1LnByb3BzLnN0eWxlKSwgcmVmOiBrIH0sIG4pKSB9 DQogICAgICAgICAgICAgICkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAg ICAgICAgZWEgPSBKbzsNCiAgICAgICAgZnVuY3Rpb24gdGEoZSkgew0KICAgICAgICAgIHJl dHVybiBqcigiTXVpQmFja2Ryb3AiLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBJcigiTXVp QmFja2Ryb3AiLCBbInJvb3QiLCAiaW52aXNpYmxlIl0pOw0KICAgICAgICBjb25zdCBuYSA9 IFsiY2hpbGRyZW4iLCAiY2xhc3NOYW1lIiwgImNvbXBvbmVudCIsICJjb21wb25lbnRzIiwg ImNvbXBvbmVudHNQcm9wcyIsICJpbnZpc2libGUiLCAib3BlbiIsICJzbG90UHJvcHMiLCAi c2xvdHMiLCAiVHJhbnNpdGlvbkNvbXBvbmVudCIsICJ0cmFuc2l0aW9uRHVyYXRpb24iXSwN CiAgICAgICAgICByYSA9IFluKCJkaXYiLCB7DQogICAgICAgICAgICBuYW1lOiAiTXVpQmFj a2Ryb3AiLA0KICAgICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJp ZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJT dGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFt0LnJvb3QsIG4uaW52aXNp YmxlICYmIHQuaW52aXNpYmxlXTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSkoKGUp ID0+IHsNCiAgICAgICAgICAgIGxldCB7IG93bmVyU3RhdGU6IHQgfSA9IGU7DQogICAgICAg ICAgICByZXR1cm4gaSgNCiAgICAgICAgICAgICAgeyBwb3NpdGlvbjogImZpeGVkIiwgZGlz cGxheTogImZsZXgiLCBhbGlnbkl0ZW1zOiAiY2VudGVyIiwganVzdGlmeUNvbnRlbnQ6ICJj ZW50ZXIiLCByaWdodDogMCwgYm90dG9tOiAwLCB0b3A6IDAsIGxlZnQ6IDAsIGJhY2tncm91 bmRDb2xvcjogInJnYmEoMCwgMCwgMCwgMC41KSIsIFdlYmtpdFRhcEhpZ2hsaWdodENvbG9y OiAidHJhbnNwYXJlbnQiIH0sDQogICAgICAgICAgICAgIHQuaW52aXNpYmxlICYmIHsgYmFj a2dyb3VuZENvbG9yOiAidHJhbnNwYXJlbnQiIH0NCiAgICAgICAgICAgICk7DQogICAgICAg ICAgfSksDQogICAgICAgICAgb2EgPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIHQpIHsN CiAgICAgICAgICAgIHZhciBuLCByLCBvOw0KICAgICAgICAgICAgY29uc3QgbCA9IHRyKHsg cHJvcHM6IGUsIG5hbWU6ICJNdWlCYWNrZHJvcCIgfSksDQogICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICBjaGlsZHJlbjogdSwNCiAgICAgICAgICAgICAgICBjbGFzc05hbWU6 IGQsDQogICAgICAgICAgICAgICAgY29tcG9uZW50OiBmID0gImRpdiIsDQogICAgICAgICAg ICAgICAgY29tcG9uZW50czogcCA9IHt9LA0KICAgICAgICAgICAgICAgIGNvbXBvbmVudHNQ cm9wczogaCA9IHt9LA0KICAgICAgICAgICAgICAgIGludmlzaWJsZTogbSA9ICExLA0KICAg ICAgICAgICAgICAgIG9wZW46IGcsDQogICAgICAgICAgICAgICAgc2xvdFByb3BzOiB2ID0g e30sDQogICAgICAgICAgICAgICAgc2xvdHM6IHkgPSB7fSwNCiAgICAgICAgICAgICAgICBU cmFuc2l0aW9uQ29tcG9uZW50OiBiID0gZWEsDQogICAgICAgICAgICAgICAgdHJhbnNpdGlv bkR1cmF0aW9uOiB3LA0KICAgICAgICAgICAgICB9ID0gbCwNCiAgICAgICAgICAgICAgeCA9 IGEobCwgbmEpLA0KICAgICAgICAgICAgICBTID0gaSh7fSwgbCwgeyBjb21wb25lbnQ6IGYs IGludmlzaWJsZTogbSB9KSwNCiAgICAgICAgICAgICAgayA9ICgoZSkgPT4gew0KICAgICAg ICAgICAgICAgIGNvbnN0IHsgY2xhc3NlczogdCwgaW52aXNpYmxlOiBuIH0gPSBlOw0KICAg ICAgICAgICAgICAgIHJldHVybiBjKHsgcm9vdDogWyJyb290IiwgbiAmJiAiaW52aXNpYmxl Il0gfSwgdGEsIHQpOw0KICAgICAgICAgICAgICB9KShTKSwNCiAgICAgICAgICAgICAgRSA9 IG51bGwgIT0gKG4gPSB2LnJvb3QpID8gbiA6IGgucm9vdDsNCiAgICAgICAgICAgIHJldHVy biAoMCwNCiAgICAgICAgICAgICAgTnIuanN4KShiLCBpKHsgaW46IGcsIHRpbWVvdXQ6IHcg fSwgeCwgeyBjaGlsZHJlbjogKDAsIE5yLmpzeCkocmEsIGkoeyAiYXJpYS1oaWRkZW4iOiAh MCB9LCBFLCB7IGFzOiBudWxsICE9IChyID0gbnVsbCAhPSAobyA9IHkucm9vdCkgPyBvIDog cC5Sb290KSA/IHIgOiBmLCBjbGFzc05hbWU6IHMoay5yb290LCBkLCBudWxsID09IEUgPyB2 b2lkIDAgOiBFLmNsYXNzTmFtZSksIG93bmVyU3RhdGU6IGkoe30sIFMsIG51bGwgPT0gRSA/ IHZvaWQgMCA6IEUub3duZXJTdGF0ZSksIGNsYXNzZXM6IGssIHJlZjogdCwgY2hpbGRyZW46 IHUgfSkpIH0pKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgZnVuY3Rpb24gYWEoZSkgew0K ICAgICAgICAgIHJldHVybiBqcigiTXVpTW9kYWwiLCBlKTsNCiAgICAgICAgfQ0KICAgICAg ICBJcigiTXVpTW9kYWwiLCBbInJvb3QiLCAiaGlkZGVuIiwgImJhY2tkcm9wIl0pOw0KICAg ICAgICBjb25zdCBpYSA9IFsNCiAgICAgICAgICAiQmFja2Ryb3BDb21wb25lbnQiLA0KICAg ICAgICAgICJCYWNrZHJvcFByb3BzIiwNCiAgICAgICAgICAiY2xhc3NlcyIsDQogICAgICAg ICAgImNsYXNzTmFtZSIsDQogICAgICAgICAgImNsb3NlQWZ0ZXJUcmFuc2l0aW9uIiwNCiAg ICAgICAgICAiY2hpbGRyZW4iLA0KICAgICAgICAgICJjb250YWluZXIiLA0KICAgICAgICAg ICJjb21wb25lbnQiLA0KICAgICAgICAgICJjb21wb25lbnRzIiwNCiAgICAgICAgICAiY29t cG9uZW50c1Byb3BzIiwNCiAgICAgICAgICAiZGlzYWJsZUF1dG9Gb2N1cyIsDQogICAgICAg ICAgImRpc2FibGVFbmZvcmNlRm9jdXMiLA0KICAgICAgICAgICJkaXNhYmxlRXNjYXBlS2V5 RG93biIsDQogICAgICAgICAgImRpc2FibGVQb3J0YWwiLA0KICAgICAgICAgICJkaXNhYmxl UmVzdG9yZUZvY3VzIiwNCiAgICAgICAgICAiZGlzYWJsZVNjcm9sbExvY2siLA0KICAgICAg ICAgICJoaWRlQmFja2Ryb3AiLA0KICAgICAgICAgICJrZWVwTW91bnRlZCIsDQogICAgICAg ICAgIm9uQmFja2Ryb3BDbGljayIsDQogICAgICAgICAgIm9uQ2xvc2UiLA0KICAgICAgICAg ICJvblRyYW5zaXRpb25FbnRlciIsDQogICAgICAgICAgIm9uVHJhbnNpdGlvbkV4aXRlZCIs DQogICAgICAgICAgIm9wZW4iLA0KICAgICAgICAgICJzbG90UHJvcHMiLA0KICAgICAgICAg ICJzbG90cyIsDQogICAgICAgICAgInRoZW1lIiwNCiAgICAgICAgXSwNCiAgICAgICAgICBs YSA9IFluKCJkaXYiLCB7DQogICAgICAgICAgICBuYW1lOiAiTXVpTW9kYWwiLA0KICAgICAg ICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChl LCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsN CiAgICAgICAgICAgICAgcmV0dXJuIFt0LnJvb3QsICFuLm9wZW4gJiYgbi5leGl0ZWQgJiYg dC5oaWRkZW5dOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkgPT4gew0KICAg ICAgICAgICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAg ICAgICByZXR1cm4gaSh7IHBvc2l0aW9uOiAiZml4ZWQiLCB6SW5kZXg6ICh0LnZhcnMgfHwg dCkuekluZGV4Lm1vZGFsLCByaWdodDogMCwgYm90dG9tOiAwLCB0b3A6IDAsIGxlZnQ6IDAg fSwgIW4ub3BlbiAmJiBuLmV4aXRlZCAmJiB7IHZpc2liaWxpdHk6ICJoaWRkZW4iIH0pOw0K ICAgICAgICAgIH0pLA0KICAgICAgICAgIHNhID0gWW4ob2EsIHsgbmFtZTogIk11aU1vZGFs Iiwgc2xvdDogIkJhY2tkcm9wIiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0LmJh Y2tkcm9wIH0pKHsgekluZGV4OiAtMSB9KSwNCiAgICAgICAgICB1YSA9IHQuZm9yd2FyZFJl ZihmdW5jdGlvbiAoZSwgbikgew0KICAgICAgICAgICAgdmFyIHIsIG8sIGwsIHUsIGQsIGY7 DQogICAgICAgICAgICBjb25zdCBwID0gdHIoeyBuYW1lOiAiTXVpTW9kYWwiLCBwcm9wczog ZSB9KSwNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEJhY2tkcm9wQ29tcG9u ZW50OiBoID0gc2EsDQogICAgICAgICAgICAgICAgQmFja2Ryb3BQcm9wczogbSwNCiAgICAg ICAgICAgICAgICBjbGFzc05hbWU6IGcsDQogICAgICAgICAgICAgICAgY2xvc2VBZnRlclRy YW5zaXRpb246IHYgPSAhMSwNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogeSwNCiAgICAg ICAgICAgICAgICBjb250YWluZXI6IGIsDQogICAgICAgICAgICAgICAgY29tcG9uZW50OiB3 LA0KICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IHggPSB7fSwNCiAgICAgICAgICAgICAg ICBjb21wb25lbnRzUHJvcHM6IFMgPSB7fSwNCiAgICAgICAgICAgICAgICBkaXNhYmxlQXV0 b0ZvY3VzOiBrID0gITEsDQogICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1czog RSA9ICExLA0KICAgICAgICAgICAgICAgIGRpc2FibGVFc2NhcGVLZXlEb3duOiBDID0gITEs DQogICAgICAgICAgICAgICAgZGlzYWJsZVBvcnRhbDogUiA9ICExLA0KICAgICAgICAgICAg ICAgIGRpc2FibGVSZXN0b3JlRm9jdXM6IF8gPSAhMSwNCiAgICAgICAgICAgICAgICBkaXNh YmxlU2Nyb2xsTG9jazogUCA9ICExLA0KICAgICAgICAgICAgICAgIGhpZGVCYWNrZHJvcDog TyA9ICExLA0KICAgICAgICAgICAgICAgIGtlZXBNb3VudGVkOiBOID0gITEsDQogICAgICAg ICAgICAgICAgb25CYWNrZHJvcENsaWNrOiBULA0KICAgICAgICAgICAgICAgIG9wZW46IEEs DQogICAgICAgICAgICAgICAgc2xvdFByb3BzOiBNLA0KICAgICAgICAgICAgICAgIHNsb3Rz OiB6LA0KICAgICAgICAgICAgICB9ID0gcCwNCiAgICAgICAgICAgICAgaiA9IGEocCwgaWEp LA0KICAgICAgICAgICAgICBJID0gaSh7fSwgcCwgew0KICAgICAgICAgICAgICAgIGNsb3Nl QWZ0ZXJUcmFuc2l0aW9uOiB2LA0KICAgICAgICAgICAgICAgIGRpc2FibGVBdXRvRm9jdXM6 IGssDQogICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1czogRSwNCiAgICAgICAg ICAgICAgICBkaXNhYmxlRXNjYXBlS2V5RG93bjogQywNCiAgICAgICAgICAgICAgICBkaXNh YmxlUG9ydGFsOiBSLA0KICAgICAgICAgICAgICAgIGRpc2FibGVSZXN0b3JlRm9jdXM6IF8s DQogICAgICAgICAgICAgICAgZGlzYWJsZVNjcm9sbExvY2s6IFAsDQogICAgICAgICAgICAg ICAgaGlkZUJhY2tkcm9wOiBPLA0KICAgICAgICAgICAgICAgIGtlZXBNb3VudGVkOiBOLA0K ICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgeyBnZXRSb290UHJvcHM6IEwsIGdl dEJhY2tkcm9wUHJvcHM6IEYsIGdldFRyYW5zaXRpb25Qcm9wczogQiwgcG9ydGFsUmVmOiBE LCBpc1RvcE1vZGFsOiBVLCBleGl0ZWQ6IFcsIGhhc1RyYW5zaXRpb246IFYgfSA9IE1vKGko e30sIEksIHsgcm9vdFJlZjogbiB9KSksDQogICAgICAgICAgICAgIEggPSBpKHt9LCBJLCB7 IGV4aXRlZDogVyB9KSwNCiAgICAgICAgICAgICAgcSA9ICgoZSkgPT4gew0KICAgICAgICAg ICAgICAgIGNvbnN0IHsgb3BlbjogdCwgZXhpdGVkOiBuLCBjbGFzc2VzOiByIH0gPSBlOw0K ICAgICAgICAgICAgICAgIHJldHVybiBjKHsgcm9vdDogWyJyb290IiwgIXQgJiYgbiAmJiAi aGlkZGVuIl0sIGJhY2tkcm9wOiBbImJhY2tkcm9wIl0gfSwgYWEsIHIpOw0KICAgICAgICAg ICAgICB9KShIKSwNCiAgICAgICAgICAgICAgJCA9IHt9Ow0KICAgICAgICAgICAgaWYgKCh2 b2lkIDAgPT09IHkucHJvcHMudGFiSW5kZXggJiYgKCQudGFiSW5kZXggPSAiLTEiKSwgVikp IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvbkVudGVyOiBlLCBvbkV4aXRlZDogdCB9ID0g QigpOw0KICAgICAgICAgICAgICAoJC5vbkVudGVyID0gZSksICgkLm9uRXhpdGVkID0gdCk7 DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb25zdCBLID0gbnVsbCAhPSAociA9IG51 bGwgIT0gKG8gPSBudWxsID09IHogPyB2b2lkIDAgOiB6LnJvb3QpID8gbyA6IHguUm9vdCkg PyByIDogbGEsDQogICAgICAgICAgICAgIFEgPSBudWxsICE9IChsID0gbnVsbCAhPSAodSA9 IG51bGwgPT0geiA/IHZvaWQgMCA6IHouYmFja2Ryb3ApID8gdSA6IHguQmFja2Ryb3ApID8g bCA6IGgsDQogICAgICAgICAgICAgIEcgPSBudWxsICE9IChkID0gbnVsbCA9PSBNID8gdm9p ZCAwIDogTS5yb290KSA/IGQgOiBTLnJvb3QsDQogICAgICAgICAgICAgIFkgPSBudWxsICE9 IChmID0gbnVsbCA9PSBNID8gdm9pZCAwIDogTS5iYWNrZHJvcCkgPyBmIDogUy5iYWNrZHJv cCwNCiAgICAgICAgICAgICAgWCA9IGtvKHsNCiAgICAgICAgICAgICAgICBlbGVtZW50VHlw ZTogSywNCiAgICAgICAgICAgICAgICBleHRlcm5hbFNsb3RQcm9wczogRywNCiAgICAgICAg ICAgICAgICBleHRlcm5hbEZvcndhcmRlZFByb3BzOiBqLA0KICAgICAgICAgICAgICAgIGdl dFNsb3RQcm9wczogTCwNCiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcHM6IHsgcmVm OiBuLCBhczogdyB9LA0KICAgICAgICAgICAgICAgIG93bmVyU3RhdGU6IEgsDQogICAgICAg ICAgICAgICAgY2xhc3NOYW1lOiBzKGcsIG51bGwgPT0gRyA/IHZvaWQgMCA6IEcuY2xhc3NO YW1lLCBudWxsID09IHEgPyB2b2lkIDAgOiBxLnJvb3QsICFILm9wZW4gJiYgSC5leGl0ZWQg JiYgKG51bGwgPT0gcSA/IHZvaWQgMCA6IHEuaGlkZGVuKSksDQogICAgICAgICAgICAgIH0p LA0KICAgICAgICAgICAgICBaID0ga28oew0KICAgICAgICAgICAgICAgIGVsZW1lbnRUeXBl OiBRLA0KICAgICAgICAgICAgICAgIGV4dGVybmFsU2xvdFByb3BzOiBZLA0KICAgICAgICAg ICAgICAgIGFkZGl0aW9uYWxQcm9wczogbSwNCiAgICAgICAgICAgICAgICBnZXRTbG90UHJv cHM6IChlKSA9Pg0KICAgICAgICAgICAgICAgICAgRigNCiAgICAgICAgICAgICAgICAgICAg aSh7fSwgZSwgew0KICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICh0KSA9PiB7DQog ICAgICAgICAgICAgICAgICAgICAgICBUICYmIFQodCksIG51bGwgIT0gZSAmJiBlLm9uQ2xp Y2sgJiYgZS5vbkNsaWNrKHQpOw0KICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAg IGNsYXNzTmFtZTogcyhudWxsID09IFkgPyB2b2lkIDAgOiBZLmNsYXNzTmFtZSwgbnVsbCA9 PSBtID8gdm9pZCAwIDogbS5jbGFzc05hbWUsIG51bGwgPT0gcSA/IHZvaWQgMCA6IHEuYmFj a2Ryb3ApLA0KICAgICAgICAgICAgICAgIG93bmVyU3RhdGU6IEgsDQogICAgICAgICAgICAg IH0pOw0KICAgICAgICAgICAgcmV0dXJuIE4gfHwgQSB8fCAoViAmJiAhVykNCiAgICAgICAg ICAgICAgPyAoMCwgTnIuanN4KShCbywgew0KICAgICAgICAgICAgICAgIHJlZjogRCwNCiAg ICAgICAgICAgICAgICBjb250YWluZXI6IGIsDQogICAgICAgICAgICAgICAgZGlzYWJsZVBv cnRhbDogUiwNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeHMpKA0KICAg ICAgICAgICAgICAgICAgSywNCiAgICAgICAgICAgICAgICAgIGkoe30sIFgsIHsNCiAgICAg ICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgICAhTyAm JiBoID8gKDAsIE5yLmpzeCkoUSwgaSh7fSwgWikpIDogbnVsbCwNCiAgICAgICAgICAgICAg ICAgICAgICAoMCwgTnIuanN4KShMbywgeyBkaXNhYmxlRW5mb3JjZUZvY3VzOiBFLCBkaXNh YmxlQXV0b0ZvY3VzOiBrLCBkaXNhYmxlUmVzdG9yZUZvY3VzOiBfLCBpc0VuYWJsZWQ6IFUs IG9wZW46IEEsIGNoaWxkcmVuOiB0LmNsb25lRWxlbWVudCh5LCAkKSB9KSwNCiAgICAgICAg ICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAg KSwNCiAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgOiBudWxsOw0KICAgICAgICAg IH0pLA0KICAgICAgICAgIGNhID0gdWEsDQogICAgICAgICAgZGEgPSBbInN4Il0sDQogICAg ICAgICAgZmEgPSAoZSkgPT4gew0KICAgICAgICAgICAgdmFyIHQsIG47DQogICAgICAgICAg ICBjb25zdCByID0geyBzeXN0ZW1Qcm9wczoge30sIG90aGVyUHJvcHM6IHt9IH0sDQogICAg ICAgICAgICAgIG8gPSBudWxsICE9ICh0ID0gbnVsbCA9PSBlIHx8IG51bGwgPT0gKG4gPSBl LnRoZW1lKSA/IHZvaWQgMCA6IG4udW5zdGFibGVfc3hDb25maWcpID8gdCA6IFp0Ow0KICAg ICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgT2JqZWN0LmtleXMoZSkuZm9yRWFj aCgodCkgPT4gew0KICAgICAgICAgICAgICAgIG9bdF0gPyAoci5zeXN0ZW1Qcm9wc1t0XSA9 IGVbdF0pIDogKHIub3RoZXJQcm9wc1t0XSA9IGVbdF0pOw0KICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgcg0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9Ow0KICAgICAg ICBmdW5jdGlvbiBwYShlKSB7DQogICAgICAgICAgY29uc3QgeyBzeDogdCB9ID0gZSwNCiAg ICAgICAgICAgIG4gPSBhKGUsIGRhKSwNCiAgICAgICAgICAgIHsgc3lzdGVtUHJvcHM6IHIs IG90aGVyUHJvcHM6IG8gfSA9IGZhKG4pOw0KICAgICAgICAgIGxldCBsOw0KICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAobCA9IEFycmF5LmlzQXJyYXkodCkNCiAgICAgICAg ICAgICAgPyBbciwgLi4udF0NCiAgICAgICAgICAgICAgOiAiZnVuY3Rpb24iID09PSB0eXBl b2YgdA0KICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAg ICAgY29uc3QgZSA9IHQoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgICAgICAgICAgIHJldHVy biBZZShlKSA/IGkoe30sIHIsIGUpIDogcjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgOiBpKHt9LCByLCB0KSksDQogICAgICAgICAgICBpKHt9LCBvLCB7IHN4OiBs IH0pDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBoYSA9IFsiY2xh c3NOYW1lIiwgImNvbXBvbmVudCJdOw0KICAgICAgICBjb25zdCBtYSA9ICRuKCksDQogICAg ICAgICAgZ2EgPSAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgbGV0IGUgPSBhcmd1bWVu dHMubGVuZ3RoID4gMCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1sw XSA6IHt9Ow0KICAgICAgICAgICAgY29uc3QgeyB0aGVtZUlkOiBuLCBkZWZhdWx0VGhlbWU6 IHIsIGRlZmF1bHRDbGFzc05hbWU6IG8gPSAiTXVpQm94LXJvb3QiLCBnZW5lcmF0ZUNsYXNz TmFtZTogbCB9ID0gZSwNCiAgICAgICAgICAgICAgdSA9IEdlKCJkaXYiLCB7IHNob3VsZEZv cndhcmRQcm9wOiAoZSkgPT4gInRoZW1lIiAhPT0gZSAmJiAic3giICE9PSBlICYmICJhcyIg IT09IGUgfSkoZW4pOw0KICAgICAgICAgICAgcmV0dXJuIHQuZm9yd2FyZFJlZihmdW5jdGlv biAoZSwgdCkgew0KICAgICAgICAgICAgICBjb25zdCBjID0gSm4ociksDQogICAgICAgICAg ICAgICAgZCA9IHBhKGUpLA0KICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBmLCBjb21w b25lbnQ6IHAgPSAiZGl2IiB9ID0gZCwNCiAgICAgICAgICAgICAgICBoID0gYShkLCBoYSk7 DQogICAgICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4KSh1LCBpKHsgYXM6IHAsIHJlZjog dCwgY2xhc3NOYW1lOiBzKGYsIGwgPyBsKG8pIDogbyksIHRoZW1lOiAobiAmJiBjW25dKSB8 fCBjIH0sIGgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0pKHsgdGhlbWVJZDog UW4sIGRlZmF1bHRUaGVtZTogbWEsIGRlZmF1bHRDbGFzc05hbWU6ICJNdWlCb3gtcm9vdCIs IGdlbmVyYXRlQ2xhc3NOYW1lOiBNci5nZW5lcmF0ZSB9KSwNCiAgICAgICAgICB2YSA9IGdh Ow0KICAgICAgICBmdW5jdGlvbiB5YShlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlD b2xsYXBzZSIsIGUpOw0KICAgICAgICB9DQogICAgICAgIElyKCJNdWlDb2xsYXBzZSIsIFsi cm9vdCIsICJob3Jpem9udGFsIiwgInZlcnRpY2FsIiwgImVudGVyZWQiLCAiaGlkZGVuIiwg IndyYXBwZXIiLCAid3JhcHBlcklubmVyIl0pOw0KICAgICAgICBjb25zdCBiYSA9IFsNCiAg ICAgICAgICAiYWRkRW5kTGlzdGVuZXIiLA0KICAgICAgICAgICJjaGlsZHJlbiIsDQogICAg ICAgICAgImNsYXNzTmFtZSIsDQogICAgICAgICAgImNvbGxhcHNlZFNpemUiLA0KICAgICAg ICAgICJjb21wb25lbnQiLA0KICAgICAgICAgICJlYXNpbmciLA0KICAgICAgICAgICJpbiIs DQogICAgICAgICAgIm9uRW50ZXIiLA0KICAgICAgICAgICJvbkVudGVyZWQiLA0KICAgICAg ICAgICJvbkVudGVyaW5nIiwNCiAgICAgICAgICAib25FeGl0IiwNCiAgICAgICAgICAib25F eGl0ZWQiLA0KICAgICAgICAgICJvbkV4aXRpbmciLA0KICAgICAgICAgICJvcmllbnRhdGlv biIsDQogICAgICAgICAgInN0eWxlIiwNCiAgICAgICAgICAidGltZW91dCIsDQogICAgICAg ICAgIlRyYW5zaXRpb25Db21wb25lbnQiLA0KICAgICAgICBdLA0KICAgICAgICAgIHdhID0g WW4oImRpdiIsIHsNCiAgICAgICAgICAgIG5hbWU6ICJNdWlDb2xsYXBzZSIsDQogICAgICAg ICAgICBzbG90OiAiUm9vdCIsDQogICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUs IHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0K ICAgICAgICAgICAgICByZXR1cm4gW3Qucm9vdCwgdFtuLm9yaWVudGF0aW9uXSwgImVudGVy ZWQiID09PSBuLnN0YXRlICYmIHQuZW50ZXJlZCwgImV4aXRlZCIgPT09IG4uc3RhdGUgJiYg IW4uaW4gJiYgIjBweCIgPT09IG4uY29sbGFwc2VkU2l6ZSAmJiB0LmhpZGRlbl07DQogICAg ICAgICAgICB9LA0KICAgICAgICAgIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0 aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKA0K ICAgICAgICAgICAgICB7IGhlaWdodDogMCwgb3ZlcmZsb3c6ICJoaWRkZW4iLCB0cmFuc2l0 aW9uOiB0LnRyYW5zaXRpb25zLmNyZWF0ZSgiaGVpZ2h0IikgfSwNCiAgICAgICAgICAgICAg Imhvcml6b250YWwiID09PSBuLm9yaWVudGF0aW9uICYmIHsgaGVpZ2h0OiAiYXV0byIsIHdp ZHRoOiAwLCB0cmFuc2l0aW9uOiB0LnRyYW5zaXRpb25zLmNyZWF0ZSgid2lkdGgiKSB9LA0K ICAgICAgICAgICAgICAiZW50ZXJlZCIgPT09IG4uc3RhdGUgJiYgaSh7IGhlaWdodDogImF1 dG8iLCBvdmVyZmxvdzogInZpc2libGUiIH0sICJob3Jpem9udGFsIiA9PT0gbi5vcmllbnRh dGlvbiAmJiB7IHdpZHRoOiAiYXV0byIgfSksDQogICAgICAgICAgICAgICJleGl0ZWQiID09 PSBuLnN0YXRlICYmICFuLmluICYmICIwcHgiID09PSBuLmNvbGxhcHNlZFNpemUgJiYgeyB2 aXNpYmlsaXR5OiAiaGlkZGVuIiB9DQogICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0K ICAgICAgICAgIHhhID0gWW4oImRpdiIsIHsgbmFtZTogIk11aUNvbGxhcHNlIiwgc2xvdDog IldyYXBwZXIiLCBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHQud3JhcHBlciB9KSgo ZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgb3duZXJTdGF0ZTogdCB9ID0gZTsNCiAgICAg ICAgICAgIHJldHVybiBpKHsgZGlzcGxheTogImZsZXgiLCB3aWR0aDogIjEwMCUiIH0sICJo b3Jpem9udGFsIiA9PT0gdC5vcmllbnRhdGlvbiAmJiB7IHdpZHRoOiAiYXV0byIsIGhlaWdo dDogIjEwMCUiIH0pOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIFNhID0gWW4oImRpdiIs IHsgbmFtZTogIk11aUNvbGxhcHNlIiwgc2xvdDogIldyYXBwZXJJbm5lciIsIG92ZXJyaWRl c1Jlc29sdmVyOiAoZSwgdCkgPT4gdC53cmFwcGVySW5uZXIgfSkoKGUpID0+IHsNCiAgICAg ICAgICAgIGxldCB7IG93bmVyU3RhdGU6IHQgfSA9IGU7DQogICAgICAgICAgICByZXR1cm4g aSh7IHdpZHRoOiAiMTAwJSIgfSwgImhvcml6b250YWwiID09PSB0Lm9yaWVudGF0aW9uICYm IHsgd2lkdGg6ICJhdXRvIiwgaGVpZ2h0OiAiMTAwJSIgfSk7DQogICAgICAgICAgfSksDQog ICAgICAgICAga2EgPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAg ICAgIGNvbnN0IHIgPSB0cih7IHByb3BzOiBlLCBuYW1lOiAiTXVpQ29sbGFwc2UiIH0pLA0K ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgYWRkRW5kTGlzdGVuZXI6IG8sDQog ICAgICAgICAgICAgICAgY2hpbGRyZW46IGwsDQogICAgICAgICAgICAgICAgY2xhc3NOYW1l OiB1LA0KICAgICAgICAgICAgICAgIGNvbGxhcHNlZFNpemU6IGQgPSAiMHB4IiwNCiAgICAg ICAgICAgICAgICBjb21wb25lbnQ6IGYsDQogICAgICAgICAgICAgICAgZWFzaW5nOiBwLA0K ICAgICAgICAgICAgICAgIGluOiBoLA0KICAgICAgICAgICAgICAgIG9uRW50ZXI6IG0sDQog ICAgICAgICAgICAgICAgb25FbnRlcmVkOiBnLA0KICAgICAgICAgICAgICAgIG9uRW50ZXJp bmc6IHYsDQogICAgICAgICAgICAgICAgb25FeGl0OiB5LA0KICAgICAgICAgICAgICAgIG9u RXhpdGVkOiBiLA0KICAgICAgICAgICAgICAgIG9uRXhpdGluZzogdywNCiAgICAgICAgICAg ICAgICBvcmllbnRhdGlvbjogeCA9ICJ2ZXJ0aWNhbCIsDQogICAgICAgICAgICAgICAgc3R5 bGU6IFMsDQogICAgICAgICAgICAgICAgdGltZW91dDogayA9IEJuLnN0YW5kYXJkLA0KICAg ICAgICAgICAgICAgIFRyYW5zaXRpb25Db21wb25lbnQ6IEUgPSBRbywNCiAgICAgICAgICAg ICAgfSA9IHIsDQogICAgICAgICAgICAgIEMgPSBhKHIsIGJhKSwNCiAgICAgICAgICAgICAg UiA9IGkoe30sIHIsIHsgb3JpZW50YXRpb246IHgsIGNvbGxhcHNlZFNpemU6IGQgfSksDQog ICAgICAgICAgICAgIF8gPSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7IG9y aWVudGF0aW9uOiB0LCBjbGFzc2VzOiBuIH0gPSBlOw0KICAgICAgICAgICAgICAgIHJldHVy biBjKHsgcm9vdDogWyJyb290IiwgIiIuY29uY2F0KHQpXSwgZW50ZXJlZDogWyJlbnRlcmVk Il0sIGhpZGRlbjogWyJoaWRkZW4iXSwgd3JhcHBlcjogWyJ3cmFwcGVyIiwgIiIuY29uY2F0 KHQpXSwgd3JhcHBlcklubmVyOiBbIndyYXBwZXJJbm5lciIsICIiLmNvbmNhdCh0KV0gfSwg eWEsIG4pOw0KICAgICAgICAgICAgICB9KShSKSwNCiAgICAgICAgICAgICAgUCA9IEdvKCks DQogICAgICAgICAgICAgIE8gPSB0LnVzZVJlZigpLA0KICAgICAgICAgICAgICBOID0gdC51 c2VSZWYobnVsbCksDQogICAgICAgICAgICAgIFQgPSB0LnVzZVJlZigpLA0KICAgICAgICAg ICAgICBBID0gIm51bWJlciIgPT09IHR5cGVvZiBkID8gIiIuY29uY2F0KGQsICJweCIpIDog ZCwNCiAgICAgICAgICAgICAgTSA9ICJob3Jpem9udGFsIiA9PT0geCwNCiAgICAgICAgICAg ICAgeiA9IE0gPyAid2lkdGgiIDogImhlaWdodCI7DQogICAgICAgICAgICB0LnVzZUVmZmVj dCgNCiAgICAgICAgICAgICAgKCkgPT4gKCkgPT4gew0KICAgICAgICAgICAgICAgIGNsZWFy VGltZW91dChPLmN1cnJlbnQpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBb XQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIGNvbnN0IGogPSB0LnVzZVJlZihudWxs KSwNCiAgICAgICAgICAgICAgSSA9IG9yKG4sIGopLA0KICAgICAgICAgICAgICBMID0gKGUp ID0+ICh0KSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKGUpIHsNCiAgICAgICAgICAgICAg ICAgIGNvbnN0IG4gPSBqLmN1cnJlbnQ7DQogICAgICAgICAgICAgICAgICB2b2lkIDAgPT09 IHQgPyBlKG4pIDogZShuLCB0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg IH0sDQogICAgICAgICAgICAgIEYgPSAoKSA9PiAoTi5jdXJyZW50ID8gTi5jdXJyZW50W00g PyAiY2xpZW50V2lkdGgiIDogImNsaWVudEhlaWdodCJdIDogMCksDQogICAgICAgICAgICAg IEIgPSBMKChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgTi5jdXJyZW50ICYmIE0gJiYg KE4uY3VycmVudC5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSIpLCAoZS5zdHlsZVt6XSA9 IEEpLCBtICYmIG0oZSwgdCk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBE ID0gTCgoZSwgdCkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBGKCk7DQogICAg ICAgICAgICAgICAgTi5jdXJyZW50ICYmIE0gJiYgKE4uY3VycmVudC5zdHlsZS5wb3NpdGlv biA9ICIiKTsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGR1cmF0aW9uOiByLCBlYXNpbmc6 IG8gfSA9IFlvKHsgc3R5bGU6IFMsIHRpbWVvdXQ6IGssIGVhc2luZzogcCB9LCB7IG1vZGU6 ICJlbnRlciIgfSk7DQogICAgICAgICAgICAgICAgaWYgKCJhdXRvIiA9PT0gaykgew0KICAg ICAgICAgICAgICAgICAgY29uc3QgdCA9IFAudHJhbnNpdGlvbnMuZ2V0QXV0b0hlaWdodER1 cmF0aW9uKG4pOw0KICAgICAgICAgICAgICAgICAgKGUuc3R5bGUudHJhbnNpdGlvbkR1cmF0 aW9uID0gIiIuY29uY2F0KHQsICJtcyIpKSwgKFQuY3VycmVudCA9IHQpOw0KICAgICAgICAg ICAgICAgIH0gZWxzZSBlLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICJzdHJpbmciID09 PSB0eXBlb2YgciA/IHIgOiAiIi5jb25jYXQociwgIm1zIik7DQogICAgICAgICAgICAgICAg KGUuc3R5bGVbel0gPSAiIi5jb25jYXQobiwgInB4IikpLCAoZS5zdHlsZS50cmFuc2l0aW9u VGltaW5nRnVuY3Rpb24gPSBvKSwgdiAmJiB2KGUsIHQpOw0KICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgVSA9IEwoKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgICAoZS5z dHlsZVt6XSA9ICJhdXRvIiksIGcgJiYgZyhlLCB0KTsNCiAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgIFcgPSBMKChlKSA9PiB7DQogICAgICAgICAgICAgICAgKGUuc3R5bGVb el0gPSAiIi5jb25jYXQoRigpLCAicHgiKSksIHkgJiYgeShlKTsNCiAgICAgICAgICAgICAg fSksDQogICAgICAgICAgICAgIFYgPSBMKGIpLA0KICAgICAgICAgICAgICBIID0gTCgoZSkg PT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBGKCksDQogICAgICAgICAgICAgICAg ICB7IGR1cmF0aW9uOiBuLCBlYXNpbmc6IHIgfSA9IFlvKHsgc3R5bGU6IFMsIHRpbWVvdXQ6 IGssIGVhc2luZzogcCB9LCB7IG1vZGU6ICJleGl0IiB9KTsNCiAgICAgICAgICAgICAgICBp ZiAoImF1dG8iID09PSBrKSB7DQogICAgICAgICAgICAgICAgICBjb25zdCBuID0gUC50cmFu c2l0aW9ucy5nZXRBdXRvSGVpZ2h0RHVyYXRpb24odCk7DQogICAgICAgICAgICAgICAgICAo ZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiIi5jb25jYXQobiwgIm1zIikpLCAoVC5j dXJyZW50ID0gbik7DQogICAgICAgICAgICAgICAgfSBlbHNlIGUuc3R5bGUudHJhbnNpdGlv bkR1cmF0aW9uID0gInN0cmluZyIgPT09IHR5cGVvZiBuID8gbiA6ICIiLmNvbmNhdChuLCAi bXMiKTsNCiAgICAgICAgICAgICAgICAoZS5zdHlsZVt6XSA9IEEpLCAoZS5zdHlsZS50cmFu c2l0aW9uVGltaW5nRnVuY3Rpb24gPSByKSwgdyAmJiB3KGUpOw0KICAgICAgICAgICAgICB9 KTsNCiAgICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4KSgNCiAgICAgICAgICAgICAgRSwN CiAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICBpbjogaCwNCiAgICAgICAgICAgICAgICAgIG9uRW50ZXI6IEIsDQogICAgICAgICAgICAg ICAgICBvbkVudGVyZWQ6IFUsDQogICAgICAgICAgICAgICAgICBvbkVudGVyaW5nOiBELA0K ICAgICAgICAgICAgICAgICAgb25FeGl0OiBXLA0KICAgICAgICAgICAgICAgICAgb25FeGl0 ZWQ6IFYsDQogICAgICAgICAgICAgICAgICBvbkV4aXRpbmc6IEgsDQogICAgICAgICAgICAg ICAgICBhZGRFbmRMaXN0ZW5lcjogKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgImF1 dG8iID09PSBrICYmIChPLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGUsIFQuY3VycmVudCB8fCAw KSksIG8gJiYgbyhqLmN1cnJlbnQsIGUpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgICAgICAgIG5vZGVSZWY6IGosDQogICAgICAgICAgICAgICAgICB0aW1lb3V0OiAi YXV0byIgPT09IGsgPyBudWxsIDogaywNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAg ICAgICAgIEMsDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgY2hpbGRy ZW46IChlLCB0KSA9Pg0KICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgNCiAgICAg ICAgICAgICAgICAgICAgICB3YSwNCiAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBhczogZiwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBzKF8ucm9vdCwgdSwgeyBl bnRlcmVkOiBfLmVudGVyZWQsIGV4aXRlZDogIWggJiYgIjBweCIgPT09IEEgJiYgXy5oaWRk ZW4gfVtlXSksDQogICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBpKHsgW00gPyAi bWluV2lkdGgiIDogIm1pbkhlaWdodCJdOiBBIH0sIFMpLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICBvd25lclN0YXRlOiBpKHt9LCBSLCB7IHN0YXRlOiBlIH0pLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICByZWY6IEksDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0K ICAgICAgICAgICAgICAgICAgICAgICAgdCwNCiAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKHhhLCB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXJTdGF0ZTogaSh7fSwgUiwgeyBz dGF0ZTogZSB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IF8u d3JhcHBlciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IE4sDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKFNhLCB7IG93bmVy U3RhdGU6IGkoe30sIFIsIHsgc3RhdGU6IGUgfSksIGNsYXNzTmFtZTogXy53cmFwcGVySW5u ZXIsIGNoaWxkcmVuOiBsIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICApDQogICAg ICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAp DQogICAgICAgICAgICApOw0KICAgICAgICAgIH0pOw0KICAgICAgICBrYS5tdWlTdXBwb3J0 QXV0byA9ICEwOw0KICAgICAgICBjb25zdCBFYSA9IGthOw0KICAgICAgICB2YXIgQ2EgPSBP YmplY3QuZGVmaW5lUHJvcGVydHksDQogICAgICAgICAgUmEgPSB7fTsNCiAgICAgICAgKChl LCB0KSA9PiB7DQogICAgICAgICAgZm9yICh2YXIgbiBpbiB0KSBDYShlLCBuLCB7IGdldDog dFtuXSwgZW51bWVyYWJsZTogITAgfSk7DQogICAgICAgIH0pKFJhLCB7IGFzc2lnbjogKCkg PT4gYWksIGNvbG9yczogKCkgPT4gbmksIGNyZWF0ZVN0cmluZ0ludGVycG9sYXRvcjogKCkg PT4gWmEsIHNraXBBbmltYXRpb246ICgpID0+IHJpLCB0bzogKCkgPT4gSmEsIHdpbGxBZHZh bmNlOiAoKSA9PiBvaSB9KTsNCiAgICAgICAgdmFyIF9hID0gVmEoKSwNCiAgICAgICAgICBQ YSA9IChlKSA9PiBCYShlLCBfYSksDQogICAgICAgICAgT2EgPSBWYSgpOw0KICAgICAgICBQ YS53cml0ZSA9IChlKSA9PiBCYShlLCBPYSk7DQogICAgICAgIHZhciBOYSA9IFZhKCk7DQog ICAgICAgIFBhLm9uU3RhcnQgPSAoZSkgPT4gQmEoZSwgTmEpOw0KICAgICAgICB2YXIgVGEg PSBWYSgpOw0KICAgICAgICBQYS5vbkZyYW1lID0gKGUpID0+IEJhKGUsIFRhKTsNCiAgICAg ICAgdmFyIEFhID0gVmEoKTsNCiAgICAgICAgUGEub25GaW5pc2ggPSAoZSkgPT4gQmEoZSwg QWEpOw0KICAgICAgICB2YXIgTWEgPSBbXTsNCiAgICAgICAgUGEuc2V0VGltZW91dCA9IChl LCB0KSA9PiB7DQogICAgICAgICAgY29uc3QgbiA9IFBhLm5vdygpICsgdCwNCiAgICAgICAg ICAgIHIgPSAoKSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IGUgPSBNYS5maW5kSW5kZXgo KGUpID0+IGUuY2FuY2VsID09IHIpOw0KICAgICAgICAgICAgICB+ZSAmJiBNYS5zcGxpY2Uo ZSwgMSksIChMYSAtPSB+ZSA/IDEgOiAwKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAg ICBvID0geyB0aW1lOiBuLCBoYW5kbGVyOiBlLCBjYW5jZWw6IHIgfTsNCiAgICAgICAgICBy ZXR1cm4gTWEuc3BsaWNlKHphKG4pLCAwLCBvKSwgKExhICs9IDEpLCBEYSgpLCBvOw0KICAg ICAgICB9Ow0KICAgICAgICB2YXIgemEgPSAoZSkgPT4gfih+TWEuZmluZEluZGV4KCh0KSA9 PiB0LnRpbWUgPiBlKSB8fCB+TWEubGVuZ3RoKTsNCiAgICAgICAgKFBhLmNhbmNlbCA9IChl KSA9PiB7DQogICAgICAgICAgTmEuZGVsZXRlKGUpLCBUYS5kZWxldGUoZSksIEFhLmRlbGV0 ZShlKSwgX2EuZGVsZXRlKGUpLCBPYS5kZWxldGUoZSk7DQogICAgICAgIH0pLA0KICAgICAg ICAgIChQYS5zeW5jID0gKGUpID0+IHsNCiAgICAgICAgICAgIChGYSA9ICEwKSwgUGEuYmF0 Y2hlZFVwZGF0ZXMoZSksIChGYSA9ICExKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAo UGEudGhyb3R0bGUgPSAoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHQ7DQogICAgICAgICAg ICBmdW5jdGlvbiBuKCkgew0KICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAg IGUoLi4udCk7DQogICAgICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAgICAg dCA9IG51bGw7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg IGZ1bmN0aW9uIHIoKSB7DQogICAgICAgICAgICAgIGZvciAodmFyIGUgPSBhcmd1bWVudHMu bGVuZ3RoLCByID0gbmV3IEFycmF5KGUpLCBvID0gMDsgbyA8IGU7IG8rKykgcltvXSA9IGFy Z3VtZW50c1tvXTsNCiAgICAgICAgICAgICAgKHQgPSByKSwgUGEub25TdGFydChuKTsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIChyLmhh bmRsZXIgPSBlKSwNCiAgICAgICAgICAgICAgKHIuY2FuY2VsID0gKCkgPT4gew0KICAgICAg ICAgICAgICAgIE5hLmRlbGV0ZShuKSwgKHQgPSBudWxsKTsNCiAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgIHINCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSk7DQogICAg ICAgIHZhciBqYSA9ICJ1bmRlZmluZWQiICE9IHR5cGVvZiB3aW5kb3cgPyB3aW5kb3cucmVx dWVzdEFuaW1hdGlvbkZyYW1lIDogKCkgPT4geyB9Ow0KICAgICAgICAoUGEudXNlID0gKGUp ID0+IChqYSA9IGUpKSwNCiAgICAgICAgICAoUGEubm93ID0gInVuZGVmaW5lZCIgIT0gdHlw ZW9mIHBlcmZvcm1hbmNlID8gKCkgPT4gcGVyZm9ybWFuY2Uubm93KCkgOiBEYXRlLm5vdyks DQogICAgICAgICAgKFBhLmJhdGNoZWRVcGRhdGVzID0gKGUpID0+IGUoKSksDQogICAgICAg ICAgKFBhLmNhdGNoID0gY29uc29sZS5lcnJvciksDQogICAgICAgICAgKFBhLmZyYW1lTG9v cCA9ICJhbHdheXMiKSwNCiAgICAgICAgICAoUGEuYWR2YW5jZSA9ICgpID0+IHsNCiAgICAg ICAgICAgICJkZW1hbmQiICE9PSBQYS5mcmFtZUxvb3AgPyBjb25zb2xlLndhcm4oIkNhbm5v dCBjYWxsIHRoZSBtYW51YWwgYWR2YW5jZW1lbnQgb2YgcmFmeiB3aGlsc3QgZnJhbWVMb29w IGlzIG5vdCBzZXQgYXMgZGVtYW5kIikgOiBXYSgpOw0KICAgICAgICAgIH0pOw0KICAgICAg ICB2YXIgSWEgPSAtMSwNCiAgICAgICAgICBMYSA9IDAsDQogICAgICAgICAgRmEgPSAhMTsN CiAgICAgICAgZnVuY3Rpb24gQmEoZSwgdCkgew0KICAgICAgICAgIEZhID8gKHQuZGVsZXRl KGUpLCBlKDApKSA6ICh0LmFkZChlKSwgRGEoKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gRGEoKSB7DQogICAgICAgICAgSWEgPCAwICYmICgoSWEgPSAwKSwgImRlbWFuZCIg IT09IFBhLmZyYW1lTG9vcCAmJiBqYShVYSkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIFVhKCkgew0KICAgICAgICAgIH5JYSAmJiAoamEoVWEpLCBQYS5iYXRjaGVkVXBkYXRl cyhXYSkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFdhKCkgew0KICAgICAgICAg IGNvbnN0IGUgPSBJYTsNCiAgICAgICAgICBJYSA9IFBhLm5vdygpOw0KICAgICAgICAgIGNv bnN0IHQgPSB6YShJYSk7DQogICAgICAgICAgdCAmJiAoSGEoTWEuc3BsaWNlKDAsIHQpLCAo ZSkgPT4gZS5oYW5kbGVyKCkpLCAoTGEgLT0gdCkpLCBMYSA/IChOYS5mbHVzaCgpLCBfYS5m bHVzaChlID8gTWF0aC5taW4oNjQsIElhIC0gZSkgOiAxNi42NjcpLCBUYS5mbHVzaCgpLCBP YS5mbHVzaCgpLCBBYS5mbHVzaCgpKSA6IChJYSA9IC0xKTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBWYSgpIHsNCiAgICAgICAgICBsZXQgZSA9IG5ldyBTZXQoKSwNCiAgICAg ICAgICAgIHQgPSBlOw0KICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICBhZGQobikg ew0KICAgICAgICAgICAgICAoTGEgKz0gdCAhPSBlIHx8IGUuaGFzKG4pID8gMCA6IDEpLCBl LmFkZChuKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBkZWxldGU6IChuKSA9PiAo KExhIC09IHQgPT0gZSAmJiBlLmhhcyhuKSA/IDEgOiAwKSwgZS5kZWxldGUobikpLA0KICAg ICAgICAgICAgZmx1c2gobikgew0KICAgICAgICAgICAgICB0LnNpemUgJiYgKChlID0gbmV3 IFNldCgpKSwgKExhIC09IHQuc2l6ZSksIEhhKHQsICh0KSA9PiB0KG4pICYmIGUuYWRkKHQp KSwgKExhICs9IGUuc2l6ZSksICh0ID0gZSkpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAg ICB9Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEhhKGUsIHQpIHsNCiAgICAgICAg ICBlLmZvckVhY2goKGUpID0+IHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg IHQoZSk7DQogICAgICAgICAgICB9IGNhdGNoIChuKSB7DQogICAgICAgICAgICAgIFBhLmNh dGNoKG4pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIHFhKCkgeyB9DQogICAgICAgIHZhciAkYSA9IHsgYXJyOiBBcnJheS5p c0FycmF5LCBvYmo6IChlKSA9PiAhIWUgJiYgIk9iamVjdCIgPT09IGUuY29uc3RydWN0b3Iu bmFtZSwgZnVuOiAoZSkgPT4gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGUsIHN0cjogKGUpID0+ ICJzdHJpbmciID09PSB0eXBlb2YgZSwgbnVtOiAoZSkgPT4gIm51bWJlciIgPT09IHR5cGVv ZiBlLCB1bmQ6IChlKSA9PiB2b2lkIDAgPT09IGUgfTsNCiAgICAgICAgZnVuY3Rpb24gS2Eo ZSwgdCkgew0KICAgICAgICAgIGlmICgkYS5hcnIoZSkpIHsNCiAgICAgICAgICAgIGlmICgh JGEuYXJyKHQpIHx8IGUubGVuZ3RoICE9PSB0Lmxlbmd0aCkgcmV0dXJuICExOw0KICAgICAg ICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBlLmxlbmd0aDsgbisrKSBpZiAoZVtuXSAhPT0g dFtuXSkgcmV0dXJuICExOw0KICAgICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICAgIH0N CiAgICAgICAgICByZXR1cm4gZSA9PT0gdDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgUWEg PSAoZSwgdCkgPT4gZS5mb3JFYWNoKHQpOw0KICAgICAgICBmdW5jdGlvbiBHYShlLCB0LCBu KSB7DQogICAgICAgICAgaWYgKCRhLmFycihlKSkgZm9yIChsZXQgciA9IDA7IHIgPCBlLmxl bmd0aDsgcisrKSB0LmNhbGwobiwgZVtyXSwgIiIuY29uY2F0KHIpKTsNCiAgICAgICAgICBl bHNlIGZvciAoY29uc3QgciBpbiBlKSBlLmhhc093blByb3BlcnR5KHIpICYmIHQuY2FsbChu LCBlW3JdLCByKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgWWEgPSAoZSkgPT4gKCRhLnVu ZChlKSA/IFtdIDogJGEuYXJyKGUpID8gZSA6IFtlXSk7DQogICAgICAgIGZ1bmN0aW9uIFhh KGUsIHQpIHsNCiAgICAgICAgICBpZiAoZS5zaXplKSB7DQogICAgICAgICAgICBjb25zdCBu ID0gQXJyYXkuZnJvbShlKTsNCiAgICAgICAgICAgIGUuY2xlYXIoKSwgUWEobiwgdCk7DQog ICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBaYSwNCiAgICAgICAgICBKYSwN CiAgICAgICAgICBlaSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBmb3IgKHZhciB0 ID0gYXJndW1lbnRzLmxlbmd0aCwgbiA9IG5ldyBBcnJheSh0ID4gMSA/IHQgLSAxIDogMCks IHIgPSAxOyByIDwgdDsgcisrKSBuW3IgLSAxXSA9IGFyZ3VtZW50c1tyXTsNCiAgICAgICAg ICAgIHJldHVybiBYYShlLCAoZSkgPT4gZSguLi5uKSk7DQogICAgICAgICAgfSwNCiAgICAg ICAgICB0aSA9ICgpID0+ICJ1bmRlZmluZWQiID09PSB0eXBlb2Ygd2luZG93IHx8ICF3aW5k b3cubmF2aWdhdG9yIHx8IC9TZXJ2ZXJTaWRlUmVuZGVyaW5nfF5EZW5vXC8vLnRlc3Qod2lu ZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpLA0KICAgICAgICAgIG5pID0gbnVsbCwNCiAgICAg ICAgICByaSA9ICExLA0KICAgICAgICAgIG9pID0gcWEsDQogICAgICAgICAgYWkgPSAoZSkg PT4gew0KICAgICAgICAgICAgZS50byAmJiAoSmEgPSBlLnRvKSwNCiAgICAgICAgICAgICAg ZS5ub3cgJiYgKFBhLm5vdyA9IGUubm93KSwNCiAgICAgICAgICAgICAgdm9pZCAwICE9PSBl LmNvbG9ycyAmJiAobmkgPSBlLmNvbG9ycyksDQogICAgICAgICAgICAgIG51bGwgIT0gZS5z a2lwQW5pbWF0aW9uICYmIChyaSA9IGUuc2tpcEFuaW1hdGlvbiksDQogICAgICAgICAgICAg IGUuY3JlYXRlU3RyaW5nSW50ZXJwb2xhdG9yICYmIChaYSA9IGUuY3JlYXRlU3RyaW5nSW50 ZXJwb2xhdG9yKSwNCiAgICAgICAgICAgICAgZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgJiYg UGEudXNlKGUucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSwNCiAgICAgICAgICAgICAgZS5iYXRj aGVkVXBkYXRlcyAmJiAoUGEuYmF0Y2hlZFVwZGF0ZXMgPSBlLmJhdGNoZWRVcGRhdGVzKSwN CiAgICAgICAgICAgICAgZS53aWxsQWR2YW5jZSAmJiAob2kgPSBlLndpbGxBZHZhbmNlKSwN CiAgICAgICAgICAgICAgZS5mcmFtZUxvb3AgJiYgKFBhLmZyYW1lTG9vcCA9IGUuZnJhbWVM b29wKTsNCiAgICAgICAgICB9LA0KICAgICAgICAgIGlpID0gbmV3IFNldCgpLA0KICAgICAg ICAgIGxpID0gW10sDQogICAgICAgICAgc2kgPSBbXSwNCiAgICAgICAgICB1aSA9IDAsDQog ICAgICAgICAgY2kgPSB7DQogICAgICAgICAgICBnZXQgaWRsZSgpIHsNCiAgICAgICAgICAg ICAgcmV0dXJuICFpaS5zaXplICYmICFsaS5sZW5ndGg7DQogICAgICAgICAgICB9LA0KICAg ICAgICAgICAgc3RhcnQoZSkgew0KICAgICAgICAgICAgICB1aSA+IGUucHJpb3JpdHkgPyAo aWkuYWRkKGUpLCBQYS5vblN0YXJ0KGRpKSkgOiAoZmkoZSksIFBhKGhpKSk7DQogICAgICAg ICAgICB9LA0KICAgICAgICAgICAgYWR2YW5jZTogaGksDQogICAgICAgICAgICBzb3J0KGUp IHsNCiAgICAgICAgICAgICAgaWYgKHVpKSBQYS5vbkZyYW1lKCgpID0+IGNpLnNvcnQoZSkp Ow0KICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjb25zdCB0ID0gbGku aW5kZXhPZihlKTsNCiAgICAgICAgICAgICAgICB+dCAmJiAobGkuc3BsaWNlKHQsIDEpLCBw aShlKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBj bGVhcigpIHsNCiAgICAgICAgICAgICAgKGxpID0gW10pLCBpaS5jbGVhcigpOw0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBkaSgpIHsNCiAgICAg ICAgICBpaS5mb3JFYWNoKGZpKSwgaWkuY2xlYXIoKSwgUGEoaGkpOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIGZpKGUpIHsNCiAgICAgICAgICBsaS5pbmNsdWRlcyhlKSB8fCBw aShlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBwaShlKSB7DQogICAgICAgICAg bGkuc3BsaWNlKA0KICAgICAgICAgICAgKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAg ICAgIGNvbnN0IG4gPSBlLmZpbmRJbmRleCh0KTsNCiAgICAgICAgICAgICAgcmV0dXJuIG4g PCAwID8gZS5sZW5ndGggOiBuOw0KICAgICAgICAgICAgfSkobGksICh0KSA9PiB0LnByaW9y aXR5ID4gZS5wcmlvcml0eSksDQogICAgICAgICAgICAwLA0KICAgICAgICAgICAgZQ0KICAg ICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaGkoZSkgew0KICAgICAg ICAgIGNvbnN0IHQgPSBzaTsNCiAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGxpLmxl bmd0aDsgbisrKSB7DQogICAgICAgICAgICBjb25zdCByID0gbGlbbl07DQogICAgICAgICAg ICAodWkgPSByLnByaW9yaXR5KSwgci5pZGxlIHx8IChvaShyKSwgci5hZHZhbmNlKGUpLCBy LmlkbGUgfHwgdC5wdXNoKHIpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICh1 aSA9IDApLCAoKHNpID0gbGkpLmxlbmd0aCA9IDApLCAobGkgPSB0KS5sZW5ndGggPiAwOw0K ICAgICAgICB9DQogICAgICAgIHZhciBtaSA9ICJbLStdP1xcZCpcXC4/XFxkKyIsDQogICAg ICAgICAgZ2kgPSBtaSArICIlIjsNCiAgICAgICAgZnVuY3Rpb24gdmkoKSB7DQogICAgICAg ICAgZm9yICh2YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGgsIHQgPSBuZXcgQXJyYXkoZSksIG4g PSAwOyBuIDwgZTsgbisrKSB0W25dID0gYXJndW1lbnRzW25dOw0KICAgICAgICAgIHJldHVy biAiXFwoXFxzKigiICsgdC5qb2luKCIpXFxzKixcXHMqKCIpICsgIilcXHMqXFwpIjsNCiAg ICAgICAgfQ0KICAgICAgICB2YXIgeWkgPSBuZXcgUmVnRXhwKCJyZ2IiICsgdmkobWksIG1p LCBtaSkpLA0KICAgICAgICAgIGJpID0gbmV3IFJlZ0V4cCgicmdiYSIgKyB2aShtaSwgbWks IG1pLCBtaSkpLA0KICAgICAgICAgIHdpID0gbmV3IFJlZ0V4cCgiaHNsIiArIHZpKG1pLCBn aSwgZ2kpKSwNCiAgICAgICAgICB4aSA9IG5ldyBSZWdFeHAoImhzbGEiICsgdmkobWksIGdp LCBnaSwgbWkpKSwNCiAgICAgICAgICBTaSA9IC9eIyhbMC05YS1mQS1GXXsxfSkoWzAtOWEt ZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLA0KICAgICAgICAgIGtpID0gL14jKFswLTlh LWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZd ezF9KSQvLA0KICAgICAgICAgIEVpID0gL14jKFswLTlhLWZBLUZdezZ9KSQvLA0KICAgICAg ICAgIENpID0gL14jKFswLTlhLWZBLUZdezh9KSQvOw0KICAgICAgICBmdW5jdGlvbiBSaShl LCB0LCBuKSB7DQogICAgICAgICAgcmV0dXJuIG4gPCAwICYmIChuICs9IDEpLCBuID4gMSAm JiAobiAtPSAxKSwgbiA8IDEgLyA2ID8gZSArIDYgKiAodCAtIGUpICogbiA6IG4gPCAwLjUg PyB0IDogbiA8IDIgLyAzID8gZSArICh0IC0gZSkgKiAoMiAvIDMgLSBuKSAqIDYgOiBlOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIF9pKGUsIHQsIG4pIHsNCiAgICAgICAgICBj b25zdCByID0gbiA8IDAuNSA/IG4gKiAoMSArIHQpIDogbiArIHQgLSBuICogdCwNCiAgICAg ICAgICAgIG8gPSAyICogbiAtIHIsDQogICAgICAgICAgICBhID0gUmkobywgciwgZSArIDEg LyAzKSwNCiAgICAgICAgICAgIGkgPSBSaShvLCByLCBlKSwNCiAgICAgICAgICAgIGwgPSBS aShvLCByLCBlIC0gMSAvIDMpOw0KICAgICAgICAgIHJldHVybiAoTWF0aC5yb3VuZCgyNTUg KiBhKSA8PCAyNCkgfCAoTWF0aC5yb3VuZCgyNTUgKiBpKSA8PCAxNikgfCAoTWF0aC5yb3Vu ZCgyNTUgKiBsKSA8PCA4KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBQaShlKSB7 DQogICAgICAgICAgY29uc3QgdCA9IHBhcnNlSW50KGUsIDEwKTsNCiAgICAgICAgICByZXR1 cm4gdCA8IDAgPyAwIDogdCA+IDI1NSA/IDI1NSA6IHQ7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gT2koZSkgew0KICAgICAgICAgIHJldHVybiAoKChwYXJzZUZsb2F0KGUpICUg MzYwKSArIDM2MCkgJSAzNjApIC8gMzYwOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IE5pKGUpIHsNCiAgICAgICAgICBjb25zdCB0ID0gcGFyc2VGbG9hdChlKTsNCiAgICAgICAg ICByZXR1cm4gdCA8IDAgPyAwIDogdCA+IDEgPyAyNTUgOiBNYXRoLnJvdW5kKDI1NSAqIHQp Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFRpKGUpIHsNCiAgICAgICAgICBjb25z dCB0ID0gcGFyc2VGbG9hdChlKTsNCiAgICAgICAgICByZXR1cm4gdCA8IDAgPyAwIDogdCA+ IDEwMCA/IDEgOiB0IC8gMTAwOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEFpKGUp IHsNCiAgICAgICAgICBsZXQgdCA9IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgbGV0 IHQ7DQogICAgICAgICAgICByZXR1cm4gIm51bWJlciIgPT09IHR5cGVvZiBlDQogICAgICAg ICAgICAgID8gZSA+Pj4gMCA9PT0gZSAmJiBlID49IDAgJiYgZSA8PSA0Mjk0OTY3Mjk1DQog ICAgICAgICAgICAgICAgPyBlDQogICAgICAgICAgICAgICAgOiBudWxsDQogICAgICAgICAg ICAgIDogKHQgPSBFaS5leGVjKGUpKQ0KICAgICAgICAgICAgICAgID8gcGFyc2VJbnQodFsx XSArICJmZiIsIDE2KSA+Pj4gMA0KICAgICAgICAgICAgICAgIDogbmkgJiYgdm9pZCAwICE9 PSBuaVtlXQ0KICAgICAgICAgICAgICAgICAgPyBuaVtlXQ0KICAgICAgICAgICAgICAgICAg OiAodCA9IHlpLmV4ZWMoZSkpDQogICAgICAgICAgICAgICAgICAgID8gKChQaSh0WzFdKSA8 PCAyNCkgfCAoUGkodFsyXSkgPDwgMTYpIHwgKFBpKHRbM10pIDw8IDgpIHwgMjU1KSA+Pj4g MA0KICAgICAgICAgICAgICAgICAgICA6ICh0ID0gYmkuZXhlYyhlKSkNCiAgICAgICAgICAg ICAgICAgICAgICA/ICgoUGkodFsxXSkgPDwgMjQpIHwgKFBpKHRbMl0pIDw8IDE2KSB8IChQ aSh0WzNdKSA8PCA4KSB8IE5pKHRbNF0pKSA+Pj4gMA0KICAgICAgICAgICAgICAgICAgICAg IDogKHQgPSBTaS5leGVjKGUpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgPyBwYXJzZUlu dCh0WzFdICsgdFsxXSArIHRbMl0gKyB0WzJdICsgdFszXSArIHRbM10gKyAiZmYiLCAxNikg Pj4+IDANCiAgICAgICAgICAgICAgICAgICAgICAgIDogKHQgPSBDaS5leGVjKGUpKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICA/IHBhcnNlSW50KHRbMV0sIDE2KSA+Pj4gMA0KICAg ICAgICAgICAgICAgICAgICAgICAgICA6ICh0ID0ga2kuZXhlYyhlKSkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICA/IHBhcnNlSW50KHRbMV0gKyB0WzFdICsgdFsyXSArIHRbMl0g KyB0WzNdICsgdFszXSArIHRbNF0gKyB0WzRdLCAxNikgPj4+IDANCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6ICh0ID0gd2kuZXhlYyhlKSkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID8gKDI1NSB8IF9pKE9pKHRbMV0pLCBUaSh0WzJdKSwgVGkodFszXSkpKSA+ Pj4gMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodCA9IHhpLmV4ZWMoZSkp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKF9pKE9pKHRbMV0pLCBUaSh0 WzJdKSwgVGkodFszXSkpIHwgTmkodFs0XSkpID4+PiAwDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogbnVsbDsNCiAgICAgICAgICB9KShlKTsNCiAgICAgICAgICBpZiAo bnVsbCA9PT0gdCkgcmV0dXJuIGU7DQogICAgICAgICAgdCA9IHQgfHwgMDsNCiAgICAgICAg ICBjb25zdCBuID0gKDE2NzExNjgwICYgdCkgPj4+IDE2LA0KICAgICAgICAgICAgciA9ICg2 NTI4MCAmIHQpID4+PiA4LA0KICAgICAgICAgICAgbyA9ICgyNTUgJiB0KSAvIDI1NTsNCiAg ICAgICAgICByZXR1cm4gInJnYmEoIg0KICAgICAgICAgICAgLmNvbmNhdCgoNDI3ODE5MDA4 MCAmIHQpID4+PiAyNCwgIiwgIikNCiAgICAgICAgICAgIC5jb25jYXQobiwgIiwgIikNCiAg ICAgICAgICAgIC5jb25jYXQociwgIiwgIikNCiAgICAgICAgICAgIC5jb25jYXQobywgIiki KTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgTWkgPSAoZSwgdCwgbikgPT4gew0KICAgICAg ICAgIGlmICgkYS5mdW4oZSkpIHJldHVybiBlOw0KICAgICAgICAgIGlmICgkYS5hcnIoZSkp IHJldHVybiBNaSh7IHJhbmdlOiBlLCBvdXRwdXQ6IHQsIGV4dHJhcG9sYXRlOiBuIH0pOw0K ICAgICAgICAgIGlmICgkYS5zdHIoZS5vdXRwdXRbMF0pKSByZXR1cm4gWmEoZSk7DQogICAg ICAgICAgY29uc3QgciA9IGUsDQogICAgICAgICAgICBvID0gci5vdXRwdXQsDQogICAgICAg ICAgICBhID0gci5yYW5nZSB8fCBbMCwgMV0sDQogICAgICAgICAgICBpID0gci5leHRyYXBv bGF0ZUxlZnQgfHwgci5leHRyYXBvbGF0ZSB8fCAiZXh0ZW5kIiwNCiAgICAgICAgICAgIGwg PSByLmV4dHJhcG9sYXRlUmlnaHQgfHwgci5leHRyYXBvbGF0ZSB8fCAiZXh0ZW5kIiwNCiAg ICAgICAgICAgIHMgPSByLmVhc2luZyB8fCAoKGUpID0+IGUpOw0KICAgICAgICAgIHJldHVy biAoZSkgPT4gew0KICAgICAgICAgICAgY29uc3QgdCA9IChmdW5jdGlvbiAoZSwgdCkgew0K ICAgICAgICAgICAgICBmb3IgKHZhciBuID0gMTsgbiA8IHQubGVuZ3RoIC0gMSAmJiAhKHRb bl0gPj0gZSk7ICsrbik7DQogICAgICAgICAgICAgIHJldHVybiBuIC0gMTsNCiAgICAgICAg ICAgIH0pKGUsIGEpOw0KICAgICAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAoZSwgdCwgbiwg ciwgbywgYSwgaSwgbCwgcykgew0KICAgICAgICAgICAgICBsZXQgdSA9IHMgPyBzKGUpIDog ZTsNCiAgICAgICAgICAgICAgaWYgKHUgPCB0KSB7DQogICAgICAgICAgICAgICAgaWYgKCJp ZGVudGl0eSIgPT09IGkpIHJldHVybiB1Ow0KICAgICAgICAgICAgICAgICJjbGFtcCIgPT09 IGkgJiYgKHUgPSB0KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBpZiAodSA+ IG4pIHsNCiAgICAgICAgICAgICAgICBpZiAoImlkZW50aXR5IiA9PT0gbCkgcmV0dXJuIHU7 DQogICAgICAgICAgICAgICAgImNsYW1wIiA9PT0gbCAmJiAodSA9IG4pOw0KICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgIGlmIChyID09PSBvKSByZXR1cm4gcjsNCiAgICAgICAg ICAgICAgaWYgKHQgPT09IG4pIHJldHVybiBlIDw9IHQgPyByIDogbzsNCiAgICAgICAgICAg ICAgdCA9PT0gLTEgLyAwID8gKHUgPSAtdSkgOiBuID09PSAxIC8gMCA/ICh1IC09IHQpIDog KHUgPSAodSAtIHQpIC8gKG4gLSB0KSk7DQogICAgICAgICAgICAgICh1ID0gYSh1KSksIHIg PT09IC0xIC8gMCA/ICh1ID0gLXUpIDogbyA9PT0gMSAvIDAgPyAodSArPSByKSA6ICh1ID0g dSAqIChvIC0gcikgKyByKTsNCiAgICAgICAgICAgICAgcmV0dXJuIHU7DQogICAgICAgICAg ICB9KShlLCBhW3RdLCBhW3QgKyAxXSwgb1t0XSwgb1t0ICsgMV0sIHMsIGksIGwsIHIubWFw KTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9Ow0KICAgICAgICB2YXIgemkgPSAxLjcwMTU4 LA0KICAgICAgICAgIGppID0gMS41MjUgKiB6aSwNCiAgICAgICAgICBJaSA9IHppICsgMSwN CiAgICAgICAgICBMaSA9ICgyICogTWF0aC5QSSkgLyAzLA0KICAgICAgICAgIEZpID0gKDIg KiBNYXRoLlBJKSAvIDQuNSwNCiAgICAgICAgICBCaSA9IChlKSA9PiB7DQogICAgICAgICAg ICBjb25zdCB0ID0gNy41NjI1LA0KICAgICAgICAgICAgICBuID0gMi43NTsNCiAgICAgICAg ICAgIHJldHVybiBlIDwgMSAvIG4gPyB0ICogZSAqIGUgOiBlIDwgMiAvIG4gPyB0ICogKGUg LT0gMS41IC8gbikgKiBlICsgMC43NSA6IGUgPCAyLjUgLyBuID8gdCAqIChlIC09IDIuMjUg LyBuKSAqIGUgKyAwLjkzNzUgOiB0ICogKGUgLT0gMi42MjUgLyBuKSAqIGUgKyAwLjk4NDM3 NTsNCiAgICAgICAgICB9LA0KICAgICAgICAgIERpID0gew0KICAgICAgICAgICAgbGluZWFy OiAoZSkgPT4gZSwNCiAgICAgICAgICAgIGVhc2VJblF1YWQ6IChlKSA9PiBlICogZSwNCiAg ICAgICAgICAgIGVhc2VPdXRRdWFkOiAoZSkgPT4gMSAtICgxIC0gZSkgKiAoMSAtIGUpLA0K ICAgICAgICAgICAgZWFzZUluT3V0UXVhZDogKGUpID0+IChlIDwgMC41ID8gMiAqIGUgKiBl IDogMSAtIE1hdGgucG93KC0yICogZSArIDIsIDIpIC8gMiksDQogICAgICAgICAgICBlYXNl SW5DdWJpYzogKGUpID0+IGUgKiBlICogZSwNCiAgICAgICAgICAgIGVhc2VPdXRDdWJpYzog KGUpID0+IDEgLSBNYXRoLnBvdygxIC0gZSwgMyksDQogICAgICAgICAgICBlYXNlSW5PdXRD dWJpYzogKGUpID0+IChlIDwgMC41ID8gNCAqIGUgKiBlICogZSA6IDEgLSBNYXRoLnBvdygt MiAqIGUgKyAyLCAzKSAvIDIpLA0KICAgICAgICAgICAgZWFzZUluUXVhcnQ6IChlKSA9PiBl ICogZSAqIGUgKiBlLA0KICAgICAgICAgICAgZWFzZU91dFF1YXJ0OiAoZSkgPT4gMSAtIE1h dGgucG93KDEgLSBlLCA0KSwNCiAgICAgICAgICAgIGVhc2VJbk91dFF1YXJ0OiAoZSkgPT4g KGUgPCAwLjUgPyA4ICogZSAqIGUgKiBlICogZSA6IDEgLSBNYXRoLnBvdygtMiAqIGUgKyAy LCA0KSAvIDIpLA0KICAgICAgICAgICAgZWFzZUluUXVpbnQ6IChlKSA9PiBlICogZSAqIGUg KiBlICogZSwNCiAgICAgICAgICAgIGVhc2VPdXRRdWludDogKGUpID0+IDEgLSBNYXRoLnBv dygxIC0gZSwgNSksDQogICAgICAgICAgICBlYXNlSW5PdXRRdWludDogKGUpID0+IChlIDwg MC41ID8gMTYgKiBlICogZSAqIGUgKiBlICogZSA6IDEgLSBNYXRoLnBvdygtMiAqIGUgKyAy LCA1KSAvIDIpLA0KICAgICAgICAgICAgZWFzZUluU2luZTogKGUpID0+IDEgLSBNYXRoLmNv cygoZSAqIE1hdGguUEkpIC8gMiksDQogICAgICAgICAgICBlYXNlT3V0U2luZTogKGUpID0+ IE1hdGguc2luKChlICogTWF0aC5QSSkgLyAyKSwNCiAgICAgICAgICAgIGVhc2VJbk91dFNp bmU6IChlKSA9PiAtKE1hdGguY29zKE1hdGguUEkgKiBlKSAtIDEpIC8gMiwNCiAgICAgICAg ICAgIGVhc2VJbkV4cG86IChlKSA9PiAoMCA9PT0gZSA/IDAgOiBNYXRoLnBvdygyLCAxMCAq IGUgLSAxMCkpLA0KICAgICAgICAgICAgZWFzZU91dEV4cG86IChlKSA9PiAoMSA9PT0gZSA/ IDEgOiAxIC0gTWF0aC5wb3coMiwgLTEwICogZSkpLA0KICAgICAgICAgICAgZWFzZUluT3V0 RXhwbzogKGUpID0+ICgwID09PSBlID8gMCA6IDEgPT09IGUgPyAxIDogZSA8IDAuNSA/IE1h dGgucG93KDIsIDIwICogZSAtIDEwKSAvIDIgOiAoMiAtIE1hdGgucG93KDIsIC0yMCAqIGUg KyAxMCkpIC8gMiksDQogICAgICAgICAgICBlYXNlSW5DaXJjOiAoZSkgPT4gMSAtIE1hdGgu c3FydCgxIC0gTWF0aC5wb3coZSwgMikpLA0KICAgICAgICAgICAgZWFzZU91dENpcmM6IChl KSA9PiBNYXRoLnNxcnQoMSAtIE1hdGgucG93KGUgLSAxLCAyKSksDQogICAgICAgICAgICBl YXNlSW5PdXRDaXJjOiAoZSkgPT4gKGUgPCAwLjUgPyAoMSAtIE1hdGguc3FydCgxIC0gTWF0 aC5wb3coMiAqIGUsIDIpKSkgLyAyIDogKE1hdGguc3FydCgxIC0gTWF0aC5wb3coLTIgKiBl ICsgMiwgMikpICsgMSkgLyAyKSwNCiAgICAgICAgICAgIGVhc2VJbkJhY2s6IChlKSA9PiBJ aSAqIGUgKiBlICogZSAtIHppICogZSAqIGUsDQogICAgICAgICAgICBlYXNlT3V0QmFjazog KGUpID0+IDEgKyBJaSAqIE1hdGgucG93KGUgLSAxLCAzKSArIHppICogTWF0aC5wb3coZSAt IDEsIDIpLA0KICAgICAgICAgICAgZWFzZUluT3V0QmFjazogKGUpID0+IChlIDwgMC41ID8g KE1hdGgucG93KDIgKiBlLCAyKSAqICg3LjE4OTgxOSAqIGUgLSBqaSkpIC8gMiA6IChNYXRo LnBvdygyICogZSAtIDIsIDIpICogKChqaSArIDEpICogKDIgKiBlIC0gMikgKyBqaSkgKyAy KSAvIDIpLA0KICAgICAgICAgICAgZWFzZUluRWxhc3RpYzogKGUpID0+ICgwID09PSBlID8g MCA6IDEgPT09IGUgPyAxIDogLU1hdGgucG93KDIsIDEwICogZSAtIDEwKSAqIE1hdGguc2lu KCgxMCAqIGUgLSAxMC43NSkgKiBMaSkpLA0KICAgICAgICAgICAgZWFzZU91dEVsYXN0aWM6 IChlKSA9PiAoMCA9PT0gZSA/IDAgOiAxID09PSBlID8gMSA6IE1hdGgucG93KDIsIC0xMCAq IGUpICogTWF0aC5zaW4oKDEwICogZSAtIDAuNzUpICogTGkpICsgMSksDQogICAgICAgICAg ICBlYXNlSW5PdXRFbGFzdGljOiAoZSkgPT4gKDAgPT09IGUgPyAwIDogMSA9PT0gZSA/IDEg OiBlIDwgMC41ID8gKC1NYXRoLnBvdygyLCAyMCAqIGUgLSAxMCkgKiBNYXRoLnNpbigoMjAg KiBlIC0gMTEuMTI1KSAqIEZpKSkgLyAyIDogKE1hdGgucG93KDIsIC0yMCAqIGUgKyAxMCkg KiBNYXRoLnNpbigoMjAgKiBlIC0gMTEuMTI1KSAqIEZpKSkgLyAyICsgMSksDQogICAgICAg ICAgICBlYXNlSW5Cb3VuY2U6IChlKSA9PiAxIC0gQmkoMSAtIGUpLA0KICAgICAgICAgICAg ZWFzZU91dEJvdW5jZTogQmksDQogICAgICAgICAgICBlYXNlSW5PdXRCb3VuY2U6IChlKSA9 PiAoZSA8IDAuNSA/ICgxIC0gQmkoMSAtIDIgKiBlKSkgLyAyIDogKDEgKyBCaSgyICogZSAt IDEpKSAvIDIpLA0KICAgICAgICAgICAgc3RlcHM6IGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICAgIGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1 bWVudHNbMV0gPyBhcmd1bWVudHNbMV0gOiAiZW5kIjsNCiAgICAgICAgICAgICAgcmV0dXJu IChuKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgciA9IChuID0gImVuZCIgPT09IHQg PyBNYXRoLm1pbihuLCAwLjk5OSkgOiBNYXRoLm1heChuLCAwLjAwMSkpICogZSwNCiAgICAg ICAgICAgICAgICAgIG8gPSAiZW5kIiA9PT0gdCA/IE1hdGguZmxvb3IocikgOiBNYXRoLmNl aWwocik7DQogICAgICAgICAgICAgICAgcmV0dXJuIChhID0gMCksIChpID0gMSksIChsID0g byAvIGUpLCBNYXRoLm1pbihNYXRoLm1heChsLCBhKSwgaSk7DQogICAgICAgICAgICAgICAg dmFyIGEsIGksIGw7DQogICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9LA0KICAgICAg ICAgIH0sDQogICAgICAgICAgVWkgPSBTeW1ib2wuZm9yKCJGbHVpZFZhbHVlLmdldCIpLA0K ICAgICAgICAgIFdpID0gU3ltYm9sLmZvcigiRmx1aWRWYWx1ZS5vYnNlcnZlcnMiKSwNCiAg ICAgICAgICBWaSA9IChlKSA9PiBCb29sZWFuKGUgJiYgZVtVaV0pLA0KICAgICAgICAgIEhp ID0gKGUpID0+IChlICYmIGVbVWldID8gZVtVaV0oKSA6IGUpLA0KICAgICAgICAgIHFpID0g KGUpID0+IGVbV2ldIHx8IG51bGw7DQogICAgICAgIGZ1bmN0aW9uICRpKGUsIHQpIHsNCiAg ICAgICAgICBjb25zdCBuID0gZVtXaV07DQogICAgICAgICAgbiAmJg0KICAgICAgICAgICAg bi5mb3JFYWNoKChlKSA9PiB7DQogICAgICAgICAgICAgICEoZnVuY3Rpb24gKGUsIHQpIHsN CiAgICAgICAgICAgICAgICBlLmV2ZW50T2JzZXJ2ZWQgPyBlLmV2ZW50T2JzZXJ2ZWQodCkg OiBlKHQpOw0KICAgICAgICAgICAgICB9KShlLCB0KTsNCiAgICAgICAgICAgIH0pOw0KICAg ICAgICB9DQogICAgICAgIHZhciBLaSA9IGNsYXNzIHsNCiAgICAgICAgICBjb25zdHJ1Y3Rv cihlKSB7DQogICAgICAgICAgICBpZiAoIWUgJiYgIShlID0gdGhpcy5nZXQpKSB0aHJvdyBF cnJvcigiVW5rbm93biBnZXR0ZXIiKTsNCiAgICAgICAgICAgIFFpKHRoaXMsIGUpOw0KICAg ICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgICBRaSA9IChlLCB0KSA9PiBaaShlLCBV aSwgdCk7DQogICAgICAgIGZ1bmN0aW9uIEdpKGUsIHQpIHsNCiAgICAgICAgICBpZiAoZVtV aV0pIHsNCiAgICAgICAgICAgIGxldCBuID0gZVtXaV07DQogICAgICAgICAgICBuIHx8IFpp KGUsIFdpLCAobiA9IG5ldyBTZXQoKSkpLCBuLmhhcyh0KSB8fCAobi5hZGQodCksIGUub2Jz ZXJ2ZXJBZGRlZCAmJiBlLm9ic2VydmVyQWRkZWQobi5zaXplLCB0KSk7DQogICAgICAgICAg fQ0KICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFlp KGUsIHQpIHsNCiAgICAgICAgICBjb25zdCBuID0gZVtXaV07DQogICAgICAgICAgaWYgKG4g JiYgbi5oYXModCkpIHsNCiAgICAgICAgICAgIGNvbnN0IHIgPSBuLnNpemUgLSAxOw0KICAg ICAgICAgICAgciA/IG4uZGVsZXRlKHQpIDogKGVbV2ldID0gbnVsbCksIGUub2JzZXJ2ZXJS ZW1vdmVkICYmIGUub2JzZXJ2ZXJSZW1vdmVkKHIsIHQpOw0KICAgICAgICAgIH0NCiAgICAg ICAgfQ0KICAgICAgICB2YXIgWGksDQogICAgICAgICAgWmkgPSAoZSwgdCwgbikgPT4gT2Jq ZWN0LmRlZmluZVByb3BlcnR5KGUsIHQsIHsgdmFsdWU6IG4sIHdyaXRhYmxlOiAhMCwgY29u ZmlndXJhYmxlOiAhMCB9KSwNCiAgICAgICAgICBKaSA9IC9bK1wtXT8oPzowfFsxLTldXGQq KSg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywNCiAgICAgICAgICBlbCA9IC8oIyg/ OlswLTlhLWZdezJ9KXsyLDR9fCgjWzAtOWEtZl17M30pfChyZ2J8aHNsKWE/XCgoLT9cZCsl P1ssXHNdKyl7MiwzfVxzKltcZFwuXSslP1wpKS9naSwNCiAgICAgICAgICB0bCA9IG5ldyBS ZWdFeHAoIigiLmNvbmNhdChKaS5zb3VyY2UsICIpKCV8W2Etel0rKSIpLCAiaSIpLA0KICAg ICAgICAgIG5sID0gL3JnYmFcKChbMC05XC4tXSspLCAoWzAtOVwuLV0rKSwgKFswLTlcLi1d KyksIChbMC05XC4tXSspXCkvZ2ksDQogICAgICAgICAgcmwgPSAvdmFyXCgoLS1bYS16QS1a MC05LV9dKyksPyA/KFthLXpBLVowLTkgKCklIy4sLV0rKT9cKS8sDQogICAgICAgICAgb2wg PSAoZSkgPT4gew0KICAgICAgICAgICAgY29uc3QgW3QsIG5dID0gYWwoZSk7DQogICAgICAg ICAgICBpZiAoIXQgfHwgdGkoKSkgcmV0dXJuIGU7DQogICAgICAgICAgICBjb25zdCByID0g d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQ cm9wZXJ0eVZhbHVlKHQpOw0KICAgICAgICAgICAgaWYgKHIpIHJldHVybiByLnRyaW0oKTsN CiAgICAgICAgICAgIGlmIChuICYmIG4uc3RhcnRzV2l0aCgiLS0iKSkgew0KICAgICAgICAg ICAgICBjb25zdCB0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKG4pOw0KICAgICAgICAgICAgICByZXR1cm4g dCB8fCBlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIG4gJiYgcmwudGVz dChuKSA/IG9sKG4pIDogbiB8fCBlOw0KICAgICAgICAgIH0sDQogICAgICAgICAgYWwgPSAo ZSkgPT4gew0KICAgICAgICAgICAgY29uc3QgdCA9IHJsLmV4ZWMoZSk7DQogICAgICAgICAg ICBpZiAoIXQpIHJldHVybiBbLF07DQogICAgICAgICAgICBjb25zdCBbLCBuLCByXSA9IHQ7 DQogICAgICAgICAgICByZXR1cm4gW24sIHJdOw0KICAgICAgICAgIH0sDQogICAgICAgICAg aWwgPSAoZSwgdCwgbiwgciwgbykgPT4gInJnYmEoIi5jb25jYXQoTWF0aC5yb3VuZCh0KSwg IiwgIikuY29uY2F0KE1hdGgucm91bmQobiksICIsICIpLmNvbmNhdChNYXRoLnJvdW5kKHIp LCAiLCAiKS5jb25jYXQobywgIikiKSwNCiAgICAgICAgICBsbCA9IChlKSA9PiB7DQogICAg ICAgICAgICBYaSB8fCAoWGkgPSBuaSA/IG5ldyBSZWdFeHAoIigiLmNvbmNhdChPYmplY3Qu a2V5cyhuaSkuam9pbigifCIpLCAiKSg/IVxcdykiKSwgImciKSA6IC9eXGIkLyk7DQogICAg ICAgICAgICBjb25zdCB0ID0gZS5vdXRwdXQubWFwKChlKSA9PiBIaShlKS5yZXBsYWNlKHJs LCBvbCkucmVwbGFjZShlbCwgQWkpLnJlcGxhY2UoWGksIEFpKSksDQogICAgICAgICAgICAg IG4gPSB0Lm1hcCgoZSkgPT4gZS5tYXRjaChKaSkubWFwKE51bWJlcikpLA0KICAgICAgICAg ICAgICByID0gblswXS5tYXAoKGUsIHQpID0+DQogICAgICAgICAgICAgICAgbi5tYXAoKGUp ID0+IHsNCiAgICAgICAgICAgICAgICAgIGlmICghKHQgaW4gZSkpIHRocm93IEVycm9yKCdU aGUgYXJpdHkgb2YgZWFjaCAib3V0cHV0IiB2YWx1ZSBtdXN0IGJlIGVxdWFsJyk7DQogICAg ICAgICAgICAgICAgICByZXR1cm4gZVt0XTsNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAg ICAgICAgICApLA0KICAgICAgICAgICAgICBvID0gci5tYXAoKHQpID0+IE1pKHsgLi4uZSwg b3V0cHV0OiB0IH0pKTsNCiAgICAgICAgICAgIHJldHVybiAoZSkgPT4gew0KICAgICAgICAg ICAgICB2YXIgbjsNCiAgICAgICAgICAgICAgY29uc3QgciA9ICF0bC50ZXN0KHRbMF0pICYm IChudWxsID09PSAobiA9IHQuZmluZCgoZSkgPT4gdGwudGVzdChlKSkpIHx8IHZvaWQgMCA9 PT0gbiA/IHZvaWQgMCA6IG4ucmVwbGFjZShKaSwgIiIpKTsNCiAgICAgICAgICAgICAgbGV0 IGEgPSAwOw0KICAgICAgICAgICAgICByZXR1cm4gdFswXS5yZXBsYWNlKEppLCAoKSA9PiAi Ii5jb25jYXQob1thKytdKGUpKS5jb25jYXQociB8fCAiIikpLnJlcGxhY2UobmwsIGlsKTsN CiAgICAgICAgICAgIH07DQogICAgICAgICAgfSwNCiAgICAgICAgICBzbCA9ICJyZWFjdC1z cHJpbmc6ICIsDQogICAgICAgICAgdWwgPSAoZSkgPT4gew0KICAgICAgICAgICAgY29uc3Qg dCA9IGU7DQogICAgICAgICAgICBsZXQgbiA9ICExOw0KICAgICAgICAgICAgaWYgKCJmdW5j dGlvbiIgIT0gdHlwZW9mIHQpIHRocm93IG5ldyBUeXBlRXJyb3IoIiIuY29uY2F0KHNsLCAi b25jZSByZXF1aXJlcyBhIGZ1bmN0aW9uIHBhcmFtZXRlciIpKTsNCiAgICAgICAgICAgIHJl dHVybiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIG4gfHwgKHQoLi4uYXJndW1lbnRz KSwgKG4gPSAhMCkpOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgICB9LA0KICAgICAgICAg IGNsID0gdWwoY29uc29sZS53YXJuKTsNCiAgICAgICAgdmFyIGRsID0gdWwoY29uc29sZS53 YXJuKTsNCiAgICAgICAgZnVuY3Rpb24gZmwoZSkgew0KICAgICAgICAgIHJldHVybiAkYS5z dHIoZSkgJiYgKCIjIiA9PSBlWzBdIHx8IC9cZC8udGVzdChlKSB8fCAoIXRpKCkgJiYgcmwu dGVzdChlKSkgfHwgZSBpbiAobmkgfHwge30pKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIg cGwgPSB0aSgpID8gdC51c2VFZmZlY3QgOiB0LnVzZUxheW91dEVmZmVjdCwNCiAgICAgICAg ICBobCA9ICgpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IGUgPSAoMCwgdC51c2VSZWYpKCEx KTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIHBsKA0KICAgICAgICAg ICAgICAgICgpID0+ICgNCiAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnQgPSAhMCksDQog ICAgICAgICAgICAgICAgICAoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGUuY3VycmVu dCA9ICExOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICksDQogICAg ICAgICAgICAgICAgW10NCiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgZQ0KICAg ICAgICAgICAgKTsNCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBtbCgpIHsNCiAg ICAgICAgICBjb25zdCBlID0gKDAsIHQudXNlU3RhdGUpKClbMV0sDQogICAgICAgICAgICBu ID0gaGwoKTsNCiAgICAgICAgICByZXR1cm4gKCkgPT4gew0KICAgICAgICAgICAgbi5jdXJy ZW50ICYmIGUoTWF0aC5yYW5kb20oKSk7DQogICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAg ICAgICB2YXIgZ2wgPSAoZSkgPT4gKDAsIHQudXNlRWZmZWN0KShlLCB2bCksDQogICAgICAg ICAgdmwgPSBbXTsNCiAgICAgICAgZnVuY3Rpb24geWwoZSkgew0KICAgICAgICAgIGNvbnN0 IG4gPSAoMCwgdC51c2VSZWYpKCk7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAg ICgwLCB0LnVzZUVmZmVjdCkoKCkgPT4gew0KICAgICAgICAgICAgICBuLmN1cnJlbnQgPSBl Ow0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICBuLmN1cnJlbnQNCiAgICAgICAgICAp Ow0KICAgICAgICB9DQogICAgICAgIHZhciBibCA9IFN5bWJvbC5mb3IoIkFuaW1hdGVkOm5v ZGUiKSwNCiAgICAgICAgICB3bCA9IChlKSA9PiBlICYmIGVbYmxdLA0KICAgICAgICAgIHhs ID0gKGUsIHQpID0+IHsNCiAgICAgICAgICAgIHJldHVybiAobiA9IGUpLCAociA9IGJsKSwg KG8gPSB0KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIHIsIHsgdmFsdWU6IG8sIHdyaXRh YmxlOiAhMCwgY29uZmlndXJhYmxlOiAhMCB9KTsNCiAgICAgICAgICAgIHZhciBuLCByLCBv Ow0KICAgICAgICAgIH0sDQogICAgICAgICAgU2wgPSAoZSkgPT4gZSAmJiBlW2JsXSAmJiBl W2JsXS5nZXRQYXlsb2FkKCksDQogICAgICAgICAga2wgPSBjbGFzcyB7DQogICAgICAgICAg ICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgICAgeGwodGhpcywgdGhpcyk7DQogICAg ICAgICAgICB9DQogICAgICAgICAgICBnZXRQYXlsb2FkKCkgew0KICAgICAgICAgICAgICBy ZXR1cm4gdGhpcy5wYXlsb2FkIHx8IFtdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0s DQogICAgICAgICAgRWwgPSBjbGFzcyBleHRlbmRzIGtsIHsNCiAgICAgICAgICAgIGNvbnN0 cnVjdG9yKGUpIHsNCiAgICAgICAgICAgICAgc3VwZXIoKSwgKHRoaXMuX3ZhbHVlID0gZSks ICh0aGlzLmRvbmUgPSAhMCksICh0aGlzLmR1cmF0aW9uUHJvZ3Jlc3MgPSAwKSwgJGEubnVt KHRoaXMuX3ZhbHVlKSAmJiAodGhpcy5sYXN0UG9zaXRpb24gPSB0aGlzLl92YWx1ZSk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgICBzdGF0aWMgY3JlYXRlKGUpIHsNCiAgICAgICAg ICAgICAgcmV0dXJuIG5ldyBFbChlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGdl dFBheWxvYWQoKSB7DQogICAgICAgICAgICAgIHJldHVybiBbdGhpc107DQogICAgICAgICAg ICB9DQogICAgICAgICAgICBnZXRWYWx1ZSgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHRo aXMuX3ZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc2V0VmFsdWUoZSwgdCkg ew0KICAgICAgICAgICAgICByZXR1cm4gJGEubnVtKGUpICYmICgodGhpcy5sYXN0UG9zaXRp b24gPSBlKSwgdCAmJiAoKGUgPSBNYXRoLnJvdW5kKGUgLyB0KSAqIHQpLCB0aGlzLmRvbmUg JiYgKHRoaXMubGFzdFBvc2l0aW9uID0gZSkpKSwgdGhpcy5fdmFsdWUgIT09IGUgJiYgKCh0 aGlzLl92YWx1ZSA9IGUpLCAhMCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXNl dCgpIHsNCiAgICAgICAgICAgICAgY29uc3QgeyBkb25lOiBlIH0gPSB0aGlzOw0KICAgICAg ICAgICAgICAodGhpcy5kb25lID0gITEpLCAkYS5udW0odGhpcy5fdmFsdWUpICYmICgodGhp cy5lbGFwc2VkVGltZSA9IDApLCAodGhpcy5kdXJhdGlvblByb2dyZXNzID0gMCksICh0aGlz Lmxhc3RQb3NpdGlvbiA9IHRoaXMuX3ZhbHVlKSwgZSAmJiAodGhpcy5sYXN0VmVsb2NpdHkg PSBudWxsKSwgKHRoaXMudjAgPSBudWxsKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAg fSwNCiAgICAgICAgICBDbCA9IGNsYXNzIGV4dGVuZHMgRWwgew0KICAgICAgICAgICAgY29u c3RydWN0b3IoZSkgew0KICAgICAgICAgICAgICBzdXBlcigwKSwgKHRoaXMuX3N0cmluZyA9 IG51bGwpLCAodGhpcy5fdG9TdHJpbmcgPSBNaSh7IG91dHB1dDogW2UsIGVdIH0pKTsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIHN0YXRpYyBjcmVhdGUoZSkgew0KICAgICAgICAg ICAgICByZXR1cm4gbmV3IENsKGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0 VmFsdWUoKSB7DQogICAgICAgICAgICAgIGNvbnN0IGUgPSB0aGlzLl9zdHJpbmc7DQogICAg ICAgICAgICAgIHJldHVybiBudWxsID09IGUgPyAodGhpcy5fc3RyaW5nID0gdGhpcy5fdG9T dHJpbmcodGhpcy5fdmFsdWUpKSA6IGU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBz ZXRWYWx1ZShlKSB7DQogICAgICAgICAgICAgIGlmICgkYS5zdHIoZSkpIHsNCiAgICAgICAg ICAgICAgICBpZiAoZSA9PSB0aGlzLl9zdHJpbmcpIHJldHVybiAhMTsNCiAgICAgICAgICAg ICAgICAodGhpcy5fc3RyaW5nID0gZSksICh0aGlzLl92YWx1ZSA9IDEpOw0KICAgICAgICAg ICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmICghc3VwZXIuc2V0VmFsdWUoZSkp IHJldHVybiAhMTsNCiAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcgPSBudWxsOw0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVybiAhMDsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIHJlc2V0KGUpIHsNCiAgICAgICAgICAgICAgZSAmJiAodGhpcy5fdG9T dHJpbmcgPSBNaSh7IG91dHB1dDogW3RoaXMuZ2V0VmFsdWUoKSwgZV0gfSkpLCAodGhpcy5f dmFsdWUgPSAwKSwgc3VwZXIucmVzZXQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9 LA0KICAgICAgICAgIFJsID0geyBkZXBlbmRlbmNpZXM6IG51bGwgfSwNCiAgICAgICAgICBf bCA9IGNsYXNzIGV4dGVuZHMga2wgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZSkgew0K ICAgICAgICAgICAgICBzdXBlcigpLCAodGhpcy5zb3VyY2UgPSBlKSwgdGhpcy5zZXRWYWx1 ZShlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGdldFZhbHVlKGUpIHsNCiAgICAg ICAgICAgICAgY29uc3QgdCA9IHt9Ow0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAg ICAgICAgICAgIEdhKHRoaXMuc291cmNlLCAobiwgcikgPT4gew0KICAgICAgICAgICAgICAg ICAgdmFyIG87DQogICAgICAgICAgICAgICAgICAobyA9IG4pICYmIG9bYmxdID09PSBvID8g KHRbcl0gPSBuLmdldFZhbHVlKGUpKSA6IFZpKG4pID8gKHRbcl0gPSBIaShuKSkgOiBlIHx8 ICh0W3JdID0gbik7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgdA0K ICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc2V0VmFsdWUo ZSkgew0KICAgICAgICAgICAgICAodGhpcy5zb3VyY2UgPSBlKSwgKHRoaXMucGF5bG9hZCA9 IHRoaXMuX21ha2VQYXlsb2FkKGUpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJl c2V0KCkgew0KICAgICAgICAgICAgICB0aGlzLnBheWxvYWQgJiYgUWEodGhpcy5wYXlsb2Fk LCAoZSkgPT4gZS5yZXNldCgpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF9tYWtl UGF5bG9hZChlKSB7DQogICAgICAgICAgICAgIGlmIChlKSB7DQogICAgICAgICAgICAgICAg Y29uc3QgdCA9IG5ldyBTZXQoKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gR2EoZSwgdGhp cy5fYWRkVG9QYXlsb2FkLCB0KSwgQXJyYXkuZnJvbSh0KTsNCiAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX2FkZFRvUGF5bG9hZChlKSB7DQogICAgICAg ICAgICAgIFJsLmRlcGVuZGVuY2llcyAmJiBWaShlKSAmJiBSbC5kZXBlbmRlbmNpZXMuYWRk KGUpOw0KICAgICAgICAgICAgICBjb25zdCB0ID0gU2woZSk7DQogICAgICAgICAgICAgIHQg JiYgUWEodCwgKGUpID0+IHRoaXMuYWRkKGUpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICB9LA0KICAgICAgICAgIFBsID0gY2xhc3MgZXh0ZW5kcyBfbCB7DQogICAgICAgICAgICBj b25zdHJ1Y3RvcihlKSB7DQogICAgICAgICAgICAgIHN1cGVyKGUpOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgc3RhdGljIGNyZWF0ZShlKSB7DQogICAgICAgICAgICAgIHJldHVy biBuZXcgUGwoZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnZXRWYWx1ZSgpIHsN CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlLm1hcCgoZSkgPT4gZS5nZXRWYWx1 ZSgpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNldFZhbHVlKGUpIHsNCiAgICAg ICAgICAgICAgY29uc3QgdCA9IHRoaXMuZ2V0UGF5bG9hZCgpOw0KICAgICAgICAgICAgICBy ZXR1cm4gZS5sZW5ndGggPT0gdC5sZW5ndGggPyB0Lm1hcCgodCwgbikgPT4gdC5zZXRWYWx1 ZShlW25dKSkuc29tZShCb29sZWFuKSA6IChzdXBlci5zZXRWYWx1ZShlLm1hcChPbCkpLCAh MCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gT2wo ZSkgew0KICAgICAgICAgIHJldHVybiAoZmwoZSkgPyBDbCA6IEVsKS5jcmVhdGUoZSk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTmwoZSkgew0KICAgICAgICAgIGNvbnN0IHQg PSB3bChlKTsNCiAgICAgICAgICByZXR1cm4gdCA/IHQuY29uc3RydWN0b3IgOiAkYS5hcnIo ZSkgPyBQbCA6IGZsKGUpID8gQ2wgOiBFbDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgVGwg PSAoZSwgbikgPT4gew0KICAgICAgICAgIGNvbnN0IHIgPSAhJGEuZnVuKGUpIHx8IChlLnBy b3RvdHlwZSAmJiBlLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTsNCiAgICAgICAgICBy ZXR1cm4gKDAsIHQuZm9yd2FyZFJlZikoKG8sIGEpID0+IHsNCiAgICAgICAgICAgIGNvbnN0 IGkgPSAoMCwgdC51c2VSZWYpKG51bGwpLA0KICAgICAgICAgICAgICBsID0NCiAgICAgICAg ICAgICAgICByICYmDQogICAgICAgICAgICAgICAgKDAsIHQudXNlQ2FsbGJhY2spKA0KICAg ICAgICAgICAgICAgICAgKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgaS5jdXJyZW50 ID0gKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgICAgICAgICAgZSAmJiAoJGEu ZnVuKGUpID8gZSh0KSA6IChlLmN1cnJlbnQgPSB0KSk7DQogICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIHQ7DQogICAgICAgICAgICAgICAgICAgIH0pKGEsIGUpOw0KICAgICAgICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIFthXQ0KICAgICAgICAgICAgICAgICks DQogICAgICAgICAgICAgIFtzLCB1XSA9IChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAg ICAgICAgIGNvbnN0IG4gPSBuZXcgU2V0KCk7DQogICAgICAgICAgICAgICAgKFJsLmRlcGVu ZGVuY2llcyA9IG4pLCBlLnN0eWxlICYmIChlID0geyAuLi5lLCBzdHlsZTogdC5jcmVhdGVB bmltYXRlZFN0eWxlKGUuc3R5bGUpIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAoZSA9 IG5ldyBfbChlKSksIChSbC5kZXBlbmRlbmNpZXMgPSBudWxsKSwgW2UsIG5dOw0KICAgICAg ICAgICAgICB9KShvLCBuKSwNCiAgICAgICAgICAgICAgYyA9IG1sKCksDQogICAgICAgICAg ICAgIGQgPSAoKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgZSA9IGkuY3VycmVudDsN CiAgICAgICAgICAgICAgICBpZiAociAmJiAhZSkgcmV0dXJuOw0KICAgICAgICAgICAgICAg ICExID09PSAoISFlICYmIG4uYXBwbHlBbmltYXRlZFZhbHVlcyhlLCBzLmdldFZhbHVlKCEw KSkpICYmIGMoKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgZiA9IG5ldyBB bChkLCB1KSwNCiAgICAgICAgICAgICAgcCA9ICgwLCB0LnVzZVJlZikoKTsNCiAgICAgICAg ICAgIHBsKA0KICAgICAgICAgICAgICAoKSA9PiAoDQogICAgICAgICAgICAgICAgKHAuY3Vy cmVudCA9IGYpLA0KICAgICAgICAgICAgICAgIFFhKHUsIChlKSA9PiBHaShlLCBmKSksDQog ICAgICAgICAgICAgICAgKCkgPT4gew0KICAgICAgICAgICAgICAgICAgcC5jdXJyZW50ICYm IChRYShwLmN1cnJlbnQuZGVwcywgKGUpID0+IFlpKGUsIHAuY3VycmVudCkpLCBQYS5jYW5j ZWwocC5jdXJyZW50LnVwZGF0ZSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgKQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgKDAsIHQudXNlRWZmZWN0KShk LCBbXSksDQogICAgICAgICAgICAgIGdsKCgpID0+ICgpID0+IHsNCiAgICAgICAgICAgICAg ICBjb25zdCBlID0gcC5jdXJyZW50Ow0KICAgICAgICAgICAgICAgIFFhKGUuZGVwcywgKHQp ID0+IFlpKHQsIGUpKTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBjb25zdCBo ID0gbi5nZXRDb21wb25lbnRQcm9wcyhzLmdldFZhbHVlKCkpOw0KICAgICAgICAgICAgcmV0 dXJuIHQuY3JlYXRlRWxlbWVudChlLCB7IC4uLmgsIHJlZjogbCB9KTsNCiAgICAgICAgICB9 KTsNCiAgICAgICAgfSwNCiAgICAgICAgICBBbCA9IGNsYXNzIHsNCiAgICAgICAgICAgIGNv bnN0cnVjdG9yKGUsIHQpIHsNCiAgICAgICAgICAgICAgKHRoaXMudXBkYXRlID0gZSksICh0 aGlzLmRlcHMgPSB0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGV2ZW50T2JzZXJ2 ZWQoZSkgew0KICAgICAgICAgICAgICAiY2hhbmdlIiA9PSBlLnR5cGUgJiYgUGEud3JpdGUo dGhpcy51cGRhdGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH07DQogICAgICAgIHZh ciBNbCA9IFN5bWJvbC5mb3IoIkFuaW1hdGVkQ29tcG9uZW50IiksDQogICAgICAgICAgemwg PSAoZSkgPT4gKCRhLnN0cihlKSA/IGUgOiBlICYmICRhLnN0cihlLmRpc3BsYXlOYW1lKSA/ IGUuZGlzcGxheU5hbWUgOiAoJGEuZnVuKGUpICYmIGUubmFtZSkgfHwgbnVsbCk7DQogICAg ICAgIGZ1bmN0aW9uIGpsKGUpIHsNCiAgICAgICAgICBmb3IgKHZhciB0ID0gYXJndW1lbnRz Lmxlbmd0aCwgbiA9IG5ldyBBcnJheSh0ID4gMSA/IHQgLSAxIDogMCksIHIgPSAxOyByIDwg dDsgcisrKSBuW3IgLSAxXSA9IGFyZ3VtZW50c1tyXTsNCiAgICAgICAgICByZXR1cm4gJGEu ZnVuKGUpID8gZSguLi5uKSA6IGU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIElsID0gKGUs IHQpID0+ICEwID09PSBlIHx8ICEhKHQgJiYgZSAmJiAoJGEuZnVuKGUpID8gZSh0KSA6IFlh KGUpLmluY2x1ZGVzKHQpKSksDQogICAgICAgICAgTGwgPSAoZSwgdCkgPT4gKCRhLm9iaihl KSA/IHQgJiYgZVt0XSA6IGUpLA0KICAgICAgICAgIEZsID0gKGUsIHQpID0+ICghMCA9PT0g ZS5kZWZhdWx0ID8gZVt0XSA6IGUuZGVmYXVsdCA/IGUuZGVmYXVsdFt0XSA6IHZvaWQgMCks DQogICAgICAgICAgQmwgPSAoZSkgPT4gZSwNCiAgICAgICAgICBEbCA9IGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICBsZXQgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHZvaWQg MCAhPT0gYXJndW1lbnRzWzFdID8gYXJndW1lbnRzWzFdIDogQmwsDQogICAgICAgICAgICAg IG4gPSBVbDsNCiAgICAgICAgICAgIGUuZGVmYXVsdCAmJiAhMCAhPT0gZS5kZWZhdWx0ICYm ICgoZSA9IGUuZGVmYXVsdCksIChuID0gT2JqZWN0LmtleXMoZSkpKTsNCiAgICAgICAgICAg IGNvbnN0IHIgPSB7fTsNCiAgICAgICAgICAgIGZvciAoY29uc3QgbyBvZiBuKSB7DQogICAg ICAgICAgICAgIGNvbnN0IG4gPSB0KGVbb10sIG8pOw0KICAgICAgICAgICAgICAkYS51bmQo bikgfHwgKHJbb10gPSBuKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBy Ow0KICAgICAgICAgIH0sDQogICAgICAgICAgVWwgPSBbImNvbmZpZyIsICJvblByb3BzIiwg Im9uU3RhcnQiLCAib25DaGFuZ2UiLCAib25QYXVzZSIsICJvblJlc3VtZSIsICJvblJlc3Qi XSwNCiAgICAgICAgICBXbCA9IHsNCiAgICAgICAgICAgIGNvbmZpZzogMSwNCiAgICAgICAg ICAgIGZyb206IDEsDQogICAgICAgICAgICB0bzogMSwNCiAgICAgICAgICAgIHJlZjogMSwN CiAgICAgICAgICAgIGxvb3A6IDEsDQogICAgICAgICAgICByZXNldDogMSwNCiAgICAgICAg ICAgIHBhdXNlOiAxLA0KICAgICAgICAgICAgY2FuY2VsOiAxLA0KICAgICAgICAgICAgcmV2 ZXJzZTogMSwNCiAgICAgICAgICAgIGltbWVkaWF0ZTogMSwNCiAgICAgICAgICAgIGRlZmF1 bHQ6IDEsDQogICAgICAgICAgICBkZWxheTogMSwNCiAgICAgICAgICAgIG9uUHJvcHM6IDEs DQogICAgICAgICAgICBvblN0YXJ0OiAxLA0KICAgICAgICAgICAgb25DaGFuZ2U6IDEsDQog ICAgICAgICAgICBvblBhdXNlOiAxLA0KICAgICAgICAgICAgb25SZXN1bWU6IDEsDQogICAg ICAgICAgICBvblJlc3Q6IDEsDQogICAgICAgICAgICBvblJlc29sdmU6IDEsDQogICAgICAg ICAgICBpdGVtczogMSwNCiAgICAgICAgICAgIHRyYWlsOiAxLA0KICAgICAgICAgICAgc29y dDogMSwNCiAgICAgICAgICAgIGV4cGlyZXM6IDEsDQogICAgICAgICAgICBpbml0aWFsOiAx LA0KICAgICAgICAgICAgZW50ZXI6IDEsDQogICAgICAgICAgICB1cGRhdGU6IDEsDQogICAg ICAgICAgICBsZWF2ZTogMSwNCiAgICAgICAgICAgIGNoaWxkcmVuOiAxLA0KICAgICAgICAg ICAgb25EZXN0cm95ZWQ6IDEsDQogICAgICAgICAgICBrZXlzOiAxLA0KICAgICAgICAgICAg Y2FsbElkOiAxLA0KICAgICAgICAgICAgcGFyZW50SWQ6IDEsDQogICAgICAgICAgfTsNCiAg ICAgICAgZnVuY3Rpb24gVmwoZSkgew0KICAgICAgICAgIGNvbnN0IHQgPSAoZnVuY3Rpb24g KGUpIHsNCiAgICAgICAgICAgIGNvbnN0IHQgPSB7fTsNCiAgICAgICAgICAgIGxldCBuID0g MDsNCiAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgKEdhKGUsIChlLCByKSA9PiB7 DQogICAgICAgICAgICAgICAgV2xbcl0gfHwgKCh0W3JdID0gZSksIG4rKyk7DQogICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgIG4pDQogICAgICAgICAgICApDQogICAgICAg ICAgICAgIHJldHVybiB0Ow0KICAgICAgICAgIH0pKGUpOw0KICAgICAgICAgIGlmICh0KSB7 DQogICAgICAgICAgICBjb25zdCBuID0geyB0bzogdCB9Ow0KICAgICAgICAgICAgcmV0dXJu IEdhKGUsIChlLCByKSA9PiByIGluIHQgfHwgKG5bcl0gPSBlKSksIG47DQogICAgICAgICAg fQ0KICAgICAgICAgIHJldHVybiB7IC4uLmUgfTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBIbChlKSB7DQogICAgICAgICAgcmV0dXJuIChlID0gSGkoZSkpLCAkYS5hcnIoZSkg PyBlLm1hcChIbCkgOiBmbChlKSA/IFJhLmNyZWF0ZVN0cmluZ0ludGVycG9sYXRvcih7IHJh bmdlOiBbMCwgMV0sIG91dHB1dDogW2UsIGVdIH0pKDEpIDogZTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBxbChlKSB7DQogICAgICAgICAgZm9yIChjb25zdCB0IGluIGUpIHJl dHVybiAhMDsNCiAgICAgICAgICByZXR1cm4gITE7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gJGwoZSkgew0KICAgICAgICAgIHJldHVybiAkYS5mdW4oZSkgfHwgKCRhLmFycihl KSAmJiAkYS5vYmooZVswXSkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEtsKGUs IHQpIHsNCiAgICAgICAgICB2YXIgbjsNCiAgICAgICAgICBudWxsID09PSAobiA9IGUucmVm KSB8fCB2b2lkIDAgPT09IG4gfHwgbi5kZWxldGUoZSksIG51bGwgPT09IHQgfHwgdm9pZCAw ID09PSB0IHx8IHQuZGVsZXRlKGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFFs KGUsIHQpIHsNCiAgICAgICAgICB2YXIgbjsNCiAgICAgICAgICB0ICYmIGUucmVmICE9PSB0 ICYmIChudWxsID09PSAobiA9IGUucmVmKSB8fCB2b2lkIDAgPT09IG4gfHwgbi5kZWxldGUo ZSksIHQuYWRkKGUpLCAoZS5yZWYgPSB0KSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEds ID0geyB0ZW5zaW9uOiAxNzAsIGZyaWN0aW9uOiAyNiwgbWFzczogMSwgZGFtcGluZzogMSwg ZWFzaW5nOiBEaS5saW5lYXIsIGNsYW1wOiAhMSB9LA0KICAgICAgICAgIFlsID0gY2xhc3Mg ew0KICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgICAgICAgICh0aGlzLnZl bG9jaXR5ID0gMCksIE9iamVjdC5hc3NpZ24odGhpcywgR2wpOw0KICAgICAgICAgICAgfQ0K ICAgICAgICAgIH07DQogICAgICAgIGZ1bmN0aW9uIFhsKGUsIHQpIHsNCiAgICAgICAgICBp ZiAoJGEudW5kKHQuZGVjYXkpKSB7DQogICAgICAgICAgICBjb25zdCBuID0gISRhLnVuZCh0 LnRlbnNpb24pIHx8ICEkYS51bmQodC5mcmljdGlvbik7DQogICAgICAgICAgICAoIW4gJiYg JGEudW5kKHQuZnJlcXVlbmN5KSAmJiAkYS51bmQodC5kYW1waW5nKSAmJiAkYS51bmQodC5t YXNzKSkgfHwgKChlLmR1cmF0aW9uID0gdm9pZCAwKSwgKGUuZGVjYXkgPSB2b2lkIDApKSwg biAmJiAoZS5mcmVxdWVuY3kgPSB2b2lkIDApOw0KICAgICAgICAgIH0gZWxzZSBlLmR1cmF0 aW9uID0gdm9pZCAwOw0KICAgICAgICB9DQogICAgICAgIHZhciBabCA9IFtdLA0KICAgICAg ICAgIEpsID0gY2xhc3Mgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAg ICAgICAgICh0aGlzLmNoYW5nZWQgPSAhMSksICh0aGlzLnZhbHVlcyA9IFpsKSwgKHRoaXMu dG9WYWx1ZXMgPSBudWxsKSwgKHRoaXMuZnJvbVZhbHVlcyA9IFpsKSwgKHRoaXMuY29uZmln ID0gbmV3IFlsKCkpLCAodGhpcy5pbW1lZGlhdGUgPSAhMSk7DQogICAgICAgICAgICB9DQog ICAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gZXMoZSwgdCkgew0KICAgICAgICAgIGxl dCB7IGtleTogbiwgcHJvcHM6IHIsIGRlZmF1bHRQcm9wczogbywgc3RhdGU6IGEsIGFjdGlv bnM6IGkgfSA9IHQ7DQogICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCh0LCBsKSA9PiB7 DQogICAgICAgICAgICB2YXIgczsNCiAgICAgICAgICAgIGxldCB1LA0KICAgICAgICAgICAg ICBjLA0KICAgICAgICAgICAgICBkID0gSWwobnVsbCAhPT0gKHMgPSByLmNhbmNlbCkgJiYg dm9pZCAwICE9PSBzID8gcyA6IG51bGwgPT09IG8gfHwgdm9pZCAwID09PSBvID8gdm9pZCAw IDogby5jYW5jZWwsIG4pOw0KICAgICAgICAgICAgaWYgKGQpIGgoKTsNCiAgICAgICAgICAg IGVsc2Ugew0KICAgICAgICAgICAgICAkYS51bmQoci5wYXVzZSkgfHwgKGEucGF1c2VkID0g SWwoci5wYXVzZSwgbikpOw0KICAgICAgICAgICAgICBsZXQgZSA9IG51bGwgPT09IG8gfHwg dm9pZCAwID09PSBvID8gdm9pZCAwIDogby5wYXVzZTsNCiAgICAgICAgICAgICAgITAgIT09 IGUgJiYgKGUgPSBhLnBhdXNlZCB8fCBJbChlLCBuKSksICh1ID0gamwoci5kZWxheSB8fCAw LCBuKSksIGUgPyAoYS5yZXN1bWVRdWV1ZS5hZGQocCksIGkucGF1c2UoKSkgOiAoaS5yZXN1 bWUoKSwgcCgpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGZ1bmN0aW9uIGYoKSB7 DQogICAgICAgICAgICAgIGEucmVzdW1lUXVldWUuYWRkKHApLCBhLnRpbWVvdXRzLmRlbGV0 ZShjKSwgYy5jYW5jZWwoKSwgKHUgPSBjLnRpbWUgLSBQYS5ub3coKSk7DQogICAgICAgICAg ICB9DQogICAgICAgICAgICBmdW5jdGlvbiBwKCkgew0KICAgICAgICAgICAgICB1ID4gMCAm JiAhUmEuc2tpcEFuaW1hdGlvbiA/ICgoYS5kZWxheWVkID0gITApLCAoYyA9IFBhLnNldFRp bWVvdXQoaCwgdSkpLCBhLnBhdXNlUXVldWUuYWRkKGYpLCBhLnRpbWVvdXRzLmFkZChjKSkg OiBoKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmdW5jdGlvbiBoKCkgew0KICAg ICAgICAgICAgICBhLmRlbGF5ZWQgJiYgKGEuZGVsYXllZCA9ICExKSwgYS5wYXVzZVF1ZXVl LmRlbGV0ZShmKSwgYS50aW1lb3V0cy5kZWxldGUoYyksIGUgPD0gKGEuY2FuY2VsSWQgfHwg MCkgJiYgKGQgPSAhMCk7DQogICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAg aS5zdGFydCh7IC4uLnIsIGNhbGxJZDogZSwgY2FuY2VsOiBkIH0sIHQpOw0KICAgICAgICAg ICAgICB9IGNhdGNoIChuKSB7DQogICAgICAgICAgICAgICAgbChuKTsNCiAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAg IHZhciB0cyA9IChlLCB0KSA9Pg0KICAgICAgICAgIDEgPT0gdC5sZW5ndGgNCiAgICAgICAg ICAgID8gdFswXQ0KICAgICAgICAgICAgOiB0LnNvbWUoKGUpID0+IGUuY2FuY2VsbGVkKQ0K ICAgICAgICAgICAgICA/IG9zKGUuZ2V0KCkpDQogICAgICAgICAgICAgIDogdC5ldmVyeSgo ZSkgPT4gZS5ub29wKQ0KICAgICAgICAgICAgICAgID8gbnMoZS5nZXQoKSkNCiAgICAgICAg ICAgICAgICA6IHJzKA0KICAgICAgICAgICAgICAgICAgZS5nZXQoKSwNCiAgICAgICAgICAg ICAgICAgIHQuZXZlcnkoKGUpID0+IGUuZmluaXNoZWQpDQogICAgICAgICAgICAgICAgKSwN CiAgICAgICAgICBucyA9IChlKSA9PiAoeyB2YWx1ZTogZSwgbm9vcDogITAsIGZpbmlzaGVk OiAhMCwgY2FuY2VsbGVkOiAhMSB9KSwNCiAgICAgICAgICBycyA9IGZ1bmN0aW9uIChlLCB0 KSB7DQogICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogZSwgZmluaXNoZWQ6IHQsIGNhbmNl bGxlZDogYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0g JiYgYXJndW1lbnRzWzJdIH07DQogICAgICAgICAgfSwNCiAgICAgICAgICBvcyA9IChlKSA9 PiAoeyB2YWx1ZTogZSwgY2FuY2VsbGVkOiAhMCwgZmluaXNoZWQ6ICExIH0pOw0KICAgICAg ICBmdW5jdGlvbiBhcyhlLCB0LCBuLCByKSB7DQogICAgICAgICAgY29uc3QgeyBjYWxsSWQ6 IG8sIHBhcmVudElkOiBhLCBvblJlc3Q6IGkgfSA9IHQsDQogICAgICAgICAgICB7IGFzeW5j VG86IGwsIHByb21pc2U6IHMgfSA9IG47DQogICAgICAgICAgcmV0dXJuIGEgfHwgZSAhPT0g bCB8fCB0LnJlc2V0DQogICAgICAgICAgICA/IChuLnByb21pc2UgPSAoYXN5bmMgKCkgPT4g ew0KICAgICAgICAgICAgICAobi5hc3luY0lkID0gbyksIChuLmFzeW5jVG8gPSBlKTsNCiAg ICAgICAgICAgICAgY29uc3QgdSA9IERsKHQsIChlLCB0KSA9PiAoIm9uUmVzdCIgPT09IHQg PyB2b2lkIDAgOiBlKSk7DQogICAgICAgICAgICAgIGxldCBjLCBkOw0KICAgICAgICAgICAg ICBjb25zdCBmID0gbmV3IFByb21pc2UoKGUsIHQpID0+ICgoYyA9IGUpLCAoZCA9IHQpKSks DQogICAgICAgICAgICAgICAgcCA9IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICBjb25z dCB0ID0gKG8gPD0gKG4uY2FuY2VsSWQgfHwgMCkgJiYgb3MocikpIHx8IChvICE9PSBuLmFz eW5jSWQgJiYgcnMociwgITEpKTsNCiAgICAgICAgICAgICAgICAgIGlmICh0KSB0aHJvdyAo KGUucmVzdWx0ID0gdCksIGQoZSksIGUpOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAgICAgaCA9IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgICBjb25zdCBhID0g bmV3IGxzKCksDQogICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgc3MoKTsNCiAgICAgICAg ICAgICAgICAgIHJldHVybiAoYXN5bmMgKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBp ZiAoUmEuc2tpcEFuaW1hdGlvbikgdGhyb3cgKGlzKG4pLCAoaS5yZXN1bHQgPSBycyhyLCAh MSkpLCBkKGkpLCBpKTsNCiAgICAgICAgICAgICAgICAgICAgcChhKTsNCiAgICAgICAgICAg ICAgICAgICAgY29uc3QgbCA9ICRhLm9iaihlKSA/IHsgLi4uZSB9IDogeyAuLi50LCB0bzog ZSB9Ow0KICAgICAgICAgICAgICAgICAgICAobC5wYXJlbnRJZCA9IG8pLA0KICAgICAgICAg ICAgICAgICAgICAgIEdhKHUsIChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAg ICAkYS51bmQobFt0XSkgJiYgKGxbdF0gPSBlKTsNCiAgICAgICAgICAgICAgICAgICAgICB9 KTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IGF3YWl0IHIuc3RhcnQobCk7DQog ICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgcChh KSwNCiAgICAgICAgICAgICAgICAgICAgICBuLnBhdXNlZCAmJg0KICAgICAgICAgICAgICAg ICAgICAgIChhd2FpdCBuZXcgUHJvbWlzZSgoZSkgPT4gew0KICAgICAgICAgICAgICAgICAg ICAgICAgbi5yZXN1bWVRdWV1ZS5hZGQoZSk7DQogICAgICAgICAgICAgICAgICAgICAgfSkp LA0KICAgICAgICAgICAgICAgICAgICAgIHMNCiAgICAgICAgICAgICAgICAgICAgKTsNCiAg ICAgICAgICAgICAgICAgIH0pKCk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAg ICAgbGV0IG07DQogICAgICAgICAgICAgIGlmIChSYS5za2lwQW5pbWF0aW9uKSByZXR1cm4g aXMobiksIHJzKHIsICExKTsNCiAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAg ICBsZXQgdDsNCiAgICAgICAgICAgICAgICAodCA9ICRhLmFycihlKQ0KICAgICAgICAgICAg ICAgICAgPyAoYXN5bmMgKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25z dCB0IG9mIGUpIGF3YWl0IGgodCk7DQogICAgICAgICAgICAgICAgICB9KShlKQ0KICAgICAg ICAgICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoZShoLCByLnN0b3AuYmluZChyKSkpKSwN CiAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFt0LnRoZW4oYyksIGZdKSwN CiAgICAgICAgICAgICAgICAgIChtID0gcnMoci5nZXQoKSwgITAsICExKSk7DQogICAgICAg ICAgICAgIH0gY2F0Y2ggKGcpIHsNCiAgICAgICAgICAgICAgICBpZiAoZyBpbnN0YW5jZW9m IGxzKSBtID0gZy5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAg ICAgICAgICBpZiAoIShnIGluc3RhbmNlb2Ygc3MpKSB0aHJvdyBnOw0KICAgICAgICAgICAg ICAgICAgbSA9IGcucmVzdWx0Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg fSBmaW5hbGx5IHsNCiAgICAgICAgICAgICAgICBvID09IG4uYXN5bmNJZCAmJiAoKG4uYXN5 bmNJZCA9IGEpLCAobi5hc3luY1RvID0gYSA/IGwgOiB2b2lkIDApLCAobi5wcm9taXNlID0g YSA/IHMgOiB2b2lkIDApKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1 cm4gKA0KICAgICAgICAgICAgICAgICRhLmZ1bihpKSAmJg0KICAgICAgICAgICAgICAgIFBh LmJhdGNoZWRVcGRhdGVzKCgpID0+IHsNCiAgICAgICAgICAgICAgICAgIGkobSwgciwgci5p dGVtKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICBtDQogICAgICAg ICAgICAgICk7DQogICAgICAgICAgICB9KSgpKQ0KICAgICAgICAgICAgOiBzOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIGlzKGUsIHQpIHsNCiAgICAgICAgICBYYShlLnRpbWVv dXRzLCAoZSkgPT4gZS5jYW5jZWwoKSksIGUucGF1c2VRdWV1ZS5jbGVhcigpLCBlLnJlc3Vt ZVF1ZXVlLmNsZWFyKCksIChlLmFzeW5jSWQgPSBlLmFzeW5jVG8gPSBlLnByb21pc2UgPSB2 b2lkIDApLCB0ICYmIChlLmNhbmNlbElkID0gdCk7DQogICAgICAgIH0NCiAgICAgICAgdmFy IGxzID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7DQogICAgICAgICAgY29uc3RydWN0b3IoKSB7 DQogICAgICAgICAgICBzdXBlcigiQW4gYXN5bmMgYW5pbWF0aW9uIGhhcyBiZWVuIGludGVy cnVwdGVkLiBZb3Ugc2VlIHRoaXMgZXJyb3IgYmVjYXVzZSB5b3UgZm9yZ290IHRvIHVzZSBg YXdhaXRgIG9yIGAuY2F0Y2goLi4uKWAgb24gaXRzIHJldHVybmVkIHByb21pc2UuIik7DQog ICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAgIHNzID0gY2xhc3MgZXh0ZW5kcyBF cnJvciB7DQogICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgICAgc3Vw ZXIoIlNraXBBbmltYXRpb25TaWduYWwiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9 LA0KICAgICAgICAgIHVzID0gKGUpID0+IGUgaW5zdGFuY2VvZiBkcywNCiAgICAgICAgICBj cyA9IDEsDQogICAgICAgICAgZHMgPSBjbGFzcyBleHRlbmRzIEtpIHsNCiAgICAgICAgICAg IGNvbnN0cnVjdG9yKCkgew0KICAgICAgICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpLCAo dGhpcy5pZCA9IGNzKyspLCAodGhpcy5fcHJpb3JpdHkgPSAwKTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIGdldCBwcmlvcml0eSgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHRo aXMuX3ByaW9yaXR5Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc2V0IHByaW9yaXR5 KGUpIHsNCiAgICAgICAgICAgICAgdGhpcy5fcHJpb3JpdHkgIT0gZSAmJiAoKHRoaXMuX3By aW9yaXR5ID0gZSksIHRoaXMuX29uUHJpb3JpdHlDaGFuZ2UoZSkpOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgZ2V0KCkgew0KICAgICAgICAgICAgICBjb25zdCBlID0gd2wodGhp cyk7DQogICAgICAgICAgICAgIHJldHVybiBlICYmIGUuZ2V0VmFsdWUoKTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIHRvKCkgew0KICAgICAgICAgICAgICBmb3IgKHZhciBlID0g YXJndW1lbnRzLmxlbmd0aCwgdCA9IG5ldyBBcnJheShlKSwgbiA9IDA7IG4gPCBlOyBuKysp IHRbbl0gPSBhcmd1bWVudHNbbl07DQogICAgICAgICAgICAgIHJldHVybiBSYS50byh0aGlz LCB0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGludGVycG9sYXRlKCkgew0KICAg ICAgICAgICAgICBjbCgiIi5jb25jYXQoc2wsICdUaGUgImludGVycG9sYXRlIiBmdW5jdGlv biBpcyBkZXByZWNhdGVkIGluIHY5ICh1c2UgInRvIiBpbnN0ZWFkKScpKTsNCiAgICAgICAg ICAgICAgZm9yICh2YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGgsIHQgPSBuZXcgQXJyYXkoZSks IG4gPSAwOyBuIDwgZTsgbisrKSB0W25dID0gYXJndW1lbnRzW25dOw0KICAgICAgICAgICAg ICByZXR1cm4gUmEudG8odGhpcywgdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0 b0pTT04oKSB7DQogICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldCgpOw0KICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgb2JzZXJ2ZXJBZGRlZChlKSB7DQogICAgICAgICAgICAgIDEg PT0gZSAmJiB0aGlzLl9hdHRhY2goKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9i c2VydmVyUmVtb3ZlZChlKSB7DQogICAgICAgICAgICAgIDAgPT0gZSAmJiB0aGlzLl9kZXRh Y2goKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF9hdHRhY2goKSB7IH0NCiAgICAg ICAgICAgIF9kZXRhY2goKSB7IH0NCiAgICAgICAgICAgIF9vbkNoYW5nZShlKSB7DQogICAg ICAgICAgICAgICRpKHRoaXMsIHsgdHlwZTogImNoYW5nZSIsIHBhcmVudDogdGhpcywgdmFs dWU6IGUsIGlkbGU6IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHZvaWQgMCAhPT0gYXJndW1l bnRzWzFdICYmIGFyZ3VtZW50c1sxXSB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg IF9vblByaW9yaXR5Q2hhbmdlKGUpIHsNCiAgICAgICAgICAgICAgdGhpcy5pZGxlIHx8IGNp LnNvcnQodGhpcyksICRpKHRoaXMsIHsgdHlwZTogInByaW9yaXR5IiwgcGFyZW50OiB0aGlz LCBwcmlvcml0eTogZSB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9LA0KICAgICAg ICAgIGZzID0gU3ltYm9sLmZvcigiU3ByaW5nUGhhc2UiKSwNCiAgICAgICAgICBwcyA9IChl KSA9PiAoMSAmIGVbZnNdKSA+IDAsDQogICAgICAgICAgaHMgPSAoZSkgPT4gKDIgJiBlW2Zz XSkgPiAwLA0KICAgICAgICAgIG1zID0gKGUpID0+ICg0ICYgZVtmc10pID4gMCwNCiAgICAg ICAgICBncyA9IChlLCB0KSA9PiAodCA/IChlW2ZzXSB8PSAzKSA6IChlW2ZzXSAmPSAtMykp LA0KICAgICAgICAgIHZzID0gKGUsIHQpID0+ICh0ID8gKGVbZnNdIHw9IDQpIDogKGVbZnNd ICY9IC01KSksDQogICAgICAgICAgeXMgPSBjbGFzcyBleHRlbmRzIGRzIHsNCiAgICAgICAg ICAgIGNvbnN0cnVjdG9yKGUsIHQpIHsNCiAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAg ICAgICAgIChzdXBlcigpLA0KICAgICAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uID0g bmV3IEpsKCkpLA0KICAgICAgICAgICAgICAgICAgKHRoaXMuZGVmYXVsdFByb3BzID0ge30p LA0KICAgICAgICAgICAgICAgICAgKHRoaXMuX3N0YXRlID0geyBwYXVzZWQ6ICExLCBkZWxh eWVkOiAhMSwgcGF1c2VRdWV1ZTogbmV3IFNldCgpLCByZXN1bWVRdWV1ZTogbmV3IFNldCgp LCB0aW1lb3V0czogbmV3IFNldCgpIH0pLA0KICAgICAgICAgICAgICAgICAgKHRoaXMuX3Bl bmRpbmdDYWxscyA9IG5ldyBTZXQoKSksDQogICAgICAgICAgICAgICAgICAodGhpcy5fbGFz dENhbGxJZCA9IDApLA0KICAgICAgICAgICAgICAgICAgKHRoaXMuX2xhc3RUb0lkID0gMCks DQogICAgICAgICAgICAgICAgICAodGhpcy5fbWVtb2l6ZWREdXJhdGlvbiA9IDApLA0KICAg ICAgICAgICAgICAgICAgISRhLnVuZChlKSB8fCAhJGEudW5kKHQpKQ0KICAgICAgICAgICAg ICApIHsNCiAgICAgICAgICAgICAgICBjb25zdCBuID0gJGEub2JqKGUpID8geyAuLi5lIH0g OiB7IC4uLnQsIGZyb206IGUgfTsNCiAgICAgICAgICAgICAgICAkYS51bmQobi5kZWZhdWx0 KSAmJiAobi5kZWZhdWx0ID0gITApLCB0aGlzLnN0YXJ0KG4pOw0KICAgICAgICAgICAgICB9 DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnZXQgaWRsZSgpIHsNCiAgICAgICAgICAg ICAgcmV0dXJuICEoaHModGhpcykgfHwgdGhpcy5fc3RhdGUuYXN5bmNUbykgfHwgbXModGhp cyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnZXQgZ29hbCgpIHsNCiAgICAgICAg ICAgICAgcmV0dXJuIEhpKHRoaXMuYW5pbWF0aW9uLnRvKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIGdldCB2ZWxvY2l0eSgpIHsNCiAgICAgICAgICAgICAgY29uc3QgZSA9IHds KHRoaXMpOw0KICAgICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIEVsID8gZS5sYXN0 VmVsb2NpdHkgfHwgMCA6IGUuZ2V0UGF5bG9hZCgpLm1hcCgoZSkgPT4gZS5sYXN0VmVsb2Np dHkgfHwgMCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnZXQgaGFzQW5pbWF0ZWQo KSB7DQogICAgICAgICAgICAgIHJldHVybiBwcyh0aGlzKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIGdldCBpc0FuaW1hdGluZygpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIGhz KHRoaXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0IGlzUGF1c2VkKCkgew0K ICAgICAgICAgICAgICByZXR1cm4gbXModGhpcyk7DQogICAgICAgICAgICB9DQogICAgICAg ICAgICBnZXQgaXNEZWxheWVkKCkgew0KICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3Rh dGUuZGVsYXllZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGFkdmFuY2UoZSkgew0K ICAgICAgICAgICAgICBsZXQgdCA9ICEwLA0KICAgICAgICAgICAgICAgIG4gPSAhMTsNCiAg ICAgICAgICAgICAgY29uc3QgciA9IHRoaXMuYW5pbWF0aW9uOw0KICAgICAgICAgICAgICBs ZXQgeyB0b1ZhbHVlczogbyB9ID0gcjsNCiAgICAgICAgICAgICAgY29uc3QgeyBjb25maWc6 IGEgfSA9IHIsDQogICAgICAgICAgICAgICAgaSA9IFNsKHIudG8pOw0KICAgICAgICAgICAg ICAhaSAmJiBWaShyLnRvKSAmJiAobyA9IFlhKEhpKHIudG8pKSksDQogICAgICAgICAgICAg ICAgci52YWx1ZXMuZm9yRWFjaCgobCwgcykgPT4gew0KICAgICAgICAgICAgICAgICAgaWYg KGwuZG9uZSkgcmV0dXJuOw0KICAgICAgICAgICAgICAgICAgY29uc3QgdSA9IGwuY29uc3Ry dWN0b3IgPT0gQ2wgPyAxIDogaSA/IGlbc10ubGFzdFBvc2l0aW9uIDogb1tzXTsNCiAgICAg ICAgICAgICAgICAgIGxldCBjID0gci5pbW1lZGlhdGUsDQogICAgICAgICAgICAgICAgICAg IGQgPSB1Ow0KICAgICAgICAgICAgICAgICAgaWYgKCFjKSB7DQogICAgICAgICAgICAgICAg ICAgIGlmICgoKGQgPSBsLmxhc3RQb3NpdGlvbiksIGEudGVuc2lvbiA8PSAwKSkgcmV0dXJu IHZvaWQgKGwuZG9uZSA9ICEwKTsNCiAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAobC5l bGFwc2VkVGltZSArPSBlKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IHIuZnJv bVZhbHVlc1tzXSwNCiAgICAgICAgICAgICAgICAgICAgICBvID0gbnVsbCAhPSBsLnYwID8g bC52MCA6IChsLnYwID0gJGEuYXJyKGEudmVsb2NpdHkpID8gYS52ZWxvY2l0eVtzXSA6IGEu dmVsb2NpdHkpOw0KICAgICAgICAgICAgICAgICAgICBsZXQgaTsNCiAgICAgICAgICAgICAg ICAgICAgY29uc3QgZiA9IGEucHJlY2lzaW9uIHx8IChuID09IHUgPyAwLjAwNSA6IE1hdGgu bWluKDEsIDAuMDAxICogTWF0aC5hYnModSAtIG4pKSk7DQogICAgICAgICAgICAgICAgICAg IGlmICgkYS51bmQoYS5kdXJhdGlvbikpDQogICAgICAgICAgICAgICAgICAgICAgaWYgKGEu ZGVjYXkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAhMCA9PT0gYS5k ZWNheSA/IDAuOTk4IDogYS5kZWNheSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgciA9 IE1hdGguZXhwKC0oMSAtIGUpICogdCk7DQogICAgICAgICAgICAgICAgICAgICAgICAoZCA9 IG4gKyAobyAvICgxIC0gZSkpICogKDEgLSByKSksIChjID0gTWF0aC5hYnMobC5sYXN0UG9z aXRpb24gLSBkKSA8PSBmKSwgKGkgPSBvICogcik7DQogICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBudWxsID09IGwubGFzdFZl bG9jaXR5ID8gbyA6IGwubGFzdFZlbG9jaXR5Ow0KICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgdCA9IGEucmVzdFZlbG9jaXR5IHx8IGYgLyAxMCwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgciA9IGEuY2xhbXAgPyAwIDogYS5ib3VuY2UsDQogICAgICAgICAgICAgICAg ICAgICAgICAgIHMgPSAhJGEudW5kKHIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBw ID0gbiA9PSB1ID8gbC52MCA+IDAgOiBuIDwgdTsNCiAgICAgICAgICAgICAgICAgICAgICAg IGxldCBoLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBtID0gITE7DQogICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBnID0gMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg diA9IE1hdGguY2VpbChlIC8gZyk7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxl dCBlID0gMDsgZSA8IHYgJiYgKChoID0gTWF0aC5hYnMoaSkgPiB0KSwgaCB8fCAoKGMgPSBN YXRoLmFicyh1IC0gZCkgPD0gZiksICFjKSk7ICsrZSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICBzICYmICgobSA9IGQgPT0gdSB8fCBkID4gdSA9PSBwKSwgbSAmJiAoKGkgPSAt aSAqIHIpLCAoZCA9IHUpKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIChpICs9ICgo MWUtNiAqIC1hLnRlbnNpb24gKiAoZCAtIHUpICsgMC4wMDEgKiAtYS5mcmljdGlvbiAqIGkp IC8gYS5tYXNzKSAqIGcpLCAoZCArPSBpICogZyk7DQogICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNl IHsNCiAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IDE7DQogICAgICAgICAgICAgICAg ICAgICAgYS5kdXJhdGlvbiA+IDAgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlz Ll9tZW1vaXplZER1cmF0aW9uICE9PSBhLmR1cmF0aW9uICYmICgodGhpcy5fbWVtb2l6ZWRE dXJhdGlvbiA9IGEuZHVyYXRpb24pLCBsLmR1cmF0aW9uUHJvZ3Jlc3MgPiAwICYmICgobC5l bGFwc2VkVGltZSA9IGEuZHVyYXRpb24gKiBsLmR1cmF0aW9uUHJvZ3Jlc3MpLCAodCA9IGwu ZWxhcHNlZFRpbWUgKz0gZSkpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHIgPSAo YS5wcm9ncmVzcyB8fCAwKSArIHQgLyB0aGlzLl9tZW1vaXplZER1cmF0aW9uKSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgKHIgPSByID4gMSA/IDEgOiByIDwgMCA/IDAgOiByKSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGwuZHVyYXRpb25Qcm9ncmVzcyA9IHIpKSwN CiAgICAgICAgICAgICAgICAgICAgICAgIChkID0gbiArIGEuZWFzaW5nKHIpICogKHUgLSBu KSksDQogICAgICAgICAgICAgICAgICAgICAgICAoaSA9IChkIC0gbC5sYXN0UG9zaXRpb24p IC8gZSksDQogICAgICAgICAgICAgICAgICAgICAgICAoYyA9IDEgPT0gcik7DQogICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgKGwubGFzdFZlbG9jaXR5ID0g aSksIE51bWJlci5pc05hTihkKSAmJiAoY29uc29sZS53YXJuKCJHb3QgTmFOIHdoaWxlIGFu aW1hdGluZzoiLCB0aGlzKSwgKGMgPSAhMCkpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgaSAmJiAhaVtzXS5kb25lICYmIChjID0gITEpLCBjID8gKGwuZG9u ZSA9ICEwKSA6ICh0ID0gITEpLCBsLnNldFZhbHVlKGQsIGEucm91bmQpICYmIChuID0gITAp Ow0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICBjb25zdCBsID0gd2wodGhp cyksDQogICAgICAgICAgICAgICAgcyA9IGwuZ2V0VmFsdWUoKTsNCiAgICAgICAgICAgICAg aWYgKHQpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBlID0gSGkoci50byk7DQogICAgICAg ICAgICAgICAgKHMgPT09IGUgJiYgIW4pIHx8IGEuZGVjYXkgPyBuICYmIGEuZGVjYXkgJiYg dGhpcy5fb25DaGFuZ2UocykgOiAobC5zZXRWYWx1ZShlKSwgdGhpcy5fb25DaGFuZ2UoZSkp LCB0aGlzLl9zdG9wKCk7DQogICAgICAgICAgICAgIH0gZWxzZSBuICYmIHRoaXMuX29uQ2hh bmdlKHMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc2V0KGUpIHsNCiAgICAgICAg ICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBQYS5iYXRjaGVkVXBkYXRlcygoKSA9 PiB7DQogICAgICAgICAgICAgICAgICB0aGlzLl9zdG9wKCksIHRoaXMuX2ZvY3VzKGUpLCB0 aGlzLl9zZXQoZSk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgdGhp cw0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcGF1c2Uo KSB7DQogICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZSh7IHBhdXNlOiAhMCB9KTsNCiAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIHJlc3VtZSgpIHsNCiAgICAgICAgICAgICAgdGhpcy5f dXBkYXRlKHsgcGF1c2U6ICExIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZmlu aXNoKCkgew0KICAgICAgICAgICAgICBpZiAoaHModGhpcykpIHsNCiAgICAgICAgICAgICAg ICBjb25zdCB7IHRvOiBlLCBjb25maWc6IHQgfSA9IHRoaXMuYW5pbWF0aW9uOw0KICAgICAg ICAgICAgICAgIFBhLmJhdGNoZWRVcGRhdGVzKCgpID0+IHsNCiAgICAgICAgICAgICAgICAg IHRoaXMuX29uU3RhcnQoKSwgdC5kZWNheSB8fCB0aGlzLl9zZXQoZSwgITEpLCB0aGlzLl9z dG9wKCk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgcmV0dXJuIHRoaXM7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB1cGRhdGUo ZSkgew0KICAgICAgICAgICAgICByZXR1cm4gKHRoaXMucXVldWUgfHwgKHRoaXMucXVldWUg PSBbXSkpLnB1c2goZSksIHRoaXM7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzdGFy dChlLCB0KSB7DQogICAgICAgICAgICAgIGxldCBuOw0KICAgICAgICAgICAgICByZXR1cm4g JGEudW5kKGUpID8gKChuID0gdGhpcy5xdWV1ZSB8fCBbXSksICh0aGlzLnF1ZXVlID0gW10p KSA6IChuID0gWyRhLm9iaihlKSA/IGUgOiB7IC4uLnQsIHRvOiBlIH1dKSwgUHJvbWlzZS5h bGwobi5tYXAoKGUpID0+IHRoaXMuX3VwZGF0ZShlKSkpLnRoZW4oKGUpID0+IHRzKHRoaXMs IGUpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN0b3AoZSkgew0KICAgICAgICAg ICAgICBjb25zdCB7IHRvOiB0IH0gPSB0aGlzLmFuaW1hdGlvbjsNCiAgICAgICAgICAgICAg cmV0dXJuIHRoaXMuX2ZvY3VzKHRoaXMuZ2V0KCkpLCBpcyh0aGlzLl9zdGF0ZSwgZSAmJiB0 aGlzLl9sYXN0Q2FsbElkKSwgUGEuYmF0Y2hlZFVwZGF0ZXMoKCkgPT4gdGhpcy5fc3RvcCh0 LCBlKSksIHRoaXM7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXNldCgpIHsNCiAg ICAgICAgICAgICAgdGhpcy5fdXBkYXRlKHsgcmVzZXQ6ICEwIH0pOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgZXZlbnRPYnNlcnZlZChlKSB7DQogICAgICAgICAgICAgICJjaGFu Z2UiID09IGUudHlwZSA/IHRoaXMuX3N0YXJ0KCkgOiAicHJpb3JpdHkiID09IGUudHlwZSAm JiAodGhpcy5wcmlvcml0eSA9IGUucHJpb3JpdHkgKyAxKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIF9wcmVwYXJlTm9kZShlKSB7DQogICAgICAgICAgICAgIGNvbnN0IHQgPSB0 aGlzLmtleSB8fCAiIjsNCiAgICAgICAgICAgICAgbGV0IHsgdG86IG4sIGZyb206IHIgfSA9 IGU7DQogICAgICAgICAgICAgIChuID0gJGEub2JqKG4pID8gblt0XSA6IG4pLCAobnVsbCA9 PSBuIHx8ICRsKG4pKSAmJiAobiA9IHZvaWQgMCksIChyID0gJGEub2JqKHIpID8gclt0XSA6 IHIpLCBudWxsID09IHIgJiYgKHIgPSB2b2lkIDApOw0KICAgICAgICAgICAgICBjb25zdCBv ID0geyB0bzogbiwgZnJvbTogciB9Ow0KICAgICAgICAgICAgICByZXR1cm4gcHModGhpcykg fHwgKGUucmV2ZXJzZSAmJiAoW24sIHJdID0gW3IsIG5dKSwgKHIgPSBIaShyKSksICRhLnVu ZChyKSA/IHdsKHRoaXMpIHx8IHRoaXMuX3NldChuKSA6IHRoaXMuX3NldChyKSksIG87DQog ICAgICAgICAgICB9DQogICAgICAgICAgICBfdXBkYXRlKGUsIHQpIHsNCiAgICAgICAgICAg ICAgbGV0IHsgLi4ubiB9ID0gZTsNCiAgICAgICAgICAgICAgY29uc3QgeyBrZXk6IHIsIGRl ZmF1bHRQcm9wczogbyB9ID0gdGhpczsNCiAgICAgICAgICAgICAgbi5kZWZhdWx0ICYmDQog ICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbigNCiAgICAgICAgICAgICAgICAgIG8sDQog ICAgICAgICAgICAgICAgICBEbChuLCAoZSwgdCkgPT4gKC9eb24vLnRlc3QodCkgPyBMbChl LCByKSA6IGUpKQ0KICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgQ3ModGhp cywgbiwgIm9uUHJvcHMiKSwNCiAgICAgICAgICAgICAgICBScyh0aGlzLCAib25Qcm9wcyIs IG4sIHRoaXMpOw0KICAgICAgICAgICAgICBjb25zdCBhID0gdGhpcy5fcHJlcGFyZU5vZGUo bik7DQogICAgICAgICAgICAgIGlmIChPYmplY3QuaXNGcm96ZW4odGhpcykpIHRocm93IEVy cm9yKCJDYW5ub3QgYW5pbWF0ZSBhIGBTcHJpbmdWYWx1ZWAgb2JqZWN0IHRoYXQgaXMgZnJv emVuLiBEaWQgeW91IGZvcmdldCB0byBwYXNzIHlvdXIgY29tcG9uZW50IHRvIGBhbmltYXRl ZCguLi4pYCBiZWZvcmUgYW5pbWF0aW5nIGl0cyBwcm9wcz8iKTsNCiAgICAgICAgICAgICAg Y29uc3QgaSA9IHRoaXMuX3N0YXRlOw0KICAgICAgICAgICAgICByZXR1cm4gZXMoKyt0aGlz Ll9sYXN0Q2FsbElkLCB7DQogICAgICAgICAgICAgICAga2V5OiByLA0KICAgICAgICAgICAg ICAgIHByb3BzOiBuLA0KICAgICAgICAgICAgICAgIGRlZmF1bHRQcm9wczogbywNCiAgICAg ICAgICAgICAgICBzdGF0ZTogaSwNCiAgICAgICAgICAgICAgICBhY3Rpb25zOiB7DQogICAg ICAgICAgICAgICAgICBwYXVzZTogKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBtcyh0 aGlzKSB8fCAodnModGhpcywgITApLCBlaShpLnBhdXNlUXVldWUpLCBScyh0aGlzLCAib25Q YXVzZSIsIHJzKHRoaXMsIGJzKHRoaXMsIHRoaXMuYW5pbWF0aW9uLnRvKSksIHRoaXMpKTsN CiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICByZXN1bWU6ICgpID0+ IHsNCiAgICAgICAgICAgICAgICAgICAgbXModGhpcykgJiYgKHZzKHRoaXMsICExKSwgaHMo dGhpcykgJiYgdGhpcy5fcmVzdW1lKCksIGVpKGkucmVzdW1lUXVldWUpLCBScyh0aGlzLCAi b25SZXN1bWUiLCBycyh0aGlzLCBicyh0aGlzLCB0aGlzLmFuaW1hdGlvbi50bykpLCB0aGlz KSk7DQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgc3RhcnQ6IHRo aXMuX21lcmdlLmJpbmQodGhpcywgYSksDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAg ICAgICAgfSkudGhlbigoZSkgPT4gew0KICAgICAgICAgICAgICAgIGlmIChuLmxvb3AgJiYg ZS5maW5pc2hlZCAmJiAoIXQgfHwgIWUubm9vcCkpIHsNCiAgICAgICAgICAgICAgICAgIGNv bnN0IGUgPSB3cyhuKTsNCiAgICAgICAgICAgICAgICAgIGlmIChlKSByZXR1cm4gdGhpcy5f dXBkYXRlKGUsICEwKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0 dXJuIGU7DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg X21lcmdlKGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgaWYgKHQuY2FuY2VsKSByZXR1cm4g dGhpcy5zdG9wKCEwKSwgbihvcyh0aGlzKSk7DQogICAgICAgICAgICAgIGNvbnN0IHIgPSAh JGEudW5kKGUudG8pLA0KICAgICAgICAgICAgICAgIG8gPSAhJGEudW5kKGUuZnJvbSk7DQog ICAgICAgICAgICAgIGlmIChyIHx8IG8pIHsNCiAgICAgICAgICAgICAgICBpZiAoISh0LmNh bGxJZCA+IHRoaXMuX2xhc3RUb0lkKSkgcmV0dXJuIG4ob3ModGhpcykpOw0KICAgICAgICAg ICAgICAgIHRoaXMuX2xhc3RUb0lkID0gdC5jYWxsSWQ7DQogICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgY29uc3QgeyBrZXk6IGEsIGRlZmF1bHRQcm9wczogaSwgYW5pbWF0aW9u OiBsIH0gPSB0aGlzLA0KICAgICAgICAgICAgICAgIHsgdG86IHMsIGZyb206IHUgfSA9IGw7 DQogICAgICAgICAgICAgIGxldCB7IHRvOiBjID0gcywgZnJvbTogZCA9IHUgfSA9IGU7DQog ICAgICAgICAgICAgICFvIHx8IHIgfHwgKHQuZGVmYXVsdCAmJiAhJGEudW5kKGMpKSB8fCAo YyA9IGQpLCB0LnJldmVyc2UgJiYgKFtjLCBkXSA9IFtkLCBjXSk7DQogICAgICAgICAgICAg IGNvbnN0IGYgPSAhS2EoZCwgdSk7DQogICAgICAgICAgICAgIGYgJiYgKGwuZnJvbSA9IGQp LCAoZCA9IEhpKGQpKTsNCiAgICAgICAgICAgICAgY29uc3QgcCA9ICFLYShjLCBzKTsNCiAg ICAgICAgICAgICAgcCAmJiB0aGlzLl9mb2N1cyhjKTsNCiAgICAgICAgICAgICAgY29uc3Qg aCA9ICRsKHQudG8pLA0KICAgICAgICAgICAgICAgIHsgY29uZmlnOiBtIH0gPSBsLA0KICAg ICAgICAgICAgICAgIHsgZGVjYXk6IGcsIHZlbG9jaXR5OiB2IH0gPSBtOw0KICAgICAgICAg ICAgICAociB8fCBvKSAmJiAobS52ZWxvY2l0eSA9IDApLA0KICAgICAgICAgICAgICAgIHQu Y29uZmlnICYmDQogICAgICAgICAgICAgICAgIWggJiYNCiAgICAgICAgICAgICAgICAoZnVu Y3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgICAgIG4gJiYgKFhsKChuID0geyAu Li5uIH0pLCB0KSwgKHQgPSB7IC4uLm4sIC4uLnQgfSkpLCBYbChlLCB0KSwgT2JqZWN0LmFz c2lnbihlLCB0KTsNCiAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaSBpbiBHbCkgbnVs bCA9PSBlW2ldICYmIChlW2ldID0gR2xbaV0pOw0KICAgICAgICAgICAgICAgICAgbGV0IHsg ZnJlcXVlbmN5OiByLCBkYW1waW5nOiBvIH0gPSBlOw0KICAgICAgICAgICAgICAgICAgY29u c3QgeyBtYXNzOiBhIH0gPSBlOw0KICAgICAgICAgICAgICAgICAgJGEudW5kKHIpIHx8IChy IDwgMC4wMSAmJiAociA9IDAuMDEpLCBvIDwgMCAmJiAobyA9IDApLCAoZS50ZW5zaW9uID0g TWF0aC5wb3coKDIgKiBNYXRoLlBJKSAvIHIsIDIpICogYSksIChlLmZyaWN0aW9uID0gKDQg KiBNYXRoLlBJICogbyAqIGEpIC8gcikpOw0KICAgICAgICAgICAgICAgIH0pKG0sIGpsKHQu Y29uZmlnLCBhKSwgdC5jb25maWcgIT09IGkuY29uZmlnID8gamwoaS5jb25maWcsIGEpIDog dm9pZCAwKTsNCiAgICAgICAgICAgICAgbGV0IHkgPSB3bCh0aGlzKTsNCiAgICAgICAgICAg ICAgaWYgKCF5IHx8ICRhLnVuZChjKSkgcmV0dXJuIG4ocnModGhpcywgITApKTsNCiAgICAg ICAgICAgICAgY29uc3QgYiA9ICRhLnVuZCh0LnJlc2V0KSA/IG8gJiYgIXQuZGVmYXVsdCA6 ICEkYS51bmQoZCkgJiYgSWwodC5yZXNldCwgYSksDQogICAgICAgICAgICAgICAgdyA9IGIg PyBkIDogdGhpcy5nZXQoKSwNCiAgICAgICAgICAgICAgICB4ID0gSGwoYyksDQogICAgICAg ICAgICAgICAgUyA9ICRhLm51bSh4KSB8fCAkYS5hcnIoeCkgfHwgZmwoeCksDQogICAgICAg ICAgICAgICAgayA9ICFoICYmICghUyB8fCBJbChpLmltbWVkaWF0ZSB8fCB0LmltbWVkaWF0 ZSwgYSkpOw0KICAgICAgICAgICAgICBpZiAocCkgew0KICAgICAgICAgICAgICAgIGNvbnN0 IGUgPSBObChjKTsNCiAgICAgICAgICAgICAgICBpZiAoZSAhPT0geS5jb25zdHJ1Y3Rvcikg ew0KICAgICAgICAgICAgICAgICAgaWYgKCFrKSB0aHJvdyBFcnJvcigiQ2Fubm90IGFuaW1h dGUgYmV0d2VlbiAiLmNvbmNhdCh5LmNvbnN0cnVjdG9yLm5hbWUsICIgYW5kICIpLmNvbmNh dChlLm5hbWUsICcsIGFzIHRoZSAidG8iIHByb3Agc3VnZ2VzdHMnKSk7DQogICAgICAgICAg ICAgICAgICB5ID0gdGhpcy5fc2V0KHgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICBjb25zdCBFID0geS5jb25zdHJ1Y3RvcjsNCiAgICAg ICAgICAgICAgbGV0IEMgPSBWaShjKSwNCiAgICAgICAgICAgICAgICBSID0gITE7DQogICAg ICAgICAgICAgIGlmICghQykgew0KICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBiIHx8ICgh cHModGhpcykgJiYgZik7DQogICAgICAgICAgICAgICAgKHAgfHwgZSkgJiYgKChSID0gS2Eo SGwodyksIHgpKSwgKEMgPSAhUikpLCAoKEthKGwuaW1tZWRpYXRlLCBrKSB8fCBrKSAmJiBL YShtLmRlY2F5LCBnKSAmJiBLYShtLnZlbG9jaXR5LCB2KSkgfHwgKEMgPSAhMCk7DQogICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgIChSICYm IGhzKHRoaXMpICYmIChsLmNoYW5nZWQgJiYgIWIgPyAoQyA9ICEwKSA6IEMgfHwgdGhpcy5f c3RvcChzKSksDQogICAgICAgICAgICAgICAgICAhaCAmJiAoKEMgfHwgVmkocykpICYmICgo bC52YWx1ZXMgPSB5LmdldFBheWxvYWQoKSksIChsLnRvVmFsdWVzID0gVmkoYykgPyBudWxs IDogRSA9PSBDbCA/IFsxXSA6IFlhKHgpKSksIGwuaW1tZWRpYXRlICE9IGsgJiYgKChsLmlt bWVkaWF0ZSA9IGspLCBrIHx8IGIgfHwgdGhpcy5fc2V0KHMpKSwgQykpDQogICAgICAgICAg ICAgICkgew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgb25SZXN0OiBlIH0gPSBsOw0KICAg ICAgICAgICAgICAgIFFhKEVzLCAoZSkgPT4gQ3ModGhpcywgdCwgZSkpOw0KICAgICAgICAg ICAgICAgIGNvbnN0IHIgPSBycyh0aGlzLCBicyh0aGlzLCBzKSk7DQogICAgICAgICAgICAg ICAgZWkodGhpcy5fcGVuZGluZ0NhbGxzLCByKSwNCiAgICAgICAgICAgICAgICAgIHRoaXMu X3BlbmRpbmdDYWxscy5hZGQobiksDQogICAgICAgICAgICAgICAgICBsLmNoYW5nZWQgJiYN CiAgICAgICAgICAgICAgICAgIFBhLmJhdGNoZWRVcGRhdGVzKCgpID0+IHsNCiAgICAgICAg ICAgICAgICAgICAgdmFyIHQ7DQogICAgICAgICAgICAgICAgICAgICgobC5jaGFuZ2VkID0g IWIpLCBudWxsID09PSBlIHx8IHZvaWQgMCA9PT0gZSB8fCBlKHIsIHRoaXMpLCBiKSA/IGps KGkub25SZXN0LCByKSA6IG51bGwgPT09ICh0ID0gbC5vblN0YXJ0KSB8fCB2b2lkIDAgPT09 IHQgfHwgdC5jYWxsKGwsIHIsIHRoaXMpOw0KICAgICAgICAgICAgICAgICAgfSk7DQogICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgYiAmJiB0aGlzLl9zZXQodyksIGggPyBuKGFz KHQudG8sIHQsIHRoaXMuX3N0YXRlLCB0aGlzKSkgOiBDID8gdGhpcy5fc3RhcnQoKSA6IGhz KHRoaXMpICYmICFwID8gdGhpcy5fcGVuZGluZ0NhbGxzLmFkZChuKSA6IG4obnModykpOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX2ZvY3VzKGUpIHsNCiAgICAgICAgICAgICAg Y29uc3QgdCA9IHRoaXMuYW5pbWF0aW9uOw0KICAgICAgICAgICAgICBlICE9PSB0LnRvICYm IChxaSh0aGlzKSAmJiB0aGlzLl9kZXRhY2goKSwgKHQudG8gPSBlKSwgcWkodGhpcykgJiYg dGhpcy5fYXR0YWNoKCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX2F0dGFjaCgp IHsNCiAgICAgICAgICAgICAgbGV0IGUgPSAwOw0KICAgICAgICAgICAgICBjb25zdCB7IHRv OiB0IH0gPSB0aGlzLmFuaW1hdGlvbjsNCiAgICAgICAgICAgICAgVmkodCkgJiYgKEdpKHQs IHRoaXMpLCB1cyh0KSAmJiAoZSA9IHQucHJpb3JpdHkgKyAxKSksICh0aGlzLnByaW9yaXR5 ID0gZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBfZGV0YWNoKCkgew0KICAgICAg ICAgICAgICBjb25zdCB7IHRvOiBlIH0gPSB0aGlzLmFuaW1hdGlvbjsNCiAgICAgICAgICAg ICAgVmkoZSkgJiYgWWkoZSwgdGhpcyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBf c2V0KGUpIHsNCiAgICAgICAgICAgICAgbGV0IHQgPSAhKGFyZ3VtZW50cy5sZW5ndGggPiAx ICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzFdKSB8fCBhcmd1bWVudHNbMV07DQogICAgICAg ICAgICAgIGNvbnN0IG4gPSBIaShlKTsNCiAgICAgICAgICAgICAgaWYgKCEkYS51bmQobikp IHsNCiAgICAgICAgICAgICAgICBjb25zdCBlID0gd2wodGhpcyk7DQogICAgICAgICAgICAg ICAgaWYgKCFlIHx8ICFLYShuLCBlLmdldFZhbHVlKCkpKSB7DQogICAgICAgICAgICAgICAg ICBjb25zdCByID0gTmwobik7DQogICAgICAgICAgICAgICAgICBlICYmIGUuY29uc3RydWN0 b3IgPT0gciA/IGUuc2V0VmFsdWUobikgOiB4bCh0aGlzLCByLmNyZWF0ZShuKSksDQogICAg ICAgICAgICAgICAgICAgIGUgJiYNCiAgICAgICAgICAgICAgICAgICAgUGEuYmF0Y2hlZFVw ZGF0ZXMoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKG4s IHQpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIHdsKHRoaXMpOw0KICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgX29uU3RhcnQoKSB7DQogICAgICAgICAgICAgIGNvbnN0IGUg PSB0aGlzLmFuaW1hdGlvbjsNCiAgICAgICAgICAgICAgZS5jaGFuZ2VkIHx8ICgoZS5jaGFu Z2VkID0gITApLCBScyh0aGlzLCAib25TdGFydCIsIHJzKHRoaXMsIGJzKHRoaXMsIGUudG8p KSwgdGhpcykpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX29uQ2hhbmdlKGUsIHQp IHsNCiAgICAgICAgICAgICAgdCB8fCAodGhpcy5fb25TdGFydCgpLCBqbCh0aGlzLmFuaW1h dGlvbi5vbkNoYW5nZSwgZSwgdGhpcykpLCBqbCh0aGlzLmRlZmF1bHRQcm9wcy5vbkNoYW5n ZSwgZSwgdGhpcyksIHN1cGVyLl9vbkNoYW5nZShlLCB0KTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIF9zdGFydCgpIHsNCiAgICAgICAgICAgICAgY29uc3QgZSA9IHRoaXMuYW5p bWF0aW9uOw0KICAgICAgICAgICAgICB3bCh0aGlzKS5yZXNldChIaShlLnRvKSksIGUuaW1t ZWRpYXRlIHx8IChlLmZyb21WYWx1ZXMgPSBlLnZhbHVlcy5tYXAoKGUpID0+IGUubGFzdFBv c2l0aW9uKSksIGhzKHRoaXMpIHx8IChncyh0aGlzLCAhMCksIG1zKHRoaXMpIHx8IHRoaXMu X3Jlc3VtZSgpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF9yZXN1bWUoKSB7DQog ICAgICAgICAgICAgIFJhLnNraXBBbmltYXRpb24gPyB0aGlzLmZpbmlzaCgpIDogY2kuc3Rh cnQodGhpcyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBfc3RvcChlLCB0KSB7DQog ICAgICAgICAgICAgIGlmIChocyh0aGlzKSkgew0KICAgICAgICAgICAgICAgIGdzKHRoaXMs ICExKTsNCiAgICAgICAgICAgICAgICBjb25zdCBuID0gdGhpcy5hbmltYXRpb247DQogICAg ICAgICAgICAgICAgUWEobi52YWx1ZXMsIChlKSA9PiB7DQogICAgICAgICAgICAgICAgICBl LmRvbmUgPSAhMDsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIG4u dG9WYWx1ZXMgJiYgKG4ub25DaGFuZ2UgPSBuLm9uUGF1c2UgPSBuLm9uUmVzdW1lID0gdm9p ZCAwKSwNCiAgICAgICAgICAgICAgICAgICRpKHRoaXMsIHsgdHlwZTogImlkbGUiLCBwYXJl bnQ6IHRoaXMgfSk7DQogICAgICAgICAgICAgICAgY29uc3QgciA9IHQgPyBvcyh0aGlzLmdl dCgpKSA6IHJzKHRoaXMuZ2V0KCksIGJzKHRoaXMsIG51bGwgIT09IGUgJiYgdm9pZCAwICE9 PSBlID8gZSA6IG4udG8pKTsNCiAgICAgICAgICAgICAgICBlaSh0aGlzLl9wZW5kaW5nQ2Fs bHMsIHIpLCBuLmNoYW5nZWQgJiYgKChuLmNoYW5nZWQgPSAhMSksIFJzKHRoaXMsICJvblJl c3QiLCByLCB0aGlzKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAg ICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBicyhlLCB0KSB7DQogICAgICAgICAgY29uc3Qg biA9IEhsKHQpOw0KICAgICAgICAgIHJldHVybiBLYShIbChlLmdldCgpKSwgbik7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gd3MoZSkgew0KICAgICAgICAgIGxldCB0ID0gYXJn dW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMV0gPyBhcmd1bWVu dHNbMV0gOiBlLmxvb3AsDQogICAgICAgICAgICBuID0gYXJndW1lbnRzLmxlbmd0aCA+IDIg JiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiBlLnRvOw0KICAg ICAgICAgIGNvbnN0IHIgPSBqbCh0KTsNCiAgICAgICAgICBpZiAocikgew0KICAgICAgICAg ICAgY29uc3QgbyA9ICEwICE9PSByICYmIFZsKHIpLA0KICAgICAgICAgICAgICBhID0gKG8g fHwgZSkucmV2ZXJzZSwNCiAgICAgICAgICAgICAgaSA9ICFvIHx8IG8ucmVzZXQ7DQogICAg ICAgICAgICByZXR1cm4geHMoeyAuLi5lLCBsb29wOiB0LCBkZWZhdWx0OiAhMSwgcGF1c2U6 IHZvaWQgMCwgdG86ICFhIHx8ICRsKG4pID8gbiA6IHZvaWQgMCwgZnJvbTogaSA/IGUuZnJv bSA6IHZvaWQgMCwgcmVzZXQ6IGksIC4uLm8gfSk7DQogICAgICAgICAgfQ0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIHhzKGUpIHsNCiAgICAgICAgICBjb25zdCB7IHRvOiB0LCBm cm9tOiBuIH0gPSAoZSA9IFZsKGUpKSwNCiAgICAgICAgICAgIHIgPSBuZXcgU2V0KCk7DQog ICAgICAgICAgcmV0dXJuICRhLm9iaih0KSAmJiBrcyh0LCByKSwgJGEub2JqKG4pICYmIGtz KG4sIHIpLCAoZS5rZXlzID0gci5zaXplID8gQXJyYXkuZnJvbShyKSA6IG51bGwpLCBlOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFNzKGUpIHsNCiAgICAgICAgICBjb25zdCB0 ID0geHMoZSk7DQogICAgICAgICAgcmV0dXJuICRhLnVuZCh0LmRlZmF1bHQpICYmICh0LmRl ZmF1bHQgPSBEbCh0KSksIHQ7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24ga3MoZSwg dCkgew0KICAgICAgICAgIEdhKGUsIChlLCBuKSA9PiBudWxsICE9IGUgJiYgdC5hZGQobikp Ow0KICAgICAgICB9DQogICAgICAgIHZhciBFcyA9IFsib25TdGFydCIsICJvblJlc3QiLCAi b25DaGFuZ2UiLCAib25QYXVzZSIsICJvblJlc3VtZSJdOw0KICAgICAgICBmdW5jdGlvbiBD cyhlLCB0LCBuKSB7DQogICAgICAgICAgZS5hbmltYXRpb25bbl0gPSB0W25dICE9PSBGbCh0 LCBuKSA/IExsKHRbbl0sIGUua2V5KSA6IHZvaWQgMDsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBScyhlLCB0KSB7DQogICAgICAgICAgZm9yICh2YXIgbiwgciwgbywgYSwgaSA9 IGFyZ3VtZW50cy5sZW5ndGgsIGwgPSBuZXcgQXJyYXkoaSA+IDIgPyBpIC0gMiA6IDApLCBz ID0gMjsgcyA8IGk7IHMrKykgbFtzIC0gMl0gPSBhcmd1bWVudHNbc107DQogICAgICAgICAg bnVsbCA9PT0gKG4gPSAociA9IGUuYW5pbWF0aW9uKVt0XSkgfHwgdm9pZCAwID09PSBuIHx8 IG4uY2FsbChyLCAuLi5sKSwgbnVsbCA9PT0gKG8gPSAoYSA9IGUuZGVmYXVsdFByb3BzKVt0 XSkgfHwgdm9pZCAwID09PSBvIHx8IG8uY2FsbChhLCAuLi5sKTsNCiAgICAgICAgfQ0KICAg ICAgICB2YXIgX3MgPSBbIm9uU3RhcnQiLCAib25DaGFuZ2UiLCAib25SZXN0Il0sDQogICAg ICAgICAgUHMgPSAxLA0KICAgICAgICAgIE9zID0gY2xhc3Mgew0KICAgICAgICAgICAgY29u c3RydWN0b3IoZSwgdCkgew0KICAgICAgICAgICAgICAodGhpcy5pZCA9IFBzKyspLA0KICAg ICAgICAgICAgICAgICh0aGlzLnNwcmluZ3MgPSB7fSksDQogICAgICAgICAgICAgICAgKHRo aXMucXVldWUgPSBbXSksDQogICAgICAgICAgICAgICAgKHRoaXMuX2xhc3RBc3luY0lkID0g MCksDQogICAgICAgICAgICAgICAgKHRoaXMuX2FjdGl2ZSA9IG5ldyBTZXQoKSksDQogICAg ICAgICAgICAgICAgKHRoaXMuX2NoYW5nZWQgPSBuZXcgU2V0KCkpLA0KICAgICAgICAgICAg ICAgICh0aGlzLl9zdGFydGVkID0gITEpLA0KICAgICAgICAgICAgICAgICh0aGlzLl9zdGF0 ZSA9IHsgcGF1c2VkOiAhMSwgcGF1c2VRdWV1ZTogbmV3IFNldCgpLCByZXN1bWVRdWV1ZTog bmV3IFNldCgpLCB0aW1lb3V0czogbmV3IFNldCgpIH0pLA0KICAgICAgICAgICAgICAgICh0 aGlzLl9ldmVudHMgPSB7IG9uU3RhcnQ6IG5ldyBNYXAoKSwgb25DaGFuZ2U6IG5ldyBNYXAo KSwgb25SZXN0OiBuZXcgTWFwKCkgfSksDQogICAgICAgICAgICAgICAgKHRoaXMuX29uRnJh bWUgPSB0aGlzLl9vbkZyYW1lLmJpbmQodGhpcykpLA0KICAgICAgICAgICAgICAgIHQgJiYg KHRoaXMuX2ZsdXNoID0gdCksDQogICAgICAgICAgICAgICAgZSAmJiB0aGlzLnN0YXJ0KHsg ZGVmYXVsdDogITAsIC4uLmUgfSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnZXQg aWRsZSgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9zdGF0ZS5hc3luY1RvICYm IE9iamVjdC52YWx1ZXModGhpcy5zcHJpbmdzKS5ldmVyeSgoZSkgPT4gZS5pZGxlICYmICFl LmlzRGVsYXllZCAmJiAhZS5pc1BhdXNlZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAg ICBnZXQgaXRlbSgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW07DQogICAg ICAgICAgICB9DQogICAgICAgICAgICBzZXQgaXRlbShlKSB7DQogICAgICAgICAgICAgIHRo aXMuX2l0ZW0gPSBlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0KCkgew0KICAg ICAgICAgICAgICBjb25zdCBlID0ge307DQogICAgICAgICAgICAgIHJldHVybiB0aGlzLmVh Y2goKHQsIG4pID0+IChlW25dID0gdC5nZXQoKSkpLCBlOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgc2V0KGUpIHsNCiAgICAgICAgICAgICAgZm9yIChjb25zdCB0IGluIGUpIHsN CiAgICAgICAgICAgICAgICBjb25zdCBuID0gZVt0XTsNCiAgICAgICAgICAgICAgICAkYS51 bmQobikgfHwgdGhpcy5zcHJpbmdzW3RdLnNldChuKTsNCiAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgdXBkYXRlKGUpIHsNCiAgICAgICAgICAgICAgcmV0 dXJuIGUgJiYgdGhpcy5xdWV1ZS5wdXNoKHhzKGUpKSwgdGhpczsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIHN0YXJ0KGUpIHsNCiAgICAgICAgICAgICAgbGV0IHsgcXVldWU6IHQg fSA9IHRoaXM7DQogICAgICAgICAgICAgIHJldHVybiBlID8gKHQgPSBZYShlKS5tYXAoeHMp KSA6ICh0aGlzLnF1ZXVlID0gW10pLCB0aGlzLl9mbHVzaCA/IHRoaXMuX2ZsdXNoKHRoaXMs IHQpIDogKElzKHRoaXMsIHQpLCBOcyh0aGlzLCB0KSk7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBzdG9wKGUsIHQpIHsNCiAgICAgICAgICAgICAgaWYgKChlICE9PSAhIWUgJiYg KHQgPSBlKSwgdCkpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBuID0gdGhpcy5zcHJpbmdz Ow0KICAgICAgICAgICAgICAgIFFhKFlhKHQpLCAodCkgPT4gblt0XS5zdG9wKCEhZSkpOw0K ICAgICAgICAgICAgICB9IGVsc2UgaXModGhpcy5fc3RhdGUsIHRoaXMuX2xhc3RBc3luY0lk KSwgdGhpcy5lYWNoKCh0KSA9PiB0LnN0b3AoISFlKSk7DQogICAgICAgICAgICAgIHJldHVy biB0aGlzOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcGF1c2UoZSkgew0KICAgICAg ICAgICAgICBpZiAoJGEudW5kKGUpKSB0aGlzLnN0YXJ0KHsgcGF1c2U6ICEwIH0pOw0KICAg ICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjb25zdCB0ID0gdGhpcy5zcHJp bmdzOw0KICAgICAgICAgICAgICAgIFFhKFlhKGUpLCAoZSkgPT4gdFtlXS5wYXVzZSgpKTsN CiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gdGhpczsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIHJlc3VtZShlKSB7DQogICAgICAgICAgICAgIGlmICgkYS51 bmQoZSkpIHRoaXMuc3RhcnQoeyBwYXVzZTogITEgfSk7DQogICAgICAgICAgICAgIGVsc2Ug ew0KICAgICAgICAgICAgICAgIGNvbnN0IHQgPSB0aGlzLnNwcmluZ3M7DQogICAgICAgICAg ICAgICAgUWEoWWEoZSksIChlKSA9PiB0W2VdLnJlc3VtZSgpKTsNCiAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICByZXR1cm4gdGhpczsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIGVhY2goZSkgew0KICAgICAgICAgICAgICBHYSh0aGlzLnNwcmluZ3MsIGUpOw0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgX29uRnJhbWUoKSB7DQogICAgICAgICAgICAgIGNv bnN0IHsgb25TdGFydDogZSwgb25DaGFuZ2U6IHQsIG9uUmVzdDogbiB9ID0gdGhpcy5fZXZl bnRzLA0KICAgICAgICAgICAgICAgIHIgPSB0aGlzLl9hY3RpdmUuc2l6ZSA+IDAsDQogICAg ICAgICAgICAgICAgbyA9IHRoaXMuX2NoYW5nZWQuc2l6ZSA+IDA7DQogICAgICAgICAgICAg ICgociAmJiAhdGhpcy5fc3RhcnRlZCkgfHwgKG8gJiYgIXRoaXMuX3N0YXJ0ZWQpKSAmJg0K ICAgICAgICAgICAgICAgICgodGhpcy5fc3RhcnRlZCA9ICEwKSwNCiAgICAgICAgICAgICAg ICAgIFhhKGUsIChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGxldCBbdCwgbl0gPSBl Ow0KICAgICAgICAgICAgICAgICAgICAobi52YWx1ZSA9IHRoaXMuZ2V0KCkpLCB0KG4sIHRo aXMsIHRoaXMuX2l0ZW0pOw0KICAgICAgICAgICAgICAgICAgfSkpOw0KICAgICAgICAgICAg ICBjb25zdCBhID0gIXIgJiYgdGhpcy5fc3RhcnRlZCwNCiAgICAgICAgICAgICAgICBpID0g byB8fCAoYSAmJiBuLnNpemUpID8gdGhpcy5nZXQoKSA6IG51bGw7DQogICAgICAgICAgICAg IG8gJiYNCiAgICAgICAgICAgICAgICB0LnNpemUgJiYNCiAgICAgICAgICAgICAgICBYYSh0 LCAoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgbGV0IFt0LCBuXSA9IGU7DQogICAgICAg ICAgICAgICAgICAobi52YWx1ZSA9IGkpLCB0KG4sIHRoaXMsIHRoaXMuX2l0ZW0pOw0KICAg ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgIGEgJiYNCiAgICAgICAgICAgICAg ICAoKHRoaXMuX3N0YXJ0ZWQgPSAhMSksDQogICAgICAgICAgICAgICAgICBYYShuLCAoZSkg PT4gew0KICAgICAgICAgICAgICAgICAgICBsZXQgW3QsIG5dID0gZTsNCiAgICAgICAgICAg ICAgICAgICAgKG4udmFsdWUgPSBpKSwgdChuLCB0aGlzLCB0aGlzLl9pdGVtKTsNCiAgICAg ICAgICAgICAgICAgIH0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGV2ZW50T2Jz ZXJ2ZWQoZSkgew0KICAgICAgICAgICAgICBpZiAoImNoYW5nZSIgPT0gZS50eXBlKSB0aGlz Ll9jaGFuZ2VkLmFkZChlLnBhcmVudCksIGUuaWRsZSB8fCB0aGlzLl9hY3RpdmUuYWRkKGUu cGFyZW50KTsNCiAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKCJp ZGxlIiAhPSBlLnR5cGUpIHJldHVybjsNCiAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmUu ZGVsZXRlKGUucGFyZW50KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBQYS5v bkZyYW1lKHRoaXMuX29uRnJhbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH07DQog ICAgICAgIGZ1bmN0aW9uIE5zKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5h bGwodC5tYXAoKHQpID0+IFRzKGUsIHQpKSkudGhlbigodCkgPT4gdHMoZSwgdCkpOw0KICAg ICAgICB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIFRzKGUsIHQsIG4pIHsNCiAgICAgICAg ICBjb25zdCB7IGtleXM6IHIsIHRvOiBvLCBmcm9tOiBhLCBsb29wOiBpLCBvblJlc3Q6IGws IG9uUmVzb2x2ZTogcyB9ID0gdCwNCiAgICAgICAgICAgIHUgPSAkYS5vYmoodC5kZWZhdWx0 KSAmJiB0LmRlZmF1bHQ7DQogICAgICAgICAgaSAmJiAodC5sb29wID0gITEpLCAhMSA9PT0g byAmJiAodC50byA9IG51bGwpLCAhMSA9PT0gYSAmJiAodC5mcm9tID0gbnVsbCk7DQogICAg ICAgICAgY29uc3QgYyA9ICRhLmFycihvKSB8fCAkYS5mdW4obykgPyBvIDogdm9pZCAwOw0K ICAgICAgICAgIGMNCiAgICAgICAgICAgID8gKCh0LnRvID0gdm9pZCAwKSwgKHQub25SZXN0 ID0gdm9pZCAwKSwgdSAmJiAodS5vblJlc3QgPSB2b2lkIDApKQ0KICAgICAgICAgICAgOiBR YShfcywgKG4pID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgciA9IHRbbl07DQogICAgICAg ICAgICAgIGlmICgkYS5mdW4ocikpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBvID0gZS5f ZXZlbnRzW25dOw0KICAgICAgICAgICAgICAgICh0W25dID0gKGUpID0+IHsNCiAgICAgICAg ICAgICAgICAgIGxldCB7IGZpbmlzaGVkOiB0LCBjYW5jZWxsZWQ6IG4gfSA9IGU7DQogICAg ICAgICAgICAgICAgICBjb25zdCBhID0gby5nZXQocik7DQogICAgICAgICAgICAgICAgICBh ID8gKHQgfHwgKGEuZmluaXNoZWQgPSAhMSksIG4gJiYgKGEuY2FuY2VsbGVkID0gITApKSA6 IG8uc2V0KHIsIHsgdmFsdWU6IG51bGwsIGZpbmlzaGVkOiB0IHx8ICExLCBjYW5jZWxsZWQ6 IG4gfHwgITEgfSk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICB1 ICYmICh1W25dID0gdFtuXSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0K ICAgICAgICAgIGNvbnN0IGQgPSBlLl9zdGF0ZTsNCiAgICAgICAgICB0LnBhdXNlID09PSAh ZC5wYXVzZWQgPyAoKGQucGF1c2VkID0gdC5wYXVzZSksIGVpKHQucGF1c2UgPyBkLnBhdXNl UXVldWUgOiBkLnJlc3VtZVF1ZXVlKSkgOiBkLnBhdXNlZCAmJiAodC5wYXVzZSA9ICEwKTsN CiAgICAgICAgICBjb25zdCBmID0gKHIgfHwgT2JqZWN0LmtleXMoZS5zcHJpbmdzKSkubWFw KChuKSA9PiBlLnNwcmluZ3Nbbl0uc3RhcnQodCkpLA0KICAgICAgICAgICAgcCA9ICEwID09 PSB0LmNhbmNlbCB8fCAhMCA9PT0gRmwodCwgImNhbmNlbCIpOw0KICAgICAgICAgIChjIHx8 IChwICYmIGQuYXN5bmNJZCkpICYmDQogICAgICAgICAgICBmLnB1c2goDQogICAgICAgICAg ICAgIGVzKCsrZS5fbGFzdEFzeW5jSWQsIHsNCiAgICAgICAgICAgICAgICBwcm9wczogdCwN CiAgICAgICAgICAgICAgICBzdGF0ZTogZCwNCiAgICAgICAgICAgICAgICBhY3Rpb25zOiB7 DQogICAgICAgICAgICAgICAgICBwYXVzZTogcWEsDQogICAgICAgICAgICAgICAgICByZXN1 bWU6IHFhLA0KICAgICAgICAgICAgICAgICAgc3RhcnQodCwgbikgew0KICAgICAgICAgICAg ICAgICAgICBwID8gKGlzKGQsIGUuX2xhc3RBc3luY0lkKSwgbihvcyhlKSkpIDogKCh0Lm9u UmVzdCA9IGwpLCBuKGFzKGMsIHQsIGQsIGUpKSk7DQogICAgICAgICAgICAgICAgICB9LA0K ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICApLA0K ICAgICAgICAgICAgZC5wYXVzZWQgJiYNCiAgICAgICAgICAgIChhd2FpdCBuZXcgUHJvbWlz ZSgoZSkgPT4gew0KICAgICAgICAgICAgICBkLnJlc3VtZVF1ZXVlLmFkZChlKTsNCiAgICAg ICAgICAgIH0pKTsNCiAgICAgICAgICBjb25zdCBoID0gdHMoZSwgYXdhaXQgUHJvbWlzZS5h bGwoZikpOw0KICAgICAgICAgIGlmIChpICYmIGguZmluaXNoZWQgJiYgKCFuIHx8ICFoLm5v b3ApKSB7DQogICAgICAgICAgICBjb25zdCBuID0gd3ModCwgaSwgbyk7DQogICAgICAgICAg ICBpZiAobikgcmV0dXJuIElzKGUsIFtuXSksIFRzKGUsIG4sICEwKTsNCiAgICAgICAgICB9 DQogICAgICAgICAgcmV0dXJuIHMgJiYgUGEuYmF0Y2hlZFVwZGF0ZXMoKCkgPT4gcyhoLCBl LCBlLml0ZW0pKSwgaDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBBcyhlLCB0KSB7 DQogICAgICAgICAgY29uc3QgbiA9IHsgLi4uZS5zcHJpbmdzIH07DQogICAgICAgICAgcmV0 dXJuICgNCiAgICAgICAgICAgIHQgJiYNCiAgICAgICAgICAgIFFhKFlhKHQpLCAoZSkgPT4g ew0KICAgICAgICAgICAgICAkYS51bmQoZS5rZXlzKSAmJiAoZSA9IHhzKGUpKSwgJGEub2Jq KGUudG8pIHx8IChlID0geyAuLi5lLCB0bzogdm9pZCAwIH0pLCBqcyhuLCBlLCAoZSkgPT4g enMoZSkpOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICBNcyhlLCBuKSwNCiAgICAg ICAgICAgIG4NCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE1z KGUsIHQpIHsNCiAgICAgICAgICBHYSh0LCAodCwgbikgPT4gew0KICAgICAgICAgICAgZS5z cHJpbmdzW25dIHx8ICgoZS5zcHJpbmdzW25dID0gdCksIEdpKHQsIGUpKTsNCiAgICAgICAg ICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB6cyhlLCB0KSB7DQogICAgICAg ICAgY29uc3QgbiA9IG5ldyB5cygpOw0KICAgICAgICAgIHJldHVybiAobi5rZXkgPSBlKSwg dCAmJiBHaShuLCB0KSwgbjsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBqcyhlLCB0 LCBuKSB7DQogICAgICAgICAgdC5rZXlzICYmDQogICAgICAgICAgICBRYSh0LmtleXMsIChy KSA9PiB7DQogICAgICAgICAgICAgIChlW3JdIHx8IChlW3JdID0gbihyKSkpLl9wcmVwYXJl Tm9kZSh0KTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IElzKGUsIHQpIHsNCiAgICAgICAgICBRYSh0LCAodCkgPT4gew0KICAgICAgICAgICAganMo ZS5zcHJpbmdzLCB0LCAodCkgPT4genModCwgZSkpOw0KICAgICAgICAgIH0pOw0KICAgICAg ICB9DQogICAgICAgIHZhciBMcywNCiAgICAgICAgICBGcywNCiAgICAgICAgICBCcyA9IChl KSA9PiB7DQogICAgICAgICAgICBsZXQgeyBjaGlsZHJlbjogbiwgLi4uciB9ID0gZTsNCiAg ICAgICAgICAgIGNvbnN0IG8gPSAoMCwgdC51c2VDb250ZXh0KShEcyksDQogICAgICAgICAg ICAgIGEgPSByLnBhdXNlIHx8ICEhby5wYXVzZSwNCiAgICAgICAgICAgICAgaSA9IHIuaW1t ZWRpYXRlIHx8ICEhby5pbW1lZGlhdGU7DQogICAgICAgICAgICByID0gKGZ1bmN0aW9uIChl LCBuKSB7DQogICAgICAgICAgICAgIGNvbnN0IFtyXSA9ICgwLCB0LnVzZVN0YXRlKSgoKSA9 PiAoeyBpbnB1dHM6IG4sIHJlc3VsdDogZSgpIH0pKSwNCiAgICAgICAgICAgICAgICBvID0g KDAsIHQudXNlUmVmKSgpLA0KICAgICAgICAgICAgICAgIGEgPSBvLmN1cnJlbnQ7DQogICAg ICAgICAgICAgIGxldCBpID0gYTsNCiAgICAgICAgICAgICAgaWYgKGkpIHsNCiAgICAgICAg ICAgICAgICBjb25zdCB0ID0gQm9vbGVhbigNCiAgICAgICAgICAgICAgICAgIG4gJiYNCiAg ICAgICAgICAgICAgICAgIGkuaW5wdXRzICYmDQogICAgICAgICAgICAgICAgICAoZnVuY3Rp b24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGUubGVuZ3RoICE9PSB0Lmxl bmd0aCkgcmV0dXJuICExOw0KICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsg biA8IGUubGVuZ3RoOyBuKyspIGlmIChlW25dICE9PSB0W25dKSByZXR1cm4gITE7DQogICAg ICAgICAgICAgICAgICAgIHJldHVybiAhMDsNCiAgICAgICAgICAgICAgICAgIH0pKG4sIGku aW5wdXRzKQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgdCB8fCAoaSA9 IHsgaW5wdXRzOiBuLCByZXN1bHQ6IGUoKSB9KTsNCiAgICAgICAgICAgICAgfSBlbHNlIGkg PSByOw0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICgwLCB0LnVz ZUVmZmVjdCkoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgKG8uY3VycmVudCA9IGkpLCBh ID09IHIgJiYgKHIuaW5wdXRzID0gci5yZXN1bHQgPSB2b2lkIDApOw0KICAgICAgICAgICAg ICAgIH0sIFtpXSksDQogICAgICAgICAgICAgICAgaS5yZXN1bHQNCiAgICAgICAgICAgICAg KTsNCiAgICAgICAgICAgIH0pKCgpID0+ICh7IHBhdXNlOiBhLCBpbW1lZGlhdGU6IGkgfSks IFthLCBpXSk7DQogICAgICAgICAgICBjb25zdCB7IFByb3ZpZGVyOiBsIH0gPSBEczsNCiAg ICAgICAgICAgIHJldHVybiB0LmNyZWF0ZUVsZW1lbnQobCwgeyB2YWx1ZTogciB9LCBuKTsN CiAgICAgICAgICB9LA0KICAgICAgICAgIERzID0gKChMcyA9IEJzKSwgKEZzID0ge30pLCBP YmplY3QuYXNzaWduKExzLCB0LmNyZWF0ZUNvbnRleHQoRnMpKSwgKExzLlByb3ZpZGVyLl9j b250ZXh0ID0gTHMpLCAoTHMuQ29uc3VtZXIuX2NvbnRleHQgPSBMcyksIExzKTsNCiAgICAg ICAgKEJzLlByb3ZpZGVyID0gRHMuUHJvdmlkZXIpLCAoQnMuQ29uc3VtZXIgPSBEcy5Db25z dW1lcik7DQogICAgICAgIHZhciBVcyA9ICgpID0+IHsNCiAgICAgICAgICBjb25zdCBlID0g W10sDQogICAgICAgICAgICB0ID0gZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgZGwo IiIuY29uY2F0KHNsLCAnRGlyZWN0bHkgY2FsbGluZyBzdGFydCBpbnN0ZWFkIG9mIHVzaW5n IHRoZSBhcGkgb2JqZWN0IGlzIGRlcHJlY2F0ZWQgaW4gdjkgKHVzZSAiLnN0YXJ0IiBpbnN0 ZWFkKSwgdGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gbGF0ZXIgMC5YLjAgdmVyc2lvbnMnKSk7 DQogICAgICAgICAgICAgIGNvbnN0IHIgPSBbXTsNCiAgICAgICAgICAgICAgcmV0dXJuICgN CiAgICAgICAgICAgICAgICBRYShlLCAoZSwgbykgPT4gew0KICAgICAgICAgICAgICAgICAg aWYgKCRhLnVuZCh0KSkgci5wdXNoKGUuc3RhcnQoKSk7DQogICAgICAgICAgICAgICAgICBl bHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IG4odCwgZSwgbyk7DQogICAg ICAgICAgICAgICAgICAgIGEgJiYgci5wdXNoKGUuc3RhcnQoYSkpOw0KICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgIHINCiAgICAg ICAgICAgICAgKTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgKHQuY3VycmVudCA9IGUp LA0KICAgICAgICAgICAgKHQuYWRkID0gZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAg ZS5pbmNsdWRlcyh0KSB8fCBlLnB1c2godCk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICh0LmRlbGV0ZSA9IGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgIGNvbnN0IG4g PSBlLmluZGV4T2YodCk7DQogICAgICAgICAgICAgIH5uICYmIGUuc3BsaWNlKG4sIDEpOw0K ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAodC5wYXVzZSA9IGZ1bmN0aW9uICgpIHsN CiAgICAgICAgICAgICAgcmV0dXJuIFFhKGUsIChlKSA9PiBlLnBhdXNlKC4uLmFyZ3VtZW50 cykpLCB0aGlzOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICAodC5yZXN1bWUgPSBm dW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiBRYShlLCAoZSkgPT4gZS5yZXN1 bWUoLi4uYXJndW1lbnRzKSksIHRoaXM7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICh0LnNldCA9IGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgIFFhKGUsIChlLCBuKSA9 PiB7DQogICAgICAgICAgICAgICAgY29uc3QgciA9ICRhLmZ1bih0KSA/IHQobiwgZSkgOiB0 Ow0KICAgICAgICAgICAgICAgIHIgJiYgZS5zZXQocik7DQogICAgICAgICAgICAgIH0pOw0K ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAodC5zdGFydCA9IGZ1bmN0aW9uICh0KSB7 DQogICAgICAgICAgICAgIGNvbnN0IG4gPSBbXTsNCiAgICAgICAgICAgICAgcmV0dXJuICgN CiAgICAgICAgICAgICAgICBRYShlLCAoZSwgcikgPT4gew0KICAgICAgICAgICAgICAgICAg aWYgKCRhLnVuZCh0KSkgbi5wdXNoKGUuc3RhcnQoKSk7DQogICAgICAgICAgICAgICAgICBl bHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbyA9IHRoaXMuX2dldFByb3BzKHQs IGUsIHIpOw0KICAgICAgICAgICAgICAgICAgICBvICYmIG4ucHVzaChlLnN0YXJ0KG8pKTsN CiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICBuDQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICh0LnN0b3AgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiBRYShlLCAo ZSkgPT4gZS5zdG9wKC4uLmFyZ3VtZW50cykpLCB0aGlzOw0KICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAodC51cGRhdGUgPSBmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICBy ZXR1cm4gUWEoZSwgKGUsIG4pID0+IGUudXBkYXRlKHRoaXMuX2dldFByb3BzKHQsIGUsIG4p KSksIHRoaXM7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICBjb25zdCBuID0gZnVuY3Rp b24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgIHJldHVybiAkYS5mdW4oZSkgPyBlKG4sIHQp IDogZTsNCiAgICAgICAgICB9Ow0KICAgICAgICAgIHJldHVybiAodC5fZ2V0UHJvcHMgPSBu KSwgdDsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gV3MoZSwgbiwgcikgew0KICAg ICAgICAgIGNvbnN0IG8gPSAkYS5mdW4obikgJiYgbjsNCiAgICAgICAgICBvICYmICFyICYm IChyID0gW10pOw0KICAgICAgICAgIGNvbnN0IGEgPSAoMCwgdC51c2VNZW1vKSgoKSA9PiAo byB8fCAzID09IGFyZ3VtZW50cy5sZW5ndGggPyBVcygpIDogdm9pZCAwKSwgW10pLA0KICAg ICAgICAgICAgaSA9ICgwLCB0LnVzZVJlZikoMCksDQogICAgICAgICAgICBsID0gbWwoKSwN CiAgICAgICAgICAgIHMgPSAoMCwgdC51c2VNZW1vKSgNCiAgICAgICAgICAgICAgKCkgPT4g KHsNCiAgICAgICAgICAgICAgICBjdHJsczogW10sDQogICAgICAgICAgICAgICAgcXVldWU6 IFtdLA0KICAgICAgICAgICAgICAgIGZsdXNoKGUsIHQpIHsNCiAgICAgICAgICAgICAgICAg IGNvbnN0IG4gPSBBcyhlLCB0KTsNCiAgICAgICAgICAgICAgICAgIHJldHVybiBpLmN1cnJl bnQgPiAwICYmICFzLnF1ZXVlLmxlbmd0aCAmJiAhT2JqZWN0LmtleXMobikuc29tZSgodCkg PT4gIWUuc3ByaW5nc1t0XSkNCiAgICAgICAgICAgICAgICAgICAgPyBOcyhlLCB0KQ0KICAg ICAgICAgICAgICAgICAgICA6IG5ldyBQcm9taXNlKChyKSA9PiB7DQogICAgICAgICAgICAg ICAgICAgICAgTXMoZSwgbiksDQogICAgICAgICAgICAgICAgICAgICAgICBzLnF1ZXVlLnB1 c2goKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICByKE5zKGUsIHQpKTsNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgbCgp Ow0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgW10NCiAgICAgICAgICAgICksDQogICAgICAg ICAgICB1ID0gKDAsIHQudXNlUmVmKShbLi4ucy5jdHJsc10pLA0KICAgICAgICAgICAgYyA9 IFtdLA0KICAgICAgICAgICAgZCA9IHlsKGUpIHx8IDA7DQogICAgICAgICAgZnVuY3Rpb24g ZihlLCB0KSB7DQogICAgICAgICAgICBmb3IgKGxldCByID0gZTsgciA8IHQ7IHIrKykgew0K ICAgICAgICAgICAgICBjb25zdCBlID0gdS5jdXJyZW50W3JdIHx8ICh1LmN1cnJlbnRbcl0g PSBuZXcgT3MobnVsbCwgcy5mbHVzaCkpLA0KICAgICAgICAgICAgICAgIHQgPSBvID8gbyhy LCBlKSA6IG5bcl07DQogICAgICAgICAgICAgIHQgJiYgKGNbcl0gPSBTcyh0KSk7DQogICAg ICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgICgwLCB0LnVzZU1lbW8pKCgpID0+ IHsNCiAgICAgICAgICAgIFFhKHUuY3VycmVudC5zbGljZShlLCBkKSwgKGUpID0+IHsNCiAg ICAgICAgICAgICAgS2woZSwgYSksIGUuc3RvcCghMCk7DQogICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgKHUuY3VycmVudC5sZW5ndGggPSBlKSwNCiAgICAgICAgICAgICAgZihk LCBlKTsNCiAgICAgICAgICB9LCBbZV0pLA0KICAgICAgICAgICAgKDAsIHQudXNlTWVtbyko KCkgPT4gew0KICAgICAgICAgICAgICBmKDAsIE1hdGgubWluKGQsIGUpKTsNCiAgICAgICAg ICAgIH0sIHIpOw0KICAgICAgICAgIGNvbnN0IHAgPSB1LmN1cnJlbnQubWFwKChlLCB0KSA9 PiBBcyhlLCBjW3RdKSksDQogICAgICAgICAgICBoID0gKDAsIHQudXNlQ29udGV4dCkoQnMp LA0KICAgICAgICAgICAgbSA9IHlsKGgpLA0KICAgICAgICAgICAgZyA9IGggIT09IG0gJiYg cWwoaCk7DQogICAgICAgICAgcGwoKCkgPT4gew0KICAgICAgICAgICAgaS5jdXJyZW50Kyss IChzLmN0cmxzID0gdS5jdXJyZW50KTsNCiAgICAgICAgICAgIGNvbnN0IHsgcXVldWU6IGUg fSA9IHM7DQogICAgICAgICAgICBlLmxlbmd0aCAmJiAoKHMucXVldWUgPSBbXSksIFFhKGUs IChlKSA9PiBlKCkpKSwNCiAgICAgICAgICAgICAgUWEodS5jdXJyZW50LCAoZSwgdCkgPT4g ew0KICAgICAgICAgICAgICAgIG51bGwgPT09IGEgfHwgdm9pZCAwID09PSBhIHx8IGEuYWRk KGUpLCBnICYmIGUuc3RhcnQoeyBkZWZhdWx0OiBoIH0pOw0KICAgICAgICAgICAgICAgIGNv bnN0IG4gPSBjW3RdOw0KICAgICAgICAgICAgICAgIG4gJiYgKFFsKGUsIG4ucmVmKSwgZS5y ZWYgPyBlLnF1ZXVlLnB1c2gobikgOiBlLnN0YXJ0KG4pKTsNCiAgICAgICAgICAgICAgfSk7 DQogICAgICAgICAgfSksDQogICAgICAgICAgICBnbCgoKSA9PiAoKSA9PiB7DQogICAgICAg ICAgICAgIFFhKHMuY3RybHMsIChlKSA9PiBlLnN0b3AoITApKTsNCiAgICAgICAgICAgIH0p Ow0KICAgICAgICAgIGNvbnN0IHYgPSBwLm1hcCgoZSkgPT4gKHsgLi4uZSB9KSk7DQogICAg ICAgICAgcmV0dXJuIGEgPyBbdiwgYV0gOiB2Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIFZzKGUsIHQpIHsNCiAgICAgICAgICBjb25zdCBuID0gJGEuZnVuKGUpLA0KICAgICAg ICAgICAgcmVzdWx0ID0gV3MoMSwgbiA/IGUgOiBbZV0sIG4gPyB0IHx8IFtdIDogdCk7DQoN CiAgICAgICAgICBsZXQgciwgbzsNCg0KICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJl c3VsdCkgJiYgQXJyYXkuaXNBcnJheShyZXN1bHRbMF0pICYmIHJlc3VsdFswXS5sZW5ndGgg PT09IDEpIHsNCiAgICAgICAgICAgIFtyXSA9IHJlc3VsdFswXTsNCiAgICAgICAgICAgIG8g PSByZXN1bHRbMV07DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGNvbnNvbGUu ZXJyb3IoIlVuZXhwZWN0ZWQgc3RydWN0dXJlIGZyb20gV3MgZnVuY3Rpb246IiwgcmVzdWx0 KTsNCg0KICAgICAgICAgIH0NCg0KICAgICAgICAgIHJldHVybiBuIHx8IGFyZ3VtZW50cy5s ZW5ndGggPT09IDIgPyBbciwgb10gOiByOw0KICAgICAgICB9DQogICAgICAgIHZhciBIcyA9 IGNsYXNzIGV4dGVuZHMgZHMgew0KICAgICAgICAgIGNvbnN0cnVjdG9yKGUsIHQpIHsNCiAg ICAgICAgICAgIHN1cGVyKCksICh0aGlzLnNvdXJjZSA9IGUpLCAodGhpcy5pZGxlID0gITAp LCAodGhpcy5fYWN0aXZlID0gbmV3IFNldCgpKSwgKHRoaXMuY2FsYyA9IE1pKC4uLnQpKTsN CiAgICAgICAgICAgIGNvbnN0IG4gPSB0aGlzLl9nZXQoKSwNCiAgICAgICAgICAgICAgciA9 IE5sKG4pOw0KICAgICAgICAgICAgeGwodGhpcywgci5jcmVhdGUobikpOw0KICAgICAgICAg IH0NCiAgICAgICAgICBhZHZhbmNlKGUpIHsNCiAgICAgICAgICAgIGNvbnN0IHQgPSB0aGlz Ll9nZXQoKTsNCiAgICAgICAgICAgIEthKHQsIHRoaXMuZ2V0KCkpIHx8ICh3bCh0aGlzKS5z ZXRWYWx1ZSh0KSwgdGhpcy5fb25DaGFuZ2UodCwgdGhpcy5pZGxlKSksICF0aGlzLmlkbGUg JiYgJHModGhpcy5fYWN0aXZlKSAmJiBLcyh0aGlzKTsNCiAgICAgICAgICB9DQogICAgICAg ICAgX2dldCgpIHsNCiAgICAgICAgICAgIGNvbnN0IGUgPSAkYS5hcnIodGhpcy5zb3VyY2Up ID8gdGhpcy5zb3VyY2UubWFwKEhpKSA6IFlhKEhpKHRoaXMuc291cmNlKSk7DQogICAgICAg ICAgICByZXR1cm4gdGhpcy5jYWxjKC4uLmUpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBf c3RhcnQoKSB7DQogICAgICAgICAgICB0aGlzLmlkbGUgJiYNCiAgICAgICAgICAgICAgISRz KHRoaXMuX2FjdGl2ZSkgJiYNCiAgICAgICAgICAgICAgKCh0aGlzLmlkbGUgPSAhMSksDQog ICAgICAgICAgICAgICAgUWEoU2wodGhpcyksIChlKSA9PiB7DQogICAgICAgICAgICAgICAg ICBlLmRvbmUgPSAhMTsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICBS YS5za2lwQW5pbWF0aW9uID8gKFBhLmJhdGNoZWRVcGRhdGVzKCgpID0+IHRoaXMuYWR2YW5j ZSgpKSwgS3ModGhpcykpIDogY2kuc3RhcnQodGhpcykpOw0KICAgICAgICAgIH0NCiAgICAg ICAgICBfYXR0YWNoKCkgew0KICAgICAgICAgICAgbGV0IGUgPSAxOw0KICAgICAgICAgICAg UWEoWWEodGhpcy5zb3VyY2UpLCAodCkgPT4gew0KICAgICAgICAgICAgICBWaSh0KSAmJiBH aSh0LCB0aGlzKSwgdXModCkgJiYgKHQuaWRsZSB8fCB0aGlzLl9hY3RpdmUuYWRkKHQpLCAo ZSA9IE1hdGgubWF4KGUsIHQucHJpb3JpdHkgKyAxKSkpOw0KICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICh0aGlzLnByaW9yaXR5ID0gZSksDQogICAgICAgICAgICAgIHRoaXMu X3N0YXJ0KCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIF9kZXRhY2goKSB7DQogICAgICAg ICAgICBRYShZYSh0aGlzLnNvdXJjZSksIChlKSA9PiB7DQogICAgICAgICAgICAgIFZpKGUp ICYmIFlpKGUsIHRoaXMpOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIHRoaXMu X2FjdGl2ZS5jbGVhcigpLA0KICAgICAgICAgICAgICBLcyh0aGlzKTsNCiAgICAgICAgICB9 DQogICAgICAgICAgZXZlbnRPYnNlcnZlZChlKSB7DQogICAgICAgICAgICAiY2hhbmdlIiA9 PSBlLnR5cGUNCiAgICAgICAgICAgICAgPyBlLmlkbGUNCiAgICAgICAgICAgICAgICA/IHRo aXMuYWR2YW5jZSgpDQogICAgICAgICAgICAgICAgOiAodGhpcy5fYWN0aXZlLmFkZChlLnBh cmVudCksIHRoaXMuX3N0YXJ0KCkpDQogICAgICAgICAgICAgIDogImlkbGUiID09IGUudHlw ZQ0KICAgICAgICAgICAgICAgID8gdGhpcy5fYWN0aXZlLmRlbGV0ZShlLnBhcmVudCkNCiAg ICAgICAgICAgICAgICA6ICJwcmlvcml0eSIgPT0gZS50eXBlICYmICh0aGlzLnByaW9yaXR5 ID0gWWEodGhpcy5zb3VyY2UpLnJlZHVjZSgoZSwgdCkgPT4gTWF0aC5tYXgoZSwgKHVzKHQp ID8gdC5wcmlvcml0eSA6IDApICsgMSksIDApKTsNCiAgICAgICAgICB9DQogICAgICAgIH07 DQogICAgICAgIGZ1bmN0aW9uIHFzKGUpIHsNCiAgICAgICAgICByZXR1cm4gITEgIT09IGUu aWRsZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiAkcyhlKSB7DQogICAgICAgICAg cmV0dXJuICFlLnNpemUgfHwgQXJyYXkuZnJvbShlKS5ldmVyeShxcyk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gS3MoZSkgew0KICAgICAgICAgIGUuaWRsZSB8fA0KICAgICAg ICAgICAgKChlLmlkbGUgPSAhMCksDQogICAgICAgICAgICAgIFFhKFNsKGUpLCAoZSkgPT4g ew0KICAgICAgICAgICAgICAgIGUuZG9uZSA9ICEwOw0KICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgJGkoZSwgeyB0eXBlOiAiaWRsZSIsIHBhcmVudDogZSB9KSk7DQogICAg ICAgIH0NCiAgICAgICAgUmEuYXNzaWduKHsgY3JlYXRlU3RyaW5nSW50ZXJwb2xhdG9yOiBs bCwgdG86IChlLCB0KSA9PiBuZXcgSHMoZSwgdCkgfSk7DQogICAgICAgIGNpLmFkdmFuY2U7 DQogICAgICAgIHZhciBRcyA9IC9eLS0vOw0KICAgICAgICBmdW5jdGlvbiBHcyhlLCB0KSB7 DQogICAgICAgICAgcmV0dXJuIG51bGwgPT0gdCB8fCAiYm9vbGVhbiIgPT09IHR5cGVvZiB0 IHx8ICIiID09PSB0ID8gIiIgOiAibnVtYmVyIiAhPT0gdHlwZW9mIHQgfHwgMCA9PT0gdCB8 fCBRcy50ZXN0KGUpIHx8IChYcy5oYXNPd25Qcm9wZXJ0eShlKSAmJiBYc1tlXSkgPyAoIiIg KyB0KS50cmltKCkgOiB0ICsgInB4IjsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgWXMgPSB7 fTsNCiAgICAgICAgdmFyIFhzID0gew0KICAgICAgICAgIGFuaW1hdGlvbkl0ZXJhdGlvbkNv dW50OiAhMCwNCiAgICAgICAgICBib3JkZXJJbWFnZU91dHNldDogITAsDQogICAgICAgICAg Ym9yZGVySW1hZ2VTbGljZTogITAsDQogICAgICAgICAgYm9yZGVySW1hZ2VXaWR0aDogITAs DQogICAgICAgICAgYm94RmxleDogITAsDQogICAgICAgICAgYm94RmxleEdyb3VwOiAhMCwN CiAgICAgICAgICBib3hPcmRpbmFsR3JvdXA6ICEwLA0KICAgICAgICAgIGNvbHVtbkNvdW50 OiAhMCwNCiAgICAgICAgICBjb2x1bW5zOiAhMCwNCiAgICAgICAgICBmbGV4OiAhMCwNCiAg ICAgICAgICBmbGV4R3JvdzogITAsDQogICAgICAgICAgZmxleFBvc2l0aXZlOiAhMCwNCiAg ICAgICAgICBmbGV4U2hyaW5rOiAhMCwNCiAgICAgICAgICBmbGV4TmVnYXRpdmU6ICEwLA0K ICAgICAgICAgIGZsZXhPcmRlcjogITAsDQogICAgICAgICAgZ3JpZFJvdzogITAsDQogICAg ICAgICAgZ3JpZFJvd0VuZDogITAsDQogICAgICAgICAgZ3JpZFJvd1NwYW46ICEwLA0KICAg ICAgICAgIGdyaWRSb3dTdGFydDogITAsDQogICAgICAgICAgZ3JpZENvbHVtbjogITAsDQog ICAgICAgICAgZ3JpZENvbHVtbkVuZDogITAsDQogICAgICAgICAgZ3JpZENvbHVtblNwYW46 ICEwLA0KICAgICAgICAgIGdyaWRDb2x1bW5TdGFydDogITAsDQogICAgICAgICAgZm9udFdl aWdodDogITAsDQogICAgICAgICAgbGluZUNsYW1wOiAhMCwNCiAgICAgICAgICBsaW5lSGVp Z2h0OiAhMCwNCiAgICAgICAgICBvcGFjaXR5OiAhMCwNCiAgICAgICAgICBvcmRlcjogITAs DQogICAgICAgICAgb3JwaGFuczogITAsDQogICAgICAgICAgdGFiU2l6ZTogITAsDQogICAg ICAgICAgd2lkb3dzOiAhMCwNCiAgICAgICAgICB6SW5kZXg6ICEwLA0KICAgICAgICAgIHpv b206ICEwLA0KICAgICAgICAgIGZpbGxPcGFjaXR5OiAhMCwNCiAgICAgICAgICBmbG9vZE9w YWNpdHk6ICEwLA0KICAgICAgICAgIHN0b3BPcGFjaXR5OiAhMCwNCiAgICAgICAgICBzdHJv a2VEYXNoYXJyYXk6ICEwLA0KICAgICAgICAgIHN0cm9rZURhc2hvZmZzZXQ6ICEwLA0KICAg ICAgICAgIHN0cm9rZU1pdGVybGltaXQ6ICEwLA0KICAgICAgICAgIHN0cm9rZU9wYWNpdHk6 ICEwLA0KICAgICAgICAgIHN0cm9rZVdpZHRoOiAhMCwNCiAgICAgICAgfSwNCiAgICAgICAg ICBacyA9IFsiV2Via2l0IiwgIk1zIiwgIk1veiIsICJPIl07DQogICAgICAgIFhzID0gT2Jq ZWN0LmtleXMoWHMpLnJlZHVjZSgoZSwgdCkgPT4gKFpzLmZvckVhY2goKG4pID0+IChlWygo ZSwgdCkgPT4gZSArIHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0LnN1YnN0cmluZygx KSkobiwgdCldID0gZVt0XSkpLCBlKSwgWHMpOw0KICAgICAgICB2YXIgSnMgPSAvXihtYXRy aXh8dHJhbnNsYXRlfHNjYWxlfHJvdGF0ZXxza2V3KS8sDQogICAgICAgICAgZXUgPSAvXih0 cmFuc2xhdGUpLywNCiAgICAgICAgICB0dSA9IC9eKHJvdGF0ZXxza2V3KS8sDQogICAgICAg ICAgbnUgPSAoZSwgdCkgPT4gKCRhLm51bShlKSAmJiAwICE9PSBlID8gZSArIHQgOiBlKSwN CiAgICAgICAgICBydSA9IChlLCB0KSA9PiAoJGEuYXJyKGUpID8gZS5ldmVyeSgoZSkgPT4g cnUoZSwgdCkpIDogJGEubnVtKGUpID8gZSA9PT0gdCA6IHBhcnNlRmxvYXQoZSkgPT09IHQp LA0KICAgICAgICAgIG91ID0gY2xhc3MgZXh0ZW5kcyBfbCB7DQogICAgICAgICAgICBjb25z dHJ1Y3RvcihlKSB7DQogICAgICAgICAgICAgIGxldCB7IHg6IHQsIHk6IG4sIHo6IHIsIC4u Lm8gfSA9IGU7DQogICAgICAgICAgICAgIGNvbnN0IGEgPSBbXSwNCiAgICAgICAgICAgICAg ICBpID0gW107DQogICAgICAgICAgICAgICh0IHx8IG4gfHwgcikgJiYgKGEucHVzaChbdCB8 fCAwLCBuIHx8IDAsIHIgfHwgMF0pLCBpLnB1c2goKGUpID0+IFsidHJhbnNsYXRlM2QoIi5j b25jYXQoZS5tYXAoKGUpID0+IG51KGUsICJweCIpKS5qb2luKCIsIiksICIpIiksIHJ1KGUs IDApXSkpLA0KICAgICAgICAgICAgICAgIEdhKG8sIChlLCB0KSA9PiB7DQogICAgICAgICAg ICAgICAgICBpZiAoInRyYW5zZm9ybSIgPT09IHQpIGEucHVzaChbZSB8fCAiIl0pLCBpLnB1 c2goKGUpID0+IFtlLCAiIiA9PT0gZV0pOw0KICAgICAgICAgICAgICAgICAgZWxzZSBpZiAo SnMudGVzdCh0KSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoKGRlbGV0ZSBvW3RdLCAk YS51bmQoZSkpKSByZXR1cm47DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBldS50 ZXN0KHQpID8gInB4IiA6IHR1LnRlc3QodCkgPyAiZGVnIiA6ICIiOw0KICAgICAgICAgICAg ICAgICAgICBhLnB1c2goWWEoZSkpLA0KICAgICAgICAgICAgICAgICAgICAgIGkucHVzaCgN CiAgICAgICAgICAgICAgICAgICAgICAgICJyb3RhdGUzZCIgPT09IHQNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgPyAoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBbdCwgciwgbywgYV0gPSBlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBbInJvdGF0ZTNkKCIuY29uY2F0KHQsICIsIikuY29uY2F0KHIsICIsIikuY29uY2F0 KG8sICIsIikuY29uY2F0KG51KGEsIG4pLCAiKSIpLCBydShhLCAwKV07DQogICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoZSkgPT4g WyIiLmNvbmNhdCh0LCAiKCIpLmNvbmNhdChlLm1hcCgoZSkgPT4gbnUoZSwgbikpLmpvaW4o IiwiKSwgIikiKSwgcnUoZSwgdC5zdGFydHNXaXRoKCJzY2FsZSIpID8gMSA6IDApXQ0KICAg ICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgfSksDQogICAgICAgICAgICAgICAgYS5sZW5ndGggJiYgKG8udHJhbnNmb3JtID0g bmV3IGF1KGEsIGkpKSwNCiAgICAgICAgICAgICAgICBzdXBlcihvKTsNCiAgICAgICAgICAg IH0NCiAgICAgICAgICB9LA0KICAgICAgICAgIGF1ID0gY2xhc3MgZXh0ZW5kcyBLaSB7DQog ICAgICAgICAgICBjb25zdHJ1Y3RvcihlLCB0KSB7DQogICAgICAgICAgICAgIHN1cGVyKCks ICh0aGlzLmlucHV0cyA9IGUpLCAodGhpcy50cmFuc2Zvcm1zID0gdCksICh0aGlzLl92YWx1 ZSA9IG51bGwpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0KCkgew0KICAgICAg ICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUgfHwgKHRoaXMuX3ZhbHVlID0gdGhpcy5fZ2V0 KCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX2dldCgpIHsNCiAgICAgICAgICAg ICAgbGV0IGUgPSAiIiwNCiAgICAgICAgICAgICAgICB0ID0gITA7DQogICAgICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAgICAgUWEodGhpcy5pbnB1dHMsIChuLCByKSA9PiB7 DQogICAgICAgICAgICAgICAgICBjb25zdCBvID0gSGkoblswXSksDQogICAgICAgICAgICAg ICAgICAgIFthLCBpXSA9IHRoaXMudHJhbnNmb3Jtc1tyXSgkYS5hcnIobykgPyBvIDogbi5t YXAoSGkpKTsNCiAgICAgICAgICAgICAgICAgIChlICs9ICIgIiArIGEpLCAodCA9IHQgJiYg aSk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgdCA/ICJub25lIiA6 IGUNCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9ic2Vy dmVyQWRkZWQoZSkgew0KICAgICAgICAgICAgICAxID09IGUgJiYgUWEodGhpcy5pbnB1dHMs IChlKSA9PiBRYShlLCAoZSkgPT4gVmkoZSkgJiYgR2koZSwgdGhpcykpKTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIG9ic2VydmVyUmVtb3ZlZChlKSB7DQogICAgICAgICAgICAg IDAgPT0gZSAmJiBRYSh0aGlzLmlucHV0cywgKGUpID0+IFFhKGUsIChlKSA9PiBWaShlKSAm JiBZaShlLCB0aGlzKSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZXZlbnRPYnNl cnZlZChlKSB7DQogICAgICAgICAgICAgICJjaGFuZ2UiID09IGUudHlwZSAmJiAodGhpcy5f dmFsdWUgPSBudWxsKSwgJGkodGhpcywgZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAg fTsNCiAgICAgICAgUmEuYXNzaWduKHsNCiAgICAgICAgICBiYXRjaGVkVXBkYXRlczogRm8u dW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsDQogICAgICAgICAgY3JlYXRlU3RyaW5nSW50ZXJw b2xhdG9yOiBsbCwNCiAgICAgICAgICBjb2xvcnM6IHsNCiAgICAgICAgICAgIHRyYW5zcGFy ZW50OiAwLA0KICAgICAgICAgICAgYWxpY2VibHVlOiA0MDQyODUwMzAzLA0KICAgICAgICAg ICAgYW50aXF1ZXdoaXRlOiA0MjA5NzYwMjU1LA0KICAgICAgICAgICAgYXF1YTogMTY3Nzcy MTUsDQogICAgICAgICAgICBhcXVhbWFyaW5lOiAyMTQ3NDcyNjM5LA0KICAgICAgICAgICAg YXp1cmU6IDQwNDMzMDkwNTUsDQogICAgICAgICAgICBiZWlnZTogNDEyNjUzMDgxNSwNCiAg ICAgICAgICAgIGJpc3F1ZTogNDI5MzE4MjcxOSwNCiAgICAgICAgICAgIGJsYWNrOiAyNTUs DQogICAgICAgICAgICBibGFuY2hlZGFsbW9uZDogNDI5MzY0Mzc3NSwNCiAgICAgICAgICAg IGJsdWU6IDY1NTM1LA0KICAgICAgICAgICAgYmx1ZXZpb2xldDogMjMxODEzMTk2NywNCiAg ICAgICAgICAgIGJyb3duOiAyNzcxMDA0MTU5LA0KICAgICAgICAgICAgYnVybHl3b29kOiAz NzM2NjM1MzkxLA0KICAgICAgICAgICAgYnVybnRzaWVubmE6IDM5MzQxNTAxNDMsDQogICAg ICAgICAgICBjYWRldGJsdWU6IDE2MDQyMzE0MjMsDQogICAgICAgICAgICBjaGFydHJldXNl OiAyMTQ3NDE4MzY3LA0KICAgICAgICAgICAgY2hvY29sYXRlOiAzNTMwMTA0NTc1LA0KICAg ICAgICAgICAgY29yYWw6IDQyODY1MzM4ODcsDQogICAgICAgICAgICBjb3JuZmxvd2VyYmx1 ZTogMTY4NzU0NzM5MSwNCiAgICAgICAgICAgIGNvcm5zaWxrOiA0Mjk0NDk5NTgzLA0KICAg ICAgICAgICAgY3JpbXNvbjogMzY5MjMxMzg1NSwNCiAgICAgICAgICAgIGN5YW46IDE2Nzc3 MjE1LA0KICAgICAgICAgICAgZGFya2JsdWU6IDM1ODM5LA0KICAgICAgICAgICAgZGFya2N5 YW46IDkxNDUzNDMsDQogICAgICAgICAgICBkYXJrZ29sZGVucm9kOiAzMDk1NzkyNjM5LA0K ICAgICAgICAgICAgZGFya2dyYXk6IDI4NDY0Njg2MDcsDQogICAgICAgICAgICBkYXJrZ3Jl ZW46IDY1NTM4NTUsDQogICAgICAgICAgICBkYXJrZ3JleTogMjg0NjQ2ODYwNywNCiAgICAg ICAgICAgIGRhcmtraGFraTogMzE4MjkxNDU1OSwNCiAgICAgICAgICAgIGRhcmttYWdlbnRh OiAyMzMyMDY4ODYzLA0KICAgICAgICAgICAgZGFya29saXZlZ3JlZW46IDE0MzMwODc5OTks DQogICAgICAgICAgICBkYXJrb3JhbmdlOiA0Mjg3MzY1Mzc1LA0KICAgICAgICAgICAgZGFy a29yY2hpZDogMjU3MDI0MzMyNywNCiAgICAgICAgICAgIGRhcmtyZWQ6IDIzMzIwMzMyNzks DQogICAgICAgICAgICBkYXJrc2FsbW9uOiAzOTE4OTUzMjE1LA0KICAgICAgICAgICAgZGFy a3NlYWdyZWVuOiAyNDExNDk5NTE5LA0KICAgICAgICAgICAgZGFya3NsYXRlYmx1ZTogMTIx MTk5MzA4NywNCiAgICAgICAgICAgIGRhcmtzbGF0ZWdyYXk6IDc5MzcyNjk3NSwNCiAgICAg ICAgICAgIGRhcmtzbGF0ZWdyZXk6IDc5MzcyNjk3NSwNCiAgICAgICAgICAgIGRhcmt0dXJx dW9pc2U6IDEzNTU0MTc1LA0KICAgICAgICAgICAgZGFya3Zpb2xldDogMjQ4MzA4MjIzOSwN CiAgICAgICAgICAgIGRlZXBwaW5rOiA0Mjc5NTM4Njg3LA0KICAgICAgICAgICAgZGVlcHNr eWJsdWU6IDEyNTgyOTExLA0KICAgICAgICAgICAgZGltZ3JheTogMTc2ODUxNjA5NSwNCiAg ICAgICAgICAgIGRpbWdyZXk6IDE3Njg1MTYwOTUsDQogICAgICAgICAgICBkb2RnZXJibHVl OiA1MTI4MTkxOTksDQogICAgICAgICAgICBmaXJlYnJpY2s6IDI5ODg1ODE2MzEsDQogICAg ICAgICAgICBmbG9yYWx3aGl0ZTogNDI5NDYzNTc3NSwNCiAgICAgICAgICAgIGZvcmVzdGdy ZWVuOiA1Nzk1NDM4MDcsDQogICAgICAgICAgICBmdWNoc2lhOiA0Mjc4MjU1NjE1LA0KICAg ICAgICAgICAgZ2FpbnNib3JvOiAzNzA1NDYyMDE1LA0KICAgICAgICAgICAgZ2hvc3R3aGl0 ZTogNDE3NzA2ODAzMSwNCiAgICAgICAgICAgIGdvbGQ6IDQyOTIyODA1NzUsDQogICAgICAg ICAgICBnb2xkZW5yb2Q6IDM2NjgyNTQ5NzUsDQogICAgICAgICAgICBncmF5OiAyMTU1OTA1 Mjc5LA0KICAgICAgICAgICAgZ3JlZW46IDgzODg4NjMsDQogICAgICAgICAgICBncmVlbnll bGxvdzogMjkxOTE4MjMzNSwNCiAgICAgICAgICAgIGdyZXk6IDIxNTU5MDUyNzksDQogICAg ICAgICAgICBob25leWRldzogNDA0MzMwNTIxNSwNCiAgICAgICAgICAgIGhvdHBpbms6IDQy ODUxMTc2OTUsDQogICAgICAgICAgICBpbmRpYW5yZWQ6IDM0NDUzODIzOTksDQogICAgICAg ICAgICBpbmRpZ286IDEyNTgzMjQ3MzUsDQogICAgICAgICAgICBpdm9yeTogNDI5NDk2MzQ1 NSwNCiAgICAgICAgICAgIGtoYWtpOiA0MDQxNjQxMjE1LA0KICAgICAgICAgICAgbGF2ZW5k ZXI6IDM4NzM4OTcyMTUsDQogICAgICAgICAgICBsYXZlbmRlcmJsdXNoOiA0MjkzOTgxNjk1 LA0KICAgICAgICAgICAgbGF3bmdyZWVuOiAyMDk2ODkwMTExLA0KICAgICAgICAgICAgbGVt b25jaGlmZm9uOiA0Mjk0NjI2ODE1LA0KICAgICAgICAgICAgbGlnaHRibHVlOiAyOTE2Njcz Mjc5LA0KICAgICAgICAgICAgbGlnaHRjb3JhbDogNDAzNDk1MzQ3MSwNCiAgICAgICAgICAg IGxpZ2h0Y3lhbjogMzc3NDg3MzU5OSwNCiAgICAgICAgICAgIGxpZ2h0Z29sZGVucm9keWVs bG93OiA0MjEwNzQyMDE1LA0KICAgICAgICAgICAgbGlnaHRncmF5OiAzNTUzODc0OTQzLA0K ICAgICAgICAgICAgbGlnaHRncmVlbjogMjQzMTU1Mzc5MSwNCiAgICAgICAgICAgIGxpZ2h0 Z3JleTogMzU1Mzg3NDk0MywNCiAgICAgICAgICAgIGxpZ2h0cGluazogNDI5MDE2NzI5NSwN CiAgICAgICAgICAgIGxpZ2h0c2FsbW9uOiA0Mjg4NzA3MzI3LA0KICAgICAgICAgICAgbGln aHRzZWFncmVlbjogNTQ4NTgwMDk1LA0KICAgICAgICAgICAgbGlnaHRza3libHVlOiAyMjc4 NDg4ODMxLA0KICAgICAgICAgICAgbGlnaHRzbGF0ZWdyYXk6IDIwMDU0NDEwMjMsDQogICAg ICAgICAgICBsaWdodHNsYXRlZ3JleTogMjAwNTQ0MTAyMywNCiAgICAgICAgICAgIGxpZ2h0 c3RlZWxibHVlOiAyOTY1NjkyMTU5LA0KICAgICAgICAgICAgbGlnaHR5ZWxsb3c6IDQyOTQ5 NTkzNTksDQogICAgICAgICAgICBsaW1lOiAxNjcxMTkzNSwNCiAgICAgICAgICAgIGxpbWVn cmVlbjogODUyMzA4NzM1LA0KICAgICAgICAgICAgbGluZW46IDQyMTAwOTE3NzUsDQogICAg ICAgICAgICBtYWdlbnRhOiA0Mjc4MjU1NjE1LA0KICAgICAgICAgICAgbWFyb29uOiAyMTQ3 NDgzOTAzLA0KICAgICAgICAgICAgbWVkaXVtYXF1YW1hcmluZTogMTcyNDc1NDY4NywNCiAg ICAgICAgICAgIG1lZGl1bWJsdWU6IDUyNzM1LA0KICAgICAgICAgICAgbWVkaXVtb3JjaGlk OiAzMTI2MTg3MDA3LA0KICAgICAgICAgICAgbWVkaXVtcHVycGxlOiAyNDczNjQ3MTAzLA0K ICAgICAgICAgICAgbWVkaXVtc2VhZ3JlZW46IDEwMTgzOTMwODcsDQogICAgICAgICAgICBt ZWRpdW1zbGF0ZWJsdWU6IDIwNzA0NzQ0OTUsDQogICAgICAgICAgICBtZWRpdW1zcHJpbmdn cmVlbjogMTY0MjM2NzksDQogICAgICAgICAgICBtZWRpdW10dXJxdW9pc2U6IDEyMjE3MDkw NTUsDQogICAgICAgICAgICBtZWRpdW12aW9sZXRyZWQ6IDMzNDAwNzY1NDMsDQogICAgICAg ICAgICBtaWRuaWdodGJsdWU6IDQyMTA5NzcyNywNCiAgICAgICAgICAgIG1pbnRjcmVhbTog NDEyNzE5Mzg1NSwNCiAgICAgICAgICAgIG1pc3R5cm9zZTogNDI5MzE5MDE0MywNCiAgICAg ICAgICAgIG1vY2Nhc2luOiA0MjkzMTc4ODc5LA0KICAgICAgICAgICAgbmF2YWpvd2hpdGU6 IDQyOTI3ODM2MTUsDQogICAgICAgICAgICBuYXZ5OiAzMzAyMywNCiAgICAgICAgICAgIG9s ZGxhY2U6IDQyNjA3NTExMDMsDQogICAgICAgICAgICBvbGl2ZTogMjE1NTg3MjUxMSwNCiAg ICAgICAgICAgIG9saXZlZHJhYjogMTgwNDQ3NzQzOSwNCiAgICAgICAgICAgIG9yYW5nZTog NDI4OTAwMzc3NSwNCiAgICAgICAgICAgIG9yYW5nZXJlZDogNDI4MjcxMjMxOSwNCiAgICAg ICAgICAgIG9yY2hpZDogMzY2NDgyODE1OSwNCiAgICAgICAgICAgIHBhbGVnb2xkZW5yb2Q6 IDQwMDgyMjU1MzUsDQogICAgICAgICAgICBwYWxlZ3JlZW46IDI1NjY2MjU1MzUsDQogICAg ICAgICAgICBwYWxldHVycXVvaXNlOiAyOTUxNjcxNTUxLA0KICAgICAgICAgICAgcGFsZXZp b2xldHJlZDogMzY4MTU4ODIyMywNCiAgICAgICAgICAgIHBhcGF5YXdoaXA6IDQyOTM5MDc5 NjcsDQogICAgICAgICAgICBwZWFjaHB1ZmY6IDQyOTI1MjQ1NDMsDQogICAgICAgICAgICBw ZXJ1OiAzNDQ4MDYxOTUxLA0KICAgICAgICAgICAgcGluazogNDI5MDgyNTIxNSwNCiAgICAg ICAgICAgIHBsdW06IDM3MTgzMDczMjcsDQogICAgICAgICAgICBwb3dkZXJibHVlOiAyOTY3 NTI5MjE1LA0KICAgICAgICAgICAgcHVycGxlOiAyMTQ3NTE2NjcxLA0KICAgICAgICAgICAg cmViZWNjYXB1cnBsZTogMTcxNDY1Nzc5MSwNCiAgICAgICAgICAgIHJlZDogNDI3ODE5MDMz NSwNCiAgICAgICAgICAgIHJvc3licm93bjogMzE2MzUyNTExOSwNCiAgICAgICAgICAgIHJv eWFsYmx1ZTogMTA5NzQ1ODE3NSwNCiAgICAgICAgICAgIHNhZGRsZWJyb3duOiAyMzM2NTYw MTI3LA0KICAgICAgICAgICAgc2FsbW9uOiA0MjAyNzIyMDQ3LA0KICAgICAgICAgICAgc2Fu ZHlicm93bjogNDEwNDQxMzQzOSwNCiAgICAgICAgICAgIHNlYWdyZWVuOiA3ODA4ODM5Njcs DQogICAgICAgICAgICBzZWFzaGVsbDogNDI5NDMwNzU4MywNCiAgICAgICAgICAgIHNpZW5u YTogMjY4OTc0MDI4NywNCiAgICAgICAgICAgIHNpbHZlcjogMzIzMzg1Nzc5MSwNCiAgICAg ICAgICAgIHNreWJsdWU6IDIyNzg0ODQ5OTEsDQogICAgICAgICAgICBzbGF0ZWJsdWU6IDE3 ODQzMzU4NzEsDQogICAgICAgICAgICBzbGF0ZWdyYXk6IDE4ODc0NzM5MTksDQogICAgICAg ICAgICBzbGF0ZWdyZXk6IDE4ODc0NzM5MTksDQogICAgICAgICAgICBzbm93OiA0Mjk0NjM4 MzM1LA0KICAgICAgICAgICAgc3ByaW5nZ3JlZW46IDE2NzQ0NDQ3LA0KICAgICAgICAgICAg c3RlZWxibHVlOiAxMTgyOTcxMTM1LA0KICAgICAgICAgICAgdGFuOiAzNTM1MDQ3OTM1LA0K ICAgICAgICAgICAgdGVhbDogODQyMTYzMSwNCiAgICAgICAgICAgIHRoaXN0bGU6IDM2MzY0 NTE1ODMsDQogICAgICAgICAgICB0b21hdG86IDQyODQ2OTY1NzUsDQogICAgICAgICAgICB0 dXJxdW9pc2U6IDEwODg0NzUzOTEsDQogICAgICAgICAgICB2aW9sZXQ6IDQwMDE1NTgyNzEs DQogICAgICAgICAgICB3aGVhdDogNDEyNTAxMjk5MSwNCiAgICAgICAgICAgIHdoaXRlOiA0 Mjk0OTY3Mjk1LA0KICAgICAgICAgICAgd2hpdGVzbW9rZTogNDEyNjUzNzIxNSwNCiAgICAg ICAgICAgIHllbGxvdzogNDI5NDkwMjAxNSwNCiAgICAgICAgICAgIHllbGxvd2dyZWVuOiAy NTk3MTM5MTk5LA0KICAgICAgICAgIH0sDQogICAgICAgIH0pOw0KICAgICAgICB2YXIgaXUg PSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICBsZXQgeyBhcHBseUFuaW1hdGVkVmFsdWVz OiB0ID0gKCkgPT4gITEsIGNyZWF0ZUFuaW1hdGVkU3R5bGU6IG4gPSAoZSkgPT4gbmV3IF9s KGUpLCBnZXRDb21wb25lbnRQcm9wczogciA9IChlKSA9PiBlIH0gPSBhcmd1bWVudHMubGVu Z3RoID4gMSAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1sxXSA/IGFyZ3VtZW50c1sxXSA6IHt9 Ow0KICAgICAgICAgIGNvbnN0IG8gPSB7IGFwcGx5QW5pbWF0ZWRWYWx1ZXM6IHQsIGNyZWF0 ZUFuaW1hdGVkU3R5bGU6IG4sIGdldENvbXBvbmVudFByb3BzOiByIH0sDQogICAgICAgICAg ICBhID0gKGUpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgdCA9IHpsKGUpIHx8ICJBbm9u eW1vdXMiOw0KICAgICAgICAgICAgICByZXR1cm4gKChlID0gJGEuc3RyKGUpID8gYVtlXSB8 fCAoYVtlXSA9IFRsKGUsIG8pKSA6IGVbTWxdIHx8IChlW01sXSA9IFRsKGUsIG8pKSkuZGlz cGxheU5hbWUgPSAiQW5pbWF0ZWQoIi5jb25jYXQodCwgIikiKSksIGU7DQogICAgICAgICAg ICB9Ow0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBHYShlLCAodCwgbikgPT4g ew0KICAgICAgICAgICAgICAkYS5hcnIoZSkgJiYgKG4gPSB6bCh0KSksIChhW25dID0gYSh0 KSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgIHsgYW5pbWF0ZWQ6IGEgfQ0KICAg ICAgICAgICk7DQogICAgICAgIH0pKA0KICAgICAgICAgIFsNCiAgICAgICAgICAgICJhIiwN CiAgICAgICAgICAgICJhYmJyIiwNCiAgICAgICAgICAgICJhZGRyZXNzIiwNCiAgICAgICAg ICAgICJhcmVhIiwNCiAgICAgICAgICAgICJhcnRpY2xlIiwNCiAgICAgICAgICAgICJhc2lk ZSIsDQogICAgICAgICAgICAiYXVkaW8iLA0KICAgICAgICAgICAgImIiLA0KICAgICAgICAg ICAgImJhc2UiLA0KICAgICAgICAgICAgImJkaSIsDQogICAgICAgICAgICAiYmRvIiwNCiAg ICAgICAgICAgICJiaWciLA0KICAgICAgICAgICAgImJsb2NrcXVvdGUiLA0KICAgICAgICAg ICAgImJvZHkiLA0KICAgICAgICAgICAgImJyIiwNCiAgICAgICAgICAgICJidXR0b24iLA0K ICAgICAgICAgICAgImNhbnZhcyIsDQogICAgICAgICAgICAiY2FwdGlvbiIsDQogICAgICAg ICAgICAiY2l0ZSIsDQogICAgICAgICAgICAiY29kZSIsDQogICAgICAgICAgICAiY29sIiwN CiAgICAgICAgICAgICJjb2xncm91cCIsDQogICAgICAgICAgICAiZGF0YSIsDQogICAgICAg ICAgICAiZGF0YWxpc3QiLA0KICAgICAgICAgICAgImRkIiwNCiAgICAgICAgICAgICJkZWwi LA0KICAgICAgICAgICAgImRldGFpbHMiLA0KICAgICAgICAgICAgImRmbiIsDQogICAgICAg ICAgICAiZGlhbG9nIiwNCiAgICAgICAgICAgICJkaXYiLA0KICAgICAgICAgICAgImRsIiwN CiAgICAgICAgICAgICJkdCIsDQogICAgICAgICAgICAiZW0iLA0KICAgICAgICAgICAgImVt YmVkIiwNCiAgICAgICAgICAgICJmaWVsZHNldCIsDQogICAgICAgICAgICAiZmlnY2FwdGlv biIsDQogICAgICAgICAgICAiZmlndXJlIiwNCiAgICAgICAgICAgICJmb290ZXIiLA0KICAg ICAgICAgICAgImZvcm0iLA0KICAgICAgICAgICAgImgxIiwNCiAgICAgICAgICAgICJoMiIs DQogICAgICAgICAgICAiaDMiLA0KICAgICAgICAgICAgImg0IiwNCiAgICAgICAgICAgICJo NSIsDQogICAgICAgICAgICAiaDYiLA0KICAgICAgICAgICAgImhlYWQiLA0KICAgICAgICAg ICAgImhlYWRlciIsDQogICAgICAgICAgICAiaGdyb3VwIiwNCiAgICAgICAgICAgICJociIs DQogICAgICAgICAgICAiaHRtbCIsDQogICAgICAgICAgICAiaSIsDQogICAgICAgICAgICAi aWZyYW1lIiwNCiAgICAgICAgICAgICJpbWciLA0KICAgICAgICAgICAgImlucHV0IiwNCiAg ICAgICAgICAgICJpbnMiLA0KICAgICAgICAgICAgImtiZCIsDQogICAgICAgICAgICAia2V5 Z2VuIiwNCiAgICAgICAgICAgICJsYWJlbCIsDQogICAgICAgICAgICAibGVnZW5kIiwNCiAg ICAgICAgICAgICJsaSIsDQogICAgICAgICAgICAibGluayIsDQogICAgICAgICAgICAibWFp biIsDQogICAgICAgICAgICAibWFwIiwNCiAgICAgICAgICAgICJtYXJrIiwNCiAgICAgICAg ICAgICJtZW51IiwNCiAgICAgICAgICAgICJtZW51aXRlbSIsDQogICAgICAgICAgICAibWV0 YSIsDQogICAgICAgICAgICAibWV0ZXIiLA0KICAgICAgICAgICAgIm5hdiIsDQogICAgICAg ICAgICAibm9zY3JpcHQiLA0KICAgICAgICAgICAgIm9iamVjdCIsDQogICAgICAgICAgICAi b2wiLA0KICAgICAgICAgICAgIm9wdGdyb3VwIiwNCiAgICAgICAgICAgICJvcHRpb24iLA0K ICAgICAgICAgICAgIm91dHB1dCIsDQogICAgICAgICAgICAicCIsDQogICAgICAgICAgICAi cGFyYW0iLA0KICAgICAgICAgICAgInBpY3R1cmUiLA0KICAgICAgICAgICAgInByZSIsDQog ICAgICAgICAgICAicHJvZ3Jlc3MiLA0KICAgICAgICAgICAgInEiLA0KICAgICAgICAgICAg InJwIiwNCiAgICAgICAgICAgICJydCIsDQogICAgICAgICAgICAicnVieSIsDQogICAgICAg ICAgICAicyIsDQogICAgICAgICAgICAic2FtcCIsDQogICAgICAgICAgICAic2NyaXB0IiwN CiAgICAgICAgICAgICJzZWN0aW9uIiwNCiAgICAgICAgICAgICJzZWxlY3QiLA0KICAgICAg ICAgICAgInNtYWxsIiwNCiAgICAgICAgICAgICJzb3VyY2UiLA0KICAgICAgICAgICAgInNw YW4iLA0KICAgICAgICAgICAgInN0cm9uZyIsDQogICAgICAgICAgICAic3R5bGUiLA0KICAg ICAgICAgICAgInN1YiIsDQogICAgICAgICAgICAic3VtbWFyeSIsDQogICAgICAgICAgICAi c3VwIiwNCiAgICAgICAgICAgICJ0YWJsZSIsDQogICAgICAgICAgICAidGJvZHkiLA0KICAg ICAgICAgICAgInRkIiwNCiAgICAgICAgICAgICJ0ZXh0YXJlYSIsDQogICAgICAgICAgICAi dGZvb3QiLA0KICAgICAgICAgICAgInRoIiwNCiAgICAgICAgICAgICJ0aGVhZCIsDQogICAg ICAgICAgICAidGltZSIsDQogICAgICAgICAgICAidGl0bGUiLA0KICAgICAgICAgICAgInRy IiwNCiAgICAgICAgICAgICJ0cmFjayIsDQogICAgICAgICAgICAidSIsDQogICAgICAgICAg ICAidWwiLA0KICAgICAgICAgICAgInZhciIsDQogICAgICAgICAgICAidmlkZW8iLA0KICAg ICAgICAgICAgIndiciIsDQogICAgICAgICAgICAiY2lyY2xlIiwNCiAgICAgICAgICAgICJj bGlwUGF0aCIsDQogICAgICAgICAgICAiZGVmcyIsDQogICAgICAgICAgICAiZWxsaXBzZSIs DQogICAgICAgICAgICAiZm9yZWlnbk9iamVjdCIsDQogICAgICAgICAgICAiZyIsDQogICAg ICAgICAgICAiaW1hZ2UiLA0KICAgICAgICAgICAgImxpbmUiLA0KICAgICAgICAgICAgImxp bmVhckdyYWRpZW50IiwNCiAgICAgICAgICAgICJtYXNrIiwNCiAgICAgICAgICAgICJwYXRo IiwNCiAgICAgICAgICAgICJwYXR0ZXJuIiwNCiAgICAgICAgICAgICJwb2x5Z29uIiwNCiAg ICAgICAgICAgICJwb2x5bGluZSIsDQogICAgICAgICAgICAicmFkaWFsR3JhZGllbnQiLA0K ICAgICAgICAgICAgInJlY3QiLA0KICAgICAgICAgICAgInN0b3AiLA0KICAgICAgICAgICAg InN2ZyIsDQogICAgICAgICAgICAidGV4dCIsDQogICAgICAgICAgICAidHNwYW4iLA0KICAg ICAgICAgIF0sDQogICAgICAgICAgew0KICAgICAgICAgICAgYXBwbHlBbmltYXRlZFZhbHVl czogZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgaWYgKCFlLm5vZGVUeXBlIHx8 ICFlLnNldEF0dHJpYnV0ZSkgcmV0dXJuICExOw0KICAgICAgICAgICAgICBjb25zdCBuID0g ImZpbHRlciIgPT09IGUubm9kZU5hbWUgfHwgKGUucGFyZW50Tm9kZSAmJiAiZmlsdGVyIiA9 PT0gZS5wYXJlbnROb2RlLm5vZGVOYW1lKSwNCiAgICAgICAgICAgICAgICB7IHN0eWxlOiBy LCBjaGlsZHJlbjogbywgc2Nyb2xsVG9wOiBhLCBzY3JvbGxMZWZ0OiBpLCB2aWV3Qm94OiBs LCAuLi5zIH0gPSB0LA0KICAgICAgICAgICAgICAgIHUgPSBPYmplY3QudmFsdWVzKHMpLA0K ICAgICAgICAgICAgICAgIGMgPSBPYmplY3Qua2V5cyhzKS5tYXAoKHQpID0+IChuIHx8IGUu aGFzQXR0cmlidXRlKHQpID8gdCA6IFlzW3RdIHx8IChZc1t0XSA9IHQucmVwbGFjZSgvKFtB LVpdKS9nLCAoZSkgPT4gIi0iICsgZS50b0xvd2VyQ2FzZSgpKSkpKTsNCiAgICAgICAgICAg ICAgdm9pZCAwICE9PSBvICYmIChlLnRleHRDb250ZW50ID0gbyk7DQogICAgICAgICAgICAg IGZvciAoY29uc3QgZCBpbiByKQ0KICAgICAgICAgICAgICAgIGlmIChyLmhhc093blByb3Bl cnR5KGQpKSB7DQogICAgICAgICAgICAgICAgICBjb25zdCB0ID0gR3MoZCwgcltkXSk7DQog ICAgICAgICAgICAgICAgICBRcy50ZXN0KGQpID8gZS5zdHlsZS5zZXRQcm9wZXJ0eShkLCB0 KSA6IChlLnN0eWxlW2RdID0gdCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICBjLmZvckVhY2goKHQsIG4pID0+IHsNCiAgICAgICAgICAgICAgICBlLnNldEF0dHJpYnV0 ZSh0LCB1W25dKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgdm9pZCAw ICE9PSBhICYmIChlLnNjcm9sbFRvcCA9IGEpLA0KICAgICAgICAgICAgICAgIHZvaWQgMCAh PT0gaSAmJiAoZS5zY3JvbGxMZWZ0ID0gaSksDQogICAgICAgICAgICAgICAgdm9pZCAwICE9 PSBsICYmIGUuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgbCk7DQogICAgICAgICAgICB9LA0K ICAgICAgICAgICAgY3JlYXRlQW5pbWF0ZWRTdHlsZTogKGUpID0+IG5ldyBvdShlKSwNCiAg ICAgICAgICAgIGdldENvbXBvbmVudFByb3BzOiAoZSkgPT4gew0KICAgICAgICAgICAgICBs ZXQgeyBzY3JvbGxUb3A6IHQsIHNjcm9sbExlZnQ6IG4sIC4uLnIgfSA9IGU7DQogICAgICAg ICAgICAgIHJldHVybiByOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9DQogICAgICAg ICksDQogICAgICAgICAgbHUgPSBpdS5hbmltYXRlZDsNCiAgICAgICAgY29uc3Qgc3UgPSAo ZSkgPT4gew0KICAgICAgICAgIGxldCB0Ow0KICAgICAgICAgIHJldHVybiAodCA9IGUgPCAx ID8gNS4xMTkxNiAqIGUgKiogMiA6IDQuNSAqIE1hdGgubG9nKGUgKyAxKSArIDIpLCAodCAv IDEwMCkudG9GaXhlZCgyKTsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gdXUoZSkg ew0KICAgICAgICAgIHJldHVybiBqcigiTXVpUGFwZXIiLCBlKTsNCiAgICAgICAgfQ0KICAg ICAgICBJcigiTXVpUGFwZXIiLCBbDQogICAgICAgICAgInJvb3QiLA0KICAgICAgICAgICJy b3VuZGVkIiwNCiAgICAgICAgICAib3V0bGluZWQiLA0KICAgICAgICAgICJlbGV2YXRpb24i LA0KICAgICAgICAgICJlbGV2YXRpb24wIiwNCiAgICAgICAgICAiZWxldmF0aW9uMSIsDQog ICAgICAgICAgImVsZXZhdGlvbjIiLA0KICAgICAgICAgICJlbGV2YXRpb24zIiwNCiAgICAg ICAgICAiZWxldmF0aW9uNCIsDQogICAgICAgICAgImVsZXZhdGlvbjUiLA0KICAgICAgICAg ICJlbGV2YXRpb242IiwNCiAgICAgICAgICAiZWxldmF0aW9uNyIsDQogICAgICAgICAgImVs ZXZhdGlvbjgiLA0KICAgICAgICAgICJlbGV2YXRpb245IiwNCiAgICAgICAgICAiZWxldmF0 aW9uMTAiLA0KICAgICAgICAgICJlbGV2YXRpb24xMSIsDQogICAgICAgICAgImVsZXZhdGlv bjEyIiwNCiAgICAgICAgICAiZWxldmF0aW9uMTMiLA0KICAgICAgICAgICJlbGV2YXRpb24x NCIsDQogICAgICAgICAgImVsZXZhdGlvbjE1IiwNCiAgICAgICAgICAiZWxldmF0aW9uMTYi LA0KICAgICAgICAgICJlbGV2YXRpb24xNyIsDQogICAgICAgICAgImVsZXZhdGlvbjE4IiwN CiAgICAgICAgICAiZWxldmF0aW9uMTkiLA0KICAgICAgICAgICJlbGV2YXRpb24yMCIsDQog ICAgICAgICAgImVsZXZhdGlvbjIxIiwNCiAgICAgICAgICAiZWxldmF0aW9uMjIiLA0KICAg ICAgICAgICJlbGV2YXRpb24yMyIsDQogICAgICAgICAgImVsZXZhdGlvbjI0IiwNCiAgICAg ICAgXSk7DQogICAgICAgIGNvbnN0IGN1ID0gWyJjbGFzc05hbWUiLCAiY29tcG9uZW50Iiwg ImVsZXZhdGlvbiIsICJzcXVhcmUiLCAidmFyaWFudCJdLA0KICAgICAgICAgIGR1ID0gWW4o ImRpdiIsIHsNCiAgICAgICAgICAgIG5hbWU6ICJNdWlQYXBlciIsDQogICAgICAgICAgICBz bG90OiAiUm9vdCIsDQogICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+ IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAg ICAgICAgICByZXR1cm4gW3Qucm9vdCwgdFtuLnZhcmlhbnRdLCAhbi5zcXVhcmUgJiYgdC5y b3VuZGVkLCAiZWxldmF0aW9uIiA9PT0gbi52YXJpYW50ICYmIHRbImVsZXZhdGlvbiIuY29u Y2F0KG4uZWxldmF0aW9uKV1dOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkg PT4gew0KICAgICAgICAgICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7 DQogICAgICAgICAgICB2YXIgcjsNCiAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAg ICAgICB7IGJhY2tncm91bmRDb2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlLmJhY2tncm91 bmQucGFwZXIsIGNvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGUudGV4dC5wcmltYXJ5LCB0 cmFuc2l0aW9uOiB0LnRyYW5zaXRpb25zLmNyZWF0ZSgiYm94LXNoYWRvdyIpIH0sDQogICAg ICAgICAgICAgICFuLnNxdWFyZSAmJiB7IGJvcmRlclJhZGl1czogdC5zaGFwZS5ib3JkZXJS YWRpdXMgfSwNCiAgICAgICAgICAgICAgIm91dGxpbmVkIiA9PT0gbi52YXJpYW50ICYmIHsg Ym9yZGVyOiAiMXB4IHNvbGlkICIuY29uY2F0KCh0LnZhcnMgfHwgdCkucGFsZXR0ZS5kaXZp ZGVyKSB9LA0KICAgICAgICAgICAgICAiZWxldmF0aW9uIiA9PT0gbi52YXJpYW50ICYmDQog ICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgeyBib3hTaGFkb3c6ICh0LnZhcnMg fHwgdCkuc2hhZG93c1tuLmVsZXZhdGlvbl0gfSwNCiAgICAgICAgICAgICAgICAhdC52YXJz ICYmICJkYXJrIiA9PT0gdC5wYWxldHRlLm1vZGUgJiYgeyBiYWNrZ3JvdW5kSW1hZ2U6ICJs aW5lYXItZ3JhZGllbnQoIi5jb25jYXQoZygiI2ZmZiIsIHN1KG4uZWxldmF0aW9uKSksICIs ICIpLmNvbmNhdChnKCIjZmZmIiwgc3Uobi5lbGV2YXRpb24pKSwgIikiKSB9LA0KICAgICAg ICAgICAgICAgIHQudmFycyAmJiB7IGJhY2tncm91bmRJbWFnZTogbnVsbCA9PSAociA9IHQu dmFycy5vdmVybGF5cykgPyB2b2lkIDAgOiByW24uZWxldmF0aW9uXSB9DQogICAgICAgICAg ICAgICkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAgICAgICAgZnUgPSB0 LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgIGNvbnN0IG4gPSB0 cih7IHByb3BzOiBlLCBuYW1lOiAiTXVpUGFwZXIiIH0pLA0KICAgICAgICAgICAgICB7IGNs YXNzTmFtZTogciwgY29tcG9uZW50OiBvID0gImRpdiIsIGVsZXZhdGlvbjogbCA9IDEsIHNx dWFyZTogdSA9ICExLCB2YXJpYW50OiBkID0gImVsZXZhdGlvbiIgfSA9IG4sDQogICAgICAg ICAgICAgIGYgPSBhKG4sIGN1KSwNCiAgICAgICAgICAgICAgcCA9IGkoe30sIG4sIHsgY29t cG9uZW50OiBvLCBlbGV2YXRpb246IGwsIHNxdWFyZTogdSwgdmFyaWFudDogZCB9KSwNCiAg ICAgICAgICAgICAgaCA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgc3F1 YXJlOiB0LCBlbGV2YXRpb246IG4sIHZhcmlhbnQ6IHIsIGNsYXNzZXM6IG8gfSA9IGU7DQog ICAgICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3QiLCByLCAhdCAmJiAicm91 bmRlZCIsICJlbGV2YXRpb24iID09PSByICYmICJlbGV2YXRpb24iLmNvbmNhdChuKV0gfSwg dXUsIG8pOw0KICAgICAgICAgICAgICB9KShwKTsNCiAgICAgICAgICAgIHJldHVybiAoMCwg TnIuanN4KShkdSwgaSh7IGFzOiBvLCBvd25lclN0YXRlOiBwLCBjbGFzc05hbWU6IHMoaC5y b290LCByKSwgcmVmOiB0IH0sIGYpKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgZnVuY3Rp b24gcHUoZSkgew0KICAgICAgICAgIHJldHVybiBqcigiTXVpQWxlcnQiLCBlKTsNCiAgICAg ICAgfQ0KICAgICAgICBjb25zdCBodSA9IElyKCJNdWlBbGVydCIsIFsNCiAgICAgICAgICAi cm9vdCIsDQogICAgICAgICAgImFjdGlvbiIsDQogICAgICAgICAgImljb24iLA0KICAgICAg ICAgICJtZXNzYWdlIiwNCiAgICAgICAgICAiZmlsbGVkIiwNCiAgICAgICAgICAiZmlsbGVk U3VjY2VzcyIsDQogICAgICAgICAgImZpbGxlZEluZm8iLA0KICAgICAgICAgICJmaWxsZWRX YXJuaW5nIiwNCiAgICAgICAgICAiZmlsbGVkRXJyb3IiLA0KICAgICAgICAgICJvdXRsaW5l ZCIsDQogICAgICAgICAgIm91dGxpbmVkU3VjY2VzcyIsDQogICAgICAgICAgIm91dGxpbmVk SW5mbyIsDQogICAgICAgICAgIm91dGxpbmVkV2FybmluZyIsDQogICAgICAgICAgIm91dGxp bmVkRXJyb3IiLA0KICAgICAgICAgICJzdGFuZGFyZCIsDQogICAgICAgICAgInN0YW5kYXJk U3VjY2VzcyIsDQogICAgICAgICAgInN0YW5kYXJkSW5mbyIsDQogICAgICAgICAgInN0YW5k YXJkV2FybmluZyIsDQogICAgICAgICAgInN0YW5kYXJkRXJyb3IiLA0KICAgICAgICBdKTsN CiAgICAgICAgZnVuY3Rpb24gbXUoZSkgew0KICAgICAgICAgIHJldHVybiBqcigiTXVpSWNv bkJ1dHRvbiIsIGUpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IGd1ID0gSXIoIk11aUlj b25CdXR0b24iLCBbDQogICAgICAgICAgInJvb3QiLA0KICAgICAgICAgICJkaXNhYmxlZCIs DQogICAgICAgICAgImNvbG9ySW5oZXJpdCIsDQogICAgICAgICAgImNvbG9yUHJpbWFyeSIs DQogICAgICAgICAgImNvbG9yU2Vjb25kYXJ5IiwNCiAgICAgICAgICAiY29sb3JFcnJvciIs DQogICAgICAgICAgImNvbG9ySW5mbyIsDQogICAgICAgICAgImNvbG9yU3VjY2VzcyIsDQog ICAgICAgICAgImNvbG9yV2FybmluZyIsDQogICAgICAgICAgImVkZ2VTdGFydCIsDQogICAg ICAgICAgImVkZ2VFbmQiLA0KICAgICAgICAgICJzaXplU21hbGwiLA0KICAgICAgICAgICJz aXplTWVkaXVtIiwNCiAgICAgICAgICAic2l6ZUxhcmdlIiwNCiAgICAgICAgXSksDQogICAg ICAgICAgdnUgPSBbImVkZ2UiLCAiY2hpbGRyZW4iLCAiY2xhc3NOYW1lIiwgImNvbG9yIiwg ImRpc2FibGVkIiwgImRpc2FibGVGb2N1c1JpcHBsZSIsICJzaXplIl0sDQogICAgICAgICAg eXUgPSBZbihhbywgew0KICAgICAgICAgICAgbmFtZTogIk11aUljb25CdXR0b24iLA0KICAg ICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6 IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0g ZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFt0LnJvb3QsICJkZWZhdWx0IiAhPT0gbi5jb2xv ciAmJiB0WyJjb2xvciIuY29uY2F0KGlvKG4uY29sb3IpKV0sIG4uZWRnZSAmJiB0WyJlZGdl Ii5jb25jYXQoaW8obi5lZGdlKSldLCB0WyJzaXplIi5jb25jYXQoaW8obi5zaXplKSldXTsN CiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSkoDQogICAgICAgICAgICAoZSkgPT4gew0K ICAgICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAg ICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgdGV4dEFsaWduOiAiY2VudGVyIiwNCiAgICAgICAgICAgICAgICAgIGZsZXg6ICIw IDAgYXV0byIsDQogICAgICAgICAgICAgICAgICBmb250U2l6ZTogdC50eXBvZ3JhcGh5LnB4 VG9SZW0oMjQpLA0KICAgICAgICAgICAgICAgICAgcGFkZGluZzogOCwNCiAgICAgICAgICAg ICAgICAgIGJvcmRlclJhZGl1czogIjUwJSIsDQogICAgICAgICAgICAgICAgICBvdmVyZmxv dzogInZpc2libGUiLA0KICAgICAgICAgICAgICAgICAgY29sb3I6ICh0LnZhcnMgfHwgdCku cGFsZXR0ZS5hY3Rpb24uYWN0aXZlLA0KICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjog dC50cmFuc2l0aW9ucy5jcmVhdGUoImJhY2tncm91bmQtY29sb3IiLCB7IGR1cmF0aW9uOiB0 LnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0IH0pLA0KICAgICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgICAgIW4uZGlzYWJsZVJpcHBsZSAmJiB7DQogICAgICAgICAgICAg ICAgICAiJjpob3ZlciI6IHsNCiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9y OiB0LnZhcnMgPyAicmdiYSgiLmNvbmNhdCh0LnZhcnMucGFsZXR0ZS5hY3Rpb24uYWN0aXZl Q2hhbm5lbCwgIiAvICIpLmNvbmNhdCh0LnZhcnMucGFsZXR0ZS5hY3Rpb24uaG92ZXJPcGFj aXR5LCAiKSIpIDogZyh0LnBhbGV0dGUuYWN0aW9uLmFjdGl2ZSwgdC5wYWxldHRlLmFjdGlv bi5ob3Zlck9wYWNpdHkpLA0KICAgICAgICAgICAgICAgICAgICAiQG1lZGlhIChob3Zlcjog bm9uZSkiOiB7IGJhY2tncm91bmRDb2xvcjogInRyYW5zcGFyZW50IiB9LA0KICAgICAgICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICJzdGFy dCIgPT09IG4uZWRnZSAmJiB7IG1hcmdpbkxlZnQ6ICJzbWFsbCIgPT09IG4uc2l6ZSA/IC0z IDogLTEyIH0sDQogICAgICAgICAgICAgICAgImVuZCIgPT09IG4uZWRnZSAmJiB7IG1hcmdp blJpZ2h0OiAic21hbGwiID09PSBuLnNpemUgPyAtMyA6IC0xMiB9DQogICAgICAgICAgICAg ICk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgKGUpID0+IHsNCiAgICAgICAgICAg ICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICAg IHZhciByOw0KICAgICAgICAgICAgICBjb25zdCBvID0gbnVsbCA9PSAociA9ICh0LnZhcnMg fHwgdCkucGFsZXR0ZSkgPyB2b2lkIDAgOiByW24uY29sb3JdOw0KICAgICAgICAgICAgICBy ZXR1cm4gaSgNCiAgICAgICAgICAgICAgICB7fSwNCiAgICAgICAgICAgICAgICAiaW5oZXJp dCIgPT09IG4uY29sb3IgJiYgeyBjb2xvcjogImluaGVyaXQiIH0sDQogICAgICAgICAgICAg ICAgImluaGVyaXQiICE9PSBuLmNvbG9yICYmDQogICAgICAgICAgICAgICAgImRlZmF1bHQi ICE9PSBuLmNvbG9yICYmDQogICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAg IHsgY29sb3I6IG51bGwgPT0gbyA/IHZvaWQgMCA6IG8ubWFpbiB9LA0KICAgICAgICAgICAg ICAgICAgIW4uZGlzYWJsZVJpcHBsZSAmJiB7DQogICAgICAgICAgICAgICAgICAgICImOmhv dmVyIjogaSh7fSwgbyAmJiB7IGJhY2tncm91bmRDb2xvcjogdC52YXJzID8gInJnYmEoIi5j b25jYXQoby5tYWluQ2hhbm5lbCwgIiAvICIpLmNvbmNhdCh0LnZhcnMucGFsZXR0ZS5hY3Rp b24uaG92ZXJPcGFjaXR5LCAiKSIpIDogZyhvLm1haW4sIHQucGFsZXR0ZS5hY3Rpb24uaG92 ZXJPcGFjaXR5KSB9LCB7DQogICAgICAgICAgICAgICAgICAgICAgIkBtZWRpYSAoaG92ZXI6 IG5vbmUpIjogeyBiYWNrZ3JvdW5kQ29sb3I6ICJ0cmFuc3BhcmVudCIgfSwNCiAgICAgICAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg KSwNCiAgICAgICAgICAgICAgICAic21hbGwiID09PSBuLnNpemUgJiYgeyBwYWRkaW5nOiA1 LCBmb250U2l6ZTogdC50eXBvZ3JhcGh5LnB4VG9SZW0oMTgpIH0sDQogICAgICAgICAgICAg ICAgImxhcmdlIiA9PT0gbi5zaXplICYmIHsgcGFkZGluZzogMTIsIGZvbnRTaXplOiB0LnR5 cG9ncmFwaHkucHhUb1JlbSgyOCkgfSwNCiAgICAgICAgICAgICAgICB7IFsiJi4iLmNvbmNh dChndS5kaXNhYmxlZCldOiB7IGJhY2tncm91bmRDb2xvcjogInRyYW5zcGFyZW50IiwgY29s b3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS5hY3Rpb24uZGlzYWJsZWQgfSB9DQogICAgICAg ICAgICAgICk7DQogICAgICAgICAgICB9DQogICAgICAgICAgKSwNCiAgICAgICAgICBidSA9 IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgY29uc3QgbiA9 IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlJY29uQnV0dG9uIiB9KSwNCiAgICAgICAgICAg ICAgeyBlZGdlOiByID0gITEsIGNoaWxkcmVuOiBvLCBjbGFzc05hbWU6IGwsIGNvbG9yOiB1 ID0gImRlZmF1bHQiLCBkaXNhYmxlZDogZCA9ICExLCBkaXNhYmxlRm9jdXNSaXBwbGU6IGYg PSAhMSwgc2l6ZTogcCA9ICJtZWRpdW0iIH0gPSBuLA0KICAgICAgICAgICAgICBoID0gYShu LCB2dSksDQogICAgICAgICAgICAgIG0gPSBpKHt9LCBuLCB7IGVkZ2U6IHIsIGNvbG9yOiB1 LCBkaXNhYmxlZDogZCwgZGlzYWJsZUZvY3VzUmlwcGxlOiBmLCBzaXplOiBwIH0pLA0KICAg ICAgICAgICAgICBnID0gKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBjbGFz c2VzOiB0LCBkaXNhYmxlZDogbiwgY29sb3I6IHIsIGVkZ2U6IG8sIHNpemU6IGEgfSA9IGU7 DQogICAgICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3QiLCBuICYmICJkaXNh YmxlZCIsICJkZWZhdWx0IiAhPT0gciAmJiAiY29sb3IiLmNvbmNhdChpbyhyKSksIG8gJiYg ImVkZ2UiLmNvbmNhdChpbyhvKSksICJzaXplIi5jb25jYXQoaW8oYSkpXSB9LCBtdSwgdCk7 DQogICAgICAgICAgICAgIH0pKG0pOw0KICAgICAgICAgICAgcmV0dXJuICgwLCBOci5qc3gp KHl1LCBpKHsgY2xhc3NOYW1lOiBzKGcucm9vdCwgbCksIGNlbnRlclJpcHBsZTogITAsIGZv Y3VzUmlwcGxlOiAhZiwgZGlzYWJsZWQ6IGQsIHJlZjogdCwgb3duZXJTdGF0ZTogbSB9LCBo LCB7IGNoaWxkcmVuOiBvIH0pKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICB3dSA9IGJ1 Ow0KICAgICAgICBmdW5jdGlvbiB4dShlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlT dmdJY29uIiwgZSk7DQogICAgICAgIH0NCiAgICAgICAgSXIoIk11aVN2Z0ljb24iLCBbInJv b3QiLCAiY29sb3JQcmltYXJ5IiwgImNvbG9yU2Vjb25kYXJ5IiwgImNvbG9yQWN0aW9uIiwg ImNvbG9yRXJyb3IiLCAiY29sb3JEaXNhYmxlZCIsICJmb250U2l6ZUluaGVyaXQiLCAiZm9u dFNpemVTbWFsbCIsICJmb250U2l6ZU1lZGl1bSIsICJmb250U2l6ZUxhcmdlIl0pOw0KICAg ICAgICBjb25zdCBTdSA9IFsiY2hpbGRyZW4iLCAiY2xhc3NOYW1lIiwgImNvbG9yIiwgImNv bXBvbmVudCIsICJmb250U2l6ZSIsICJodG1sQ29sb3IiLCAiaW5oZXJpdFZpZXdCb3giLCAi dGl0bGVBY2Nlc3MiLCAidmlld0JveCJdLA0KICAgICAgICAgIGt1ID0gWW4oInN2ZyIsIHsN CiAgICAgICAgICAgIG5hbWU6ICJNdWlTdmdJY29uIiwNCiAgICAgICAgICAgIHNsb3Q6ICJS b290IiwNCiAgICAgICAgICAgIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gew0KICAg ICAgICAgICAgICBjb25zdCB7IG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICAg IHJldHVybiBbdC5yb290LCAiaW5oZXJpdCIgIT09IG4uY29sb3IgJiYgdFsiY29sb3IiLmNv bmNhdChpbyhuLmNvbG9yKSldLCB0WyJmb250U2l6ZSIuY29uY2F0KGlvKG4uZm9udFNpemUp KV1dOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkgPT4gew0KICAgICAgICAg ICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICB2 YXIgciwgbywgYSwgaSwgbCwgcywgdSwgYywgZCwgZiwgcCwgaCwgbTsNCiAgICAgICAgICAg IHJldHVybiB7DQogICAgICAgICAgICAgIHVzZXJTZWxlY3Q6ICJub25lIiwNCiAgICAgICAg ICAgICAgd2lkdGg6ICIxZW0iLA0KICAgICAgICAgICAgICBoZWlnaHQ6ICIxZW0iLA0KICAg ICAgICAgICAgICBkaXNwbGF5OiAiaW5saW5lLWJsb2NrIiwNCiAgICAgICAgICAgICAgZmls bDogbi5oYXNTdmdBc0NoaWxkID8gdm9pZCAwIDogImN1cnJlbnRDb2xvciIsDQogICAgICAg ICAgICAgIGZsZXhTaHJpbms6IDAsDQogICAgICAgICAgICAgIHRyYW5zaXRpb246IG51bGwg PT0gKHIgPSB0LnRyYW5zaXRpb25zKSB8fCBudWxsID09IChvID0gci5jcmVhdGUpID8gdm9p ZCAwIDogby5jYWxsKHIsICJmaWxsIiwgeyBkdXJhdGlvbjogbnVsbCA9PSAoYSA9IHQudHJh bnNpdGlvbnMpIHx8IG51bGwgPT0gKGEgPSBhLmR1cmF0aW9uKSA/IHZvaWQgMCA6IGEuc2hv cnRlciB9KSwNCiAgICAgICAgICAgICAgZm9udFNpemU6IHsNCiAgICAgICAgICAgICAgICBp bmhlcml0OiAiaW5oZXJpdCIsDQogICAgICAgICAgICAgICAgc21hbGw6IChudWxsID09IChp ID0gdC50eXBvZ3JhcGh5KSB8fCBudWxsID09IChsID0gaS5weFRvUmVtKSA/IHZvaWQgMCA6 IGwuY2FsbChpLCAyMCkpIHx8ICIxLjI1cmVtIiwNCiAgICAgICAgICAgICAgICBtZWRpdW06 IChudWxsID09IChzID0gdC50eXBvZ3JhcGh5KSB8fCBudWxsID09ICh1ID0gcy5weFRvUmVt KSA/IHZvaWQgMCA6IHUuY2FsbChzLCAyNCkpIHx8ICIxLjVyZW0iLA0KICAgICAgICAgICAg ICAgIGxhcmdlOiAobnVsbCA9PSAoYyA9IHQudHlwb2dyYXBoeSkgfHwgbnVsbCA9PSAoZCA9 IGMucHhUb1JlbSkgPyB2b2lkIDAgOiBkLmNhbGwoYywgMzUpKSB8fCAiMi4xODc1cmVtIiwN CiAgICAgICAgICAgICAgfVtuLmZvbnRTaXplXSwNCiAgICAgICAgICAgICAgY29sb3I6DQog ICAgICAgICAgICAgICAgbnVsbCAhPSAoZiA9IG51bGwgPT0gKHAgPSAodC52YXJzIHx8IHQp LnBhbGV0dGUpIHx8IG51bGwgPT0gKHAgPSBwW24uY29sb3JdKSA/IHZvaWQgMCA6IHAubWFp bikNCiAgICAgICAgICAgICAgICAgID8gZg0KICAgICAgICAgICAgICAgICAgOiB7DQogICAg ICAgICAgICAgICAgICAgIGFjdGlvbjogbnVsbCA9PSAoaCA9ICh0LnZhcnMgfHwgdCkucGFs ZXR0ZSkgfHwgbnVsbCA9PSAoaCA9IGguYWN0aW9uKSA/IHZvaWQgMCA6IGguYWN0aXZlLA0K ICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogbnVsbCA9PSAobSA9ICh0LnZhcnMgfHwg dCkucGFsZXR0ZSkgfHwgbnVsbCA9PSAobSA9IG0uYWN0aW9uKSA/IHZvaWQgMCA6IG0uZGlz YWJsZWQsDQogICAgICAgICAgICAgICAgICAgIGluaGVyaXQ6IHZvaWQgMCwNCiAgICAgICAg ICAgICAgICAgIH1bbi5jb2xvcl0sDQogICAgICAgICAgICB9Ow0KICAgICAgICAgIH0pLA0K ICAgICAgICAgIEV1ID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAg ICAgICBjb25zdCByID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aVN2Z0ljb24iIH0pLA0K ICAgICAgICAgICAgICB7IGNoaWxkcmVuOiBvLCBjbGFzc05hbWU6IGwsIGNvbG9yOiB1ID0g ImluaGVyaXQiLCBjb21wb25lbnQ6IGQgPSAic3ZnIiwgZm9udFNpemU6IGYgPSAibWVkaXVt IiwgaHRtbENvbG9yOiBwLCBpbmhlcml0Vmlld0JveDogaCA9ICExLCB0aXRsZUFjY2Vzczog bSwgdmlld0JveDogZyA9ICIwIDAgMjQgMjQiIH0gPSByLA0KICAgICAgICAgICAgICB2ID0g YShyLCBTdSksDQogICAgICAgICAgICAgIHkgPSB0LmlzVmFsaWRFbGVtZW50KG8pICYmICJz dmciID09PSBvLnR5cGUsDQogICAgICAgICAgICAgIGIgPSBpKHt9LCByLCB7IGNvbG9yOiB1 LCBjb21wb25lbnQ6IGQsIGZvbnRTaXplOiBmLCBpbnN0YW5jZUZvbnRTaXplOiBlLmZvbnRT aXplLCBpbmhlcml0Vmlld0JveDogaCwgdmlld0JveDogZywgaGFzU3ZnQXNDaGlsZDogeSB9 KSwNCiAgICAgICAgICAgICAgdyA9IHt9Ow0KICAgICAgICAgICAgaCB8fCAody52aWV3Qm94 ID0gZyk7DQogICAgICAgICAgICBjb25zdCB4ID0gKChlKSA9PiB7DQogICAgICAgICAgICAg IGNvbnN0IHsgY29sb3I6IHQsIGZvbnRTaXplOiBuLCBjbGFzc2VzOiByIH0gPSBlOw0KICAg ICAgICAgICAgICByZXR1cm4gYyh7IHJvb3Q6IFsicm9vdCIsICJpbmhlcml0IiAhPT0gdCAm JiAiY29sb3IiLmNvbmNhdChpbyh0KSksICJmb250U2l6ZSIuY29uY2F0KGlvKG4pKV0gfSwg eHUsIHIpOw0KICAgICAgICAgICAgfSkoYik7DQogICAgICAgICAgICByZXR1cm4gKDAsDQog ICAgICAgICAgICAgIE5yLmpzeHMpKGt1LCBpKHsgYXM6IGQsIGNsYXNzTmFtZTogcyh4LnJv b3QsIGwpLCBmb2N1c2FibGU6ICJmYWxzZSIsIGNvbG9yOiBwLCAiYXJpYS1oaWRkZW4iOiAh bSB8fCB2b2lkIDAsIHJvbGU6IG0gPyAiaW1nIiA6IHZvaWQgMCwgcmVmOiBuIH0sIHcsIHYs IHkgJiYgby5wcm9wcywgeyBvd25lclN0YXRlOiBiLCBjaGlsZHJlbjogW3kgPyBvLnByb3Bz LmNoaWxkcmVuIDogbywgbSA/ICgwLCBOci5qc3gpKCJ0aXRsZSIsIHsgY2hpbGRyZW46IG0g fSkgOiBudWxsXSB9KSk7DQogICAgICAgICAgfSk7DQogICAgICAgIEV1Lm11aU5hbWUgPSAi U3ZnSWNvbiI7DQogICAgICAgIGNvbnN0IEN1ID0gRXU7DQogICAgICAgIGZ1bmN0aW9uIFJ1 KGUsIG4pIHsNCiAgICAgICAgICBmdW5jdGlvbiByKHQsIHIpIHsNCiAgICAgICAgICAgIHJl dHVybiAoMCwgTnIuanN4KShDdSwgaSh7ICJkYXRhLXRlc3RpZCI6ICIiLmNvbmNhdChuLCAi SWNvbiIpLCByZWY6IHIgfSwgdCwgeyBjaGlsZHJlbjogZSB9KSk7DQogICAgICAgICAgfQ0K ICAgICAgICAgIHJldHVybiAoci5tdWlOYW1lID0gQ3UubXVpTmFtZSksIHQubWVtbyh0LmZv cndhcmRSZWYocikpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IF91ID0gUnUoDQogICAg ICAgICAgKDAsIE5yLmpzeCkoInBhdGgiLCB7DQogICAgICAgICAgICBkOg0KICAgICAgICAg ICAgICAiTTIwLDEyQTgsOCAwIDAsMSAxMiwyMEE4LDggMCAwLDEgNCwxMkE4LDggMCAwLDEg MTIsNEMxMi43Niw0IDEzLjUsNC4xMSAxNC4yLCA0LjMxTDE1Ljc3LDIuNzRDMTQuNjEsMi4y NiAxMy4zNCwyIDEyLDJBMTAsMTAgMCAwLDAgMiwxMkExMCwxMCAwIDAsMCAxMiwyMkExMCwx MCAwIDAsIDAgMjIsMTJNNy45MSwxMC4wOEw2LjUsMTEuNUwxMSwxNkwyMSw2TDE5LjU5LDQu NThMMTEsMTMuMTdMNy45MSwxMC4wOFoiLA0KICAgICAgICAgIH0pLA0KICAgICAgICAgICJT dWNjZXNzT3V0bGluZWQiDQogICAgICAgICksDQogICAgICAgICAgUHUgPSBSdSgoMCwgTnIu anN4KSgicGF0aCIsIHsgZDogIk0xMiA1Ljk5TDE5LjUzIDE5SDQuNDdMMTIgNS45OU0xMiAy TDEgMjFoMjJMMTIgMnptMSAxNGgtMnYyaDJ2LTJ6bTAtNmgtMnY0aDJ2LTR6IiB9KSwgIlJl cG9ydFByb2JsZW1PdXRsaW5lZCIpLA0KICAgICAgICAgIE91ID0gUnUoDQogICAgICAgICAg ICAoMCwgTnIuanN4KSgicGF0aCIsIHsgZDogIk0xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6 bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIg MTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThz My41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6IiB9KSwNCiAgICAgICAgICAgICJF cnJvck91dGxpbmUiDQogICAgICAgICAgKSwNCiAgICAgICAgICBOdSA9IFJ1KA0KICAgICAg ICAgICAgKDAsIE5yLmpzeCkoInBhdGgiLCB7DQogICAgICAgICAgICAgIGQ6ICJNMTEsOUgx M1Y3SDExTTEyLDIwQzcuNTksMjAgNCwxNi40MSA0LDEyQzQsNy41OSA3LjU5LDQgMTIsNEMx Ni40MSw0IDIwLDcuNTkgMjAsIDEyQzIwLDE2LjQxIDE2LjQxLDIwIDEyLDIwTTEyLDJBMTAs MTAgMCAwLDAgMiwxMkExMCwxMCAwIDAsMCAxMiwyMkExMCwxMCAwIDAsMCAyMiwxMkExMCwg MTAgMCAwLDAgMTIsMk0xMSwxN0gxM1YxMUgxMVYxN1oiLA0KICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAiSW5mb091dGxpbmVkIg0KICAgICAgICAgICksDQogICAgICAgICAgVHUg PSBSdSgoMCwgTnIuanN4KSgicGF0aCIsIHsgZDogIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAu NTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcu NTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6IiB9KSwgIkNsb3NlIiksDQogICAgICAgICAgQXUg PSBbImFjdGlvbiIsICJjaGlsZHJlbiIsICJjbGFzc05hbWUiLCAiY2xvc2VUZXh0IiwgImNv bG9yIiwgImNvbXBvbmVudHMiLCAiY29tcG9uZW50c1Byb3BzIiwgImljb24iLCAiaWNvbk1h cHBpbmciLCAib25DbG9zZSIsICJyb2xlIiwgInNldmVyaXR5IiwgInNsb3RQcm9wcyIsICJz bG90cyIsICJ2YXJpYW50Il0sDQogICAgICAgICAgTXUgPSBZbihmdSwgew0KICAgICAgICAg ICAgbmFtZTogIk11aUFsZXJ0IiwNCiAgICAgICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAg ICAgICAgIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICBj b25zdCB7IG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBbdC5y b290LCB0W24udmFyaWFudF0sIHRbIiIuY29uY2F0KG4udmFyaWFudCkuY29uY2F0KGlvKG4u Y29sb3IgfHwgbi5zZXZlcml0eSkpXV07DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0p KChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9 ID0gZTsNCiAgICAgICAgICAgIGNvbnN0IHIgPSAibGlnaHQiID09PSB0LnBhbGV0dGUubW9k ZSA/IHYgOiB5LA0KICAgICAgICAgICAgICBvID0gImxpZ2h0IiA9PT0gdC5wYWxldHRlLm1v ZGUgPyB5IDogdiwNCiAgICAgICAgICAgICAgYSA9IG4uY29sb3IgfHwgbi5zZXZlcml0eTsN CiAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAgICB7fSwNCiAgICAgICAgICAg ICAgdC50eXBvZ3JhcGh5LmJvZHkyLA0KICAgICAgICAgICAgICB7IGJhY2tncm91bmRDb2xv cjogInRyYW5zcGFyZW50IiwgZGlzcGxheTogImZsZXgiLCBwYWRkaW5nOiAiNnB4IDE2cHgi IH0sDQogICAgICAgICAgICAgIGEgJiYNCiAgICAgICAgICAgICAgInN0YW5kYXJkIiA9PT0g bi52YXJpYW50ICYmIHsNCiAgICAgICAgICAgICAgICBjb2xvcjogdC52YXJzID8gdC52YXJz LnBhbGV0dGUuQWxlcnRbIiIuY29uY2F0KGEsICJDb2xvciIpXSA6IHIodC5wYWxldHRlW2Fd LmxpZ2h0LCAwLjYpLA0KICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdC52YXJz ID8gdC52YXJzLnBhbGV0dGUuQWxlcnRbIiIuY29uY2F0KGEsICJTdGFuZGFyZEJnIildIDog byh0LnBhbGV0dGVbYV0ubGlnaHQsIDAuOSksDQogICAgICAgICAgICAgICAgWyImIC4iLmNv bmNhdChodS5pY29uKV06IHQudmFycyA/IHsgY29sb3I6IHQudmFycy5wYWxldHRlLkFsZXJ0 WyIiLmNvbmNhdChhLCAiSWNvbkNvbG9yIildIH0gOiB7IGNvbG9yOiB0LnBhbGV0dGVbYV0u bWFpbiB9LA0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBhICYmDQogICAgICAg ICAgICAgICJvdXRsaW5lZCIgPT09IG4udmFyaWFudCAmJiB7DQogICAgICAgICAgICAgICAg Y29sb3I6IHQudmFycyA/IHQudmFycy5wYWxldHRlLkFsZXJ0WyIiLmNvbmNhdChhLCAiQ29s b3IiKV0gOiByKHQucGFsZXR0ZVthXS5saWdodCwgMC42KSwNCiAgICAgICAgICAgICAgICBi b3JkZXI6ICIxcHggc29saWQgIi5jb25jYXQoKHQudmFycyB8fCB0KS5wYWxldHRlW2FdLmxp Z2h0KSwNCiAgICAgICAgICAgICAgICBbIiYgLiIuY29uY2F0KGh1Lmljb24pXTogdC52YXJz ID8geyBjb2xvcjogdC52YXJzLnBhbGV0dGUuQWxlcnRbIiIuY29uY2F0KGEsICJJY29uQ29s b3IiKV0gfSA6IHsgY29sb3I6IHQucGFsZXR0ZVthXS5tYWluIH0sDQogICAgICAgICAgICAg IH0sDQogICAgICAgICAgICAgIGEgJiYNCiAgICAgICAgICAgICAgImZpbGxlZCIgPT09IG4u dmFyaWFudCAmJg0KICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgIHsgZm9udFdl aWdodDogdC50eXBvZ3JhcGh5LmZvbnRXZWlnaHRNZWRpdW0gfSwNCiAgICAgICAgICAgICAg ICB0LnZhcnMNCiAgICAgICAgICAgICAgICAgID8geyBjb2xvcjogdC52YXJzLnBhbGV0dGUu QWxlcnRbIiIuY29uY2F0KGEsICJGaWxsZWRDb2xvciIpXSwgYmFja2dyb3VuZENvbG9yOiB0 LnZhcnMucGFsZXR0ZS5BbGVydFsiIi5jb25jYXQoYSwgIkZpbGxlZEJnIildIH0NCiAgICAg ICAgICAgICAgICAgIDogeyBiYWNrZ3JvdW5kQ29sb3I6ICJkYXJrIiA9PT0gdC5wYWxldHRl Lm1vZGUgPyB0LnBhbGV0dGVbYV0uZGFyayA6IHQucGFsZXR0ZVthXS5tYWluLCBjb2xvcjog dC5wYWxldHRlLmdldENvbnRyYXN0VGV4dCh0LnBhbGV0dGVbYV0ubWFpbikgfQ0KICAgICAg ICAgICAgICApDQogICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIHp1 ID0gWW4oImRpdiIsIHsgbmFtZTogIk11aUFsZXJ0Iiwgc2xvdDogIkljb24iLCBvdmVycmlk ZXNSZXNvbHZlcjogKGUsIHQpID0+IHQuaWNvbiB9KSh7IG1hcmdpblJpZ2h0OiAxMiwgcGFk ZGluZzogIjdweCAwIiwgZGlzcGxheTogImZsZXgiLCBmb250U2l6ZTogMjIsIG9wYWNpdHk6 IDAuOSB9KSwNCiAgICAgICAgICBqdSA9IFluKCJkaXYiLCB7IG5hbWU6ICJNdWlBbGVydCIs IHNsb3Q6ICJNZXNzYWdlIiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0Lm1lc3Nh Z2UgfSkoeyBwYWRkaW5nOiAiOHB4IDAiLCBtaW5XaWR0aDogMCwgb3ZlcmZsb3c6ICJhdXRv IiB9KSwNCiAgICAgICAgICBJdSA9IFluKCJkaXYiLCB7IG5hbWU6ICJNdWlBbGVydCIsIHNs b3Q6ICJBY3Rpb24iLCBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHQuYWN0aW9uIH0p KHsgZGlzcGxheTogImZsZXgiLCBhbGlnbkl0ZW1zOiAiZmxleC1zdGFydCIsIHBhZGRpbmc6 ICI0cHggMCAwIDE2cHgiLCBtYXJnaW5MZWZ0OiAiYXV0byIsIG1hcmdpblJpZ2h0OiAtOCB9 KSwNCiAgICAgICAgICBMdSA9IHsgc3VjY2VzczogKDAsIE5yLmpzeCkoX3UsIHsgZm9udFNp emU6ICJpbmhlcml0IiB9KSwgd2FybmluZzogKDAsIE5yLmpzeCkoUHUsIHsgZm9udFNpemU6 ICJpbmhlcml0IiB9KSwgZXJyb3I6ICgwLCBOci5qc3gpKE91LCB7IGZvbnRTaXplOiAiaW5o ZXJpdCIgfSksIGluZm86ICgwLCBOci5qc3gpKE51LCB7IGZvbnRTaXplOiAiaW5oZXJpdCIg fSkgfSwNCiAgICAgICAgICBGdSA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgdCkgew0K ICAgICAgICAgICAgdmFyIG4sIHIsIG8sIGwsIHUsIGQ7DQogICAgICAgICAgICBjb25zdCBm ID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aUFsZXJ0IiB9KSwNCiAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIGFjdGlvbjogcCwNCiAgICAgICAgICAgICAgICBjaGlsZHJl bjogaCwNCiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IG0sDQogICAgICAgICAgICAgICAg Y2xvc2VUZXh0OiBnID0gIkNsb3NlIiwNCiAgICAgICAgICAgICAgICBjb2xvcjogdiwNCiAg ICAgICAgICAgICAgICBjb21wb25lbnRzOiB5ID0ge30sDQogICAgICAgICAgICAgICAgY29t cG9uZW50c1Byb3BzOiBiID0ge30sDQogICAgICAgICAgICAgICAgaWNvbjogdywNCiAgICAg ICAgICAgICAgICBpY29uTWFwcGluZzogeCA9IEx1LA0KICAgICAgICAgICAgICAgIG9uQ2xv c2U6IFMsDQogICAgICAgICAgICAgICAgcm9sZTogayA9ICJhbGVydCIsDQogICAgICAgICAg ICAgICAgc2V2ZXJpdHk6IEUgPSAic3VjY2VzcyIsDQogICAgICAgICAgICAgICAgc2xvdFBy b3BzOiBDID0ge30sDQogICAgICAgICAgICAgICAgc2xvdHM6IFIgPSB7fSwNCiAgICAgICAg ICAgICAgICB2YXJpYW50OiBfID0gInN0YW5kYXJkIiwNCiAgICAgICAgICAgICAgfSA9IGYs DQogICAgICAgICAgICAgIFAgPSBhKGYsIEF1KSwNCiAgICAgICAgICAgICAgTyA9IGkoe30s IGYsIHsgY29sb3I6IHYsIHNldmVyaXR5OiBFLCB2YXJpYW50OiBfIH0pLA0KICAgICAgICAg ICAgICBOID0gKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeyB2YXJpYW50OiB0 LCBjb2xvcjogbiwgc2V2ZXJpdHk6IHIsIGNsYXNzZXM6IG8gfSA9IGU7DQogICAgICAgICAg ICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3QiLCAiIi5jb25jYXQodCkuY29uY2F0KGlv KG4gfHwgcikpLCAiIi5jb25jYXQodCldLCBpY29uOiBbImljb24iXSwgbWVzc2FnZTogWyJt ZXNzYWdlIl0sIGFjdGlvbjogWyJhY3Rpb24iXSB9LCBwdSwgbyk7DQogICAgICAgICAgICAg IH0pKE8pLA0KICAgICAgICAgICAgICBUID0gbnVsbCAhPSAobiA9IG51bGwgIT0gKHIgPSBS LmNsb3NlQnV0dG9uKSA/IHIgOiB5LkNsb3NlQnV0dG9uKSA/IG4gOiB3dSwNCiAgICAgICAg ICAgICAgQSA9IG51bGwgIT0gKG8gPSBudWxsICE9IChsID0gUi5jbG9zZUljb24pID8gbCA6 IHkuQ2xvc2VJY29uKSA/IG8gOiBUdSwNCiAgICAgICAgICAgICAgTSA9IG51bGwgIT0gKHUg PSBDLmNsb3NlQnV0dG9uKSA/IHUgOiBiLmNsb3NlQnV0dG9uLA0KICAgICAgICAgICAgICB6 ID0gbnVsbCAhPSAoZCA9IEMuY2xvc2VJY29uKSA/IGQgOiBiLmNsb3NlSWNvbjsNCiAgICAg ICAgICAgIHJldHVybiAoMCwNCiAgICAgICAgICAgICAgTnIuanN4cykoTXUsIGkoeyByb2xl OiBrLCBlbGV2YXRpb246IDAsIG93bmVyU3RhdGU6IE8sIGNsYXNzTmFtZTogcyhOLnJvb3Qs IG0pLCByZWY6IHQgfSwgUCwgeyBjaGlsZHJlbjogWyExICE9PSB3ID8gKDAsIE5yLmpzeCko enUsIHsgb3duZXJTdGF0ZTogTywgY2xhc3NOYW1lOiBOLmljb24sIGNoaWxkcmVuOiB3IHx8 IHhbRV0gfHwgTHVbRV0gfSkgOiBudWxsLCAoMCwgTnIuanN4KShqdSwgeyBvd25lclN0YXRl OiBPLCBjbGFzc05hbWU6IE4ubWVzc2FnZSwgY2hpbGRyZW46IGggfSksIG51bGwgIT0gcCA/ ICgwLCBOci5qc3gpKEl1LCB7IG93bmVyU3RhdGU6IE8sIGNsYXNzTmFtZTogTi5hY3Rpb24s IGNoaWxkcmVuOiBwIH0pIDogbnVsbCwgbnVsbCA9PSBwICYmIFMgPyAoMCwgTnIuanN4KShJ dSwgeyBvd25lclN0YXRlOiBPLCBjbGFzc05hbWU6IE4uYWN0aW9uLCBjaGlsZHJlbjogKDAs IE5yLmpzeCkoVCwgaSh7IHNpemU6ICJzbWFsbCIsICJhcmlhLWxhYmVsIjogZywgdGl0bGU6 IGcsIGNvbG9yOiAiaW5oZXJpdCIsIG9uQ2xpY2s6IFMgfSwgTSwgeyBjaGlsZHJlbjogKDAs IE5yLmpzeCkoQSwgaSh7IGZvbnRTaXplOiAic21hbGwiIH0sIHopKSB9KSkgfSkgOiBudWxs XSB9KSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgQnUgPSBGdSwNCiAgICAgICAgICBE dSA9IGduKCksDQogICAgICAgICAgVXUgPSBbImNvbXBvbmVudCIsICJkaXJlY3Rpb24iLCAi c3BhY2luZyIsICJkaXZpZGVyIiwgImNoaWxkcmVuIiwgImNsYXNzTmFtZSIsICJ1c2VGbGV4 R2FwIl0sDQogICAgICAgICAgV3UgPSBubigpLA0KICAgICAgICAgIFZ1ID0gRHUoImRpdiIs IHsgbmFtZTogIk11aVN0YWNrIiwgc2xvdDogIlJvb3QiLCBvdmVycmlkZXNSZXNvbHZlcjog KGUsIHQpID0+IHQucm9vdCB9KTsNCiAgICAgICAgZnVuY3Rpb24gSHUoZSkgew0KICAgICAg ICAgIHJldHVybiBlcih7IHByb3BzOiBlLCBuYW1lOiAiTXVpU3RhY2siLCBkZWZhdWx0VGhl bWU6IFd1IH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHF1KGUsIG4pIHsNCiAg ICAgICAgICBjb25zdCByID0gdC5DaGlsZHJlbi50b0FycmF5KGUpLmZpbHRlcihCb29sZWFu KTsNCiAgICAgICAgICByZXR1cm4gci5yZWR1Y2UoKGUsIG8sIGEpID0+IChlLnB1c2gobyks IGEgPCByLmxlbmd0aCAtIDEgJiYgZS5wdXNoKHQuY2xvbmVFbGVtZW50KG4sIHsga2V5OiAi c2VwYXJhdG9yLSIuY29uY2F0KGEpIH0pKSwgZSksIFtdKTsNCiAgICAgICAgfQ0KICAgICAg ICBjb25zdCAkdSA9IChlKSA9PiB7DQogICAgICAgICAgbGV0IHsgb3duZXJTdGF0ZTogdCwg dGhlbWU6IG4gfSA9IGUsDQogICAgICAgICAgICByID0gaSgNCiAgICAgICAgICAgICAgeyBk aXNwbGF5OiAiZmxleCIsIGZsZXhEaXJlY3Rpb246ICJjb2x1bW4iIH0sDQogICAgICAgICAg ICAgIG90KHsgdGhlbWU6IG4gfSwgbHQoeyB2YWx1ZXM6IHQuZGlyZWN0aW9uLCBicmVha3Bv aW50czogbi5icmVha3BvaW50cy52YWx1ZXMgfSksIChlKSA9PiAoeyBmbGV4RGlyZWN0aW9u OiBlIH0pKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICBpZiAodC5zcGFjaW5nKSB7DQog ICAgICAgICAgICBjb25zdCBlID0geHQobiksDQogICAgICAgICAgICAgIG8gPSBPYmplY3Qu a2V5cyhuLmJyZWFrcG9pbnRzLnZhbHVlcykucmVkdWNlKChlLCBuKSA9PiAoKCgib2JqZWN0 IiA9PT0gdHlwZW9mIHQuc3BhY2luZyAmJiBudWxsICE9IHQuc3BhY2luZ1tuXSkgfHwgKCJv YmplY3QiID09PSB0eXBlb2YgdC5kaXJlY3Rpb24gJiYgbnVsbCAhPSB0LmRpcmVjdGlvbltu XSkpICYmIChlW25dID0gITApLCBlKSwge30pLA0KICAgICAgICAgICAgICBhID0gbHQoeyB2 YWx1ZXM6IHQuZGlyZWN0aW9uLCBiYXNlOiBvIH0pLA0KICAgICAgICAgICAgICBpID0gbHQo eyB2YWx1ZXM6IHQuc3BhY2luZywgYmFzZTogbyB9KTsNCiAgICAgICAgICAgICJvYmplY3Qi ID09PSB0eXBlb2YgYSAmJg0KICAgICAgICAgICAgICBPYmplY3Qua2V5cyhhKS5mb3JFYWNo KChlLCB0LCBuKSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKCFhW2VdKSB7DQogICAgICAg ICAgICAgICAgICBjb25zdCByID0gdCA+IDAgPyBhW25bdCAtIDFdXSA6ICJjb2x1bW4iOw0K ICAgICAgICAgICAgICAgICAgYVtlXSA9IHI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICB9KTsNCiAgICAgICAgICAgIHIgPSBaZSgNCiAgICAgICAgICAgICAgciwNCiAg ICAgICAgICAgICAgb3QoeyB0aGVtZTogbiB9LCBpLCAobiwgcikgPT4gew0KICAgICAgICAg ICAgICAgIHJldHVybiB0LnVzZUZsZXhHYXANCiAgICAgICAgICAgICAgICAgID8geyBnYXA6 IFN0KGUsIG4pIH0NCiAgICAgICAgICAgICAgICAgIDogew0KICAgICAgICAgICAgICAgICAg ICAiJiA+IDpub3Qoc3R5bGUpOm5vdChzdHlsZSkiOiB7IG1hcmdpbjogMCB9LA0KICAgICAg ICAgICAgICAgICAgICAiJiA+IDpub3Qoc3R5bGUpIH4gOm5vdChzdHlsZSkiOiB7IFsibWFy Z2luIi5jb25jYXQoKChvID0gciA/IGFbcl0gOiB0LmRpcmVjdGlvbiksIHsgcm93OiAiTGVm dCIsICJyb3ctcmV2ZXJzZSI6ICJSaWdodCIsIGNvbHVtbjogIlRvcCIsICJjb2x1bW4tcmV2 ZXJzZSI6ICJCb3R0b20iIH1bb10pKV06IFN0KGUsIG4pIH0sDQogICAgICAgICAgICAgICAg ICB9Ow0KICAgICAgICAgICAgICAgIHZhciBvOw0KICAgICAgICAgICAgICB9KQ0KICAgICAg ICAgICAgKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAg IChyID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGNvbnN0IHQgPSBhdChlKTsN CiAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBuZXcg QXJyYXkobiA+IDEgPyBuIC0gMSA6IDApLCBvID0gMTsgbyA8IG47IG8rKykgcltvIC0gMV0g PSBhcmd1bWVudHNbb107DQogICAgICAgICAgICAgIGNvbnN0IGEgPSBbdCwgLi4ucl0ucmVk dWNlKChlLCB0KSA9PiBaZShlLCB0KSwge30pOw0KICAgICAgICAgICAgICByZXR1cm4gaXQo T2JqZWN0LmtleXModCksIGEpOw0KICAgICAgICAgICAgfSkobi5icmVha3BvaW50cywgcikp LA0KICAgICAgICAgICAgcg0KICAgICAgICAgICk7DQogICAgICAgIH07DQogICAgICAgIGNv bnN0IEt1ID0gKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50cy5s ZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDog e307DQogICAgICAgICAgY29uc3QgeyBjcmVhdGVTdHlsZWRDb21wb25lbnQ6IG4gPSBWdSwg dXNlVGhlbWVQcm9wczogciA9IEh1LCBjb21wb25lbnROYW1lOiBvID0gIk11aVN0YWNrIiB9 ID0gZSwNCiAgICAgICAgICAgIGwgPSBuKCR1KSwNCiAgICAgICAgICAgIHUgPSB0LmZvcndh cmRSZWYoZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgY29uc3QgbiA9IHBhKHIo ZSkpLA0KICAgICAgICAgICAgICAgIHsgY29tcG9uZW50OiB1ID0gImRpdiIsIGRpcmVjdGlv bjogZCA9ICJjb2x1bW4iLCBzcGFjaW5nOiBmID0gMCwgZGl2aWRlcjogcCwgY2hpbGRyZW46 IGgsIGNsYXNzTmFtZTogbSwgdXNlRmxleEdhcDogZyA9ICExIH0gPSBuLA0KICAgICAgICAg ICAgICAgIHYgPSBhKG4sIFV1KSwNCiAgICAgICAgICAgICAgICB5ID0geyBkaXJlY3Rpb246 IGQsIHNwYWNpbmc6IGYsIHVzZUZsZXhHYXA6IGcgfSwNCiAgICAgICAgICAgICAgICBiID0g Yyh7IHJvb3Q6IFsicm9vdCJdIH0sIChlKSA9PiBqcihvLCBlKSwge30pOw0KICAgICAgICAg ICAgICByZXR1cm4gKDAsIE5yLmpzeCkobCwgaSh7IGFzOiB1LCBvd25lclN0YXRlOiB5LCBy ZWY6IHQsIGNsYXNzTmFtZTogcyhiLnJvb3QsIG0pIH0sIHYsIHsgY2hpbGRyZW46IHAgPyBx dShoLCBwKSA6IGggfSkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgcmV0dXJuIHU7 DQogICAgICAgIH0pKHsgY3JlYXRlU3R5bGVkQ29tcG9uZW50OiBZbigiZGl2IiwgeyBuYW1l OiAiTXVpU3RhY2siLCBzbG90OiAiUm9vdCIsIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkg PT4gdC5yb290IH0pLCB1c2VUaGVtZVByb3BzOiAoZSkgPT4gdHIoeyBwcm9wczogZSwgbmFt ZTogIk11aVN0YWNrIiB9KSB9KSwNCiAgICAgICAgICBRdSA9IEt1Ow0KICAgICAgICBmdW5j dGlvbiBHdSgpIHsNCiAgICAgICAgICByZXR1cm4gKDAsIE5yLmpzeCkoUXUsIHsgc3g6IHsg d2lkdGg6ICIxMDAlIiB9LCBzcGFjaW5nOiAyLCBjaGlsZHJlbjogKDAsIE5yLmpzeCkoQnUs IHsgc2V2ZXJpdHk6ICJlcnJvciIsIGNoaWxkcmVuOiAiUGxlYXNlIGVudGVyIGNvcnJlY3Qg cGFzc3dvcmQiIH0pIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IFl1ID0gUnUoKDAs IE5yLmpzeCkoInBhdGgiLCB7IGQ6ICJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzkt NC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJo MTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6IiB9KSwgIlBlcnNvbiIpOw0KICAgICAgICBmdW5j dGlvbiBYdShlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlBdmF0YXIiLCBlKTsNCiAg ICAgICAgfQ0KICAgICAgICBJcigiTXVpQXZhdGFyIiwgWyJyb290IiwgImNvbG9yRGVmYXVs dCIsICJjaXJjdWxhciIsICJyb3VuZGVkIiwgInNxdWFyZSIsICJpbWciLCAiZmFsbGJhY2si XSk7DQogICAgICAgIGNvbnN0IFp1ID0gWyJhbHQiLCAiY2hpbGRyZW4iLCAiY2xhc3NOYW1l IiwgImNvbXBvbmVudCIsICJpbWdQcm9wcyIsICJzaXplcyIsICJzcmMiLCAic3JjU2V0Iiwg InZhcmlhbnQiXSwNCiAgICAgICAgICBKdSA9IFluKCJkaXYiLCB7DQogICAgICAgICAgICBu YW1lOiAiTXVpQXZhdGFyIiwNCiAgICAgICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAgICAg ICAgIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICBjb25z dCB7IG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBbdC5yb290 LCB0W24udmFyaWFudF0sIG4uY29sb3JEZWZhdWx0ICYmIHQuY29sb3JEZWZhdWx0XTsNCiAg ICAgICAgICAgIH0sDQogICAgICAgICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7 IHRoZW1lOiB0LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIGko DQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogInJlbGF0aXZl IiwNCiAgICAgICAgICAgICAgICBkaXNwbGF5OiAiZmxleCIsDQogICAgICAgICAgICAgICAg YWxpZ25JdGVtczogImNlbnRlciIsDQogICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6 ICJjZW50ZXIiLA0KICAgICAgICAgICAgICAgIGZsZXhTaHJpbms6IDAsDQogICAgICAgICAg ICAgICAgd2lkdGg6IDQwLA0KICAgICAgICAgICAgICAgIGhlaWdodDogNDAsDQogICAgICAg ICAgICAgICAgZm9udEZhbWlseTogdC50eXBvZ3JhcGh5LmZvbnRGYW1pbHksDQogICAgICAg ICAgICAgICAgZm9udFNpemU6IHQudHlwb2dyYXBoeS5weFRvUmVtKDIwKSwNCiAgICAgICAg ICAgICAgICBsaW5lSGVpZ2h0OiAxLA0KICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czog IjUwJSIsDQogICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICJoaWRkZW4iLA0KICAgICAgICAg ICAgICAgIHVzZXJTZWxlY3Q6ICJub25lIiwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAg ICAgICAgInJvdW5kZWQiID09PSBuLnZhcmlhbnQgJiYgeyBib3JkZXJSYWRpdXM6ICh0LnZh cnMgfHwgdCkuc2hhcGUuYm9yZGVyUmFkaXVzIH0sDQogICAgICAgICAgICAgICJzcXVhcmUi ID09PSBuLnZhcmlhbnQgJiYgeyBib3JkZXJSYWRpdXM6IDAgfSwNCiAgICAgICAgICAgICAg bi5jb2xvckRlZmF1bHQgJiYNCiAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICB7 IGNvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0IH0sDQog ICAgICAgICAgICAgICAgdC52YXJzID8geyBiYWNrZ3JvdW5kQ29sb3I6IHQudmFycy5wYWxl dHRlLkF2YXRhci5kZWZhdWx0QmcgfSA6IHsgYmFja2dyb3VuZENvbG9yOiAibGlnaHQiID09 PSB0LnBhbGV0dGUubW9kZSA/IHQucGFsZXR0ZS5ncmV5WzQwMF0gOiB0LnBhbGV0dGUuZ3Jl eVs2MDBdIH0NCiAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9 KSwNCiAgICAgICAgICBlYyA9IFluKCJpbWciLCB7IG5hbWU6ICJNdWlBdmF0YXIiLCBzbG90 OiAiSW1nIiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0LmltZyB9KSh7IHdpZHRo OiAiMTAwJSIsIGhlaWdodDogIjEwMCUiLCB0ZXh0QWxpZ246ICJjZW50ZXIiLCBvYmplY3RG aXQ6ICJjb3ZlciIsIGNvbG9yOiAidHJhbnNwYXJlbnQiLCB0ZXh0SW5kZW50OiAxZTQgfSks DQogICAgICAgICAgdGMgPSBZbihZdSwgeyBuYW1lOiAiTXVpQXZhdGFyIiwgc2xvdDogIkZh bGxiYWNrIiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0LmZhbGxiYWNrIH0pKHsg d2lkdGg6ICI3NSUiLCBoZWlnaHQ6ICI3NSUiIH0pOw0KICAgICAgICBjb25zdCBuYyA9IHQu Zm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgbikgew0KICAgICAgICAgIGNvbnN0IHIgPSB0cih7 IHByb3BzOiBlLCBuYW1lOiAiTXVpQXZhdGFyIiB9KSwNCiAgICAgICAgICAgIHsgYWx0OiBv LCBjaGlsZHJlbjogbCwgY2xhc3NOYW1lOiB1LCBjb21wb25lbnQ6IGQgPSAiZGl2IiwgaW1n UHJvcHM6IGYsIHNpemVzOiBwLCBzcmM6IGgsIHNyY1NldDogbSwgdmFyaWFudDogZyA9ICJj aXJjdWxhciIgfSA9IHIsDQogICAgICAgICAgICB2ID0gYShyLCBadSk7DQogICAgICAgICAg bGV0IHkgPSBudWxsOw0KICAgICAgICAgIGNvbnN0IGIgPSAoZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICAgIGxldCB7IGNyb3NzT3JpZ2luOiBuLCByZWZlcnJlclBvbGljeTogciwgc3Jj OiBvLCBzcmNTZXQ6IGEgfSA9IGU7DQogICAgICAgICAgICBjb25zdCBbaSwgbF0gPSB0LnVz ZVN0YXRlKCExKTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIHQudXNl RWZmZWN0KCgpID0+IHsNCiAgICAgICAgICAgICAgICBpZiAoIW8gJiYgIWEpIHJldHVybjsN CiAgICAgICAgICAgICAgICBsKCExKTsNCiAgICAgICAgICAgICAgICBsZXQgZSA9ICEwOw0K ICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBuZXcgSW1hZ2UoKTsNCiAgICAgICAgICAgICAg ICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgKHQub25sb2FkID0gKCkgPT4gew0KICAg ICAgICAgICAgICAgICAgICBlICYmIGwoImxvYWRlZCIpOw0KICAgICAgICAgICAgICAgICAg fSksDQogICAgICAgICAgICAgICAgICAodC5vbmVycm9yID0gKCkgPT4gew0KICAgICAgICAg ICAgICAgICAgICBlICYmIGwoImVycm9yIik7DQogICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICh0LmNyb3NzT3JpZ2luID0gbiksDQogICAgICAgICAgICAgICAg ICAodC5yZWZlcnJlclBvbGljeSA9IHIpLA0KICAgICAgICAgICAgICAgICAgKHQuc3JjID0g byksDQogICAgICAgICAgICAgICAgICBhICYmICh0LnNyY3NldCA9IGEpLA0KICAgICAgICAg ICAgICAgICAgKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBlID0gITE7DQogICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgfSwgW24s IHIsIG8sIGFdKSwNCiAgICAgICAgICAgICAgaQ0KICAgICAgICAgICAgKTsNCiAgICAgICAg ICB9KShpKHt9LCBmLCB7IHNyYzogaCwgc3JjU2V0OiBtIH0pKSwNCiAgICAgICAgICAgIHcg PSBoIHx8IG0sDQogICAgICAgICAgICB4ID0gdyAmJiAiZXJyb3IiICE9PSBiLA0KICAgICAg ICAgICAgUyA9IGkoe30sIHIsIHsgY29sb3JEZWZhdWx0OiAheCwgY29tcG9uZW50OiBkLCB2 YXJpYW50OiBnIH0pLA0KICAgICAgICAgICAgayA9ICgoZSkgPT4gew0KICAgICAgICAgICAg ICBjb25zdCB7IGNsYXNzZXM6IHQsIHZhcmlhbnQ6IG4sIGNvbG9yRGVmYXVsdDogciB9ID0g ZTsNCiAgICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3QiLCBuLCByICYmICJj b2xvckRlZmF1bHQiXSwgaW1nOiBbImltZyJdLCBmYWxsYmFjazogWyJmYWxsYmFjayJdIH0s IFh1LCB0KTsNCiAgICAgICAgICAgIH0pKFMpOw0KICAgICAgICAgIHJldHVybiAoDQogICAg ICAgICAgICAoeSA9IHggPyAoMCwgTnIuanN4KShlYywgaSh7IGFsdDogbywgc3JjU2V0OiBt LCBzcmM6IGgsIHNpemVzOiBwLCBvd25lclN0YXRlOiBTLCBjbGFzc05hbWU6IGsuaW1nIH0s IGYpKSA6IG51bGwgIT0gbCA/IGwgOiB3ICYmIG8gPyBvWzBdIDogKDAsIE5yLmpzeCkodGMs IHsgb3duZXJTdGF0ZTogUywgY2xhc3NOYW1lOiBrLmZhbGxiYWNrIH0pKSwNCiAgICAgICAg ICAgICgwLCBOci5qc3gpKEp1LCBpKHsgYXM6IGQsIG93bmVyU3RhdGU6IFMsIGNsYXNzTmFt ZTogcyhrLnJvb3QsIHUpLCByZWY6IG4gfSwgdiwgeyBjaGlsZHJlbjogeSB9KSkNCiAgICAg ICAgICApOw0KICAgICAgICB9KTsNCiAgICAgICAgZnVuY3Rpb24gcmMoZSkgew0KICAgICAg ICAgIHJldHVybiBqcigiTXVpVHlwb2dyYXBoeSIsIGUpOw0KICAgICAgICB9DQogICAgICAg IElyKCJNdWlUeXBvZ3JhcGh5IiwgWw0KICAgICAgICAgICJyb290IiwNCiAgICAgICAgICAi aDEiLA0KICAgICAgICAgICJoMiIsDQogICAgICAgICAgImgzIiwNCiAgICAgICAgICAiaDQi LA0KICAgICAgICAgICJoNSIsDQogICAgICAgICAgImg2IiwNCiAgICAgICAgICAic3VidGl0 bGUxIiwNCiAgICAgICAgICAic3VidGl0bGUyIiwNCiAgICAgICAgICAiYm9keTEiLA0KICAg ICAgICAgICJib2R5MiIsDQogICAgICAgICAgImluaGVyaXQiLA0KICAgICAgICAgICJidXR0 b24iLA0KICAgICAgICAgICJjYXB0aW9uIiwNCiAgICAgICAgICAib3ZlcmxpbmUiLA0KICAg ICAgICAgICJhbGlnbkxlZnQiLA0KICAgICAgICAgICJhbGlnblJpZ2h0IiwNCiAgICAgICAg ICAiYWxpZ25DZW50ZXIiLA0KICAgICAgICAgICJhbGlnbkp1c3RpZnkiLA0KICAgICAgICAg ICJub1dyYXAiLA0KICAgICAgICAgICJndXR0ZXJCb3R0b20iLA0KICAgICAgICAgICJwYXJh Z3JhcGgiLA0KICAgICAgICBdKTsNCiAgICAgICAgY29uc3Qgb2MgPSBbImFsaWduIiwgImNs YXNzTmFtZSIsICJjb21wb25lbnQiLCAiZ3V0dGVyQm90dG9tIiwgIm5vV3JhcCIsICJwYXJh Z3JhcGgiLCAidmFyaWFudCIsICJ2YXJpYW50TWFwcGluZyJdLA0KICAgICAgICAgIGFjID0g WW4oInNwYW4iLCB7DQogICAgICAgICAgICBuYW1lOiAiTXVpVHlwb2dyYXBoeSIsDQogICAg ICAgICAgICBzbG90OiAiUm9vdCIsDQogICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjog KGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBl Ow0KICAgICAgICAgICAgICByZXR1cm4gW3Qucm9vdCwgbi52YXJpYW50ICYmIHRbbi52YXJp YW50XSwgImluaGVyaXQiICE9PSBuLmFsaWduICYmIHRbImFsaWduIi5jb25jYXQoaW8obi5h bGlnbikpXSwgbi5ub1dyYXAgJiYgdC5ub1dyYXAsIG4uZ3V0dGVyQm90dG9tICYmIHQuZ3V0 dGVyQm90dG9tLCBuLnBhcmFncmFwaCAmJiB0LnBhcmFncmFwaF07DQogICAgICAgICAgICB9 LA0KICAgICAgICAgIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwg b3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAg ICAgICB7IG1hcmdpbjogMCB9LA0KICAgICAgICAgICAgICAiaW5oZXJpdCIgPT09IG4udmFy aWFudCAmJiB7IGZvbnQ6ICJpbmhlcml0IiB9LA0KICAgICAgICAgICAgICAiaW5oZXJpdCIg IT09IG4udmFyaWFudCAmJiB0LnR5cG9ncmFwaHlbbi52YXJpYW50XSwNCiAgICAgICAgICAg ICAgImluaGVyaXQiICE9PSBuLmFsaWduICYmIHsgdGV4dEFsaWduOiBuLmFsaWduIH0sDQog ICAgICAgICAgICAgIG4ubm9XcmFwICYmIHsgb3ZlcmZsb3c6ICJoaWRkZW4iLCB0ZXh0T3Zl cmZsb3c6ICJlbGxpcHNpcyIsIHdoaXRlU3BhY2U6ICJub3dyYXAiIH0sDQogICAgICAgICAg ICAgIG4uZ3V0dGVyQm90dG9tICYmIHsgbWFyZ2luQm90dG9tOiAiMC4zNWVtIiB9LA0KICAg ICAgICAgICAgICBuLnBhcmFncmFwaCAmJiB7IG1hcmdpbkJvdHRvbTogMTYgfQ0KICAgICAg ICAgICAgKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBpYyA9IHsgaDE6ICJoMSIsIGgy OiAiaDIiLCBoMzogImgzIiwgaDQ6ICJoNCIsIGg1OiAiaDUiLCBoNjogImg2Iiwgc3VidGl0 bGUxOiAiaDYiLCBzdWJ0aXRsZTI6ICJoNiIsIGJvZHkxOiAicCIsIGJvZHkyOiAicCIsIGlu aGVyaXQ6ICJwIiB9LA0KICAgICAgICAgIGxjID0geyBwcmltYXJ5OiAicHJpbWFyeS5tYWlu IiwgdGV4dFByaW1hcnk6ICJ0ZXh0LnByaW1hcnkiLCBzZWNvbmRhcnk6ICJzZWNvbmRhcnku bWFpbiIsIHRleHRTZWNvbmRhcnk6ICJ0ZXh0LnNlY29uZGFyeSIsIGVycm9yOiAiZXJyb3Iu bWFpbiIgfSwNCiAgICAgICAgICBzYyA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgdCkg ew0KICAgICAgICAgICAgY29uc3QgbiA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlUeXBv Z3JhcGh5IiB9KSwNCiAgICAgICAgICAgICAgciA9ICgoZSkgPT4gbGNbZV0gfHwgZSkobi5j b2xvciksDQogICAgICAgICAgICAgIG8gPSBwYShpKHt9LCBuLCB7IGNvbG9yOiByIH0pKSwN CiAgICAgICAgICAgICAgeyBhbGlnbjogbCA9ICJpbmhlcml0IiwgY2xhc3NOYW1lOiB1LCBj b21wb25lbnQ6IGQsIGd1dHRlckJvdHRvbTogZiA9ICExLCBub1dyYXA6IHAgPSAhMSwgcGFy YWdyYXBoOiBoID0gITEsIHZhcmlhbnQ6IG0gPSAiYm9keTEiLCB2YXJpYW50TWFwcGluZzog ZyA9IGljIH0gPSBvLA0KICAgICAgICAgICAgICB2ID0gYShvLCBvYyksDQogICAgICAgICAg ICAgIHkgPSBpKHt9LCBvLCB7IGFsaWduOiBsLCBjb2xvcjogciwgY2xhc3NOYW1lOiB1LCBj b21wb25lbnQ6IGQsIGd1dHRlckJvdHRvbTogZiwgbm9XcmFwOiBwLCBwYXJhZ3JhcGg6IGgs IHZhcmlhbnQ6IG0sIHZhcmlhbnRNYXBwaW5nOiBnIH0pLA0KICAgICAgICAgICAgICBiID0g ZCB8fCAoaCA/ICJwIiA6IGdbbV0gfHwgaWNbbV0pIHx8ICJzcGFuIiwNCiAgICAgICAgICAg ICAgdyA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgYWxpZ246IHQsIGd1 dHRlckJvdHRvbTogbiwgbm9XcmFwOiByLCBwYXJhZ3JhcGg6IG8sIHZhcmlhbnQ6IGEsIGNs YXNzZXM6IGkgfSA9IGU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJv b3QiLCBhLCAiaW5oZXJpdCIgIT09IGUuYWxpZ24gJiYgImFsaWduIi5jb25jYXQoaW8odCkp LCBuICYmICJndXR0ZXJCb3R0b20iLCByICYmICJub1dyYXAiLCBvICYmICJwYXJhZ3JhcGgi XSB9LCByYywgaSk7DQogICAgICAgICAgICAgIH0pKHkpOw0KICAgICAgICAgICAgcmV0dXJu ICgwLCBOci5qc3gpKGFjLCBpKHsgYXM6IGIsIHJlZjogdCwgb3duZXJTdGF0ZTogeSwgY2xh c3NOYW1lOiBzKHcucm9vdCwgdSkgfSwgdikpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAg IHVjID0gc2M7DQogICAgICAgIGZ1bmN0aW9uIGNjKGUpIHsNCiAgICAgICAgICByZXR1cm4g bnVsbCAhPSBlICYmICEoQXJyYXkuaXNBcnJheShlKSAmJiAwID09PSBlLmxlbmd0aCk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZGMoZSkgew0KICAgICAgICAgIGxldCB0ID0g YXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMV0gJiYgYXJn dW1lbnRzWzFdOw0KICAgICAgICAgIHJldHVybiBlICYmICgoY2MoZS52YWx1ZSkgJiYgIiIg IT09IGUudmFsdWUpIHx8ICh0ICYmIGNjKGUuZGVmYXVsdFZhbHVlKSAmJiAiIiAhPT0gZS5k ZWZhdWx0VmFsdWUpKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBmYyA9IGZ1bmN0aW9u IChlLCBuKSB7DQogICAgICAgICAgdmFyIHIsIG87DQogICAgICAgICAgcmV0dXJuIHQuaXNW YWxpZEVsZW1lbnQoZSkgJiYgLTEgIT09IG4uaW5kZXhPZihudWxsICE9IChyID0gZS50eXBl Lm11aU5hbWUpID8gciA6IG51bGwgPT0gKG8gPSBlLnR5cGUpIHx8IG51bGwgPT0gKG8gPSBv Ll9wYXlsb2FkKSB8fCBudWxsID09IChvID0gby52YWx1ZSkgPyB2b2lkIDAgOiBvLm11aU5h bWUpOw0KICAgICAgICB9Ow0KICAgICAgICBjb25zdCBwYyA9IHQuY3JlYXRlQ29udGV4dCh2 b2lkIDApOw0KICAgICAgICBmdW5jdGlvbiBoYyhlKSB7DQogICAgICAgICAgcmV0dXJuIGpy KCJNdWlGb3JtQ29udHJvbCIsIGUpOw0KICAgICAgICB9DQogICAgICAgIElyKCJNdWlGb3Jt Q29udHJvbCIsIFsicm9vdCIsICJtYXJnaW5Ob25lIiwgIm1hcmdpbk5vcm1hbCIsICJtYXJn aW5EZW5zZSIsICJmdWxsV2lkdGgiLCAiZGlzYWJsZWQiXSk7DQogICAgICAgIGNvbnN0IG1j ID0gWyJjaGlsZHJlbiIsICJjbGFzc05hbWUiLCAiY29sb3IiLCAiY29tcG9uZW50IiwgImRp c2FibGVkIiwgImVycm9yIiwgImZvY3VzZWQiLCAiZnVsbFdpZHRoIiwgImhpZGRlbkxhYmVs IiwgIm1hcmdpbiIsICJyZXF1aXJlZCIsICJzaXplIiwgInZhcmlhbnQiXSwNCiAgICAgICAg ICBnYyA9IFluKCJkaXYiLCB7DQogICAgICAgICAgICBuYW1lOiAiTXVpRm9ybUNvbnRyb2wi LA0KICAgICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVz b2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGxldCB7IG93bmVyU3RhdGU6IG4g fSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBpKHt9LCB0LnJvb3QsIHRbIm1hcmdpbiIu Y29uY2F0KGlvKG4ubWFyZ2luKSldLCBuLmZ1bGxXaWR0aCAmJiB0LmZ1bGxXaWR0aCk7DQog ICAgICAgICAgICB9LA0KICAgICAgICAgIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQg eyBvd25lclN0YXRlOiB0IH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAg ICAgICAgIHsgZGlzcGxheTogImlubGluZS1mbGV4IiwgZmxleERpcmVjdGlvbjogImNvbHVt biIsIHBvc2l0aW9uOiAicmVsYXRpdmUiLCBtaW5XaWR0aDogMCwgcGFkZGluZzogMCwgbWFy Z2luOiAwLCBib3JkZXI6IDAsIHZlcnRpY2FsQWxpZ246ICJ0b3AiIH0sDQogICAgICAgICAg ICAgICJub3JtYWwiID09PSB0Lm1hcmdpbiAmJiB7IG1hcmdpblRvcDogMTYsIG1hcmdpbkJv dHRvbTogOCB9LA0KICAgICAgICAgICAgICAiZGVuc2UiID09PSB0Lm1hcmdpbiAmJiB7IG1h cmdpblRvcDogOCwgbWFyZ2luQm90dG9tOiA0IH0sDQogICAgICAgICAgICAgIHQuZnVsbFdp ZHRoICYmIHsgd2lkdGg6ICIxMDAlIiB9DQogICAgICAgICAgICApOw0KICAgICAgICAgIH0p LA0KICAgICAgICAgIHZjID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCBuKSB7DQogICAg ICAgICAgICBjb25zdCByID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aUZvcm1Db250cm9s IiB9KSwNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBvLA0K ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbCwNCiAgICAgICAgICAgICAgICBjb2xvcjog dSA9ICJwcmltYXJ5IiwNCiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGQgPSAiZGl2IiwN CiAgICAgICAgICAgICAgICBkaXNhYmxlZDogZiA9ICExLA0KICAgICAgICAgICAgICAgIGVy cm9yOiBwID0gITEsDQogICAgICAgICAgICAgICAgZm9jdXNlZDogaCwNCiAgICAgICAgICAg ICAgICBmdWxsV2lkdGg6IG0gPSAhMSwNCiAgICAgICAgICAgICAgICBoaWRkZW5MYWJlbDog ZyA9ICExLA0KICAgICAgICAgICAgICAgIG1hcmdpbjogdiA9ICJub25lIiwNCiAgICAgICAg ICAgICAgICByZXF1aXJlZDogeSA9ICExLA0KICAgICAgICAgICAgICAgIHNpemU6IGIgPSAi bWVkaXVtIiwNCiAgICAgICAgICAgICAgICB2YXJpYW50OiB3ID0gIm91dGxpbmVkIiwNCiAg ICAgICAgICAgICAgfSA9IHIsDQogICAgICAgICAgICAgIHggPSBhKHIsIG1jKSwNCiAgICAg ICAgICAgICAgUyA9IGkoe30sIHIsIHsgY29sb3I6IHUsIGNvbXBvbmVudDogZCwgZGlzYWJs ZWQ6IGYsIGVycm9yOiBwLCBmdWxsV2lkdGg6IG0sIGhpZGRlbkxhYmVsOiBnLCBtYXJnaW46 IHYsIHJlcXVpcmVkOiB5LCBzaXplOiBiLCB2YXJpYW50OiB3IH0pLA0KICAgICAgICAgICAg ICBrID0gKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBjbGFzc2VzOiB0LCBt YXJnaW46IG4sIGZ1bGxXaWR0aDogciB9ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4g Yyh7IHJvb3Q6IFsicm9vdCIsICJub25lIiAhPT0gbiAmJiAibWFyZ2luIi5jb25jYXQoaW8o bikpLCByICYmICJmdWxsV2lkdGgiXSB9LCBoYywgdCk7DQogICAgICAgICAgICAgIH0pKFMp LA0KICAgICAgICAgICAgICBbRSwgQ10gPSB0LnVzZVN0YXRlKCgpID0+IHsNCiAgICAgICAg ICAgICAgICBsZXQgZSA9ICExOw0KICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAg ICAgICAgICAgICBvICYmDQogICAgICAgICAgICAgICAgICB0LkNoaWxkcmVuLmZvckVhY2go bywgKHQpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFmYyh0LCBbIklucHV0Iiwg IlNlbGVjdCJdKSkgcmV0dXJuOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gZmMo dCwgWyJTZWxlY3QiXSkgPyB0LnByb3BzLmlucHV0IDogdDsNCiAgICAgICAgICAgICAgICAg ICAgbiAmJiBuLnByb3BzLnN0YXJ0QWRvcm5tZW50ICYmIChlID0gITApOw0KICAgICAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICBlDQogICAgICAgICAgICAgICAgKTsN CiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIFtSLCBfXSA9IHQudXNlU3RhdGUo KCkgPT4gew0KICAgICAgICAgICAgICAgIGxldCBlID0gITE7DQogICAgICAgICAgICAgICAg cmV0dXJuICgNCiAgICAgICAgICAgICAgICAgIG8gJiYNCiAgICAgICAgICAgICAgICAgIHQu Q2hpbGRyZW4uZm9yRWFjaChvLCAodCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBmYyh0 LCBbIklucHV0IiwgIlNlbGVjdCJdKSAmJiAoZGModC5wcm9wcywgITApIHx8IGRjKHQucHJv cHMuaW5wdXRQcm9wcywgITApKSAmJiAoZSA9ICEwKTsNCiAgICAgICAgICAgICAgICAgIH0p LA0KICAgICAgICAgICAgICAgICAgZQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICBbUCwgT10gPSB0LnVzZVN0YXRlKCExKTsNCiAgICAg ICAgICAgIGYgJiYgUCAmJiBPKCExKTsNCiAgICAgICAgICAgIGNvbnN0IE4gPSB2b2lkIDAg PT09IGggfHwgZiA/IFAgOiBoOw0KICAgICAgICAgICAgbGV0IFQ7DQogICAgICAgICAgICBj b25zdCBBID0gdC51c2VNZW1vKA0KICAgICAgICAgICAgICAoKSA9PiAoew0KICAgICAgICAg ICAgICAgIGFkb3JuZWRTdGFydDogRSwNCiAgICAgICAgICAgICAgICBzZXRBZG9ybmVkU3Rh cnQ6IEMsDQogICAgICAgICAgICAgICAgY29sb3I6IHUsDQogICAgICAgICAgICAgICAgZGlz YWJsZWQ6IGYsDQogICAgICAgICAgICAgICAgZXJyb3I6IHAsDQogICAgICAgICAgICAgICAg ZmlsbGVkOiBSLA0KICAgICAgICAgICAgICAgIGZvY3VzZWQ6IE4sDQogICAgICAgICAgICAg ICAgZnVsbFdpZHRoOiBtLA0KICAgICAgICAgICAgICAgIGhpZGRlbkxhYmVsOiBnLA0KICAg ICAgICAgICAgICAgIHNpemU6IGIsDQogICAgICAgICAgICAgICAgb25CbHVyOiAoKSA9PiB7 DQogICAgICAgICAgICAgICAgICBPKCExKTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAg ICAgICAgICAgIG9uRW1wdHk6ICgpID0+IHsNCiAgICAgICAgICAgICAgICAgIF8oITEpOw0K ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgb25GaWxsZWQ6ICgpID0+IHsN CiAgICAgICAgICAgICAgICAgIF8oITApOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAgICAgb25Gb2N1czogKCkgPT4gew0KICAgICAgICAgICAgICAgICAgTyghMCk7DQog ICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICByZWdpc3RlckVmZmVjdDogVCwN CiAgICAgICAgICAgICAgICByZXF1aXJlZDogeSwNCiAgICAgICAgICAgICAgICB2YXJpYW50 OiB3LA0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgW0UsIHUsIGYsIHAsIFIs IE4sIG0sIGcsIFQsIHksIGIsIHddDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgcmV0 dXJuICgwLCBOci5qc3gpKHBjLlByb3ZpZGVyLCB7IHZhbHVlOiBBLCBjaGlsZHJlbjogKDAs IE5yLmpzeCkoZ2MsIGkoeyBhczogZCwgb3duZXJTdGF0ZTogUywgY2xhc3NOYW1lOiBzKGsu cm9vdCwgbCksIHJlZjogbiB9LCB4LCB7IGNoaWxkcmVuOiBvIH0pKSB9KTsNCiAgICAgICAg ICB9KSwNCiAgICAgICAgICB5YyA9IHZjOw0KICAgICAgICBjb25zdCBiYyA9IFsib25DaGFu Z2UiLCAibWF4Um93cyIsICJtaW5Sb3dzIiwgInN0eWxlIiwgInZhbHVlIl07DQogICAgICAg IGZ1bmN0aW9uIHdjKGUpIHsNCiAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoZSwgMTApIHx8 IDA7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgeGMgPSB7IHZpc2liaWxpdHk6ICJoaWRk ZW4iLCBwb3NpdGlvbjogImFic29sdXRlIiwgb3ZlcmZsb3c6ICJoaWRkZW4iLCBoZWlnaHQ6 IDAsIHRvcDogMCwgbGVmdDogMCwgdHJhbnNmb3JtOiAidHJhbnNsYXRlWigwKSIgfTsNCiAg ICAgICAgZnVuY3Rpb24gU2MoZSkgew0KICAgICAgICAgIHJldHVybiB2b2lkIDAgPT09IGUg fHwgbnVsbCA9PT0gZSB8fCAwID09PSBPYmplY3Qua2V5cyhlKS5sZW5ndGggfHwgKDAgPT09 IGUub3V0ZXJIZWlnaHRTdHlsZSAmJiAhZS5vdmVyZmxvdyk7DQogICAgICAgIH0NCiAgICAg ICAgY29uc3Qga2MgPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAg ICBjb25zdCB7IG9uQ2hhbmdlOiByLCBtYXhSb3dzOiBvLCBtaW5Sb3dzOiBsID0gMSwgc3R5 bGU6IHMsIHZhbHVlOiB1IH0gPSBlLA0KICAgICAgICAgICAgYyA9IGEoZSwgYmMpLA0KICAg ICAgICAgICAgeyBjdXJyZW50OiBkIH0gPSB0LnVzZVJlZihudWxsICE9IHUpLA0KICAgICAg ICAgICAgZiA9IHQudXNlUmVmKG51bGwpLA0KICAgICAgICAgICAgcCA9IHJyKG4sIGYpLA0K ICAgICAgICAgICAgaCA9IHQudXNlUmVmKG51bGwpLA0KICAgICAgICAgICAgbSA9IHQudXNl UmVmKDApLA0KICAgICAgICAgICAgW2csIHZdID0gdC51c2VTdGF0ZSh7IG91dGVySGVpZ2h0 U3R5bGU6IDAgfSksDQogICAgICAgICAgICB5ID0gdC51c2VDYWxsYmFjaygoKSA9PiB7DQog ICAgICAgICAgICAgIGNvbnN0IHQgPSBmLmN1cnJlbnQsDQogICAgICAgICAgICAgICAgbiA9 IFJvKHQpLmdldENvbXB1dGVkU3R5bGUodCk7DQogICAgICAgICAgICAgIGlmICgiMHB4IiA9 PT0gbi53aWR0aCkgcmV0dXJuIHsgb3V0ZXJIZWlnaHRTdHlsZTogMCB9Ow0KICAgICAgICAg ICAgICBjb25zdCByID0gaC5jdXJyZW50Ow0KICAgICAgICAgICAgICAoci5zdHlsZS53aWR0 aCA9IG4ud2lkdGgpLCAoci52YWx1ZSA9IHQudmFsdWUgfHwgZS5wbGFjZWhvbGRlciB8fCAi eCIpLCAiXG4iID09PSByLnZhbHVlLnNsaWNlKC0xKSAmJiAoci52YWx1ZSArPSAiICIpOw0K ICAgICAgICAgICAgICBjb25zdCBhID0gbi5ib3hTaXppbmcsDQogICAgICAgICAgICAgICAg aSA9IHdjKG4ucGFkZGluZ0JvdHRvbSkgKyB3YyhuLnBhZGRpbmdUb3ApLA0KICAgICAgICAg ICAgICAgIHMgPSB3YyhuLmJvcmRlckJvdHRvbVdpZHRoKSArIHdjKG4uYm9yZGVyVG9wV2lk dGgpLA0KICAgICAgICAgICAgICAgIHUgPSByLnNjcm9sbEhlaWdodDsNCiAgICAgICAgICAg ICAgci52YWx1ZSA9ICJ4IjsNCiAgICAgICAgICAgICAgY29uc3QgYyA9IHIuc2Nyb2xsSGVp Z2h0Ow0KICAgICAgICAgICAgICBsZXQgZCA9IHU7DQogICAgICAgICAgICAgIGwgJiYgKGQg PSBNYXRoLm1heChOdW1iZXIobCkgKiBjLCBkKSksIG8gJiYgKGQgPSBNYXRoLm1pbihOdW1i ZXIobykgKiBjLCBkKSksIChkID0gTWF0aC5tYXgoZCwgYykpOw0KICAgICAgICAgICAgICBy ZXR1cm4geyBvdXRlckhlaWdodFN0eWxlOiBkICsgKCJib3JkZXItYm94IiA9PT0gYSA/IGkg KyBzIDogMCksIG92ZXJmbG93OiBNYXRoLmFicyhkIC0gdSkgPD0gMSB9Ow0KICAgICAgICAg ICAgfSwgW28sIGwsIGUucGxhY2Vob2xkZXJdKSwNCiAgICAgICAgICAgIGIgPSAoZSwgdCkg PT4gew0KICAgICAgICAgICAgICBjb25zdCB7IG91dGVySGVpZ2h0U3R5bGU6IG4sIG92ZXJm bG93OiByIH0gPSB0Ow0KICAgICAgICAgICAgICByZXR1cm4gbS5jdXJyZW50IDwgMjAgJiYg KChuID4gMCAmJiBNYXRoLmFicygoZS5vdXRlckhlaWdodFN0eWxlIHx8IDApIC0gbikgPiAx KSB8fCBlLm92ZXJmbG93ICE9PSByKSA/ICgobS5jdXJyZW50ICs9IDEpLCB7IG92ZXJmbG93 OiByLCBvdXRlckhlaWdodFN0eWxlOiBuIH0pIDogZTsNCiAgICAgICAgICAgIH0sDQogICAg ICAgICAgICB3ID0gdC51c2VDYWxsYmFjaygoKSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0 IGUgPSB5KCk7DQogICAgICAgICAgICAgIFNjKGUpIHx8IHYoKHQpID0+IGIodCwgZSkpOw0K ICAgICAgICAgICAgfSwgW3ldKTsNCiAgICAgICAgICBhcigoKSA9PiB7DQogICAgICAgICAg ICBjb25zdCBlID0gKCkgPT4gew0KICAgICAgICAgICAgICAobS5jdXJyZW50ID0gMCksDQog ICAgICAgICAgICAgICAgKCgpID0+IHsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB5 KCk7DQogICAgICAgICAgICAgICAgICBTYyhlKSB8fA0KICAgICAgICAgICAgICAgICAgICBG by5mbHVzaFN5bmMoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgIHYoKHQpID0+IGIo dCwgZSkpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KSgp Ow0KICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIGxldCB0Ow0KICAgICAgICAgICAgY29u c3QgbiA9IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICBsZXQgdCwNCiAgICAgICAg ICAgICAgICBuID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVu dHNbMV0gPyBhcmd1bWVudHNbMV0gOiAxNjY7DQogICAgICAgICAgICAgIGZ1bmN0aW9uIHIo KSB7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgciA9IGFyZ3VtZW50cy5sZW5ndGgsIG8g PSBuZXcgQXJyYXkociksIGEgPSAwOyBhIDwgcjsgYSsrKSBvW2FdID0gYXJndW1lbnRzW2Fd Ow0KICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0KSwNCiAgICAgICAgICAgICAgICAg ICh0ID0gc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGUuYXBwbHko dGhpcywgbyk7DQogICAgICAgICAgICAgICAgICB9LCBuKSk7DQogICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAoci5jbGVhciA9ICgp ID0+IHsNCiAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0KTsNCiAgICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgICAgICByDQogICAgICAgICAgICAgICk7DQogICAgICAg ICAgICB9KShlKSwNCiAgICAgICAgICAgICAgciA9IGYuY3VycmVudCwNCiAgICAgICAgICAg ICAgbyA9IFJvKHIpOw0KICAgICAgICAgICAgbGV0IGE7DQogICAgICAgICAgICByZXR1cm4g KA0KICAgICAgICAgICAgICBvLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIG4pLA0KICAg ICAgICAgICAgICAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIFJlc2l6ZU9ic2VydmVyICYmICgo YSA9IG5ldyBSZXNpemVPYnNlcnZlcihlKSksIGEub2JzZXJ2ZShyKSksDQogICAgICAgICAg ICAgICgpID0+IHsNCiAgICAgICAgICAgICAgICBuLmNsZWFyKCksIGNhbmNlbEFuaW1hdGlv bkZyYW1lKHQpLCBvLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIG4pLCBhICYmIGEu ZGlzY29ubmVjdCgpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICApOw0KICAgICAg ICAgIH0sIFt5XSksDQogICAgICAgICAgICBhcigoKSA9PiB7DQogICAgICAgICAgICAgIHco KTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgdC51c2VFZmZlY3QoKCkgPT4gew0K ICAgICAgICAgICAgICBtLmN1cnJlbnQgPSAwOw0KICAgICAgICAgICAgfSwgW3VdKTsNCiAg ICAgICAgICByZXR1cm4gKDAsIE5yLmpzeHMpKHQuRnJhZ21lbnQsIHsNCiAgICAgICAgICAg IGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICgwLCBOci5qc3gpKA0KICAgICAgICAgICAg ICAgICJ0ZXh0YXJlYSIsDQogICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHUsDQogICAgICAgICAgICAgICAgICAg IG9uQ2hhbmdlOiAoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgIChtLmN1cnJlbnQg PSAwKSwgZCB8fCB3KCksIHIgJiYgcihlKTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAg ICAgICAgICAgICAgICAgICAgcmVmOiBwLA0KICAgICAgICAgICAgICAgICAgICByb3dzOiBs LA0KICAgICAgICAgICAgICAgICAgICBzdHlsZTogaSh7IGhlaWdodDogZy5vdXRlckhlaWdo dFN0eWxlLCBvdmVyZmxvdzogZy5vdmVyZmxvdyA/ICJoaWRkZW4iIDogdm9pZCAwIH0sIHMp LA0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIGMNCiAgICAgICAg ICAgICAgICApDQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICgwLCBOci5qc3gp KCJ0ZXh0YXJlYSIsIHsgImFyaWEtaGlkZGVuIjogITAsIGNsYXNzTmFtZTogZS5jbGFzc05h bWUsIHJlYWRPbmx5OiAhMCwgcmVmOiBoLCB0YWJJbmRleDogLTEsIHN0eWxlOiBpKHt9LCB4 YywgcywgeyBwYWRkaW5nVG9wOiAwLCBwYWRkaW5nQm90dG9tOiAwIH0pIH0pLA0KICAgICAg ICAgICAgXSwNCiAgICAgICAgICB9KTsNCiAgICAgICAgfSk7DQogICAgICAgIGZ1bmN0aW9u IEVjKGUpIHsNCiAgICAgICAgICBsZXQgeyBwcm9wczogdCwgc3RhdGVzOiBuLCBtdWlGb3Jt Q29udHJvbDogciB9ID0gZTsNCiAgICAgICAgICByZXR1cm4gbi5yZWR1Y2UoKGUsIG4pID0+ ICgoZVtuXSA9IHRbbl0pLCByICYmICJ1bmRlZmluZWQiID09PSB0eXBlb2YgdFtuXSAmJiAo ZVtuXSA9IHJbbl0pLCBlKSwge30pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIENj KCkgew0KICAgICAgICAgIHJldHVybiB0LnVzZUNvbnRleHQocGMpOw0KICAgICAgICB9DQog ICAgICAgIGNvbnN0IFJjID0gYXI7DQogICAgICAgIGZ1bmN0aW9uIF9jKGUpIHsNCiAgICAg ICAgICBjb25zdCB7IHN0eWxlczogdCwgZGVmYXVsdFRoZW1lOiBuID0ge30gfSA9IGUsDQog ICAgICAgICAgICByID0NCiAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHQN CiAgICAgICAgICAgICAgICA/IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICByZXR1cm4g dCh2b2lkIDAgPT09IChyID0gZSkgfHwgbnVsbCA9PT0gciB8fCAwID09PSBPYmplY3Qua2V5 cyhyKS5sZW5ndGggPyBuIDogZSk7DQogICAgICAgICAgICAgICAgICB2YXIgcjsNCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgOiB0Ow0KICAgICAgICAgIHJldHVybiAo MCwgTnIuanN4KShfciwgeyBzdHlsZXM6IHIgfSk7DQogICAgICAgIH0NCiAgICAgICAgY29u c3QgUGMgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgIGxldCB7IHN0eWxlczogdCwgdGhl bWVJZDogbiwgZGVmYXVsdFRoZW1lOiByID0ge30gfSA9IGU7DQogICAgICAgICAgY29uc3Qg byA9IEpuKHIpLA0KICAgICAgICAgICAgYSA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiB0ID8g dCgobiAmJiBvW25dKSB8fCBvKSA6IHQ7DQogICAgICAgICAgcmV0dXJuICgwLCBOci5qc3gp KF9jLCB7IHN0eWxlczogYSB9KTsNCiAgICAgICAgfTsNCiAgICAgICAgY29uc3QgT2MgPSBm dW5jdGlvbiAoZSkgew0KICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4KShQYywgaSh7fSwg ZSwgeyBkZWZhdWx0VGhlbWU6IEtuLCB0aGVtZUlkOiBRbiB9KSk7DQogICAgICAgIH07DQog ICAgICAgIGZ1bmN0aW9uIE5jKGUpIHsNCiAgICAgICAgICByZXR1cm4ganIoIk11aUlucHV0 QmFzZSIsIGUpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IFRjID0gSXIoIk11aUlucHV0 QmFzZSIsIFsNCiAgICAgICAgICAicm9vdCIsDQogICAgICAgICAgImZvcm1Db250cm9sIiwN CiAgICAgICAgICAiZm9jdXNlZCIsDQogICAgICAgICAgImRpc2FibGVkIiwNCiAgICAgICAg ICAiYWRvcm5lZFN0YXJ0IiwNCiAgICAgICAgICAiYWRvcm5lZEVuZCIsDQogICAgICAgICAg ImVycm9yIiwNCiAgICAgICAgICAic2l6ZVNtYWxsIiwNCiAgICAgICAgICAibXVsdGlsaW5l IiwNCiAgICAgICAgICAiY29sb3JTZWNvbmRhcnkiLA0KICAgICAgICAgICJmdWxsV2lkdGgi LA0KICAgICAgICAgICJoaWRkZW5MYWJlbCIsDQogICAgICAgICAgInJlYWRPbmx5IiwNCiAg ICAgICAgICAiaW5wdXQiLA0KICAgICAgICAgICJpbnB1dFNpemVTbWFsbCIsDQogICAgICAg ICAgImlucHV0TXVsdGlsaW5lIiwNCiAgICAgICAgICAiaW5wdXRUeXBlU2VhcmNoIiwNCiAg ICAgICAgICAiaW5wdXRBZG9ybmVkU3RhcnQiLA0KICAgICAgICAgICJpbnB1dEFkb3JuZWRF bmQiLA0KICAgICAgICAgICJpbnB1dEhpZGRlbkxhYmVsIiwNCiAgICAgICAgXSksDQogICAg ICAgICAgQWMgPSBbDQogICAgICAgICAgICAiYXJpYS1kZXNjcmliZWRieSIsDQogICAgICAg ICAgICAiYXV0b0NvbXBsZXRlIiwNCiAgICAgICAgICAgICJhdXRvRm9jdXMiLA0KICAgICAg ICAgICAgImNsYXNzTmFtZSIsDQogICAgICAgICAgICAiY29sb3IiLA0KICAgICAgICAgICAg ImNvbXBvbmVudHMiLA0KICAgICAgICAgICAgImNvbXBvbmVudHNQcm9wcyIsDQogICAgICAg ICAgICAiZGVmYXVsdFZhbHVlIiwNCiAgICAgICAgICAgICJkaXNhYmxlZCIsDQogICAgICAg ICAgICAiZGlzYWJsZUluamVjdGluZ0dsb2JhbFN0eWxlcyIsDQogICAgICAgICAgICAiZW5k QWRvcm5tZW50IiwNCiAgICAgICAgICAgICJlcnJvciIsDQogICAgICAgICAgICAiZnVsbFdp ZHRoIiwNCiAgICAgICAgICAgICJpZCIsDQogICAgICAgICAgICAiaW5wdXRDb21wb25lbnQi LA0KICAgICAgICAgICAgImlucHV0UHJvcHMiLA0KICAgICAgICAgICAgImlucHV0UmVmIiwN CiAgICAgICAgICAgICJtYXJnaW4iLA0KICAgICAgICAgICAgIm1heFJvd3MiLA0KICAgICAg ICAgICAgIm1pblJvd3MiLA0KICAgICAgICAgICAgIm11bHRpbGluZSIsDQogICAgICAgICAg ICAibmFtZSIsDQogICAgICAgICAgICAib25CbHVyIiwNCiAgICAgICAgICAgICJvbkNoYW5n ZSIsDQogICAgICAgICAgICAib25DbGljayIsDQogICAgICAgICAgICAib25Gb2N1cyIsDQog ICAgICAgICAgICAib25LZXlEb3duIiwNCiAgICAgICAgICAgICJvbktleVVwIiwNCiAgICAg ICAgICAgICJwbGFjZWhvbGRlciIsDQogICAgICAgICAgICAicmVhZE9ubHkiLA0KICAgICAg ICAgICAgInJlbmRlclN1ZmZpeCIsDQogICAgICAgICAgICAicm93cyIsDQogICAgICAgICAg ICAic2l6ZSIsDQogICAgICAgICAgICAic2xvdFByb3BzIiwNCiAgICAgICAgICAgICJzbG90 cyIsDQogICAgICAgICAgICAic3RhcnRBZG9ybm1lbnQiLA0KICAgICAgICAgICAgInR5cGUi LA0KICAgICAgICAgICAgInZhbHVlIiwNCiAgICAgICAgICBdLA0KICAgICAgICAgIE1jID0g KGUsIHQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsN CiAgICAgICAgICAgIHJldHVybiBbDQogICAgICAgICAgICAgIHQucm9vdCwNCiAgICAgICAg ICAgICAgbi5mb3JtQ29udHJvbCAmJiB0LmZvcm1Db250cm9sLA0KICAgICAgICAgICAgICBu LnN0YXJ0QWRvcm5tZW50ICYmIHQuYWRvcm5lZFN0YXJ0LA0KICAgICAgICAgICAgICBuLmVu ZEFkb3JubWVudCAmJiB0LmFkb3JuZWRFbmQsDQogICAgICAgICAgICAgIG4uZXJyb3IgJiYg dC5lcnJvciwNCiAgICAgICAgICAgICAgInNtYWxsIiA9PT0gbi5zaXplICYmIHQuc2l6ZVNt YWxsLA0KICAgICAgICAgICAgICBuLm11bHRpbGluZSAmJiB0Lm11bHRpbGluZSwNCiAgICAg ICAgICAgICAgbi5jb2xvciAmJiB0WyJjb2xvciIuY29uY2F0KGlvKG4uY29sb3IpKV0sDQog ICAgICAgICAgICAgIG4uZnVsbFdpZHRoICYmIHQuZnVsbFdpZHRoLA0KICAgICAgICAgICAg ICBuLmhpZGRlbkxhYmVsICYmIHQuaGlkZGVuTGFiZWwsDQogICAgICAgICAgICBdOw0KICAg ICAgICAgIH0sDQogICAgICAgICAgemMgPSAoZSwgdCkgPT4gew0KICAgICAgICAgICAgY29u c3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIFsNCiAgICAg ICAgICAgICAgdC5pbnB1dCwNCiAgICAgICAgICAgICAgInNtYWxsIiA9PT0gbi5zaXplICYm IHQuaW5wdXRTaXplU21hbGwsDQogICAgICAgICAgICAgIG4ubXVsdGlsaW5lICYmIHQuaW5w dXRNdWx0aWxpbmUsDQogICAgICAgICAgICAgICJzZWFyY2giID09PSBuLnR5cGUgJiYgdC5p bnB1dFR5cGVTZWFyY2gsDQogICAgICAgICAgICAgIG4uc3RhcnRBZG9ybm1lbnQgJiYgdC5p bnB1dEFkb3JuZWRTdGFydCwNCiAgICAgICAgICAgICAgbi5lbmRBZG9ybm1lbnQgJiYgdC5p bnB1dEFkb3JuZWRFbmQsDQogICAgICAgICAgICAgIG4uaGlkZGVuTGFiZWwgJiYgdC5pbnB1 dEhpZGRlbkxhYmVsLA0KICAgICAgICAgICAgXTsNCiAgICAgICAgICB9LA0KICAgICAgICAg IGpjID0gWW4oImRpdiIsIHsgbmFtZTogIk11aUlucHV0QmFzZSIsIHNsb3Q6ICJSb290Iiwg b3ZlcnJpZGVzUmVzb2x2ZXI6IE1jIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0 aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKA0K ICAgICAgICAgICAgICB7fSwNCiAgICAgICAgICAgICAgdC50eXBvZ3JhcGh5LmJvZHkxLA0K ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY29sb3I6ICh0LnZhcnMgfHwgdCku cGFsZXR0ZS50ZXh0LnByaW1hcnksDQogICAgICAgICAgICAgICAgbGluZUhlaWdodDogIjEu NDM3NWVtIiwNCiAgICAgICAgICAgICAgICBib3hTaXppbmc6ICJib3JkZXItYm94IiwNCiAg ICAgICAgICAgICAgICBwb3NpdGlvbjogInJlbGF0aXZlIiwNCiAgICAgICAgICAgICAgICBj dXJzb3I6ICJ0ZXh0IiwNCiAgICAgICAgICAgICAgICBkaXNwbGF5OiAiaW5saW5lLWZsZXgi LA0KICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICJjZW50ZXIiLA0KICAgICAgICAgICAg ICAgIFsiJi4iLmNvbmNhdChUYy5kaXNhYmxlZCldOiB7IGNvbG9yOiAodC52YXJzIHx8IHQp LnBhbGV0dGUudGV4dC5kaXNhYmxlZCwgY3Vyc29yOiAiZGVmYXVsdCIgfSwNCiAgICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgICAgbi5tdWx0aWxpbmUgJiYgaSh7IHBhZGRpbmc6ICI0 cHggMCA1cHgiIH0sICJzbWFsbCIgPT09IG4uc2l6ZSAmJiB7IHBhZGRpbmdUb3A6IDEgfSks DQogICAgICAgICAgICAgIG4uZnVsbFdpZHRoICYmIHsgd2lkdGg6ICIxMDAlIiB9DQogICAg ICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIEljID0gWW4oImlucHV0Iiwg eyBuYW1lOiAiTXVpSW5wdXRCYXNlIiwgc2xvdDogIklucHV0Iiwgb3ZlcnJpZGVzUmVzb2x2 ZXI6IHpjIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJT dGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgIGNvbnN0IHIgPSAibGlnaHQiID09PSB0LnBh bGV0dGUubW9kZSwNCiAgICAgICAgICAgICAgbyA9IGkoeyBjb2xvcjogImN1cnJlbnRDb2xv ciIgfSwgdC52YXJzID8geyBvcGFjaXR5OiB0LnZhcnMub3BhY2l0eS5pbnB1dFBsYWNlaG9s ZGVyIH0gOiB7IG9wYWNpdHk6IHIgPyAwLjQyIDogMC41IH0sIHsNCiAgICAgICAgICAgICAg ICB0cmFuc2l0aW9uOiB0LnRyYW5zaXRpb25zLmNyZWF0ZSgib3BhY2l0eSIsIHsgZHVyYXRp b246IHQudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlciB9KSwNCiAgICAgICAgICAgICAg fSksDQogICAgICAgICAgICAgIGEgPSB7IG9wYWNpdHk6ICIwICFpbXBvcnRhbnQiIH0sDQog ICAgICAgICAgICAgIGwgPSB0LnZhcnMgPyB7IG9wYWNpdHk6IHQudmFycy5vcGFjaXR5Lmlu cHV0UGxhY2Vob2xkZXIgfSA6IHsgb3BhY2l0eTogciA/IDAuNDIgOiAwLjUgfTsNCiAgICAg ICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZm9u dDogImluaGVyaXQiLA0KICAgICAgICAgICAgICAgIGxldHRlclNwYWNpbmc6ICJpbmhlcml0 IiwNCiAgICAgICAgICAgICAgICBjb2xvcjogImN1cnJlbnRDb2xvciIsDQogICAgICAgICAg ICAgICAgcGFkZGluZzogIjRweCAwIDVweCIsDQogICAgICAgICAgICAgICAgYm9yZGVyOiAw LA0KICAgICAgICAgICAgICAgIGJveFNpemluZzogImNvbnRlbnQtYm94IiwNCiAgICAgICAg ICAgICAgICBiYWNrZ3JvdW5kOiAibm9uZSIsDQogICAgICAgICAgICAgICAgaGVpZ2h0OiAi MS40Mzc1ZW0iLA0KICAgICAgICAgICAgICAgIG1hcmdpbjogMCwNCiAgICAgICAgICAgICAg ICBXZWJraXRUYXBIaWdobGlnaHRDb2xvcjogInRyYW5zcGFyZW50IiwNCiAgICAgICAgICAg ICAgICBkaXNwbGF5OiAiYmxvY2siLA0KICAgICAgICAgICAgICAgIG1pbldpZHRoOiAwLA0K ICAgICAgICAgICAgICAgIHdpZHRoOiAiMTAwJSIsDQogICAgICAgICAgICAgICAgYW5pbWF0 aW9uTmFtZTogIm11aS1hdXRvLWZpbGwtY2FuY2VsIiwNCiAgICAgICAgICAgICAgICBhbmlt YXRpb25EdXJhdGlvbjogIjEwbXMiLA0KICAgICAgICAgICAgICAgICImOjotd2Via2l0LWlu cHV0LXBsYWNlaG9sZGVyIjogbywNCiAgICAgICAgICAgICAgICAiJjo6LW1vei1wbGFjZWhv bGRlciI6IG8sDQogICAgICAgICAgICAgICAgIiY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIjog bywNCiAgICAgICAgICAgICAgICAiJjo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIjogbywNCiAg ICAgICAgICAgICAgICAiJjpmb2N1cyI6IHsgb3V0bGluZTogMCB9LA0KICAgICAgICAgICAg ICAgICImOmludmFsaWQiOiB7IGJveFNoYWRvdzogIm5vbmUiIH0sDQogICAgICAgICAgICAg ICAgIiY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24iOiB7IFdlYmtpdEFwcGVhcmFuY2U6 ICJub25lIiB9LA0KICAgICAgICAgICAgICAgIFsibGFiZWxbZGF0YS1zaHJpbms9ZmFsc2Vd ICsgLiIuY29uY2F0KFRjLmZvcm1Db250cm9sLCAiICYiKV06IHsNCiAgICAgICAgICAgICAg ICAgICImOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIjogYSwNCiAgICAgICAgICAgICAg ICAgICImOjotbW96LXBsYWNlaG9sZGVyIjogYSwNCiAgICAgICAgICAgICAgICAgICImOi1t cy1pbnB1dC1wbGFjZWhvbGRlciI6IGEsDQogICAgICAgICAgICAgICAgICAiJjo6LW1zLWlu cHV0LXBsYWNlaG9sZGVyIjogYSwNCiAgICAgICAgICAgICAgICAgICImOmZvY3VzOjotd2Vi a2l0LWlucHV0LXBsYWNlaG9sZGVyIjogbCwNCiAgICAgICAgICAgICAgICAgICImOmZvY3Vz OjotbW96LXBsYWNlaG9sZGVyIjogbCwNCiAgICAgICAgICAgICAgICAgICImOmZvY3VzOi1t cy1pbnB1dC1wbGFjZWhvbGRlciI6IGwsDQogICAgICAgICAgICAgICAgICAiJjpmb2N1czo6 LW1zLWlucHV0LXBsYWNlaG9sZGVyIjogbCwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAg ICAgICAgICAgIFsiJi4iLmNvbmNhdChUYy5kaXNhYmxlZCldOiB7IG9wYWNpdHk6IDEsIFdl YmtpdFRleHRGaWxsQ29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS50ZXh0LmRpc2FibGVk IH0sDQogICAgICAgICAgICAgICAgIiY6LXdlYmtpdC1hdXRvZmlsbCI6IHsgYW5pbWF0aW9u RHVyYXRpb246ICI1MDAwcyIsIGFuaW1hdGlvbk5hbWU6ICJtdWktYXV0by1maWxsIiB9LA0K ICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAic21hbGwiID09PSBuLnNpemUgJiYg eyBwYWRkaW5nVG9wOiAxIH0sDQogICAgICAgICAgICAgIG4ubXVsdGlsaW5lICYmIHsgaGVp Z2h0OiAiYXV0byIsIHJlc2l6ZTogIm5vbmUiLCBwYWRkaW5nOiAwLCBwYWRkaW5nVG9wOiAw IH0sDQogICAgICAgICAgICAgICJzZWFyY2giID09PSBuLnR5cGUgJiYgeyBNb3pBcHBlYXJh bmNlOiAidGV4dGZpZWxkIiB9DQogICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAg ICAgICAgIExjID0gKDAsIE5yLmpzeCkoT2MsIHsgc3R5bGVzOiB7ICJAa2V5ZnJhbWVzIG11 aS1hdXRvLWZpbGwiOiB7IGZyb206IHsgZGlzcGxheTogImJsb2NrIiB9IH0sICJAa2V5ZnJh bWVzIG11aS1hdXRvLWZpbGwtY2FuY2VsIjogeyBmcm9tOiB7IGRpc3BsYXk6ICJibG9jayIg fSB9IH0gfSksDQogICAgICAgICAgRmMgPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIG4p IHsNCiAgICAgICAgICAgIHZhciByOw0KICAgICAgICAgICAgY29uc3QgbyA9IHRyKHsgcHJv cHM6IGUsIG5hbWU6ICJNdWlJbnB1dEJhc2UiIH0pLA0KICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgImFyaWEtZGVzY3JpYmVkYnkiOiBsLA0KICAgICAgICAgICAgICAgIGF1 dG9Db21wbGV0ZTogdSwNCiAgICAgICAgICAgICAgICBhdXRvRm9jdXM6IGYsDQogICAgICAg ICAgICAgICAgY2xhc3NOYW1lOiBwLA0KICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IGgg PSB7fSwNCiAgICAgICAgICAgICAgICBjb21wb25lbnRzUHJvcHM6IG0gPSB7fSwNCiAgICAg ICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGcsDQogICAgICAgICAgICAgICAgZGlzYWJsZWQ6 IHYsDQogICAgICAgICAgICAgICAgZGlzYWJsZUluamVjdGluZ0dsb2JhbFN0eWxlczogeSwN CiAgICAgICAgICAgICAgICBlbmRBZG9ybm1lbnQ6IGIsDQogICAgICAgICAgICAgICAgZnVs bFdpZHRoOiB3ID0gITEsDQogICAgICAgICAgICAgICAgaWQ6IHgsDQogICAgICAgICAgICAg ICAgaW5wdXRDb21wb25lbnQ6IFMgPSAiaW5wdXQiLA0KICAgICAgICAgICAgICAgIGlucHV0 UHJvcHM6IGsgPSB7fSwNCiAgICAgICAgICAgICAgICBpbnB1dFJlZjogRSwNCiAgICAgICAg ICAgICAgICBtYXhSb3dzOiBDLA0KICAgICAgICAgICAgICAgIG1pblJvd3M6IFIsDQogICAg ICAgICAgICAgICAgbXVsdGlsaW5lOiBfID0gITEsDQogICAgICAgICAgICAgICAgbmFtZTog UCwNCiAgICAgICAgICAgICAgICBvbkJsdXI6IE8sDQogICAgICAgICAgICAgICAgb25DaGFu Z2U6IE4sDQogICAgICAgICAgICAgICAgb25DbGljazogVCwNCiAgICAgICAgICAgICAgICBv bkZvY3VzOiBBLA0KICAgICAgICAgICAgICAgIG9uS2V5RG93bjogTSwNCiAgICAgICAgICAg ICAgICBvbktleVVwOiB6LA0KICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBqLA0KICAg ICAgICAgICAgICAgIHJlYWRPbmx5OiBJLA0KICAgICAgICAgICAgICAgIHJlbmRlclN1ZmZp eDogTCwNCiAgICAgICAgICAgICAgICByb3dzOiBGLA0KICAgICAgICAgICAgICAgIHNsb3RQ cm9wczogQiA9IHt9LA0KICAgICAgICAgICAgICAgIHNsb3RzOiBEID0ge30sDQogICAgICAg ICAgICAgICAgc3RhcnRBZG9ybm1lbnQ6IFUsDQogICAgICAgICAgICAgICAgdHlwZTogVyA9 ICJ0ZXh0IiwNCiAgICAgICAgICAgICAgICB2YWx1ZTogViwNCiAgICAgICAgICAgICAgfSA9 IG8sDQogICAgICAgICAgICAgIEggPSBhKG8sIEFjKSwNCiAgICAgICAgICAgICAgcSA9IG51 bGwgIT0gay52YWx1ZSA/IGsudmFsdWUgOiBWLA0KICAgICAgICAgICAgICB7IGN1cnJlbnQ6 ICQgfSA9IHQudXNlUmVmKG51bGwgIT0gcSksDQogICAgICAgICAgICAgIEsgPSB0LnVzZVJl ZigpLA0KICAgICAgICAgICAgICBRID0gdC51c2VDYWxsYmFjaygoZSkgPT4gew0KICAgICAg ICAgICAgICAgIDA7DQogICAgICAgICAgICAgIH0sIFtdKSwNCiAgICAgICAgICAgICAgRyA9 IG9yKEssIEUsIGsucmVmLCBRKSwNCiAgICAgICAgICAgICAgW1ksIFhdID0gdC51c2VTdGF0 ZSghMSksDQogICAgICAgICAgICAgIFogPSBDYygpOw0KICAgICAgICAgICAgY29uc3QgSiA9 IEVjKHsgcHJvcHM6IG8sIG11aUZvcm1Db250cm9sOiBaLCBzdGF0ZXM6IFsiY29sb3IiLCAi ZGlzYWJsZWQiLCAiZXJyb3IiLCAiaGlkZGVuTGFiZWwiLCAic2l6ZSIsICJyZXF1aXJlZCIs ICJmaWxsZWQiXSB9KTsNCiAgICAgICAgICAgIChKLmZvY3VzZWQgPSBaID8gWi5mb2N1c2Vk IDogWSksDQogICAgICAgICAgICAgIHQudXNlRWZmZWN0KCgpID0+IHsNCiAgICAgICAgICAg ICAgICAhWiAmJiB2ICYmIFkgJiYgKFgoITEpLCBPICYmIE8oKSk7DQogICAgICAgICAgICAg IH0sIFtaLCB2LCBZLCBPXSk7DQogICAgICAgICAgICBjb25zdCBlZSA9IFogJiYgWi5vbkZp bGxlZCwNCiAgICAgICAgICAgICAgdGUgPSBaICYmIFoub25FbXB0eSwNCiAgICAgICAgICAg ICAgbmUgPSB0LnVzZUNhbGxiYWNrKA0KICAgICAgICAgICAgICAgIChlKSA9PiB7DQogICAg ICAgICAgICAgICAgICBkYyhlKSA/IGVlICYmIGVlKCkgOiB0ZSAmJiB0ZSgpOw0KICAgICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgW2VlLCB0ZV0NCiAgICAgICAgICAgICAg KTsNCiAgICAgICAgICAgIFJjKCgpID0+IHsNCiAgICAgICAgICAgICAgJCAmJiBuZSh7IHZh bHVlOiBxIH0pOw0KICAgICAgICAgICAgfSwgW3EsIG5lLCAkXSk7DQogICAgICAgICAgICB0 LnVzZUVmZmVjdCgoKSA9PiB7DQogICAgICAgICAgICAgIG5lKEsuY3VycmVudCk7DQogICAg ICAgICAgICB9LCBbXSk7DQogICAgICAgICAgICBsZXQgcmUgPSBTLA0KICAgICAgICAgICAg ICBvZSA9IGs7DQogICAgICAgICAgICBfICYmICJpbnB1dCIgPT09IHJlICYmICgob2UgPSBp KEYgPyB7IHR5cGU6IHZvaWQgMCwgbWluUm93czogRiwgbWF4Um93czogRiB9IDogeyB0eXBl OiB2b2lkIDAsIG1heFJvd3M6IEMsIG1pblJvd3M6IFIgfSwgb2UpKSwgKHJlID0ga2MpKTsN CiAgICAgICAgICAgIHQudXNlRWZmZWN0KCgpID0+IHsNCiAgICAgICAgICAgICAgWiAmJiBa LnNldEFkb3JuZWRTdGFydChCb29sZWFuKFUpKTsNCiAgICAgICAgICAgIH0sIFtaLCBVXSk7 DQogICAgICAgICAgICBjb25zdCBhZSA9IGkoe30sIG8sIHsNCiAgICAgICAgICAgICAgY29s b3I6IEouY29sb3IgfHwgInByaW1hcnkiLA0KICAgICAgICAgICAgICBkaXNhYmxlZDogSi5k aXNhYmxlZCwNCiAgICAgICAgICAgICAgZW5kQWRvcm5tZW50OiBiLA0KICAgICAgICAgICAg ICBlcnJvcjogSi5lcnJvciwNCiAgICAgICAgICAgICAgZm9jdXNlZDogSi5mb2N1c2VkLA0K ICAgICAgICAgICAgICBmb3JtQ29udHJvbDogWiwNCiAgICAgICAgICAgICAgZnVsbFdpZHRo OiB3LA0KICAgICAgICAgICAgICBoaWRkZW5MYWJlbDogSi5oaWRkZW5MYWJlbCwNCiAgICAg ICAgICAgICAgbXVsdGlsaW5lOiBfLA0KICAgICAgICAgICAgICBzaXplOiBKLnNpemUsDQog ICAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50OiBVLA0KICAgICAgICAgICAgICB0eXBlOiBX LA0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIGllID0gKChlKSA9PiB7DQogICAg ICAgICAgICAgICAgY29uc3QgeyBjbGFzc2VzOiB0LCBjb2xvcjogbiwgZGlzYWJsZWQ6IHIs IGVycm9yOiBvLCBlbmRBZG9ybm1lbnQ6IGEsIGZvY3VzZWQ6IGksIGZvcm1Db250cm9sOiBs LCBmdWxsV2lkdGg6IHMsIGhpZGRlbkxhYmVsOiB1LCBtdWx0aWxpbmU6IGQsIHJlYWRPbmx5 OiBmLCBzaXplOiBwLCBzdGFydEFkb3JubWVudDogaCwgdHlwZTogbSB9ID0gZTsNCiAgICAg ICAgICAgICAgICByZXR1cm4gYygNCiAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgcm9vdDogWw0KICAgICAgICAgICAgICAgICAgICAgICJyb290IiwNCiAgICAg ICAgICAgICAgICAgICAgICAiY29sb3IiLmNvbmNhdChpbyhuKSksDQogICAgICAgICAgICAg ICAgICAgICAgciAmJiAiZGlzYWJsZWQiLA0KICAgICAgICAgICAgICAgICAgICAgIG8gJiYg ImVycm9yIiwNCiAgICAgICAgICAgICAgICAgICAgICBzICYmICJmdWxsV2lkdGgiLA0KICAg ICAgICAgICAgICAgICAgICAgIGkgJiYgImZvY3VzZWQiLA0KICAgICAgICAgICAgICAgICAg ICAgIGwgJiYgImZvcm1Db250cm9sIiwNCiAgICAgICAgICAgICAgICAgICAgICBwICYmICJt ZWRpdW0iICE9PSBwICYmICJzaXplIi5jb25jYXQoaW8ocCkpLA0KICAgICAgICAgICAgICAg ICAgICAgIGQgJiYgIm11bHRpbGluZSIsDQogICAgICAgICAgICAgICAgICAgICAgaCAmJiAi YWRvcm5lZFN0YXJ0IiwNCiAgICAgICAgICAgICAgICAgICAgICBhICYmICJhZG9ybmVkRW5k IiwNCiAgICAgICAgICAgICAgICAgICAgICB1ICYmICJoaWRkZW5MYWJlbCIsDQogICAgICAg ICAgICAgICAgICAgICAgZiAmJiAicmVhZE9ubHkiLA0KICAgICAgICAgICAgICAgICAgICBd LA0KICAgICAgICAgICAgICAgICAgICBpbnB1dDogWw0KICAgICAgICAgICAgICAgICAgICAg ICJpbnB1dCIsDQogICAgICAgICAgICAgICAgICAgICAgciAmJiAiZGlzYWJsZWQiLA0KICAg ICAgICAgICAgICAgICAgICAgICJzZWFyY2giID09PSBtICYmICJpbnB1dFR5cGVTZWFyY2gi LA0KICAgICAgICAgICAgICAgICAgICAgIGQgJiYgImlucHV0TXVsdGlsaW5lIiwNCiAgICAg ICAgICAgICAgICAgICAgICAic21hbGwiID09PSBwICYmICJpbnB1dFNpemVTbWFsbCIsDQog ICAgICAgICAgICAgICAgICAgICAgdSAmJiAiaW5wdXRIaWRkZW5MYWJlbCIsDQogICAgICAg ICAgICAgICAgICAgICAgaCAmJiAiaW5wdXRBZG9ybmVkU3RhcnQiLA0KICAgICAgICAgICAg ICAgICAgICAgIGEgJiYgImlucHV0QWRvcm5lZEVuZCIsDQogICAgICAgICAgICAgICAgICAg ICAgZiAmJiAicmVhZE9ubHkiLA0KICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIE5jLA0KICAgICAgICAgICAgICAgICAg dA0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgIH0pKGFlKSwNCiAgICAgICAg ICAgICAgbGUgPSBELnJvb3QgfHwgaC5Sb290IHx8IGpjLA0KICAgICAgICAgICAgICBzZSA9 IEIucm9vdCB8fCBtLnJvb3QgfHwge30sDQogICAgICAgICAgICAgIHVlID0gRC5pbnB1dCB8 fCBoLklucHV0IHx8IEljOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAg KG9lID0gaSh7fSwgb2UsIG51bGwgIT0gKHIgPSBCLmlucHV0KSA/IHIgOiBtLmlucHV0KSks DQogICAgICAgICAgICAgICgwLCBOci5qc3hzKSh0LkZyYWdtZW50LCB7DQogICAgICAgICAg ICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICF5ICYmIExjLA0KICAgICAg ICAgICAgICAgICAgKDAsIE5yLmpzeHMpKA0KICAgICAgICAgICAgICAgICAgICBsZSwNCiAg ICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgICB7fSwNCiAgICAg ICAgICAgICAgICAgICAgICBzZSwNCiAgICAgICAgICAgICAgICAgICAgICAhYm8obGUpICYm IHsgb3duZXJTdGF0ZTogaSh7fSwgYWUsIHNlLm93bmVyU3RhdGUpIH0sDQogICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBuLA0KICAgICAg ICAgICAgICAgICAgICAgICAgb25DbGljazogKGUpID0+IHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgSy5jdXJyZW50ICYmIGUuY3VycmVudFRhcmdldCA9PT0gZS50YXJnZXQgJiYg Sy5jdXJyZW50LmZvY3VzKCksIFQgJiYgVChlKTsNCiAgICAgICAgICAgICAgICAgICAgICAg IH0sDQogICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICBI LA0KICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNs YXNzTmFtZTogcyhpZS5yb290LCBzZS5jbGFzc05hbWUsIHAsIEkgJiYgIk11aUlucHV0QmFz ZS1yZWFkT25seSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgVSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg KDAsIE5yLmpzeCkocGMuUHJvdmlkZXIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2YWx1ZTogbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjog KDAsIE5yLmpzeCkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lclN0YXRl OiBhZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1pbnZhbGlk IjogSi5lcnJvciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1k ZXNjcmliZWRieSI6IGwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0 b0NvbXBsZXRlOiB1LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9G b2N1czogZiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFs dWU6IGcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IEou ZGlzYWJsZWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHgsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25BbmltYXRpb25TdGFydDogKGUp ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lKCJtdWktYXV0 by1maWxsLWNhbmNlbCIgPT09IGUuYW5pbWF0aW9uTmFtZSA/IEsuY3VycmVudCA6IHsgdmFs dWU6ICJ4IiB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFAsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGosDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVhZE9ubHk6IEksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVxdWlyZWQ6IEoucmVxdWlyZWQsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcm93czogRiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2YWx1ZTogcSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktl eURvd246IE0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlVcDog eiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBXLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWJvKHVlKSAm JiB7IGFzOiByZSwgb3duZXJTdGF0ZTogaSh7fSwgYWUsIG9lLm93bmVyU3RhdGUpIH0sDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWY6IEcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiBzKGllLmlucHV0LCBvZS5jbGFzc05hbWUsIEkgJiYgIk11aUlucHV0 QmFzZS1yZWFkT25seSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Qmx1cjogKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8g JiYgTyhlKSwgay5vbkJsdXIgJiYgay5vbkJsdXIoZSksIFogJiYgWi5vbkJsdXIgPyBaLm9u Qmx1cihlKSA6IFgoITEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9u IChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISQpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IGUudGFy Z2V0IHx8IEsuY3VycmVudDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKG51bGwgPT0gdCkgdGhyb3cgbmV3IEVycm9yKGQoMSkpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuZSh7IHZhbHVlOiB0LnZhbHVlIH0pOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9yICh2YXIgdCA9IGFyZ3VtZW50cy5sZW5ndGgsIG4gPSBu ZXcgQXJyYXkodCA+IDEgPyB0IC0gMSA6IDApLCByID0gMTsgciA8IHQ7IHIrKykgbltyIC0g MV0gPSBhcmd1bWVudHNbcl07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBrLm9uQ2hhbmdlICYmIGsub25DaGFuZ2UoZSwgLi4ubiksIE4gJiYgTihlLCAuLi5uKTsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9uRm9jdXM6IChlKSA9PiB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBKLmRpc2FibGVkID8gZS5zdG9wUHJvcGFnYXRpb24oKSA6 IChBICYmIEEoZSksIGsub25Gb2N1cyAmJiBrLm9uRm9jdXMoZSksIFogJiYgWi5vbkZvY3Vz ID8gWi5vbkZvY3VzKGUpIDogWCghMCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp LA0KICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgYiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgTCA/IEwoaSh7fSwgSiwgeyBz dGFydEFkb3JubWVudDogVSB9KSkgOiBudWxsLA0KICAgICAgICAgICAgICAgICAgICAgICAg XSwNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICkNCiAg ICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAg fSkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAgICAgICAgQmMgPSBGYzsN CiAgICAgICAgZnVuY3Rpb24gRGMoZSkgew0KICAgICAgICAgIHJldHVybiBqcigiTXVpSW5w dXQiLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBVYyA9IGkoe30sIFRjLCBJcigi TXVpSW5wdXQiLCBbInJvb3QiLCAidW5kZXJsaW5lIiwgImlucHV0Il0pKSwNCiAgICAgICAg ICBXYyA9IFsiZGlzYWJsZVVuZGVybGluZSIsICJjb21wb25lbnRzIiwgImNvbXBvbmVudHNQ cm9wcyIsICJmdWxsV2lkdGgiLCAiaW5wdXRDb21wb25lbnQiLCAibXVsdGlsaW5lIiwgInNs b3RQcm9wcyIsICJzbG90cyIsICJ0eXBlIl0sDQogICAgICAgICAgVmMgPSBZbihqYywgew0K ICAgICAgICAgICAgc2hvdWxkRm9yd2FyZFByb3A6IChlKSA9PiBHbihlKSB8fCAiY2xhc3Nl cyIgPT09IGUsDQogICAgICAgICAgICBuYW1lOiAiTXVpSW5wdXQiLA0KICAgICAgICAgICAg c2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9 PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAg ICAgICAgICAgcmV0dXJuIFsuLi5NYyhlLCB0KSwgIW4uZGlzYWJsZVVuZGVybGluZSAmJiB0 LnVuZGVybGluZV07DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0pKChlKSA9PiB7DQog ICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAg ICAgICAgIGxldCByID0gImxpZ2h0IiA9PT0gdC5wYWxldHRlLm1vZGUgPyAicmdiYSgwLCAw LCAwLCAwLjQyKSIgOiAicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIjsNCiAgICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAgIHQudmFycyAmJiAociA9ICJyZ2JhKCIuY29uY2F0 KHQudmFycy5wYWxldHRlLmNvbW1vbi5vbkJhY2tncm91bmRDaGFubmVsLCAiIC8gIikuY29u Y2F0KHQudmFycy5vcGFjaXR5LmlucHV0VW5kZXJsaW5lLCAiKSIpKSwNCiAgICAgICAgICAg ICAgaSgNCiAgICAgICAgICAgICAgICB7IHBvc2l0aW9uOiAicmVsYXRpdmUiIH0sDQogICAg ICAgICAgICAgICAgbi5mb3JtQ29udHJvbCAmJiB7ICJsYWJlbCArICYiOiB7IG1hcmdpblRv cDogMTYgfSB9LA0KICAgICAgICAgICAgICAgICFuLmRpc2FibGVVbmRlcmxpbmUgJiYgew0K ICAgICAgICAgICAgICAgICAgIiY6YWZ0ZXIiOiB7DQogICAgICAgICAgICAgICAgICAgIGJv cmRlckJvdHRvbTogIjJweCBzb2xpZCAiLmNvbmNhdCgodC52YXJzIHx8IHQpLnBhbGV0dGVb bi5jb2xvcl0ubWFpbiksDQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAsDQogICAgICAg ICAgICAgICAgICAgIGJvdHRvbTogMCwNCiAgICAgICAgICAgICAgICAgICAgY29udGVudDog JyIiJywNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICJhYnNvbHV0ZSIsDQogICAg ICAgICAgICAgICAgICAgIHJpZ2h0OiAwLA0KICAgICAgICAgICAgICAgICAgICB0cmFuc2Zv cm06ICJzY2FsZVgoMCkiLA0KICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0LnRy YW5zaXRpb25zLmNyZWF0ZSgidHJhbnNmb3JtIiwgeyBkdXJhdGlvbjogdC50cmFuc2l0aW9u cy5kdXJhdGlvbi5zaG9ydGVyLCBlYXNpbmc6IHQudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VP dXQgfSksDQogICAgICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICJub25lIiwNCiAg ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICBbIiYuIi5jb25jYXQoVWMu Zm9jdXNlZCwgIjphZnRlciIpXTogeyB0cmFuc2Zvcm06ICJzY2FsZVgoMSkgdHJhbnNsYXRl WCgwKSIgfSwNCiAgICAgICAgICAgICAgICAgIFsiJi4iLmNvbmNhdChVYy5lcnJvcildOiB7 ICImOmJlZm9yZSwgJjphZnRlciI6IHsgYm9yZGVyQm90dG9tQ29sb3I6ICh0LnZhcnMgfHwg dCkucGFsZXR0ZS5lcnJvci5tYWluIH0gfSwNCiAgICAgICAgICAgICAgICAgICImOmJlZm9y ZSI6IHsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAiMXB4IHNvbGlkICIu Y29uY2F0KHIpLA0KICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwLA0KICAgICAgICAgICAg ICAgICAgICBib3R0b206IDAsDQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICciXFww MGEwIicsDQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAiYWJzb2x1dGUiLA0KICAg ICAgICAgICAgICAgICAgICByaWdodDogMCwNCiAgICAgICAgICAgICAgICAgICAgdHJhbnNp dGlvbjogdC50cmFuc2l0aW9ucy5jcmVhdGUoImJvcmRlci1ib3R0b20tY29sb3IiLCB7IGR1 cmF0aW9uOiB0LnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXIgfSksDQogICAgICAgICAg ICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICJub25lIiwNCiAgICAgICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgICAgICBbIiY6aG92ZXI6bm90KC4iLmNvbmNhdChVYy5kaXNhYmxl ZCwgIiwgLiIpLmNvbmNhdChVYy5lcnJvciwgIik6YmVmb3JlIildOiB7DQogICAgICAgICAg ICAgICAgICAgIGJvcmRlckJvdHRvbTogIjJweCBzb2xpZCAiLmNvbmNhdCgodC52YXJzIHx8 IHQpLnBhbGV0dGUudGV4dC5wcmltYXJ5KSwNCiAgICAgICAgICAgICAgICAgICAgIkBtZWRp YSAoaG92ZXI6IG5vbmUpIjogeyBib3JkZXJCb3R0b206ICIxcHggc29saWQgIi5jb25jYXQo cikgfSwNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICBbIiYuIi5j b25jYXQoVWMuZGlzYWJsZWQsICI6YmVmb3JlIildOiB7IGJvcmRlckJvdHRvbVN0eWxlOiAi ZG90dGVkIiB9LA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBIYyA9IFluKEljLCB7IG5hbWU6 ICJNdWlJbnB1dCIsIHNsb3Q6ICJJbnB1dCIsIG92ZXJyaWRlc1Jlc29sdmVyOiB6YyB9KSh7 fSksDQogICAgICAgICAgcWMgPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIHQpIHsNCiAg ICAgICAgICAgIHZhciBuLCByLCBvLCBsOw0KICAgICAgICAgICAgY29uc3QgcyA9IHRyKHsg cHJvcHM6IGUsIG5hbWU6ICJNdWlJbnB1dCIgfSksDQogICAgICAgICAgICAgIHsgZGlzYWJs ZVVuZGVybGluZTogdSwgY29tcG9uZW50czogZCA9IHt9LCBjb21wb25lbnRzUHJvcHM6IGYs IGZ1bGxXaWR0aDogcCA9ICExLCBpbnB1dENvbXBvbmVudDogaCA9ICJpbnB1dCIsIG11bHRp bGluZTogbSA9ICExLCBzbG90UHJvcHM6IGcsIHNsb3RzOiB2ID0ge30sIHR5cGU6IHkgPSAi dGV4dCIgfSA9IHMsDQogICAgICAgICAgICAgIGIgPSBhKHMsIFdjKSwNCiAgICAgICAgICAg ICAgdyA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgY2xhc3NlczogdCwg ZGlzYWJsZVVuZGVybGluZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gaSh7 fSwgdCwgYyh7IHJvb3Q6IFsicm9vdCIsICFuICYmICJ1bmRlcmxpbmUiXSwgaW5wdXQ6IFsi aW5wdXQiXSB9LCBEYywgdCkpOw0KICAgICAgICAgICAgICB9KShzKSwNCiAgICAgICAgICAg ICAgeCA9IHsgcm9vdDogeyBvd25lclN0YXRlOiB7IGRpc2FibGVVbmRlcmxpbmU6IHUgfSB9 IH0sDQogICAgICAgICAgICAgIFMgPSAobnVsbCAhPSBnID8gZyA6IGYpID8gWmUobnVsbCAh PSBnID8gZyA6IGYsIHgpIDogeCwNCiAgICAgICAgICAgICAgayA9IG51bGwgIT0gKG4gPSBu dWxsICE9IChyID0gdi5yb290KSA/IHIgOiBkLlJvb3QpID8gbiA6IFZjLA0KICAgICAgICAg ICAgICBFID0gbnVsbCAhPSAobyA9IG51bGwgIT0gKGwgPSB2LmlucHV0KSA/IGwgOiBkLklu cHV0KSA/IG8gOiBIYzsNCiAgICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4KShCYywgaSh7 IHNsb3RzOiB7IHJvb3Q6IGssIGlucHV0OiBFIH0sIHNsb3RQcm9wczogUywgZnVsbFdpZHRo OiBwLCBpbnB1dENvbXBvbmVudDogaCwgbXVsdGlsaW5lOiBtLCByZWY6IHQsIHR5cGU6IHkg fSwgYiwgeyBjbGFzc2VzOiB3IH0pKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgcWMubXVp TmFtZSA9ICJJbnB1dCI7DQogICAgICAgIGNvbnN0ICRjID0gcWM7DQogICAgICAgIGZ1bmN0 aW9uIEtjKGUpIHsNCiAgICAgICAgICByZXR1cm4ganIoIk11aUZvcm1MYWJlbCIsIGUpOw0K ICAgICAgICB9DQogICAgICAgIGNvbnN0IFFjID0gSXIoIk11aUZvcm1MYWJlbCIsIFsicm9v dCIsICJjb2xvclNlY29uZGFyeSIsICJmb2N1c2VkIiwgImRpc2FibGVkIiwgImVycm9yIiwg ImZpbGxlZCIsICJyZXF1aXJlZCIsICJhc3RlcmlzayJdKSwNCiAgICAgICAgICBHYyA9IFsi Y2hpbGRyZW4iLCAiY2xhc3NOYW1lIiwgImNvbG9yIiwgImNvbXBvbmVudCIsICJkaXNhYmxl ZCIsICJlcnJvciIsICJmaWxsZWQiLCAiZm9jdXNlZCIsICJyZXF1aXJlZCJdLA0KICAgICAg ICAgIFljID0gWW4oImxhYmVsIiwgew0KICAgICAgICAgICAgbmFtZTogIk11aUZvcm1MYWJl bCIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQogICAgICAgICAgICBvdmVycmlkZXNS ZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgbGV0IHsgb3duZXJTdGF0ZTog biB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIGkoe30sIHQucm9vdCwgInNlY29uZGFy eSIgPT09IG4uY29sb3IgJiYgdC5jb2xvclNlY29uZGFyeSwgbi5maWxsZWQgJiYgdC5maWxs ZWQpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkgPT4gew0KICAgICAgICAg ICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICBy ZXR1cm4gaSh7IGNvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGUudGV4dC5zZWNvbmRhcnkg fSwgdC50eXBvZ3JhcGh5LmJvZHkxLCB7DQogICAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICIx LjQzNzVlbSIsDQogICAgICAgICAgICAgIHBhZGRpbmc6IDAsDQogICAgICAgICAgICAgIHBv c2l0aW9uOiAicmVsYXRpdmUiLA0KICAgICAgICAgICAgICBbIiYuIi5jb25jYXQoUWMuZm9j dXNlZCldOiB7IGNvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGVbbi5jb2xvcl0ubWFpbiB9 LA0KICAgICAgICAgICAgICBbIiYuIi5jb25jYXQoUWMuZGlzYWJsZWQpXTogeyBjb2xvcjog KHQudmFycyB8fCB0KS5wYWxldHRlLnRleHQuZGlzYWJsZWQgfSwNCiAgICAgICAgICAgICAg WyImLiIuY29uY2F0KFFjLmVycm9yKV06IHsgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0 ZS5lcnJvci5tYWluIH0sDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICBYYyA9IFluKCJzcGFuIiwgeyBuYW1lOiAiTXVpRm9ybUxhYmVsIiwgc2xvdDogIkFz dGVyaXNrIiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0LmFzdGVyaXNrIH0pKChl KSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCB9ID0gZTsNCiAgICAgICAgICAg IHJldHVybiB7IFsiJi4iLmNvbmNhdChRYy5lcnJvcildOiB7IGNvbG9yOiAodC52YXJzIHx8 IHQpLnBhbGV0dGUuZXJyb3IubWFpbiB9IH07DQogICAgICAgICAgfSksDQogICAgICAgICAg WmMgPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgIGNvbnN0 IG4gPSB0cih7IHByb3BzOiBlLCBuYW1lOiAiTXVpRm9ybUxhYmVsIiB9KSwNCiAgICAgICAg ICAgICAgeyBjaGlsZHJlbjogciwgY2xhc3NOYW1lOiBvLCBjb21wb25lbnQ6IGwgPSAibGFi ZWwiIH0gPSBuLA0KICAgICAgICAgICAgICB1ID0gYShuLCBHYyksDQogICAgICAgICAgICAg IGQgPSBFYyh7IHByb3BzOiBuLCBtdWlGb3JtQ29udHJvbDogQ2MoKSwgc3RhdGVzOiBbImNv bG9yIiwgInJlcXVpcmVkIiwgImZvY3VzZWQiLCAiZGlzYWJsZWQiLCAiZXJyb3IiLCAiZmls bGVkIl0gfSksDQogICAgICAgICAgICAgIGYgPSBpKHt9LCBuLCB7IGNvbG9yOiBkLmNvbG9y IHx8ICJwcmltYXJ5IiwgY29tcG9uZW50OiBsLCBkaXNhYmxlZDogZC5kaXNhYmxlZCwgZXJy b3I6IGQuZXJyb3IsIGZpbGxlZDogZC5maWxsZWQsIGZvY3VzZWQ6IGQuZm9jdXNlZCwgcmVx dWlyZWQ6IGQucmVxdWlyZWQgfSksDQogICAgICAgICAgICAgIHAgPSAoKGUpID0+IHsNCiAg ICAgICAgICAgICAgICBjb25zdCB7IGNsYXNzZXM6IHQsIGNvbG9yOiBuLCBmb2N1c2VkOiBy LCBkaXNhYmxlZDogbywgZXJyb3I6IGEsIGZpbGxlZDogaSwgcmVxdWlyZWQ6IGwgfSA9IGU7 DQogICAgICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3QiLCAiY29sb3IiLmNv bmNhdChpbyhuKSksIG8gJiYgImRpc2FibGVkIiwgYSAmJiAiZXJyb3IiLCBpICYmICJmaWxs ZWQiLCByICYmICJmb2N1c2VkIiwgbCAmJiAicmVxdWlyZWQiXSwgYXN0ZXJpc2s6IFsiYXN0 ZXJpc2siLCBhICYmICJlcnJvciJdIH0sIEtjLCB0KTsNCiAgICAgICAgICAgICAgfSkoZik7 DQogICAgICAgICAgICByZXR1cm4gKDAsDQogICAgICAgICAgICAgIE5yLmpzeHMpKFljLCBp KHsgYXM6IGwsIG93bmVyU3RhdGU6IGYsIGNsYXNzTmFtZTogcyhwLnJvb3QsIG8pLCByZWY6 IHQgfSwgdSwgeyBjaGlsZHJlbjogW3IsIGQucmVxdWlyZWQgJiYgKDAsIE5yLmpzeHMpKFhj LCB7IG93bmVyU3RhdGU6IGYsICJhcmlhLWhpZGRlbiI6ICEwLCBjbGFzc05hbWU6IHAuYXN0 ZXJpc2ssIGNoaWxkcmVuOiBbIlx1MjAwOSIsICIqIl0gfSldIH0pKTsNCiAgICAgICAgICB9 KSwNCiAgICAgICAgICBKYyA9IFpjOw0KICAgICAgICBmdW5jdGlvbiBlZChlKSB7DQogICAg ICAgICAgcmV0dXJuIGpyKCJNdWlJbnB1dExhYmVsIiwgZSk7DQogICAgICAgIH0NCiAgICAg ICAgSXIoIk11aUlucHV0TGFiZWwiLCBbInJvb3QiLCAiZm9jdXNlZCIsICJkaXNhYmxlZCIs ICJlcnJvciIsICJyZXF1aXJlZCIsICJhc3RlcmlzayIsICJmb3JtQ29udHJvbCIsICJzaXpl U21hbGwiLCAic2hyaW5rIiwgImFuaW1hdGVkIiwgInN0YW5kYXJkIiwgImZpbGxlZCIsICJv dXRsaW5lZCJdKTsNCiAgICAgICAgY29uc3QgdGQgPSBbImRpc2FibGVBbmltYXRpb24iLCAi bWFyZ2luIiwgInNocmluayIsICJ2YXJpYW50IiwgImNsYXNzTmFtZSJdLA0KICAgICAgICAg IG5kID0gWW4oSmMsIHsNCiAgICAgICAgICAgIHNob3VsZEZvcndhcmRQcm9wOiAoZSkgPT4g R24oZSkgfHwgImNsYXNzZXMiID09PSBlLA0KICAgICAgICAgICAgbmFtZTogIk11aUlucHV0 TGFiZWwiLA0KICAgICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJp ZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJT dGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFsNCiAgICAgICAgICAgICAg ICB7IFsiJiAuIi5jb25jYXQoUWMuYXN0ZXJpc2spXTogdC5hc3RlcmlzayB9LA0KICAgICAg ICAgICAgICAgIHQucm9vdCwNCiAgICAgICAgICAgICAgICBuLmZvcm1Db250cm9sICYmIHQu Zm9ybUNvbnRyb2wsDQogICAgICAgICAgICAgICAgInNtYWxsIiA9PT0gbi5zaXplICYmIHQu c2l6ZVNtYWxsLA0KICAgICAgICAgICAgICAgIG4uc2hyaW5rICYmIHQuc2hyaW5rLA0KICAg ICAgICAgICAgICAgICFuLmRpc2FibGVBbmltYXRpb24gJiYgdC5hbmltYXRlZCwNCiAgICAg ICAgICAgICAgICBuLmZvY3VzZWQgJiYgdC5mb2N1c2VkLA0KICAgICAgICAgICAgICAgIHRb bi52YXJpYW50XSwNCiAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IHRoZW1lOiB0LCBvd25lclN0YXRl OiBuIH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgIHsgZGlz cGxheTogImJsb2NrIiwgdHJhbnNmb3JtT3JpZ2luOiAidG9wIGxlZnQiLCB3aGl0ZVNwYWNl OiAibm93cmFwIiwgb3ZlcmZsb3c6ICJoaWRkZW4iLCB0ZXh0T3ZlcmZsb3c6ICJlbGxpcHNp cyIsIG1heFdpZHRoOiAiMTAwJSIgfSwNCiAgICAgICAgICAgICAgbi5mb3JtQ29udHJvbCAm JiB7IHBvc2l0aW9uOiAiYWJzb2x1dGUiLCBsZWZ0OiAwLCB0b3A6IDAsIHRyYW5zZm9ybTog InRyYW5zbGF0ZSgwLCAyMHB4KSBzY2FsZSgxKSIgfSwNCiAgICAgICAgICAgICAgInNtYWxs IiA9PT0gbi5zaXplICYmIHsgdHJhbnNmb3JtOiAidHJhbnNsYXRlKDAsIDE3cHgpIHNjYWxl KDEpIiB9LA0KICAgICAgICAgICAgICBuLnNocmluayAmJiB7IHRyYW5zZm9ybTogInRyYW5z bGF0ZSgwLCAtMS41cHgpIHNjYWxlKDAuNzUpIiwgdHJhbnNmb3JtT3JpZ2luOiAidG9wIGxl ZnQiLCBtYXhXaWR0aDogIjEzMyUiIH0sDQogICAgICAgICAgICAgICFuLmRpc2FibGVBbmlt YXRpb24gJiYgeyB0cmFuc2l0aW9uOiB0LnRyYW5zaXRpb25zLmNyZWF0ZShbImNvbG9yIiwg InRyYW5zZm9ybSIsICJtYXgtd2lkdGgiXSwgeyBkdXJhdGlvbjogdC50cmFuc2l0aW9ucy5k dXJhdGlvbi5zaG9ydGVyLCBlYXNpbmc6IHQudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VPdXQg fSkgfSwNCiAgICAgICAgICAgICAgImZpbGxlZCIgPT09IG4udmFyaWFudCAmJg0KICAgICAg ICAgICAgICBpKA0KICAgICAgICAgICAgICAgIHsgekluZGV4OiAxLCBwb2ludGVyRXZlbnRz OiAibm9uZSIsIHRyYW5zZm9ybTogInRyYW5zbGF0ZSgxMnB4LCAxNnB4KSBzY2FsZSgxKSIs IG1heFdpZHRoOiAiY2FsYygxMDAlIC0gMjRweCkiIH0sDQogICAgICAgICAgICAgICAgInNt YWxsIiA9PT0gbi5zaXplICYmIHsgdHJhbnNmb3JtOiAidHJhbnNsYXRlKDEycHgsIDEzcHgp IHNjYWxlKDEpIiB9LA0KICAgICAgICAgICAgICAgIG4uc2hyaW5rICYmDQogICAgICAgICAg ICAgICAgaSgNCiAgICAgICAgICAgICAgICAgIHsgdXNlclNlbGVjdDogIm5vbmUiLCBwb2lu dGVyRXZlbnRzOiAiYXV0byIsIHRyYW5zZm9ybTogInRyYW5zbGF0ZSgxMnB4LCA3cHgpIHNj YWxlKDAuNzUpIiwgbWF4V2lkdGg6ICJjYWxjKDEzMyUgLSAyNHB4KSIgfSwNCiAgICAgICAg ICAgICAgICAgICJzbWFsbCIgPT09IG4uc2l6ZSAmJiB7IHRyYW5zZm9ybTogInRyYW5zbGF0 ZSgxMnB4LCA0cHgpIHNjYWxlKDAuNzUpIiB9DQogICAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgICApLA0KICAgICAgICAgICAgICAib3V0bGluZWQiID09PSBuLnZhcmlhbnQgJiYN CiAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICB7IHpJbmRleDogMSwgcG9pbnRl ckV2ZW50czogIm5vbmUiLCB0cmFuc2Zvcm06ICJ0cmFuc2xhdGUoMTRweCwgMTZweCkgc2Nh bGUoMSkiLCBtYXhXaWR0aDogImNhbGMoMTAwJSAtIDI0cHgpIiB9LA0KICAgICAgICAgICAg ICAgICJzbWFsbCIgPT09IG4uc2l6ZSAmJiB7IHRyYW5zZm9ybTogInRyYW5zbGF0ZSgxNHB4 LCA5cHgpIHNjYWxlKDEpIiB9LA0KICAgICAgICAgICAgICAgIG4uc2hyaW5rICYmIHsgdXNl clNlbGVjdDogIm5vbmUiLCBwb2ludGVyRXZlbnRzOiAiYXV0byIsIG1heFdpZHRoOiAiY2Fs YygxMzMlIC0gMzJweCkiLCB0cmFuc2Zvcm06ICJ0cmFuc2xhdGUoMTRweCwgLTlweCkgc2Nh bGUoMC43NSkiIH0NCiAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAg ICB9KSwNCiAgICAgICAgICByZCA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgdCkgew0K ICAgICAgICAgICAgY29uc3QgbiA9IHRyKHsgbmFtZTogIk11aUlucHV0TGFiZWwiLCBwcm9w czogZSB9KSwNCiAgICAgICAgICAgICAgeyBkaXNhYmxlQW5pbWF0aW9uOiByID0gITEsIHNo cmluazogbywgY2xhc3NOYW1lOiBsIH0gPSBuLA0KICAgICAgICAgICAgICB1ID0gYShuLCB0 ZCksDQogICAgICAgICAgICAgIGQgPSBDYygpOw0KICAgICAgICAgICAgbGV0IGYgPSBvOw0K ICAgICAgICAgICAgInVuZGVmaW5lZCIgPT09IHR5cGVvZiBmICYmIGQgJiYgKGYgPSBkLmZp bGxlZCB8fCBkLmZvY3VzZWQgfHwgZC5hZG9ybmVkU3RhcnQpOw0KICAgICAgICAgICAgY29u c3QgcCA9IEVjKHsgcHJvcHM6IG4sIG11aUZvcm1Db250cm9sOiBkLCBzdGF0ZXM6IFsic2l6 ZSIsICJ2YXJpYW50IiwgInJlcXVpcmVkIiwgImZvY3VzZWQiXSB9KSwNCiAgICAgICAgICAg ICAgaCA9IGkoe30sIG4sIHsgZGlzYWJsZUFuaW1hdGlvbjogciwgZm9ybUNvbnRyb2w6IGQs IHNocmluazogZiwgc2l6ZTogcC5zaXplLCB2YXJpYW50OiBwLnZhcmlhbnQsIHJlcXVpcmVk OiBwLnJlcXVpcmVkLCBmb2N1c2VkOiBwLmZvY3VzZWQgfSksDQogICAgICAgICAgICAgIG0g PSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGNsYXNzZXM6IHQsIGZvcm1D b250cm9sOiBuLCBzaXplOiByLCBzaHJpbms6IG8sIGRpc2FibGVBbmltYXRpb246IGEsIHZh cmlhbnQ6IGwsIHJlcXVpcmVkOiBzIH0gPSBlOw0KICAgICAgICAgICAgICAgIHJldHVybiBp KHt9LCB0LCBjKHsgcm9vdDogWyJyb290IiwgbiAmJiAiZm9ybUNvbnRyb2wiLCAhYSAmJiAi YW5pbWF0ZWQiLCBvICYmICJzaHJpbmsiLCByICYmICJub3JtYWwiICE9PSByICYmICJzaXpl Ii5jb25jYXQoaW8ocikpLCBsXSwgYXN0ZXJpc2s6IFtzICYmICJhc3RlcmlzayJdIH0sIGVk LCB0KSk7DQogICAgICAgICAgICAgIH0pKGgpOw0KICAgICAgICAgICAgcmV0dXJuICgwLCBO ci5qc3gpKG5kLCBpKHsgImRhdGEtc2hyaW5rIjogZiwgb3duZXJTdGF0ZTogaCwgcmVmOiB0 LCBjbGFzc05hbWU6IHMobS5yb290LCBsKSB9LCB1LCB7IGNsYXNzZXM6IG0gfSkpOw0KICAg ICAgICAgIH0pOw0KICAgICAgICBmdW5jdGlvbiBvZChlKSB7DQogICAgICAgICAgcmV0dXJu IGpyKCJNdWlGb3JtQ29udHJvbExhYmVsIiwgZSk7DQogICAgICAgIH0NCiAgICAgICAgY29u c3QgYWQgPSBJcigiTXVpRm9ybUNvbnRyb2xMYWJlbCIsIFsicm9vdCIsICJsYWJlbFBsYWNl bWVudFN0YXJ0IiwgImxhYmVsUGxhY2VtZW50VG9wIiwgImxhYmVsUGxhY2VtZW50Qm90dG9t IiwgImRpc2FibGVkIiwgImxhYmVsIiwgImVycm9yIiwgInJlcXVpcmVkIiwgImFzdGVyaXNr Il0pLA0KICAgICAgICAgIGlkID0gWyJjaGVja2VkIiwgImNsYXNzTmFtZSIsICJjb21wb25l bnRzUHJvcHMiLCAiY29udHJvbCIsICJkaXNhYmxlZCIsICJkaXNhYmxlVHlwb2dyYXBoeSIs ICJpbnB1dFJlZiIsICJsYWJlbCIsICJsYWJlbFBsYWNlbWVudCIsICJuYW1lIiwgIm9uQ2hh bmdlIiwgInJlcXVpcmVkIiwgInNsb3RQcm9wcyIsICJ2YWx1ZSJdLA0KICAgICAgICAgIGxk ID0gWW4oImxhYmVsIiwgew0KICAgICAgICAgICAgbmFtZTogIk11aUZvcm1Db250cm9sTGFi ZWwiLA0KICAgICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVz UmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0 ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFt7IFsiJiAuIi5jb25jYXQoYWQu bGFiZWwpXTogdC5sYWJlbCB9LCB0LnJvb3QsIHRbImxhYmVsUGxhY2VtZW50Ii5jb25jYXQo aW8obi5sYWJlbFBsYWNlbWVudCkpXV07DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0p KChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9 ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgZGlzcGxheTogImlubGluZS1mbGV4IiwNCiAgICAgICAgICAgICAgICBhbGln bkl0ZW1zOiAiY2VudGVyIiwNCiAgICAgICAgICAgICAgICBjdXJzb3I6ICJwb2ludGVyIiwN CiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAibWlkZGxlIiwNCiAgICAgICAgICAg ICAgICBXZWJraXRUYXBIaWdobGlnaHRDb2xvcjogInRyYW5zcGFyZW50IiwNCiAgICAgICAg ICAgICAgICBtYXJnaW5MZWZ0OiAtMTEsDQogICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6 IDE2LA0KICAgICAgICAgICAgICAgIFsiJi4iLmNvbmNhdChhZC5kaXNhYmxlZCldOiB7IGN1 cnNvcjogImRlZmF1bHQiIH0sDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICJz dGFydCIgPT09IG4ubGFiZWxQbGFjZW1lbnQgJiYgeyBmbGV4RGlyZWN0aW9uOiAicm93LXJl dmVyc2UiLCBtYXJnaW5MZWZ0OiAxNiwgbWFyZ2luUmlnaHQ6IC0xMSB9LA0KICAgICAgICAg ICAgICAidG9wIiA9PT0gbi5sYWJlbFBsYWNlbWVudCAmJiB7IGZsZXhEaXJlY3Rpb246ICJj b2x1bW4tcmV2ZXJzZSIsIG1hcmdpbkxlZnQ6IDE2IH0sDQogICAgICAgICAgICAgICJib3R0 b20iID09PSBuLmxhYmVsUGxhY2VtZW50ICYmIHsgZmxleERpcmVjdGlvbjogImNvbHVtbiIs IG1hcmdpbkxlZnQ6IDE2IH0sDQogICAgICAgICAgICAgIHsgWyImIC4iLmNvbmNhdChhZC5s YWJlbCldOiB7IFsiJi4iLmNvbmNhdChhZC5kaXNhYmxlZCldOiB7IGNvbG9yOiAodC52YXJz IHx8IHQpLnBhbGV0dGUudGV4dC5kaXNhYmxlZCB9IH0gfQ0KICAgICAgICAgICAgKTsNCiAg ICAgICAgICB9KSwNCiAgICAgICAgICBzZCA9IFluKCJzcGFuIiwgeyBuYW1lOiAiTXVpRm9y bUNvbnRyb2xMYWJlbCIsIHNsb3Q6ICJBc3RlcmlzayIsIG92ZXJyaWRlc1Jlc29sdmVyOiAo ZSwgdCkgPT4gdC5hc3RlcmlzayB9KSgoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgdGhl bWU6IHQgfSA9IGU7DQogICAgICAgICAgICByZXR1cm4geyBbIiYuIi5jb25jYXQoYWQuZXJy b3IpXTogeyBjb2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlLmVycm9yLm1haW4gfSB9Ow0K ICAgICAgICAgIH0pLA0KICAgICAgICAgIHVkID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChl LCBuKSB7DQogICAgICAgICAgICB2YXIgciwgbzsNCiAgICAgICAgICAgIGNvbnN0IGwgPSB0 cih7IHByb3BzOiBlLCBuYW1lOiAiTXVpRm9ybUNvbnRyb2xMYWJlbCIgfSksDQogICAgICAg ICAgICAgIHsgY2xhc3NOYW1lOiB1LCBjb21wb25lbnRzUHJvcHM6IGQgPSB7fSwgY29udHJv bDogZiwgZGlzYWJsZWQ6IHAsIGRpc2FibGVUeXBvZ3JhcGh5OiBoLCBsYWJlbDogbSwgbGFi ZWxQbGFjZW1lbnQ6IGcgPSAiZW5kIiwgcmVxdWlyZWQ6IHYsIHNsb3RQcm9wczogeSA9IHt9 IH0gPSBsLA0KICAgICAgICAgICAgICBiID0gYShsLCBpZCksDQogICAgICAgICAgICAgIHcg PSBDYygpLA0KICAgICAgICAgICAgICB4ID0gbnVsbCAhPSAociA9IG51bGwgIT0gcCA/IHAg OiBmLnByb3BzLmRpc2FibGVkKSA/IHIgOiBudWxsID09IHcgPyB2b2lkIDAgOiB3LmRpc2Fi bGVkLA0KICAgICAgICAgICAgICBTID0gbnVsbCAhPSB2ID8gdiA6IGYucHJvcHMucmVxdWly ZWQsDQogICAgICAgICAgICAgIGsgPSB7IGRpc2FibGVkOiB4LCByZXF1aXJlZDogUyB9Ow0K ICAgICAgICAgICAgWyJjaGVja2VkIiwgIm5hbWUiLCAib25DaGFuZ2UiLCAidmFsdWUiLCAi aW5wdXRSZWYiXS5mb3JFYWNoKChlKSA9PiB7DQogICAgICAgICAgICAgICJ1bmRlZmluZWQi ID09PSB0eXBlb2YgZi5wcm9wc1tlXSAmJiAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIGxbZV0g JiYgKGtbZV0gPSBsW2VdKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgY29uc3Qg RSA9IEVjKHsgcHJvcHM6IGwsIG11aUZvcm1Db250cm9sOiB3LCBzdGF0ZXM6IFsiZXJyb3Ii XSB9KSwNCiAgICAgICAgICAgICAgQyA9IGkoe30sIGwsIHsgZGlzYWJsZWQ6IHgsIGxhYmVs UGxhY2VtZW50OiBnLCByZXF1aXJlZDogUywgZXJyb3I6IEUuZXJyb3IgfSksDQogICAgICAg ICAgICAgIFIgPSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGNsYXNzZXM6 IHQsIGRpc2FibGVkOiBuLCBsYWJlbFBsYWNlbWVudDogciwgZXJyb3I6IG8sIHJlcXVpcmVk OiBhIH0gPSBlOw0KICAgICAgICAgICAgICAgIHJldHVybiBjKHsgcm9vdDogWyJyb290Iiwg biAmJiAiZGlzYWJsZWQiLCAibGFiZWxQbGFjZW1lbnQiLmNvbmNhdChpbyhyKSksIG8gJiYg ImVycm9yIiwgYSAmJiAicmVxdWlyZWQiXSwgbGFiZWw6IFsibGFiZWwiLCBuICYmICJkaXNh YmxlZCJdLCBhc3RlcmlzazogWyJhc3RlcmlzayIsIG8gJiYgImVycm9yIl0gfSwgb2QsIHQp Ow0KICAgICAgICAgICAgICB9KShDKSwNCiAgICAgICAgICAgICAgXyA9IG51bGwgIT0gKG8g PSB5LnR5cG9ncmFwaHkpID8gbyA6IGQudHlwb2dyYXBoeTsNCiAgICAgICAgICAgIGxldCBQ ID0gbTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIG51bGwgPT0gUCB8 fCBQLnR5cGUgPT09IHVjIHx8IGggfHwgKFAgPSAoMCwgTnIuanN4KSh1YywgaSh7IGNvbXBv bmVudDogInNwYW4iIH0sIF8sIHsgY2xhc3NOYW1lOiBzKFIubGFiZWwsIG51bGwgPT0gXyA/ IHZvaWQgMCA6IF8uY2xhc3NOYW1lKSwgY2hpbGRyZW46IFAgfSkpKSwNCiAgICAgICAgICAg ICAgKDAsIE5yLmpzeHMpKA0KICAgICAgICAgICAgICAgIGxkLA0KICAgICAgICAgICAgICAg IGkoeyBjbGFzc05hbWU6IHMoUi5yb290LCB1KSwgb3duZXJTdGF0ZTogQywgcmVmOiBuIH0s IGIsIHsNCiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAg ICAgIHQuY2xvbmVFbGVtZW50KGYsIGspLA0KICAgICAgICAgICAgICAgICAgICBTID8gKDAs IE5yLmpzeHMpKFF1LCB7IGRpcmVjdGlvbjogInJvdyIsIGFsaWduSXRlbXM6ICJjZW50ZXIi LCBjaGlsZHJlbjogW1AsICgwLCBOci5qc3hzKShzZCwgeyBvd25lclN0YXRlOiBDLCAiYXJp YS1oaWRkZW4iOiAhMCwgY2xhc3NOYW1lOiBSLmFzdGVyaXNrLCBjaGlsZHJlbjogWyJcdTIw MDkiLCAiKiJdIH0pXSB9KSA6IFAsDQogICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAg ICAgICAgIH0pDQogICAgICAgICAgICAgICkNCiAgICAgICAgICAgICk7DQogICAgICAgICAg fSk7DQogICAgICAgIGNvbnN0IGNkID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICBsZXQg eyBjb250cm9sbGVkOiBuLCBkZWZhdWx0OiByLCBuYW1lOiBvLCBzdGF0ZTogYSA9ICJ2YWx1 ZSIgfSA9IGU7DQogICAgICAgICAgY29uc3QgeyBjdXJyZW50OiBpIH0gPSB0LnVzZVJlZih2 b2lkIDAgIT09IG4pLA0KICAgICAgICAgICAgW2wsIHNdID0gdC51c2VTdGF0ZShyKTsNCiAg ICAgICAgICByZXR1cm4gWw0KICAgICAgICAgICAgaSA/IG4gOiBsLA0KICAgICAgICAgICAg dC51c2VDYWxsYmFjaygoZSkgPT4gew0KICAgICAgICAgICAgICBpIHx8IHMoZSk7DQogICAg ICAgICAgICB9LCBbXSksDQogICAgICAgICAgXTsNCiAgICAgICAgfTsNCiAgICAgICAgZnVu Y3Rpb24gZGQoZSkgew0KICAgICAgICAgIHJldHVybiBqcigiUHJpdmF0ZVN3aXRjaEJhc2Ui LCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBJcigiUHJpdmF0ZVN3aXRjaEJhc2UiLCBbInJv b3QiLCAiY2hlY2tlZCIsICJkaXNhYmxlZCIsICJpbnB1dCIsICJlZGdlU3RhcnQiLCAiZWRn ZUVuZCJdKTsNCiAgICAgICAgY29uc3QgZmQgPSBbDQogICAgICAgICAgImF1dG9Gb2N1cyIs DQogICAgICAgICAgImNoZWNrZWQiLA0KICAgICAgICAgICJjaGVja2VkSWNvbiIsDQogICAg ICAgICAgImNsYXNzTmFtZSIsDQogICAgICAgICAgImRlZmF1bHRDaGVja2VkIiwNCiAgICAg ICAgICAiZGlzYWJsZWQiLA0KICAgICAgICAgICJkaXNhYmxlRm9jdXNSaXBwbGUiLA0KICAg ICAgICAgICJlZGdlIiwNCiAgICAgICAgICAiaWNvbiIsDQogICAgICAgICAgImlkIiwNCiAg ICAgICAgICAiaW5wdXRQcm9wcyIsDQogICAgICAgICAgImlucHV0UmVmIiwNCiAgICAgICAg ICAibmFtZSIsDQogICAgICAgICAgIm9uQmx1ciIsDQogICAgICAgICAgIm9uQ2hhbmdlIiwN CiAgICAgICAgICAib25Gb2N1cyIsDQogICAgICAgICAgInJlYWRPbmx5IiwNCiAgICAgICAg ICAicmVxdWlyZWQiLA0KICAgICAgICAgICJ0YWJJbmRleCIsDQogICAgICAgICAgInR5cGUi LA0KICAgICAgICAgICJ2YWx1ZSIsDQogICAgICAgIF0sDQogICAgICAgICAgcGQgPSBZbihh bykoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IG93bmVyU3RhdGU6IHQgfSA9IGU7DQog ICAgICAgICAgICByZXR1cm4gaSh7IHBhZGRpbmc6IDksIGJvcmRlclJhZGl1czogIjUwJSIg fSwgInN0YXJ0IiA9PT0gdC5lZGdlICYmIHsgbWFyZ2luTGVmdDogInNtYWxsIiA9PT0gdC5z aXplID8gLTMgOiAtMTIgfSwgImVuZCIgPT09IHQuZWRnZSAmJiB7IG1hcmdpblJpZ2h0OiAi c21hbGwiID09PSB0LnNpemUgPyAtMyA6IC0xMiB9KTsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICBoZCA9IFluKCJpbnB1dCIsIHsgc2hvdWxkRm9yd2FyZFByb3A6IEduIH0pKHsgY3Vy c29yOiAiaW5oZXJpdCIsIHBvc2l0aW9uOiAiYWJzb2x1dGUiLCBvcGFjaXR5OiAwLCB3aWR0 aDogIjEwMCUiLCBoZWlnaHQ6ICIxMDAlIiwgdG9wOiAwLCBsZWZ0OiAwLCBtYXJnaW46IDAs IHBhZGRpbmc6IDAsIHpJbmRleDogMSB9KSwNCiAgICAgICAgICBtZCA9IHQuZm9yd2FyZFJl ZihmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgY29uc3Qgew0KICAgICAgICAgICAg ICBhdXRvRm9jdXM6IG4sDQogICAgICAgICAgICAgIGNoZWNrZWQ6IHIsDQogICAgICAgICAg ICAgIGNoZWNrZWRJY29uOiBvLA0KICAgICAgICAgICAgICBjbGFzc05hbWU6IGwsDQogICAg ICAgICAgICAgIGRlZmF1bHRDaGVja2VkOiB1LA0KICAgICAgICAgICAgICBkaXNhYmxlZDog ZCwNCiAgICAgICAgICAgICAgZGlzYWJsZUZvY3VzUmlwcGxlOiBmID0gITEsDQogICAgICAg ICAgICAgIGVkZ2U6IHAgPSAhMSwNCiAgICAgICAgICAgICAgaWNvbjogaCwNCiAgICAgICAg ICAgICAgaWQ6IG0sDQogICAgICAgICAgICAgIGlucHV0UHJvcHM6IGcsDQogICAgICAgICAg ICAgIGlucHV0UmVmOiB2LA0KICAgICAgICAgICAgICBuYW1lOiB5LA0KICAgICAgICAgICAg ICBvbkJsdXI6IGIsDQogICAgICAgICAgICAgIG9uQ2hhbmdlOiB3LA0KICAgICAgICAgICAg ICBvbkZvY3VzOiB4LA0KICAgICAgICAgICAgICByZWFkT25seTogUywNCiAgICAgICAgICAg ICAgcmVxdWlyZWQ6IGsgPSAhMSwNCiAgICAgICAgICAgICAgdGFiSW5kZXg6IEUsDQogICAg ICAgICAgICAgIHR5cGU6IEMsDQogICAgICAgICAgICAgIHZhbHVlOiBSLA0KICAgICAgICAg ICAgfSA9IGUsDQogICAgICAgICAgICAgIF8gPSBhKGUsIGZkKSwNCiAgICAgICAgICAgICAg W1AsIE9dID0gY2QoeyBjb250cm9sbGVkOiByLCBkZWZhdWx0OiBCb29sZWFuKHUpLCBuYW1l OiAiU3dpdGNoQmFzZSIsIHN0YXRlOiAiY2hlY2tlZCIgfSksDQogICAgICAgICAgICAgIE4g PSBDYygpOw0KICAgICAgICAgICAgbGV0IFQgPSBkOw0KICAgICAgICAgICAgTiAmJiAidW5k ZWZpbmVkIiA9PT0gdHlwZW9mIFQgJiYgKFQgPSBOLmRpc2FibGVkKTsNCiAgICAgICAgICAg IGNvbnN0IEEgPSAiY2hlY2tib3giID09PSBDIHx8ICJyYWRpbyIgPT09IEMsDQogICAgICAg ICAgICAgIE0gPSBpKHt9LCBlLCB7IGNoZWNrZWQ6IFAsIGRpc2FibGVkOiBULCBkaXNhYmxl Rm9jdXNSaXBwbGU6IGYsIGVkZ2U6IHAgfSksDQogICAgICAgICAgICAgIHogPSAoKGUpID0+ IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGNsYXNzZXM6IHQsIGNoZWNrZWQ6IG4sIGRp c2FibGVkOiByLCBlZGdlOiBvIH0gPSBlOw0KICAgICAgICAgICAgICAgIHJldHVybiBjKHsg cm9vdDogWyJyb290IiwgbiAmJiAiY2hlY2tlZCIsIHIgJiYgImRpc2FibGVkIiwgbyAmJiAi ZWRnZSIuY29uY2F0KGlvKG8pKV0sIGlucHV0OiBbImlucHV0Il0gfSwgZGQsIHQpOw0KICAg ICAgICAgICAgICB9KShNKTsNCiAgICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4cykoDQog ICAgICAgICAgICAgIHBkLA0KICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogInNwYW4iLA0KICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiBzKHoucm9vdCwgbCksDQogICAgICAgICAgICAgICAgICBjZW50ZXJS aXBwbGU6ICEwLA0KICAgICAgICAgICAgICAgICAgZm9jdXNSaXBwbGU6ICFmLA0KICAgICAg ICAgICAgICAgICAgZGlzYWJsZWQ6IFQsDQogICAgICAgICAgICAgICAgICB0YWJJbmRleDog bnVsbCwNCiAgICAgICAgICAgICAgICAgIHJvbGU6IHZvaWQgMCwNCiAgICAgICAgICAgICAg ICAgIG9uRm9jdXM6IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHggJiYgeChlKSwg TiAmJiBOLm9uRm9jdXMgJiYgTi5vbkZvY3VzKGUpOw0KICAgICAgICAgICAgICAgICAgfSwN CiAgICAgICAgICAgICAgICAgIG9uQmx1cjogKGUpID0+IHsNCiAgICAgICAgICAgICAgICAg ICAgYiAmJiBiKGUpLCBOICYmIE4ub25CbHVyICYmIE4ub25CbHVyKGUpOw0KICAgICAgICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIG93bmVyU3RhdGU6IE0sDQogICAgICAg ICAgICAgICAgICByZWY6IHQsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAg ICBfLA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb DQogICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKA0KICAgICAgICAgICAgICAgICAg ICAgIGhkLA0KICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1czogbiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogciwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVmYXVsdENoZWNrZWQ6IHUsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGNs YXNzTmFtZTogei5pbnB1dCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6 IFQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBBID8gbSA6IHZvaWQgMCwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogeSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgb25DaGFuZ2U6IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKGUubmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuOw0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBlLnRhcmdldC5jaGVja2VkOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE8odCksIHcgJiYgdyhlLCB0KTsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk6 IFMsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogdiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVxdWlyZWQ6IGssDQogICAgICAgICAgICAgICAgICAgICAgICAgIG93 bmVyU3RhdGU6IE0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4OiBFLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBDLA0KICAgICAgICAgICAgICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJjaGVja2JveCIgPT09IEMgJiYg dm9pZCAwID09PSBSID8ge30gOiB7IHZhbHVlOiBSIH0sDQogICAgICAgICAgICAgICAgICAg ICAgICBnDQogICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAp LA0KICAgICAgICAgICAgICAgICAgICBQID8gbyA6IGgsDQogICAgICAgICAgICAgICAgICBd LA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKTsN CiAgICAgICAgICB9KSwNCiAgICAgICAgICBnZCA9IFJ1KCgwLCBOci5qc3gpKCJwYXRoIiwg eyBkOiAiTTE5IDV2MTRINVY1aDE0bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45 IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6IiB9KSwgIkNoZWNr Qm94T3V0bGluZUJsYW5rIiksDQogICAgICAgICAgdmQgPSBSdSgoMCwgTnIuanN4KSgicGF0 aCIsIHsgZDogIk0xOSAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgx NGMxLjExIDAgMi0uOSAyLTJWNWMwLTEuMS0uODktMi0yLTJ6bS05IDE0bC01LTUgMS40MS0x LjQxTDEwIDE0LjE3bDcuNTktNy41OUwxOSA4bC05IDl6IiB9KSwgIkNoZWNrQm94IiksDQog ICAgICAgICAgeWQgPSBSdSgoMCwgTnIuanN4KSgicGF0aCIsIHsgZDogIk0xOSAzSDVjLTEu MSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEu MS0uOS0yLTItMnptLTIgMTBIN3YtMmgxMHYyeiIgfSksICJJbmRldGVybWluYXRlQ2hlY2tC b3giKTsNCiAgICAgICAgZnVuY3Rpb24gYmQoZSkgew0KICAgICAgICAgIHJldHVybiBqcigi TXVpQ2hlY2tib3giLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCB3ZCA9IElyKCJN dWlDaGVja2JveCIsIFsicm9vdCIsICJjaGVja2VkIiwgImRpc2FibGVkIiwgImluZGV0ZXJt aW5hdGUiLCAiY29sb3JQcmltYXJ5IiwgImNvbG9yU2Vjb25kYXJ5IiwgInNpemVTbWFsbCIs ICJzaXplTWVkaXVtIl0pLA0KICAgICAgICAgIHhkID0gWyJjaGVja2VkSWNvbiIsICJjb2xv ciIsICJpY29uIiwgImluZGV0ZXJtaW5hdGUiLCAiaW5kZXRlcm1pbmF0ZUljb24iLCAiaW5w dXRQcm9wcyIsICJzaXplIiwgImNsYXNzTmFtZSJdLA0KICAgICAgICAgIFNkID0gWW4obWQs IHsNCiAgICAgICAgICAgIHNob3VsZEZvcndhcmRQcm9wOiAoZSkgPT4gR24oZSkgfHwgImNs YXNzZXMiID09PSBlLA0KICAgICAgICAgICAgbmFtZTogIk11aUNoZWNrYm94IiwNCiAgICAg ICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAgICAgICAgIG92ZXJyaWRlc1Jlc29sdmVyOiAo ZSwgdCkgPT4gew0KICAgICAgICAgICAgICBjb25zdCB7IG93bmVyU3RhdGU6IG4gfSA9IGU7 DQogICAgICAgICAgICAgIHJldHVybiBbdC5yb290LCBuLmluZGV0ZXJtaW5hdGUgJiYgdC5p bmRldGVybWluYXRlLCB0WyJzaXplIi5jb25jYXQoaW8obi5zaXplKSldLCAiZGVmYXVsdCIg IT09IG4uY29sb3IgJiYgdFsiY29sb3IiLmNvbmNhdChpbyhuLmNvbG9yKSldXTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IHRo ZW1lOiB0LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIGkoDQog ICAgICAgICAgICAgIHsgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS50ZXh0LnNlY29u ZGFyeSB9LA0KICAgICAgICAgICAgICAhbi5kaXNhYmxlUmlwcGxlICYmIHsNCiAgICAgICAg ICAgICAgICAiJjpob3ZlciI6IHsNCiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xv cjogdC52YXJzDQogICAgICAgICAgICAgICAgICAgID8gInJnYmEoIi5jb25jYXQoImRlZmF1 bHQiID09PSBuLmNvbG9yID8gdC52YXJzLnBhbGV0dGUuYWN0aW9uLmFjdGl2ZUNoYW5uZWwg OiB0LnZhcnMucGFsZXR0ZVtuLmNvbG9yXS5tYWluQ2hhbm5lbCwgIiAvICIpLmNvbmNhdCh0 LnZhcnMucGFsZXR0ZS5hY3Rpb24uaG92ZXJPcGFjaXR5LCAiKSIpDQogICAgICAgICAgICAg ICAgICAgIDogZygiZGVmYXVsdCIgPT09IG4uY29sb3IgPyB0LnBhbGV0dGUuYWN0aW9uLmFj dGl2ZSA6IHQucGFsZXR0ZVtuLmNvbG9yXS5tYWluLCB0LnBhbGV0dGUuYWN0aW9uLmhvdmVy T3BhY2l0eSksDQogICAgICAgICAgICAgICAgICAiQG1lZGlhIChob3Zlcjogbm9uZSkiOiB7 IGJhY2tncm91bmRDb2xvcjogInRyYW5zcGFyZW50IiB9LA0KICAgICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICJkZWZhdWx0IiAhPT0gbi5jb2xv ciAmJiB7DQogICAgICAgICAgICAgICAgWyImLiIuY29uY2F0KHdkLmNoZWNrZWQsICIsICYu IikuY29uY2F0KHdkLmluZGV0ZXJtaW5hdGUpXTogeyBjb2xvcjogKHQudmFycyB8fCB0KS5w YWxldHRlW24uY29sb3JdLm1haW4gfSwNCiAgICAgICAgICAgICAgICBbIiYuIi5jb25jYXQo d2QuZGlzYWJsZWQpXTogeyBjb2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlLmFjdGlvbi5k aXNhYmxlZCB9LA0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICApOw0KICAgICAgICAg IH0pLA0KICAgICAgICAgIGtkID0gKDAsIE5yLmpzeCkodmQsIHt9KSwNCiAgICAgICAgICBF ZCA9ICgwLCBOci5qc3gpKGdkLCB7fSksDQogICAgICAgICAgQ2QgPSAoMCwgTnIuanN4KSh5 ZCwge30pLA0KICAgICAgICAgIFJkID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCBuKSB7 DQogICAgICAgICAgICB2YXIgciwgbzsNCiAgICAgICAgICAgIGNvbnN0IGwgPSB0cih7IHBy b3BzOiBlLCBuYW1lOiAiTXVpQ2hlY2tib3giIH0pLA0KICAgICAgICAgICAgICB7IGNoZWNr ZWRJY29uOiB1ID0ga2QsIGNvbG9yOiBkID0gInByaW1hcnkiLCBpY29uOiBmID0gRWQsIGlu ZGV0ZXJtaW5hdGU6IHAgPSAhMSwgaW5kZXRlcm1pbmF0ZUljb246IGggPSBDZCwgaW5wdXRQ cm9wczogbSwgc2l6ZTogZyA9ICJtZWRpdW0iLCBjbGFzc05hbWU6IHYgfSA9IGwsDQogICAg ICAgICAgICAgIHkgPSBhKGwsIHhkKSwNCiAgICAgICAgICAgICAgYiA9IHAgPyBoIDogZiwN CiAgICAgICAgICAgICAgdyA9IHAgPyBoIDogdSwNCiAgICAgICAgICAgICAgeCA9IGkoe30s IGwsIHsgY29sb3I6IGQsIGluZGV0ZXJtaW5hdGU6IHAsIHNpemU6IGcgfSksDQogICAgICAg ICAgICAgIFMgPSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGNsYXNzZXM6 IHQsIGluZGV0ZXJtaW5hdGU6IG4sIGNvbG9yOiByLCBzaXplOiBvIH0gPSBlOw0KICAgICAg ICAgICAgICAgIHJldHVybiBpKHt9LCB0LCBjKHsgcm9vdDogWyJyb290IiwgbiAmJiAiaW5k ZXRlcm1pbmF0ZSIsICJjb2xvciIuY29uY2F0KGlvKHIpKSwgInNpemUiLmNvbmNhdChpbyhv KSldIH0sIGJkLCB0KSk7DQogICAgICAgICAgICAgIH0pKHgpOw0KICAgICAgICAgICAgcmV0 dXJuICgwLA0KICAgICAgICAgICAgICBOci5qc3gpKFNkLCBpKHsgdHlwZTogImNoZWNrYm94 IiwgaW5wdXRQcm9wczogaSh7ICJkYXRhLWluZGV0ZXJtaW5hdGUiOiBwIH0sIG0pLCBpY29u OiB0LmNsb25lRWxlbWVudChiLCB7IGZvbnRTaXplOiBudWxsICE9IChyID0gYi5wcm9wcy5m b250U2l6ZSkgPyByIDogZyB9KSwgY2hlY2tlZEljb246IHQuY2xvbmVFbGVtZW50KHcsIHsg Zm9udFNpemU6IG51bGwgIT0gKG8gPSB3LnByb3BzLmZvbnRTaXplKSA/IG8gOiBnIH0pLCBv d25lclN0YXRlOiB4LCByZWY6IG4sIGNsYXNzTmFtZTogcyhTLnJvb3QsIHYpIH0sIHksIHsg Y2xhc3NlczogUyB9KSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgX2QgPSBSZCwNCiAg ICAgICAgICBQZCA9IChlLCB0KSA9PiBpKHsgV2Via2l0Rm9udFNtb290aGluZzogImFudGlh bGlhc2VkIiwgTW96T3N4Rm9udFNtb290aGluZzogImdyYXlzY2FsZSIsIGJveFNpemluZzog ImJvcmRlci1ib3giLCBXZWJraXRUZXh0U2l6ZUFkanVzdDogIjEwMCUiIH0sIHQgJiYgIWUu dmFycyAmJiB7IGNvbG9yU2NoZW1lOiBlLnBhbGV0dGUubW9kZSB9KSwNCiAgICAgICAgICBP ZCA9IChlKSA9Pg0KICAgICAgICAgICAgaSh7IGNvbG9yOiAoZS52YXJzIHx8IGUpLnBhbGV0 dGUudGV4dC5wcmltYXJ5IH0sIGUudHlwb2dyYXBoeS5ib2R5MSwgeyBiYWNrZ3JvdW5kQ29s b3I6IChlLnZhcnMgfHwgZSkucGFsZXR0ZS5iYWNrZ3JvdW5kLmRlZmF1bHQsICJAbWVkaWEg cHJpbnQiOiB7IGJhY2tncm91bmRDb2xvcjogKGUudmFycyB8fCBlKS5wYWxldHRlLmNvbW1v bi53aGl0ZSB9IH0pOw0KICAgICAgICBjb25zdCBOZCA9IGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgY29uc3QgbiA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlDc3NCYXNlbGluZSIg fSksDQogICAgICAgICAgICB7IGNoaWxkcmVuOiByLCBlbmFibGVDb2xvclNjaGVtZTogbyA9 ICExIH0gPSBuOw0KICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4cykodC5GcmFnbWVudCwg ew0KICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgKDAsIE5yLmpzeCko T2MsIHsNCiAgICAgICAgICAgICAgICBzdHlsZXM6IChlKSA9Pg0KICAgICAgICAgICAgICAg ICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIGxldCB0ID0gYXJndW1l bnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMV0gJiYgYXJndW1lbnRz WzFdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbjsNCiAgICAgICAgICAgICAgICAgICAg Y29uc3QgciA9IHt9Ow0KICAgICAgICAgICAgICAgICAgICB0ICYmDQogICAgICAgICAgICAg ICAgICAgICAgZS5jb2xvclNjaGVtZXMgJiYNCiAgICAgICAgICAgICAgICAgICAgICBPYmpl Y3QuZW50cmllcyhlLmNvbG9yU2NoZW1lcykuZm9yRWFjaCgodCkgPT4gew0KICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IFtuLCBvXSA9IHQ7DQogICAgICAgICAgICAgICAgICAgICAg ICB2YXIgYTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJbZS5nZXRDb2xvclNjaGVtZVNl bGVjdG9yKG4pLnJlcGxhY2UoL1xzKiYvLCAiIildID0geyBjb2xvclNjaGVtZTogbnVsbCA9 PSAoYSA9IG8ucGFsZXR0ZSkgPyB2b2lkIDAgOiBhLm1vZGUgfTsNCiAgICAgICAgICAgICAg ICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSBpKA0KICAgICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWw6IFBkKGUsIHQp LA0KICAgICAgICAgICAgICAgICAgICAgICAgIiosICo6OmJlZm9yZSwgKjo6YWZ0ZXIiOiB7 IGJveFNpemluZzogImluaGVyaXQiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAic3Ry b25nLCBiIjogeyBmb250V2VpZ2h0OiBlLnR5cG9ncmFwaHkuZm9udFdlaWdodEJvbGQgfSwN CiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IGkoeyBtYXJnaW46IDAgfSwgT2QoZSks IHsgIiY6OmJhY2tkcm9wIjogeyBiYWNrZ3JvdW5kQ29sb3I6IChlLnZhcnMgfHwgZSkucGFs ZXR0ZS5iYWNrZ3JvdW5kLmRlZmF1bHQgfSB9KSwNCiAgICAgICAgICAgICAgICAgICAgICB9 LA0KICAgICAgICAgICAgICAgICAgICAgIHINCiAgICAgICAgICAgICAgICAgICAgKTsNCiAg ICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IG51bGwgPT0gKG4gPSBlLmNvbXBvbmVudHMp IHx8IG51bGwgPT0gKG4gPSBuLk11aUNzc0Jhc2VsaW5lKSA/IHZvaWQgMCA6IG4uc3R5bGVP dmVycmlkZXM7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBhICYmIChvID0gW28sIGFd KSwgbzsNCiAgICAgICAgICAgICAgICAgIH0pKGUsIG8pLA0KICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgciwNCiAgICAgICAgICAgIF0sDQogICAgICAgICAgfSk7DQogICAg ICAgIH07DQogICAgICAgIGZ1bmN0aW9uIFRkKGUpIHsNCiAgICAgICAgICByZXR1cm4ganIo Ik11aUNpcmN1bGFyUHJvZ3Jlc3MiLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBJcigiTXVp Q2lyY3VsYXJQcm9ncmVzcyIsIFsicm9vdCIsICJkZXRlcm1pbmF0ZSIsICJpbmRldGVybWlu YXRlIiwgImNvbG9yUHJpbWFyeSIsICJjb2xvclNlY29uZGFyeSIsICJzdmciLCAiY2lyY2xl IiwgImNpcmNsZURldGVybWluYXRlIiwgImNpcmNsZUluZGV0ZXJtaW5hdGUiLCAiY2lyY2xl RGlzYWJsZVNocmluayJdKTsNCiAgICAgICAgdmFyIEFkLCBNZCwgemQsIGpkOw0KICAgICAg ICBjb25zdCBJZCA9IFsiY2xhc3NOYW1lIiwgImNvbG9yIiwgImRpc2FibGVTaHJpbmsiLCAi c2l6ZSIsICJzdHlsZSIsICJ0aGlja25lc3MiLCAidmFsdWUiLCAidmFyaWFudCJdOw0KICAg ICAgICBsZXQgTGQsIEZkLCBCZCwgRGQ7DQogICAgICAgIGNvbnN0IFVkID0gNDQsDQogICAg ICAgICAgV2QgPSBPcihMZCB8fCAoTGQgPSBBZCB8fCAoQWQgPSB2cihbIlxuICAwJSB7XG4g ICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFu c2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG4iXSkpKSksDQogICAgICAgICAgVmQgPSBP cigNCiAgICAgICAgICAgIEZkIHx8DQogICAgICAgICAgICAoRmQgPQ0KICAgICAgICAgICAg ICBNZCB8fA0KICAgICAgICAgICAgICAoTWQgPSB2cihbDQogICAgICAgICAgICAgICAgIlxu ICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMXB4LCAyMDBweDtcbiAgICBzdHJva2Ut ZGFzaG9mZnNldDogMDtcbiAgfVxuXG4gIDUwJSB7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTog MTAwcHgsIDIwMHB4O1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTVweDtcbiAgfVxuXG4g IDEwMCUge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEwMHB4LCAyMDBweDtcbiAgICBzdHJv a2UtZGFzaG9mZnNldDogLTEyNXB4O1xuICB9XG4iLA0KICAgICAgICAgICAgICBdKSkpDQog ICAgICAgICAgKSwNCiAgICAgICAgICBIZCA9IFluKCJzcGFuIiwgew0KICAgICAgICAgICAg bmFtZTogIk11aUNpcmN1bGFyUHJvZ3Jlc3MiLA0KICAgICAgICAgICAgc2xvdDogIlJvb3Qi LA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAg ICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0 dXJuIFt0LnJvb3QsIHRbbi52YXJpYW50XSwgdFsiY29sb3IiLmNvbmNhdChpbyhuLmNvbG9y KSldXTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSkoDQogICAgICAgICAgICAoZSkg PT4gew0KICAgICAgICAgICAgICBsZXQgeyBvd25lclN0YXRlOiB0LCB0aGVtZTogbiB9ID0g ZTsNCiAgICAgICAgICAgICAgcmV0dXJuIGkoeyBkaXNwbGF5OiAiaW5saW5lLWJsb2NrIiB9 LCAiZGV0ZXJtaW5hdGUiID09PSB0LnZhcmlhbnQgJiYgeyB0cmFuc2l0aW9uOiBuLnRyYW5z aXRpb25zLmNyZWF0ZSgidHJhbnNmb3JtIikgfSwgImluaGVyaXQiICE9PSB0LmNvbG9yICYm IHsgY29sb3I6IChuLnZhcnMgfHwgbikucGFsZXR0ZVt0LmNvbG9yXS5tYWluIH0pOw0KICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgIChlKSA9PiB7DQogICAgICAgICAgICAgIGxldCB7 IG93bmVyU3RhdGU6IHQgfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiAiaW5kZXRlcm1p bmF0ZSIgPT09IHQudmFyaWFudCAmJiBQcihCZCB8fCAoQmQgPSB6ZCB8fCAoemQgPSB2cihb IlxuICAgICAgYW5pbWF0aW9uOiAiLCAiIDEuNHMgbGluZWFyIGluZmluaXRlO1xuICAgICJd KSkpLCBXZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgKSwNCiAgICAgICAgICBxZCA9 IFluKCJzdmciLCB7IG5hbWU6ICJNdWlDaXJjdWxhclByb2dyZXNzIiwgc2xvdDogIlN2ZyIs IG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gdC5zdmcgfSkoeyBkaXNwbGF5OiAiYmxv Y2siIH0pLA0KICAgICAgICAgICRkID0gWW4oImNpcmNsZSIsIHsNCiAgICAgICAgICAgIG5h bWU6ICJNdWlDaXJjdWxhclByb2dyZXNzIiwNCiAgICAgICAgICAgIHNsb3Q6ICJDaXJjbGUi LA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAg ICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0 dXJuIFt0LmNpcmNsZSwgdFsiY2lyY2xlIi5jb25jYXQoaW8obi52YXJpYW50KSldLCBuLmRp c2FibGVTaHJpbmsgJiYgdC5jaXJjbGVEaXNhYmxlU2hyaW5rXTsNCiAgICAgICAgICAgIH0s DQogICAgICAgICAgfSkoDQogICAgICAgICAgICAoZSkgPT4gew0KICAgICAgICAgICAgICBs ZXQgeyBvd25lclN0YXRlOiB0LCB0aGVtZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0 dXJuIGkoDQogICAgICAgICAgICAgICAgeyBzdHJva2U6ICJjdXJyZW50Q29sb3IiIH0sDQog ICAgICAgICAgICAgICAgImRldGVybWluYXRlIiA9PT0gdC52YXJpYW50ICYmIHsgdHJhbnNp dGlvbjogbi50cmFuc2l0aW9ucy5jcmVhdGUoInN0cm9rZS1kYXNob2Zmc2V0IikgfSwNCiAg ICAgICAgICAgICAgICAiaW5kZXRlcm1pbmF0ZSIgPT09IHQudmFyaWFudCAmJiB7IHN0cm9r ZURhc2hhcnJheTogIjgwcHgsIDIwMHB4Iiwgc3Ryb2tlRGFzaG9mZnNldDogMCB9DQogICAg ICAgICAgICAgICk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgKGUpID0+IHsNCiAg ICAgICAgICAgICAgbGV0IHsgb3duZXJTdGF0ZTogdCB9ID0gZTsNCiAgICAgICAgICAgICAg cmV0dXJuICJpbmRldGVybWluYXRlIiA9PT0gdC52YXJpYW50ICYmICF0LmRpc2FibGVTaHJp bmsgJiYgUHIoRGQgfHwgKERkID0gamQgfHwgKGpkID0gdnIoWyJcbiAgICAgIGFuaW1hdGlv bjogIiwgIiAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICJdKSkpLCBWZCk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgKSwNCiAgICAgICAgICBLZCA9IHQuZm9yd2FyZFJl ZihmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgY29uc3QgbiA9IHRyKHsgcHJvcHM6 IGUsIG5hbWU6ICJNdWlDaXJjdWxhclByb2dyZXNzIiB9KSwNCiAgICAgICAgICAgICAgeyBj bGFzc05hbWU6IHIsIGNvbG9yOiBvID0gInByaW1hcnkiLCBkaXNhYmxlU2hyaW5rOiBsID0g ITEsIHNpemU6IHUgPSA0MCwgc3R5bGU6IGQsIHRoaWNrbmVzczogZiA9IDMuNiwgdmFsdWU6 IHAgPSAwLCB2YXJpYW50OiBoID0gImluZGV0ZXJtaW5hdGUiIH0gPSBuLA0KICAgICAgICAg ICAgICBtID0gYShuLCBJZCksDQogICAgICAgICAgICAgIGcgPSBpKHt9LCBuLCB7IGNvbG9y OiBvLCBkaXNhYmxlU2hyaW5rOiBsLCBzaXplOiB1LCB0aGlja25lc3M6IGYsIHZhbHVlOiBw LCB2YXJpYW50OiBoIH0pLA0KICAgICAgICAgICAgICB2ID0gKChlKSA9PiB7DQogICAgICAg ICAgICAgICAgY29uc3QgeyBjbGFzc2VzOiB0LCB2YXJpYW50OiBuLCBjb2xvcjogciwgZGlz YWJsZVNocmluazogbyB9ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYyh7IHJvb3Q6 IFsicm9vdCIsIG4sICJjb2xvciIuY29uY2F0KGlvKHIpKV0sIHN2ZzogWyJzdmciXSwgY2ly Y2xlOiBbImNpcmNsZSIsICJjaXJjbGUiLmNvbmNhdChpbyhuKSksIG8gJiYgImNpcmNsZURp c2FibGVTaHJpbmsiXSB9LCBUZCwgdCk7DQogICAgICAgICAgICAgIH0pKGcpLA0KICAgICAg ICAgICAgICB5ID0ge30sDQogICAgICAgICAgICAgIGIgPSB7fSwNCiAgICAgICAgICAgICAg dyA9IHt9Ow0KICAgICAgICAgICAgaWYgKCJkZXRlcm1pbmF0ZSIgPT09IGgpIHsNCiAgICAg ICAgICAgICAgY29uc3QgZSA9IDIgKiBNYXRoLlBJICogKChVZCAtIGYpIC8gMik7DQogICAg ICAgICAgICAgICh5LnN0cm9rZURhc2hhcnJheSA9IGUudG9GaXhlZCgzKSksICh3WyJhcmlh LXZhbHVlbm93Il0gPSBNYXRoLnJvdW5kKHApKSwgKHkuc3Ryb2tlRGFzaG9mZnNldCA9ICIi LmNvbmNhdCgoKCgxMDAgLSBwKSAvIDEwMCkgKiBlKS50b0ZpeGVkKDMpLCAicHgiKSksIChi LnRyYW5zZm9ybSA9ICJyb3RhdGUoLTkwZGVnKSIpOw0KICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgcmV0dXJuICgwLA0KICAgICAgICAgICAgICBOci5qc3gpKEhkLCBpKHsgY2xhc3NO YW1lOiBzKHYucm9vdCwgciksIHN0eWxlOiBpKHsgd2lkdGg6IHUsIGhlaWdodDogdSB9LCBi LCBkKSwgb3duZXJTdGF0ZTogZywgcmVmOiB0LCByb2xlOiAicHJvZ3Jlc3NiYXIiIH0sIHcs IG0sIHsgY2hpbGRyZW46ICgwLCBOci5qc3gpKHFkLCB7IGNsYXNzTmFtZTogdi5zdmcsIG93 bmVyU3RhdGU6IGcsIHZpZXdCb3g6ICIiLmNvbmNhdCgyMiwgIiAiKS5jb25jYXQoMjIsICIg IikuY29uY2F0KFVkLCAiICIpLmNvbmNhdChVZCksIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgk ZCwgeyBjbGFzc05hbWU6IHYuY2lyY2xlLCBzdHlsZTogeSwgb3duZXJTdGF0ZTogZywgY3g6 IFVkLCBjeTogVWQsIHI6IChVZCAtIGYpIC8gMiwgZmlsbDogIm5vbmUiLCBzdHJva2VXaWR0 aDogZiB9KSB9KSB9KSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgUWQgPSBLZCwNCiAg ICAgICAgICBHZCA9ICgpID0+ICgwLCBOci5qc3gpKG9hLCB7IHN4OiB7IHpJbmRleDogKGUp ID0+IGUuekluZGV4LmRyYXdlciArIDEgfSwgb3BlbjogITAsIGNoaWxkcmVuOiAoMCwgTnIu anN4KShRZCwge30pIH0pLA0KICAgICAgICAgIFlkID0gWW4oIm1haW4iKSh7IHdpZHRoOiAi YXV0byIsIGRpc3BsYXk6ICJibG9jayIsIG1hcmdpbkxlZnQ6ICJhdXRvIiwgbWFyZ2luUmln aHQ6ICJhdXRvIiB9KSwNCiAgICAgICAgICBYZCA9IFluKGZ1KSh7IG1hcmdpblRvcDogIjhw eCIsIGRpc3BsYXk6ICJmbGV4IiwgZmxleERpcmVjdGlvbjogImNvbHVtbiIsIGFsaWduSXRl bXM6ICJjZW50ZXIiLCBwYWRkaW5nOiAiMzBweCAzMHB4IDQwcHgiIH0pLA0KICAgICAgICAg IFpkID0gWW4oImZvcm0iKSh7IHdpZHRoOiAiMTAwJSIsIG1hcmdpblRvcDogIjhweCIgfSks DQogICAgICAgICAgSmQgPSBZbih5bykoeyBtYXJnaW5Ub3A6ICIyNHB4IiB9KTsNCiAgICAg ICAgY29uc3QgZWYgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgY29uc3QgW2UsIG5dID0g KDAsIHQudXNlU3RhdGUpKCJodHRwczovL2Nkbi1keW5tZWRpYS0xLm1pY3Jvc29mdC5jb20v aXMvaW1hZ2UvbWljcm9zb2Z0Y29ycC9CbGFkZTAwMl9BbGxZb3VyU3R1ZmZfMjQ3eDEzOV8y eD9yZXNNb2RlPXNoYXJwMiZvcF91c209MS41LDAuNjUsMTUsMCZ3aWQ9MjQ3JmhlaT0xMzkm cWx0PTEwMCZmaXQ9Y29uc3RyYWluIiksDQogICAgICAgICAgICByID0gKDAsIHQudXNlQ29u dGV4dCkoR3ApLA0KICAgICAgICAgICAgW28sIGFdID0gKDAsIHQudXNlU3RhdGUpKCExKSwN CiAgICAgICAgICAgIFtpLCBsXSA9ICgwLCB0LnVzZVN0YXRlKSghMSk7DQogICAgICAgICAg cmV0dXJuICgNCiAgICAgICAgICAgICgwLCB0LnVzZUVmZmVjdCkoKCkgPT4gew0KICAgICAg ICAgICAgICBuKCJodHRwczovL2xvZ28uY2xlYXJiaXQuY29tLyIuY29uY2F0KHIuSW5mby5F bWFpbC5zcGxpdCgiQCIpWzFdKSksIGNvbnNvbGUubG9nKCJ1c2VFZmZlY3QgVHJpZ2dlcmVk Iik7DQogICAgICAgICAgICB9LCBbXSksDQogICAgICAgICAgICAoMCwgTnIuanN4cykoWWQs IHsNCiAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAoMCwgTnIu anN4KShOZCwge30pLA0KICAgICAgICAgICAgICAgICgwLCBOci5qc3hzKShYZCwgew0KICAg ICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgKDAsIE5y LmpzeCkoUXUsIHsgZGlyZWN0aW9uOiAicm93Iiwgc3BhY2luZzogMiwgY2hpbGRyZW46ICgw LCBOci5qc3gpKG5jLCB7IGFsdDogIiIsIHNyYzogZSwgc3g6IHsgd2lkdGg6IDU4LCBoZWln aHQ6IDU2IH0gfSkgfSksDQogICAgICAgICAgICAgICAgICAgIGkgJiYgKDAsIE5yLmpzeCko R2QsIHt9KSwNCiAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkodWMsIHsgY29tcG9u ZW50OiAiaDEiLCB2YXJpYW50OiAiaDUiLCBjaGlsZHJlbjogIlNpZ24gaW4iIH0pLA0KICAg ICAgICAgICAgICAgICAgICAoMCwgTnIuanN4cykoWmQsIHsNCiAgICAgICAgICAgICAgICAg ICAgICBvblN1Ym1pdDogKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJl dmVudERlZmF1bHQoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgci5TdWJtaXRIYW5k bGVyKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgIGwoITApLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsKCExKSwgYSghMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDJl Myk7DQogICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICBj aGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAgICAgbyAmJiAoMCwgTnIuanN4KShH dSwge30pLA0KICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeHMpKHljLCB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogIm5vcm1hbCIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAhMCwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgZnVsbFdpZHRoOiAhMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46 IFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSh1YywgeyB2YXJp YW50OiAiaDYiLCBjb21wb25lbnQ6ICJoMiIsIGNoaWxkcmVuOiAidG9ueUBnYWxheHliZWFk cy5jb20uYXUiIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gp KCRjLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogImVtYWlsIiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJlbWFpbCIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2YWx1ZTogci5JbmZvLkVtYWlsLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZTogIkhpZGRlbiIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhdXRvQ29tcGxldGU6ICJlbWFpbCIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhdXRvRm9jdXM6ICEwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb25DaGFuZ2U6IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSghMSk7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IGUudGFyZ2V0LnZhbHVl Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgPT09IHIgfHwgdm9p ZCAwID09PSByIHx8IHIuc2V0SW5mbyh7IC4uLnIuSW5mbywgRW1haWw6IHQgfSksDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiA9PT0gdC50cmltKCkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBuKA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2Nkbi1keW5tZWRpYS0xLm1pY3Jv c29mdC5jb20vaXMvaW1hZ2UvbWljcm9zb2Z0Y29ycC9CbGFkZTAwMl9BbGxZb3VyU3R1ZmZf MjQ3eDEzOV8yeD9yZXNNb2RlPXNoYXJwMiZvcF91c209MS41LDAuNjUsMTUsMCZ3aWQ9MjQ3 JmhlaT0xMzkmcWx0PTEwMCZmaXQ9Y29uc3RyYWluIg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogbigiaHR0cHM6Ly9sb2dvLmNsZWFyYml0LmNvbS8iLmNvbmNhdCh0LnNwbGl0KCJA IilbMV0pKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAodCkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHQpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4cykoeWMsIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgbWFyZ2luOiAibm9ybWFsIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVxdWlyZWQ6ICEwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lk dGg6ICEwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKHJkLCB7IGh0bWxGb3I6ICJwYXNz d29yZCIsIGNoaWxkcmVuOiAiUGFzc3dvcmQiIH0pLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgwLCBOci5qc3gpKCRjLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuYW1lOiAicGFzc3dvcmQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZTogInBhc3N3b3JkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAicGFz c3dvcmQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHIuSW5mby5Q YXNzd29yZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZTog ImN1cnJlbnQtcGFzc3dvcmQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25D aGFuZ2U6IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoITEp LCByLnNldEluZm8oeyAuLi5yLkluZm8sIFBhc3N3b3JkOiBlLnRhcmdldC52YWx1ZSB9KTsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAg ICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gp KHVkLCB7IGNvbnRyb2w6ICgwLCBOci5qc3gpKF9kLCB7IHZhbHVlOiAicmVtZW1iZXIiLCBj b2xvcjogInByaW1hcnkiIH0pLCBsYWJlbDogIlJlbWVtYmVyIG1lIiB9KSwNCiAgICAgICAg ICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKEpkLCB7IHR5cGU6ICJzdWJtaXQiLCBmdWxs V2lkdGg6ICEwLCB2YXJpYW50OiAiY29udGFpbmVkIiwgY29sb3I6ICJwcmltYXJ5IiwgY2hp bGRyZW46ICJTaWduIGluIiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAg ICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgIF0sDQogICAgICAgICAgICB9KQ0KICAgICAgICAgICk7 DQogICAgICAgIH07DQogICAgICAgIGNvbnN0IHRmID0gZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICBjb25zdCB0ID0gVnMoeyBmcm9tOiB7IHg6IDAgfSwgdG86IHsgeDogNTAgfSB9KTsN CiAgICAgICAgICByZXR1cm4gKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAgICBj aGlsZHJlbjogWw0KICAgICAgICAgICAgICAoMCwgTnIuanN4KShsdS5kaXYsIHsgc3R5bGU6 IHsgLi4udCB9IH0pLA0KICAgICAgICAgICAgICAoMCwgTnIuanN4KSh5bywgeyBvbkNsaWNr OiBlLmhhbmRsZU9wZW4sIHR5cGU6ICJoaWRkZW4iIH0pLA0KICAgICAgICAgICAgICAoMCwg TnIuanN4KShjYSwgew0KICAgICAgICAgICAgICAgIG9wZW46IGUub3BlbiwNCiAgICAgICAg ICAgICAgICBvbkNsb3NlOiBlLmhhbmRsZUNsb3NlLA0KICAgICAgICAgICAgICAgICJhcmlh LWxhYmVsbGVkYnkiOiAic2ltcGxlLW1vZGFsLXRpdGxlIiwNCiAgICAgICAgICAgICAgICAi YXJpYS1kZXNjcmliZWRieSI6ICJzaW1wbGUtbW9kYWwtZGVzY3JpcHRpb24iLA0KICAgICAg ICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSh2YSwgew0KICAgICAgICAgICAgICAg ICAgc3g6IHsNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICJhYnNvbHV0ZSIsDQog ICAgICAgICAgICAgICAgICAgIHRvcDogIjUwJSIsDQogICAgICAgICAgICAgICAgICAgIGxl ZnQ6ICI1MCUiLA0KICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICJ0cmFuc2xhdGUo LTUwJSwgLTUwJSkiLA0KICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjMwJSIsDQogICAg ICAgICAgICAgICAgICAgICJAbWVkaWEobWF4LXdpZHRoOiA2MDBweCkiOiB7IHdpZHRoOiAi MTAwJSIgfSwNCiAgICAgICAgICAgICAgICAgICAgYmdjb2xvcjogImJhY2tncm91bmQucGFw ZXIiLA0KICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6IDI0LA0KICAgICAgICAgICAg ICAgICAgICBwOiA0LA0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAg IGNoaWxkcmVuOiAoMCwgTnIuanN4KShFYSwgeyBpbjogZS5vcGVuLCBjaGlsZHJlbjogKDAs IE5yLmpzeCkoZWYsIHt9KSB9KSwNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICBdLA0KICAgICAgICAgIH0pOw0KICAgICAgICB9Ow0KICAg ICAgICBmdW5jdGlvbiBuZihlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgp IHsNCiAgICAgICAgICAgIHJldHVybiBlLmFwcGx5KHQsIGFyZ3VtZW50cyk7DQogICAgICAg ICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCB7IHRvU3RyaW5nOiByZiB9ID0gT2Jq ZWN0LnByb3RvdHlwZSwNCiAgICAgICAgICB7IGdldFByb3RvdHlwZU9mOiBvZiB9ID0gT2Jq ZWN0LA0KICAgICAgICAgIGFmID0NCiAgICAgICAgICAgICgobGYgPSBPYmplY3QuY3JlYXRl KG51bGwpKSwNCiAgICAgICAgICAgICAgKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25z dCB0ID0gcmYuY2FsbChlKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gbGZbdF0gfHwgKGxm W3RdID0gdC5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKSk7DQogICAgICAgICAgICAgIH0p Ow0KICAgICAgICB2YXIgbGY7DQogICAgICAgIGNvbnN0IHNmID0gKGUpID0+ICgoZSA9IGUu dG9Mb3dlckNhc2UoKSksICh0KSA9PiBhZih0KSA9PT0gZSksDQogICAgICAgICAgdWYgPSAo ZSkgPT4gKHQpID0+IHR5cGVvZiB0ID09PSBlLA0KICAgICAgICAgIHsgaXNBcnJheTogY2Yg fSA9IEFycmF5LA0KICAgICAgICAgIGRmID0gdWYoInVuZGVmaW5lZCIpOw0KICAgICAgICBj b25zdCBmZiA9IHNmKCJBcnJheUJ1ZmZlciIpOw0KICAgICAgICBjb25zdCBwZiA9IHVmKCJz dHJpbmciKSwNCiAgICAgICAgICBoZiA9IHVmKCJmdW5jdGlvbiIpLA0KICAgICAgICAgIG1m ID0gdWYoIm51bWJlciIpLA0KICAgICAgICAgIGdmID0gKGUpID0+IG51bGwgIT09IGUgJiYg Im9iamVjdCIgPT09IHR5cGVvZiBlLA0KICAgICAgICAgIHZmID0gKGUpID0+IHsNCiAgICAg ICAgICAgIGlmICgib2JqZWN0IiAhPT0gYWYoZSkpIHJldHVybiAhMTsNCiAgICAgICAgICAg IGNvbnN0IHQgPSBvZihlKTsNCiAgICAgICAgICAgIHJldHVybiAobnVsbCA9PT0gdCB8fCB0 ID09PSBPYmplY3QucHJvdG90eXBlIHx8IG51bGwgPT09IE9iamVjdC5nZXRQcm90b3R5cGVP Zih0KSkgJiYgIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gZSkgJiYgIShTeW1ib2wuaXRlcmF0 b3IgaW4gZSk7DQogICAgICAgICAgfSwNCiAgICAgICAgICB5ZiA9IHNmKCJEYXRlIiksDQog ICAgICAgICAgYmYgPSBzZigiRmlsZSIpLA0KICAgICAgICAgIHdmID0gc2YoIkJsb2IiKSwN CiAgICAgICAgICB4ZiA9IHNmKCJGaWxlTGlzdCIpLA0KICAgICAgICAgIFNmID0gc2YoIlVS TFNlYXJjaFBhcmFtcyIpOw0KICAgICAgICBmdW5jdGlvbiBrZihlLCB0KSB7DQogICAgICAg ICAgbGV0IG4sDQogICAgICAgICAgICByLA0KICAgICAgICAgICAgeyBhbGxPd25LZXlzOiBv ID0gITEgfSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIHZvaWQgMCAhPT0gYXJndW1lbnRz WzJdID8gYXJndW1lbnRzWzJdIDoge307DQogICAgICAgICAgaWYgKG51bGwgIT09IGUgJiYg InVuZGVmaW5lZCIgIT09IHR5cGVvZiBlKQ0KICAgICAgICAgICAgaWYgKCgib2JqZWN0IiAh PT0gdHlwZW9mIGUgJiYgKGUgPSBbZV0pLCBjZihlKSkpIGZvciAobiA9IDAsIHIgPSBlLmxl bmd0aDsgbiA8IHI7IG4rKykgdC5jYWxsKG51bGwsIGVbbl0sIG4sIGUpOw0KICAgICAgICAg ICAgZWxzZSB7DQogICAgICAgICAgICAgIGNvbnN0IHIgPSBvID8gT2JqZWN0LmdldE93blBy b3BlcnR5TmFtZXMoZSkgOiBPYmplY3Qua2V5cyhlKSwNCiAgICAgICAgICAgICAgICBhID0g ci5sZW5ndGg7DQogICAgICAgICAgICAgIGxldCBpOw0KICAgICAgICAgICAgICBmb3IgKG4g PSAwOyBuIDwgYTsgbisrKSAoaSA9IHJbbl0pLCB0LmNhbGwobnVsbCwgZVtpXSwgaSwgZSk7 DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRWYoZSwgdCkg ew0KICAgICAgICAgIHQgPSB0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgY29uc3QgbiA9 IE9iamVjdC5rZXlzKGUpOw0KICAgICAgICAgIGxldCByLA0KICAgICAgICAgICAgbyA9IG4u bGVuZ3RoOw0KICAgICAgICAgIGZvciAoOyBvLS0gPiAwOykgaWYgKCgociA9IG5bb10pLCB0 ID09PSByLnRvTG93ZXJDYXNlKCkpKSByZXR1cm4gcjsNCiAgICAgICAgICByZXR1cm4gbnVs bDsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBDZiA9ICJ1bmRlZmluZWQiICE9PSB0eXBl b2YgZ2xvYmFsVGhpcyA/IGdsb2JhbFRoaXMgOiAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIHNl bGYgPyBzZWxmIDogInVuZGVmaW5lZCIgIT09IHR5cGVvZiB3aW5kb3cgPyB3aW5kb3cgOiBn bG9iYWwsDQogICAgICAgICAgUmYgPSAoZSkgPT4gIWRmKGUpICYmIGUgIT09IENmOw0KICAg ICAgICBjb25zdCBfZiA9ICgoUGYgPSAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIFVpbnQ4QXJy YXkgJiYgb2YoVWludDhBcnJheSkpLCAoZSkgPT4gUGYgJiYgZSBpbnN0YW5jZW9mIFBmKTsN CiAgICAgICAgdmFyIFBmOw0KICAgICAgICBjb25zdCBPZiA9IHNmKCJIVE1MRm9ybUVsZW1l bnQiKSwNCiAgICAgICAgICBOZiA9ICgoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgaGFz T3duUHJvcGVydHk6IHQgfSA9IGU7DQogICAgICAgICAgICByZXR1cm4gKGUsIG4pID0+IHQu Y2FsbChlLCBuKTsNCiAgICAgICAgICB9KShPYmplY3QucHJvdG90eXBlKSwNCiAgICAgICAg ICBUZiA9IHNmKCJSZWdFeHAiKSwNCiAgICAgICAgICBBZiA9IChlLCB0KSA9PiB7DQogICAg ICAgICAgICBjb25zdCBuID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZSks DQogICAgICAgICAgICAgIHIgPSB7fTsNCiAgICAgICAgICAgIGtmKG4sIChuLCBvKSA9PiB7 DQogICAgICAgICAgICAgIGxldCBhOw0KICAgICAgICAgICAgICAhMSAhPT0gKGEgPSB0KG4s IG8sIGUpKSAmJiAocltvXSA9IGEgfHwgbik7DQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgcik7DQogICAgICAgICAgfSwNCiAg ICAgICAgICBNZiA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsDQogICAgICAgICAg emYgPSAiMDEyMzQ1Njc4OSIsDQogICAgICAgICAgamYgPSB7IERJR0lUOiB6ZiwgQUxQSEE6 IE1mLCBBTFBIQV9ESUdJVDogTWYgKyBNZi50b1VwcGVyQ2FzZSgpICsgemYgfTsNCiAgICAg ICAgY29uc3QgSWYgPSBzZigiQXN5bmNGdW5jdGlvbiIpLA0KICAgICAgICAgIExmID0gew0K ICAgICAgICAgICAgaXNBcnJheTogY2YsDQogICAgICAgICAgICBpc0FycmF5QnVmZmVyOiBm ZiwNCiAgICAgICAgICAgIGlzQnVmZmVyOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAg ICByZXR1cm4gbnVsbCAhPT0gZSAmJiAhZGYoZSkgJiYgbnVsbCAhPT0gZS5jb25zdHJ1Y3Rv ciAmJiAhZGYoZS5jb25zdHJ1Y3RvcikgJiYgaGYoZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikg JiYgZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKTsNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgICBpc0Zvcm1EYXRhOiAoZSkgPT4gew0KICAgICAgICAgICAgICBsZXQgdDsNCiAgICAg ICAgICAgICAgcmV0dXJuIGUgJiYgKCgiZnVuY3Rpb24iID09PSB0eXBlb2YgRm9ybURhdGEg JiYgZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB8fCAoaGYoZS5hcHBlbmQpICYmICgiZm9ybWRh dGEiID09PSAodCA9IGFmKGUpKSB8fCAoIm9iamVjdCIgPT09IHQgJiYgaGYoZS50b1N0cmlu ZykgJiYgIltvYmplY3QgRm9ybURhdGFdIiA9PT0gZS50b1N0cmluZygpKSkpKTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgICBpc0FycmF5QnVmZmVyVmlldzogZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgICAgbGV0IHQ7DQogICAgICAgICAgICAgIHJldHVybiAodCA9ICJ1 bmRlZmluZWQiICE9PSB0eXBlb2YgQXJyYXlCdWZmZXIgJiYgQXJyYXlCdWZmZXIuaXNWaWV3 ID8gQXJyYXlCdWZmZXIuaXNWaWV3KGUpIDogZSAmJiBlLmJ1ZmZlciAmJiBmZihlLmJ1ZmZl cikpLCB0Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGlzU3RyaW5nOiBwZiwNCiAg ICAgICAgICAgIGlzTnVtYmVyOiBtZiwNCiAgICAgICAgICAgIGlzQm9vbGVhbjogKGUpID0+ ICEwID09PSBlIHx8ICExID09PSBlLA0KICAgICAgICAgICAgaXNPYmplY3Q6IGdmLA0KICAg ICAgICAgICAgaXNQbGFpbk9iamVjdDogdmYsDQogICAgICAgICAgICBpc1VuZGVmaW5lZDog ZGYsDQogICAgICAgICAgICBpc0RhdGU6IHlmLA0KICAgICAgICAgICAgaXNGaWxlOiBiZiwN CiAgICAgICAgICAgIGlzQmxvYjogd2YsDQogICAgICAgICAgICBpc1JlZ0V4cDogVGYsDQog ICAgICAgICAgICBpc0Z1bmN0aW9uOiBoZiwNCiAgICAgICAgICAgIGlzU3RyZWFtOiAoZSkg PT4gZ2YoZSkgJiYgaGYoZS5waXBlKSwNCiAgICAgICAgICAgIGlzVVJMU2VhcmNoUGFyYW1z OiBTZiwNCiAgICAgICAgICAgIGlzVHlwZWRBcnJheTogX2YsDQogICAgICAgICAgICBpc0Zp bGVMaXN0OiB4ZiwNCiAgICAgICAgICAgIGZvckVhY2g6IGtmLA0KICAgICAgICAgICAgbWVy Z2U6IGZ1bmN0aW9uIGUoKSB7DQogICAgICAgICAgICAgIGNvbnN0IHsgY2FzZWxlc3M6IHQg fSA9IChSZih0aGlzKSAmJiB0aGlzKSB8fCB7fSwNCiAgICAgICAgICAgICAgICBuID0ge30s DQogICAgICAgICAgICAgICAgciA9IChyLCBvKSA9PiB7DQogICAgICAgICAgICAgICAgICBj b25zdCBhID0gKHQgJiYgRWYobiwgbykpIHx8IG87DQogICAgICAgICAgICAgICAgICB2Zihu W2FdKSAmJiB2ZihyKSA/IChuW2FdID0gZShuW2FdLCByKSkgOiB2ZihyKSA/IChuW2FdID0g ZSh7fSwgcikpIDogY2YocikgPyAoblthXSA9IHIuc2xpY2UoKSkgOiAoblthXSA9IHIpOw0K ICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgIGZvciAobGV0IG8gPSAwLCBhID0g YXJndW1lbnRzLmxlbmd0aDsgbyA8IGE7IG8rKykgYXJndW1lbnRzW29dICYmIGtmKGFyZ3Vt ZW50c1tvXSwgcik7DQogICAgICAgICAgICAgIHJldHVybiBuOw0KICAgICAgICAgICAgfSwN CiAgICAgICAgICAgIGV4dGVuZDogZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAg ICAgbGV0IHsgYWxsT3duS2V5czogciB9ID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgdm9p ZCAwICE9PSBhcmd1bWVudHNbM10gPyBhcmd1bWVudHNbM10gOiB7fTsNCiAgICAgICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBrZigNCiAgICAgICAgICAgICAgICAgIHQs DQogICAgICAgICAgICAgICAgICAodCwgcikgPT4gew0KICAgICAgICAgICAgICAgICAgICBu ICYmIGhmKHQpID8gKGVbcl0gPSBuZih0LCBuKSkgOiAoZVtyXSA9IHQpOw0KICAgICAgICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIHsgYWxsT3duS2V5czogciB9DQogICAg ICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICBlDQogICAgICAgICAgICAgICk7DQog ICAgICAgICAgICB9LA0KICAgICAgICAgICAgdHJpbTogKGUpID0+IChlLnRyaW0gPyBlLnRy aW0oKSA6IGUucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2cs ICIiKSksDQogICAgICAgICAgICBzdHJpcEJPTTogKGUpID0+ICg2NTI3OSA9PT0gZS5jaGFy Q29kZUF0KDApICYmIChlID0gZS5zbGljZSgxKSksIGUpLA0KICAgICAgICAgICAgaW5oZXJp dHM6IChlLCB0LCBuLCByKSA9PiB7DQogICAgICAgICAgICAgIChlLnByb3RvdHlwZSA9IE9i amVjdC5jcmVhdGUodC5wcm90b3R5cGUsIHIpKSwgKGUucHJvdG90eXBlLmNvbnN0cnVjdG9y ID0gZSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCAic3VwZXIiLCB7IHZhbHVlOiB0LnBy b3RvdHlwZSB9KSwgbiAmJiBPYmplY3QuYXNzaWduKGUucHJvdG90eXBlLCBuKTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgICB0b0ZsYXRPYmplY3Q6IChlLCB0LCBuLCByKSA9PiB7 DQogICAgICAgICAgICAgIGxldCBvLCBhLCBpOw0KICAgICAgICAgICAgICBjb25zdCBsID0g e307DQogICAgICAgICAgICAgIGlmICgoKHQgPSB0IHx8IHt9KSwgbnVsbCA9PSBlKSkgcmV0 dXJuIHQ7DQogICAgICAgICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgICBmb3IgKG8gPSBP YmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKSwgYSA9IG8ubGVuZ3RoOyBhLS0gPiAwOykg KGkgPSBvW2FdKSwgKHIgJiYgIXIoaSwgZSwgdCkpIHx8IGxbaV0gfHwgKCh0W2ldID0gZVtp XSksIChsW2ldID0gITApKTsNCiAgICAgICAgICAgICAgICBlID0gITEgIT09IG4gJiYgb2Yo ZSk7DQogICAgICAgICAgICAgIH0gd2hpbGUgKGUgJiYgKCFuIHx8IG4oZSwgdCkpICYmIGUg IT09IE9iamVjdC5wcm90b3R5cGUpOw0KICAgICAgICAgICAgICByZXR1cm4gdDsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgICBraW5kT2Y6IGFmLA0KICAgICAgICAgICAga2luZE9m VGVzdDogc2YsDQogICAgICAgICAgICBlbmRzV2l0aDogKGUsIHQsIG4pID0+IHsNCiAgICAg ICAgICAgICAgKGUgPSBTdHJpbmcoZSkpLCAodm9pZCAwID09PSBuIHx8IG4gPiBlLmxlbmd0 aCkgJiYgKG4gPSBlLmxlbmd0aCksIChuIC09IHQubGVuZ3RoKTsNCiAgICAgICAgICAgICAg Y29uc3QgciA9IGUuaW5kZXhPZih0LCBuKTsNCiAgICAgICAgICAgICAgcmV0dXJuIC0xICE9 PSByICYmIHIgPT09IG47DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdG9BcnJheTog KGUpID0+IHsNCiAgICAgICAgICAgICAgaWYgKCFlKSByZXR1cm4gbnVsbDsNCiAgICAgICAg ICAgICAgaWYgKGNmKGUpKSByZXR1cm4gZTsNCiAgICAgICAgICAgICAgbGV0IHQgPSBlLmxl bmd0aDsNCiAgICAgICAgICAgICAgaWYgKCFtZih0KSkgcmV0dXJuIG51bGw7DQogICAgICAg ICAgICAgIGNvbnN0IG4gPSBuZXcgQXJyYXkodCk7DQogICAgICAgICAgICAgIGZvciAoOyB0 LS0gPiAwOykgblt0XSA9IGVbdF07DQogICAgICAgICAgICAgIHJldHVybiBuOw0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgIGZvckVhY2hFbnRyeTogKGUsIHQpID0+IHsNCiAgICAg ICAgICAgICAgY29uc3QgbiA9IChlICYmIGVbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChlKTsN CiAgICAgICAgICAgICAgbGV0IHI7DQogICAgICAgICAgICAgIGZvciAoOyAociA9IG4ubmV4 dCgpKSAmJiAhci5kb25lOykgew0KICAgICAgICAgICAgICAgIGNvbnN0IG4gPSByLnZhbHVl Ow0KICAgICAgICAgICAgICAgIHQuY2FsbChlLCBuWzBdLCBuWzFdKTsNCiAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIG1hdGNoQWxsOiAoZSwgdCkgPT4g ew0KICAgICAgICAgICAgICBsZXQgbjsNCiAgICAgICAgICAgICAgY29uc3QgciA9IFtdOw0K ICAgICAgICAgICAgICBmb3IgKDsgbnVsbCAhPT0gKG4gPSBlLmV4ZWModCkpOykgci5wdXNo KG4pOw0KICAgICAgICAgICAgICByZXR1cm4gcjsNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgICBpc0hUTUxGb3JtOiBPZiwNCiAgICAgICAgICAgIGhhc093blByb3BlcnR5OiBOZiwN CiAgICAgICAgICAgIGhhc093blByb3A6IE5mLA0KICAgICAgICAgICAgcmVkdWNlRGVzY3Jp cHRvcnM6IEFmLA0KICAgICAgICAgICAgZnJlZXplTWV0aG9kczogKGUpID0+IHsNCiAgICAg ICAgICAgICAgQWYoZSwgKHQsIG4pID0+IHsNCiAgICAgICAgICAgICAgICBpZiAoaGYoZSkg JiYgLTEgIT09IFsiYXJndW1lbnRzIiwgImNhbGxlciIsICJjYWxsZWUiXS5pbmRleE9mKG4p KSByZXR1cm4gITE7DQogICAgICAgICAgICAgICAgY29uc3QgciA9IGVbbl07DQogICAgICAg ICAgICAgICAgaGYocikgJiYNCiAgICAgICAgICAgICAgICAgICgodC5lbnVtZXJhYmxlID0g ITEpLA0KICAgICAgICAgICAgICAgICAgICAid3JpdGFibGUiIGluIHQNCiAgICAgICAgICAg ICAgICAgICAgICA/ICh0LndyaXRhYmxlID0gITEpDQogICAgICAgICAgICAgICAgICAgICAg OiB0LnNldCB8fA0KICAgICAgICAgICAgICAgICAgICAgICh0LnNldCA9ICgpID0+IHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVh ZC1vbmx5IG1ldGhvZCAnIiArIG4gKyAiJyIpOw0KICAgICAgICAgICAgICAgICAgICAgIH0p KTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdG9P YmplY3RTZXQ6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IG4gPSB7fSwNCiAg ICAgICAgICAgICAgICByID0gKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgIGUuZm9yRWFj aCgoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBuW2VdID0gITA7DQogICAgICAgICAg ICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICByZXR1cm4g Y2YoZSkgPyByKGUpIDogcihTdHJpbmcoZSkuc3BsaXQodCkpLCBuOw0KICAgICAgICAgICAg fSwNCiAgICAgICAgICAgIHRvQ2FtZWxDYXNlOiAoZSkgPT4NCiAgICAgICAgICAgICAgZS50 b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csIGZ1bmN0aW9u IChlLCB0LCBuKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHQudG9VcHBlckNhc2UoKSAr IG47DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgbm9vcDogKCkgPT4geyB9LA0K ICAgICAgICAgICAgdG9GaW5pdGVOdW1iZXI6IChlLCB0KSA9PiAoKGUgPSArZSksIE51bWJl ci5pc0Zpbml0ZShlKSA/IGUgOiB0KSwNCiAgICAgICAgICAgIGZpbmRLZXk6IEVmLA0KICAg ICAgICAgICAgZ2xvYmFsOiBDZiwNCiAgICAgICAgICAgIGlzQ29udGV4dERlZmluZWQ6IFJm LA0KICAgICAgICAgICAgQUxQSEFCRVQ6IGpmLA0KICAgICAgICAgICAgZ2VuZXJhdGVTdHJp bmc6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgbGV0IGUgPSBhcmd1bWVudHMubGVu Z3RoID4gMCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6IDE2 LA0KICAgICAgICAgICAgICAgIHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAg IT09IGFyZ3VtZW50c1sxXSA/IGFyZ3VtZW50c1sxXSA6IGpmLkFMUEhBX0RJR0lULA0KICAg ICAgICAgICAgICAgIG4gPSAiIjsNCiAgICAgICAgICAgICAgY29uc3QgeyBsZW5ndGg6IHIg fSA9IHQ7DQogICAgICAgICAgICAgIGZvciAoOyBlLS07KSBuICs9IHRbKE1hdGgucmFuZG9t KCkgKiByKSB8IDBdOw0KICAgICAgICAgICAgICByZXR1cm4gbjsNCiAgICAgICAgICAgIH0s DQogICAgICAgICAgICBpc1NwZWNDb21wbGlhbnRGb3JtOiBmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgICByZXR1cm4gISEoZSAmJiBoZihlLmFwcGVuZCkgJiYgIkZvcm1EYXRhIiA9 PT0gZVtTeW1ib2wudG9TdHJpbmdUYWddICYmIGVbU3ltYm9sLml0ZXJhdG9yXSk7DQogICAg ICAgICAgICB9LA0KICAgICAgICAgICAgdG9KU09OT2JqZWN0OiAoZSkgPT4gew0KICAgICAg ICAgICAgICBjb25zdCB0ID0gbmV3IEFycmF5KDEwKSwNCiAgICAgICAgICAgICAgICBuID0g KGUsIHIpID0+IHsNCiAgICAgICAgICAgICAgICAgIGlmIChnZihlKSkgew0KICAgICAgICAg ICAgICAgICAgICBpZiAodC5pbmRleE9mKGUpID49IDApIHJldHVybjsNCiAgICAgICAgICAg ICAgICAgICAgaWYgKCEoInRvSlNPTiIgaW4gZSkpIHsNCiAgICAgICAgICAgICAgICAgICAg ICB0W3JdID0gZTsNCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvID0gY2YoZSkgPyBb XSA6IHt9Ow0KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAg ICAgICAgICAgICBrZihlLCAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBhID0gbihlLCByICsgMSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICFk ZihhKSAmJiAob1t0XSA9IGEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAg ICAgICAgICAgICAgICAgICAgICAodFtyXSA9IHZvaWQgMCksDQogICAgICAgICAgICAgICAg ICAgICAgICBvDQogICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7 DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgcmV0dXJuIG4oZSwgMCk7DQog ICAgICAgICAgICB9LA0KICAgICAgICAgICAgaXNBc3luY0ZuOiBJZiwNCiAgICAgICAgICAg IGlzVGhlbmFibGU6IChlKSA9PiBlICYmIChnZihlKSB8fCBoZihlKSkgJiYgaGYoZS50aGVu KSAmJiBoZihlLmNhdGNoKSwNCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBGZihl LCB0LCBuLCByLCBvKSB7DQogICAgICAgICAgRXJyb3IuY2FsbCh0aGlzKSwNCiAgICAgICAg ICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlID8gRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uo dGhpcywgdGhpcy5jb25zdHJ1Y3RvcikgOiAodGhpcy5zdGFjayA9IG5ldyBFcnJvcigpLnN0 YWNrKSwNCiAgICAgICAgICAgICh0aGlzLm1lc3NhZ2UgPSBlKSwNCiAgICAgICAgICAgICh0 aGlzLm5hbWUgPSAiQXhpb3NFcnJvciIpLA0KICAgICAgICAgICAgdCAmJiAodGhpcy5jb2Rl ID0gdCksDQogICAgICAgICAgICBuICYmICh0aGlzLmNvbmZpZyA9IG4pLA0KICAgICAgICAg ICAgciAmJiAodGhpcy5yZXF1ZXN0ID0gciksDQogICAgICAgICAgICBvICYmICh0aGlzLnJl c3BvbnNlID0gbyk7DQogICAgICAgIH0NCiAgICAgICAgTGYuaW5oZXJpdHMoRmYsIEVycm9y LCB7DQogICAgICAgICAgdG9KU09OOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICByZXR1 cm4gew0KICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsDQogICAgICAgICAg ICAgIG5hbWU6IHRoaXMubmFtZSwNCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMu ZGVzY3JpcHRpb24sDQogICAgICAgICAgICAgIG51bWJlcjogdGhpcy5udW1iZXIsDQogICAg ICAgICAgICAgIGZpbGVOYW1lOiB0aGlzLmZpbGVOYW1lLA0KICAgICAgICAgICAgICBsaW5l TnVtYmVyOiB0aGlzLmxpbmVOdW1iZXIsDQogICAgICAgICAgICAgIGNvbHVtbk51bWJlcjog dGhpcy5jb2x1bW5OdW1iZXIsDQogICAgICAgICAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLA0K ICAgICAgICAgICAgICBjb25maWc6IExmLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksDQog ICAgICAgICAgICAgIGNvZGU6IHRoaXMuY29kZSwNCiAgICAgICAgICAgICAgc3RhdHVzOiB0 aGlzLnJlc3BvbnNlICYmIHRoaXMucmVzcG9uc2Uuc3RhdHVzID8gdGhpcy5yZXNwb25zZS5z dGF0dXMgOiBudWxsLA0KICAgICAgICAgICAgfTsNCiAgICAgICAgICB9LA0KICAgICAgICB9 KTsNCiAgICAgICAgY29uc3QgQmYgPSBGZi5wcm90b3R5cGUsDQogICAgICAgICAgRGYgPSB7 fTsNCiAgICAgICAgWw0KICAgICAgICAgICJFUlJfQkFEX09QVElPTl9WQUxVRSIsDQogICAg ICAgICAgIkVSUl9CQURfT1BUSU9OIiwNCiAgICAgICAgICAiRUNPTk5BQk9SVEVEIiwNCiAg ICAgICAgICAiRVRJTUVET1VUIiwNCiAgICAgICAgICAiRVJSX05FVFdPUksiLA0KICAgICAg ICAgICJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwNCiAgICAgICAgICAiRVJSX0RFUFJF Q0FURUQiLA0KICAgICAgICAgICJFUlJfQkFEX1JFU1BPTlNFIiwNCiAgICAgICAgICAiRVJS X0JBRF9SRVFVRVNUIiwNCiAgICAgICAgICAiRVJSX0NBTkNFTEVEIiwNCiAgICAgICAgICAi RVJSX05PVF9TVVBQT1JUIiwNCiAgICAgICAgICAiRVJSX0lOVkFMSURfVVJMIiwNCiAgICAg ICAgXS5mb3JFYWNoKChlKSA9PiB7DQogICAgICAgICAgRGZbZV0gPSB7IHZhbHVlOiBlIH07 DQogICAgICAgIH0pLA0KICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEZmLCBE ZiksDQogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJmLCAiaXNBeGlvc0Vycm9y IiwgeyB2YWx1ZTogITAgfSksDQogICAgICAgICAgKEZmLmZyb20gPSAoZSwgdCwgbiwgciwg bywgYSkgPT4gew0KICAgICAgICAgICAgY29uc3QgaSA9IE9iamVjdC5jcmVhdGUoQmYpOw0K ICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgTGYudG9GbGF0T2JqZWN0KA0K ICAgICAgICAgICAgICAgIGUsDQogICAgICAgICAgICAgICAgaSwNCiAgICAgICAgICAgICAg ICBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgcmV0dXJuIGUgIT09IEVycm9y LnByb3RvdHlwZTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIChlKSA9 PiAiaXNBeGlvc0Vycm9yIiAhPT0gZQ0KICAgICAgICAgICAgICApLA0KICAgICAgICAgICAg ICBGZi5jYWxsKGksIGUubWVzc2FnZSwgdCwgbiwgciwgbyksDQogICAgICAgICAgICAgIChp LmNhdXNlID0gZSksDQogICAgICAgICAgICAgIChpLm5hbWUgPSBlLm5hbWUpLA0KICAgICAg ICAgICAgICBhICYmIE9iamVjdC5hc3NpZ24oaSwgYSksDQogICAgICAgICAgICAgIGkNCiAg ICAgICAgICAgICk7DQogICAgICAgICAgfSk7DQogICAgICAgIGNvbnN0IFVmID0gRmY7DQog ICAgICAgIGZ1bmN0aW9uIFdmKGUpIHsNCiAgICAgICAgICByZXR1cm4gTGYuaXNQbGFpbk9i amVjdChlKSB8fCBMZi5pc0FycmF5KGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IFZmKGUpIHsNCiAgICAgICAgICByZXR1cm4gTGYuZW5kc1dpdGgoZSwgIltdIikgPyBlLnNs aWNlKDAsIC0yKSA6IGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSGYoZSwgdCwg bikgew0KICAgICAgICAgIHJldHVybiBlDQogICAgICAgICAgICA/IGUNCiAgICAgICAgICAg ICAgLmNvbmNhdCh0KQ0KICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChlLCB0KSB7DQog ICAgICAgICAgICAgICAgcmV0dXJuIChlID0gVmYoZSkpLCAhbiAmJiB0ID8gIlsiICsgZSAr ICJdIiA6IGU7DQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgIC5qb2luKG4gPyAi LiIgOiAiIikNCiAgICAgICAgICAgIDogdDsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBx ZiA9IExmLnRvRmxhdE9iamVjdChMZiwge30sIG51bGwsIGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgcmV0dXJuIC9eaXNbQS1aXS8udGVzdChlKTsNCiAgICAgICAgfSk7DQogICAgICAg IGNvbnN0ICRmID0gZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAoIUxmLmlz T2JqZWN0KGUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmpl Y3QiKTsNCiAgICAgICAgICB0ID0gdCB8fCBuZXcgRm9ybURhdGEoKTsNCiAgICAgICAgICBj b25zdCByID0gKG4gPSBMZi50b0ZsYXRPYmplY3QobiwgeyBtZXRhVG9rZW5zOiAhMCwgZG90 czogITEsIGluZGV4ZXM6ICExIH0sICExLCBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAg ICAgcmV0dXJuICFMZi5pc1VuZGVmaW5lZCh0W2VdKTsNCiAgICAgICAgICB9KSkubWV0YVRv a2VucywNCiAgICAgICAgICAgIG8gPSBuLnZpc2l0b3IgfHwgdSwNCiAgICAgICAgICAgIGEg PSBuLmRvdHMsDQogICAgICAgICAgICBpID0gbi5pbmRleGVzLA0KICAgICAgICAgICAgbCA9 IChuLkJsb2IgfHwgKCJ1bmRlZmluZWQiICE9PSB0eXBlb2YgQmxvYiAmJiBCbG9iKSkgJiYg TGYuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTsNCiAgICAgICAgICBpZiAoIUxmLmlzRnVuY3Rp b24obykpIHRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9u Iik7DQogICAgICAgICAgZnVuY3Rpb24gcyhlKSB7DQogICAgICAgICAgICBpZiAobnVsbCA9 PT0gZSkgcmV0dXJuICIiOw0KICAgICAgICAgICAgaWYgKExmLmlzRGF0ZShlKSkgcmV0dXJu IGUudG9JU09TdHJpbmcoKTsNCiAgICAgICAgICAgIGlmICghbCAmJiBMZi5pc0Jsb2IoZSkp IHRocm93IG5ldyBVZigiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5z dGVhZC4iKTsNCiAgICAgICAgICAgIHJldHVybiBMZi5pc0FycmF5QnVmZmVyKGUpIHx8IExm LmlzVHlwZWRBcnJheShlKSA/IChsICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBCbG9iID8g bmV3IEJsb2IoW2VdKSA6IEJ1ZmZlci5mcm9tKGUpKSA6IGU7DQogICAgICAgICAgfQ0KICAg ICAgICAgIGZ1bmN0aW9uIHUoZSwgbiwgbykgew0KICAgICAgICAgICAgbGV0IGwgPSBlOw0K ICAgICAgICAgICAgaWYgKGUgJiYgIW8gJiYgIm9iamVjdCIgPT09IHR5cGVvZiBlKQ0KICAg ICAgICAgICAgICBpZiAoTGYuZW5kc1dpdGgobiwgInt9IikpIChuID0gciA/IG4gOiBuLnNs aWNlKDAsIC0yKSksIChlID0gSlNPTi5zdHJpbmdpZnkoZSkpOw0KICAgICAgICAgICAgICBl bHNlIGlmICgNCiAgICAgICAgICAgICAgICAoTGYuaXNBcnJheShlKSAmJg0KICAgICAgICAg ICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBM Zi5pc0FycmF5KGUpICYmICFlLnNvbWUoV2YpOw0KICAgICAgICAgICAgICAgICAgfSkoZSkp IHx8DQogICAgICAgICAgICAgICAgKChMZi5pc0ZpbGVMaXN0KGUpIHx8IExmLmVuZHNXaXRo KG4sICJbXSIpKSAmJiAobCA9IExmLnRvQXJyYXkoZSkpKQ0KICAgICAgICAgICAgICApDQog ICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgIChuID0gVmYobikp LA0KICAgICAgICAgICAgICAgICAgbC5mb3JFYWNoKGZ1bmN0aW9uIChlLCByKSB7DQogICAg ICAgICAgICAgICAgICAgICFMZi5pc1VuZGVmaW5lZChlKSAmJiBudWxsICE9PSBlICYmIHQu YXBwZW5kKCEwID09PSBpID8gSGYoW25dLCByLCBhKSA6IG51bGwgPT09IGkgPyBuIDogbiAr ICJbXSIsIHMoZSkpOw0KICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAg ICAhMQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICByZXR1cm4gISFXZihlKSB8 fCAodC5hcHBlbmQoSGYobywgbiwgYSksIHMoZSkpLCAhMSk7DQogICAgICAgICAgfQ0KICAg ICAgICAgIGNvbnN0IGMgPSBbXSwNCiAgICAgICAgICAgIGQgPSBPYmplY3QuYXNzaWduKHFm LCB7IGRlZmF1bHRWaXNpdG9yOiB1LCBjb252ZXJ0VmFsdWU6IHMsIGlzVmlzaXRhYmxlOiBX ZiB9KTsNCiAgICAgICAgICBpZiAoIUxmLmlzT2JqZWN0KGUpKSB0aHJvdyBuZXcgVHlwZUVy cm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7DQogICAgICAgICAgcmV0dXJuICgNCiAg ICAgICAgICAgIChmdW5jdGlvbiBlKG4sIHIpIHsNCiAgICAgICAgICAgICAgaWYgKCFMZi5p c1VuZGVmaW5lZChuKSkgew0KICAgICAgICAgICAgICAgIGlmICgtMSAhPT0gYy5pbmRleE9m KG4pKSB0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIgKyBy LmpvaW4oIi4iKSk7DQogICAgICAgICAgICAgICAgYy5wdXNoKG4pLA0KICAgICAgICAgICAg ICAgICAgTGYuZm9yRWFjaChuLCBmdW5jdGlvbiAobiwgYSkgew0KICAgICAgICAgICAgICAg ICAgICAhMCA9PT0gKCEoTGYuaXNVbmRlZmluZWQobikgfHwgbnVsbCA9PT0gbikgJiYgby5j YWxsKHQsIG4sIExmLmlzU3RyaW5nKGEpID8gYS50cmltKCkgOiBhLCByLCBkKSkgJiYgZShu LCByID8gci5jb25jYXQoYSkgOiBbYV0pOw0KICAgICAgICAgICAgICAgICAgfSksDQogICAg ICAgICAgICAgICAgICBjLnBvcCgpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 KShlKSwNCiAgICAgICAgICAgIHQNCiAgICAgICAgICApOw0KICAgICAgICB9Ow0KICAgICAg ICBmdW5jdGlvbiBLZihlKSB7DQogICAgICAgICAgY29uc3QgdCA9IHsgIiEiOiAiJTIxIiwg IiciOiAiJTI3IiwgIigiOiAiJTI4IiwgIikiOiAiJTI5IiwgIn4iOiAiJTdFIiwgIiUyMCI6 ICIrIiwgIiUwMCI6ICJcMCIgfTsNCiAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9u ZW50KGUpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLCBmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgcmV0dXJuIHRbZV07DQogICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gUWYoZSwgdCkgew0KICAgICAgICAgICh0aGlzLl9wYWlycyA9IFtdKSwg ZSAmJiAkZihlLCB0aGlzLCB0KTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBHZiA9IFFm LnByb3RvdHlwZTsNCiAgICAgICAgKEdmLmFwcGVuZCA9IGZ1bmN0aW9uIChlLCB0KSB7DQog ICAgICAgICAgdGhpcy5fcGFpcnMucHVzaChbZSwgdF0pOw0KICAgICAgICB9KSwNCiAgICAg ICAgICAoR2YudG9TdHJpbmcgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgY29uc3Qg dCA9IGUNCiAgICAgICAgICAgICAgPyBmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICAg IHJldHVybiBlLmNhbGwodGhpcywgdCwgS2YpOw0KICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgIDogS2Y7DQogICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFpcnMNCiAgICAgICAg ICAgICAgLm1hcChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB0KGVb MF0pICsgIj0iICsgdChlWzFdKTsNCiAgICAgICAgICAgICAgfSwgIiIpDQogICAgICAgICAg ICAgIC5qb2luKCImIik7DQogICAgICAgICAgfSk7DQogICAgICAgIGNvbnN0IFlmID0gUWY7 DQogICAgICAgIGZ1bmN0aW9uIFhmKGUpIHsNCiAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJ Q29tcG9uZW50KGUpLnJlcGxhY2UoLyUzQS9naSwgIjoiKS5yZXBsYWNlKC8lMjQvZywgIiQi KS5yZXBsYWNlKC8lMkMvZ2ksICIsIikucmVwbGFjZSgvJTIwL2csICIrIikucmVwbGFjZSgv JTVCL2dpLCAiWyIpLnJlcGxhY2UoLyU1RC9naSwgIl0iKTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBaZihlLCB0LCBuKSB7DQogICAgICAgICAgaWYgKCF0KSByZXR1cm4gZTsN CiAgICAgICAgICBjb25zdCByID0gKG4gJiYgbi5lbmNvZGUpIHx8IFhmLA0KICAgICAgICAg ICAgbyA9IG4gJiYgbi5zZXJpYWxpemU7DQogICAgICAgICAgbGV0IGE7DQogICAgICAgICAg aWYgKCgoYSA9IG8gPyBvKHQsIG4pIDogTGYuaXNVUkxTZWFyY2hQYXJhbXModCkgPyB0LnRv U3RyaW5nKCkgOiBuZXcgWWYodCwgbikudG9TdHJpbmcocikpLCBhKSkgew0KICAgICAgICAg ICAgY29uc3QgdCA9IGUuaW5kZXhPZigiIyIpOw0KICAgICAgICAgICAgLTEgIT09IHQgJiYg KGUgPSBlLnNsaWNlKDAsIHQpKSwgKGUgKz0gKC0xID09PSBlLmluZGV4T2YoIj8iKSA/ICI/ IiA6ICImIikgKyBhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIGU7DQogICAg ICAgIH0NCiAgICAgICAgY29uc3QgSmYgPSBjbGFzcyB7DQogICAgICAgICAgY29uc3RydWN0 b3IoKSB7DQogICAgICAgICAgICB0aGlzLmhhbmRsZXJzID0gW107DQogICAgICAgICAgfQ0K ICAgICAgICAgIHVzZShlLCB0LCBuKSB7DQogICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5k bGVycy5wdXNoKHsgZnVsZmlsbGVkOiBlLCByZWplY3RlZDogdCwgc3luY2hyb25vdXM6ICEh biAmJiBuLnN5bmNocm9ub3VzLCBydW5XaGVuOiBuID8gbi5ydW5XaGVuIDogbnVsbCB9KSwg dGhpcy5oYW5kbGVycy5sZW5ndGggLSAxOw0KICAgICAgICAgIH0NCiAgICAgICAgICBlamVj dChlKSB7DQogICAgICAgICAgICB0aGlzLmhhbmRsZXJzW2VdICYmICh0aGlzLmhhbmRsZXJz W2VdID0gbnVsbCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGNsZWFyKCkgew0KICAgICAg ICAgICAgdGhpcy5oYW5kbGVycyAmJiAodGhpcy5oYW5kbGVycyA9IFtdKTsNCiAgICAgICAg ICB9DQogICAgICAgICAgZm9yRWFjaChlKSB7DQogICAgICAgICAgICBMZi5mb3JFYWNoKHRo aXMuaGFuZGxlcnMsIGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgIG51bGwgIT09IHQg JiYgZSh0KTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAg ICAgICAgICBlcCA9IHsgc2lsZW50SlNPTlBhcnNpbmc6ICEwLCBmb3JjZWRKU09OUGFyc2lu ZzogITAsIGNsYXJpZnlUaW1lb3V0RXJyb3I6ICExIH0sDQogICAgICAgICAgdHAgPSB7DQog ICAgICAgICAgICBpc0Jyb3dzZXI6ICEwLA0KICAgICAgICAgICAgY2xhc3NlczogeyBVUkxT ZWFyY2hQYXJhbXM6ICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgVVJMU2VhcmNoUGFyYW1zID8g VVJMU2VhcmNoUGFyYW1zIDogWWYsIEZvcm1EYXRhOiAidW5kZWZpbmVkIiAhPT0gdHlwZW9m IEZvcm1EYXRhID8gRm9ybURhdGEgOiBudWxsLCBCbG9iOiAidW5kZWZpbmVkIiAhPT0gdHlw ZW9mIEJsb2IgPyBCbG9iIDogbnVsbCB9LA0KICAgICAgICAgICAgcHJvdG9jb2xzOiBbImh0 dHAiLCAiaHR0cHMiLCAiZmlsZSIsICJibG9iIiwgInVybCIsICJkYXRhIl0sDQogICAgICAg ICAgfSwNCiAgICAgICAgICBucCA9ICJ1bmRlZmluZWQiICE9PSB0eXBlb2Ygd2luZG93ICYm ICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgZG9jdW1lbnQsDQogICAgICAgICAgcnAgPSAoKG9w ID0gInVuZGVmaW5lZCIgIT09IHR5cGVvZiBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnByb2R1 Y3QpLCBucCAmJiBbIlJlYWN0TmF0aXZlIiwgIk5hdGl2ZVNjcmlwdCIsICJOUyJdLmluZGV4 T2Yob3ApIDwgMCk7DQogICAgICAgIHZhciBvcDsNCiAgICAgICAgY29uc3QgYXAgPSAidW5k ZWZpbmVkIiAhPT0gdHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlICYmIHNlbGYgaW5zdGFuY2Vv ZiBXb3JrZXJHbG9iYWxTY29wZSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2Ygc2VsZi5pbXBv cnRTY3JpcHRzLA0KICAgICAgICAgIGlwID0geyAuLi5lLCAuLi50cCB9Ow0KICAgICAgICBj b25zdCBscCA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgZnVuY3Rpb24gdChlLCBuLCBy LCBvKSB7DQogICAgICAgICAgICBsZXQgYSA9IGVbbysrXTsNCiAgICAgICAgICAgIGNvbnN0 IGkgPSBOdW1iZXIuaXNGaW5pdGUoK2EpLA0KICAgICAgICAgICAgICBsID0gbyA+PSBlLmxl bmd0aDsNCiAgICAgICAgICAgIGlmICgoKGEgPSAhYSAmJiBMZi5pc0FycmF5KHIpID8gci5s ZW5ndGggOiBhKSwgbCkpIHJldHVybiBMZi5oYXNPd25Qcm9wKHIsIGEpID8gKHJbYV0gPSBb clthXSwgbl0pIDogKHJbYV0gPSBuKSwgIWk7DQogICAgICAgICAgICAoclthXSAmJiBMZi5p c09iamVjdChyW2FdKSkgfHwgKHJbYV0gPSBbXSk7DQogICAgICAgICAgICByZXR1cm4gKA0K ICAgICAgICAgICAgICB0KGUsIG4sIHJbYV0sIG8pICYmDQogICAgICAgICAgICAgIExmLmlz QXJyYXkoclthXSkgJiYNCiAgICAgICAgICAgICAgKHJbYV0gPSAoZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgICBjb25zdCB0ID0ge30sDQogICAgICAgICAgICAgICAgICBuID0g T2JqZWN0LmtleXMoZSk7DQogICAgICAgICAgICAgICAgbGV0IHI7DQogICAgICAgICAgICAg ICAgY29uc3QgbyA9IG4ubGVuZ3RoOw0KICAgICAgICAgICAgICAgIGxldCBhOw0KICAgICAg ICAgICAgICAgIGZvciAociA9IDA7IHIgPCBvOyByKyspIChhID0gbltyXSksICh0W2FdID0g ZVthXSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgICAgICAgIH0pKHJb YV0pKSwNCiAgICAgICAgICAgICAgIWkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfQ0K ICAgICAgICAgIGlmIChMZi5pc0Zvcm1EYXRhKGUpICYmIExmLmlzRnVuY3Rpb24oZS5lbnRy aWVzKSkgew0KICAgICAgICAgICAgY29uc3QgbiA9IHt9Ow0KICAgICAgICAgICAgcmV0dXJu ICgNCiAgICAgICAgICAgICAgTGYuZm9yRWFjaEVudHJ5KGUsIChlLCByKSA9PiB7DQogICAg ICAgICAgICAgICAgdCgNCiAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgICAgICAgICByZXR1cm4gTGYubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLCBl KS5tYXAoKGUpID0+ICgiW10iID09PSBlWzBdID8gIiIgOiBlWzFdIHx8IGVbMF0pKTsNCiAg ICAgICAgICAgICAgICAgIH0pKGUpLA0KICAgICAgICAgICAgICAgICAgciwNCiAgICAgICAg ICAgICAgICAgIG4sDQogICAgICAgICAgICAgICAgICAwDQogICAgICAgICAgICAgICAgKTsN CiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIG4NCiAgICAgICAgICAgICk7DQog ICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9Ow0KICAgICAg ICBjb25zdCBzcCA9IHsNCiAgICAgICAgICB0cmFuc2l0aW9uYWw6IGVwLA0KICAgICAgICAg IGFkYXB0ZXI6IFsieGhyIiwgImh0dHAiXSwNCiAgICAgICAgICB0cmFuc2Zvcm1SZXF1ZXN0 OiBbDQogICAgICAgICAgICBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICBjb25z dCBuID0gdC5nZXRDb250ZW50VHlwZSgpIHx8ICIiLA0KICAgICAgICAgICAgICAgIHIgPSBu LmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKSA+IC0xLA0KICAgICAgICAgICAgICAgIG8g PSBMZi5pc09iamVjdChlKTsNCiAgICAgICAgICAgICAgbyAmJiBMZi5pc0hUTUxGb3JtKGUp ICYmIChlID0gbmV3IEZvcm1EYXRhKGUpKTsNCiAgICAgICAgICAgICAgaWYgKExmLmlzRm9y bURhdGEoZSkpIHJldHVybiByICYmIHIgPyBKU09OLnN0cmluZ2lmeShscChlKSkgOiBlOw0K ICAgICAgICAgICAgICBpZiAoTGYuaXNBcnJheUJ1ZmZlcihlKSB8fCBMZi5pc0J1ZmZlcihl KSB8fCBMZi5pc1N0cmVhbShlKSB8fCBMZi5pc0ZpbGUoZSkgfHwgTGYuaXNCbG9iKGUpKSBy ZXR1cm4gZTsNCiAgICAgICAgICAgICAgaWYgKExmLmlzQXJyYXlCdWZmZXJWaWV3KGUpKSBy ZXR1cm4gZS5idWZmZXI7DQogICAgICAgICAgICAgIGlmIChMZi5pc1VSTFNlYXJjaFBhcmFt cyhlKSkgcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0t dXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwgITEpLCBlLnRvU3RyaW5nKCk7DQogICAgICAg ICAgICAgIGxldCBhOw0KICAgICAgICAgICAgICBpZiAobykgew0KICAgICAgICAgICAgICAg IGlmIChuLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpID4g LTEpDQogICAgICAgICAgICAgICAgICByZXR1cm4gKGZ1bmN0aW9uIChlLCB0KSB7DQogICAg ICAgICAgICAgICAgICAgIHJldHVybiAkZigNCiAgICAgICAgICAgICAgICAgICAgICBlLA0K ICAgICAgICAgICAgICAgICAgICAgIG5ldyBpcC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcygp LA0KICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2l0b3I6IGZ1bmN0 aW9uIChlLCB0LCBuLCByKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGlwLmlzTm9kZSAmJiBMZi5pc0J1ZmZlcihlKSA/ICh0aGlzLmFwcGVuZCh0LCBlLnRvU3Ry aW5nKCJiYXNlNjQiKSksICExKSA6IHIuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcywgYXJn dW1lbnRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICB0DQogICAgICAgICAgICAg ICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAg fSkoZSwgdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTsNCiAgICAgICAgICAgICAg ICBpZiAoKGEgPSBMZi5pc0ZpbGVMaXN0KGUpKSB8fCBuLmluZGV4T2YoIm11bHRpcGFydC9m b3JtLWRhdGEiKSA+IC0xKSB7DQogICAgICAgICAgICAgICAgICBjb25zdCB0ID0gdGhpcy5l bnYgJiYgdGhpcy5lbnYuRm9ybURhdGE7DQogICAgICAgICAgICAgICAgICByZXR1cm4gJGYo YSA/IHsgImZpbGVzW10iOiBlIH0gOiBlLCB0ICYmIG5ldyB0KCksIHRoaXMuZm9ybVNlcmlh bGl6ZXIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICByZXR1cm4gbyB8fCByDQogICAgICAgICAgICAgICAgPyAodC5zZXRDb250ZW50VHlw ZSgiYXBwbGljYXRpb24vanNvbiIsICExKSwNCiAgICAgICAgICAgICAgICAgIChmdW5jdGlv biAoZSwgdCwgbikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoTGYuaXNTdHJpbmcoZSkp DQogICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAodCB8fCBKU09OLnBhcnNlKShlKSwgTGYudHJpbShlKTsNCiAgICAgICAgICAg ICAgICAgICAgICB9IGNhdGNoIChyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo IlN5bnRheEVycm9yIiAhPT0gci5uYW1lKSB0aHJvdyByOw0KICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChuIHx8IEpTT04uc3RyaW5naWZ5 KShlKTsNCiAgICAgICAgICAgICAgICAgIH0pKGUpKQ0KICAgICAgICAgICAgICAgIDogZTsN CiAgICAgICAgICAgIH0sDQogICAgICAgICAgXSwNCiAgICAgICAgICB0cmFuc2Zvcm1SZXNw b25zZTogWw0KICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgY29u c3QgdCA9IHRoaXMudHJhbnNpdGlvbmFsIHx8IHNwLnRyYW5zaXRpb25hbCwNCiAgICAgICAg ICAgICAgICBuID0gdCAmJiB0LmZvcmNlZEpTT05QYXJzaW5nLA0KICAgICAgICAgICAgICAg IHIgPSAianNvbiIgPT09IHRoaXMucmVzcG9uc2VUeXBlOw0KICAgICAgICAgICAgICBpZiAo ZSAmJiBMZi5pc1N0cmluZyhlKSAmJiAoKG4gJiYgIXRoaXMucmVzcG9uc2VUeXBlKSB8fCBy KSkgew0KICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAhKHQgJiYgdC5zaWxlbnRKU09OUGFy c2luZykgJiYgcjsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAg cmV0dXJuIEpTT04ucGFyc2UoZSk7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAobykgew0K ICAgICAgICAgICAgICAgICAgaWYgKG4pIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCJT eW50YXhFcnJvciIgPT09IG8ubmFtZSkgdGhyb3cgVWYuZnJvbShvLCBVZi5FUlJfQkFEX1JF U1BPTlNFLCB0aGlzLCBudWxsLCB0aGlzLnJlc3BvbnNlKTsNCiAgICAgICAgICAgICAgICAg ICAgdGhyb3cgbzsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIGU7DQogICAgICAgICAgICB9 LA0KICAgICAgICAgIF0sDQogICAgICAgICAgdGltZW91dDogMCwNCiAgICAgICAgICB4c3Jm Q29va2llTmFtZTogIlhTUkYtVE9LRU4iLA0KICAgICAgICAgIHhzcmZIZWFkZXJOYW1lOiAi WC1YU1JGLVRPS0VOIiwNCiAgICAgICAgICBtYXhDb250ZW50TGVuZ3RoOiAtMSwNCiAgICAg ICAgICBtYXhCb2R5TGVuZ3RoOiAtMSwNCiAgICAgICAgICBlbnY6IHsgRm9ybURhdGE6IGlw LmNsYXNzZXMuRm9ybURhdGEsIEJsb2I6IGlwLmNsYXNzZXMuQmxvYiB9LA0KICAgICAgICAg IHZhbGlkYXRlU3RhdHVzOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUg Pj0gMjAwICYmIGUgPCAzMDA7DQogICAgICAgICAgfSwNCiAgICAgICAgICBoZWFkZXJzOiB7 IGNvbW1vbjogeyBBY2NlcHQ6ICJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoi LCAiQ29udGVudC1UeXBlIjogdm9pZCAwIH0gfSwNCiAgICAgICAgfTsNCiAgICAgICAgTGYu Zm9yRWFjaChbImRlbGV0ZSIsICJnZXQiLCAiaGVhZCIsICJwb3N0IiwgInB1dCIsICJwYXRj aCJdLCAoZSkgPT4gew0KICAgICAgICAgIHNwLmhlYWRlcnNbZV0gPSB7fTsNCiAgICAgICAg fSk7DQogICAgICAgIGNvbnN0IHVwID0gc3AsDQogICAgICAgICAgY3AgPSBMZi50b09iamVj dFNldChbDQogICAgICAgICAgICAiYWdlIiwNCiAgICAgICAgICAgICJhdXRob3JpemF0aW9u IiwNCiAgICAgICAgICAgICJjb250ZW50LWxlbmd0aCIsDQogICAgICAgICAgICAiY29udGVu dC10eXBlIiwNCiAgICAgICAgICAgICJldGFnIiwNCiAgICAgICAgICAgICJleHBpcmVzIiwN CiAgICAgICAgICAgICJmcm9tIiwNCiAgICAgICAgICAgICJob3N0IiwNCiAgICAgICAgICAg ICJpZi1tb2RpZmllZC1zaW5jZSIsDQogICAgICAgICAgICAiaWYtdW5tb2RpZmllZC1zaW5j ZSIsDQogICAgICAgICAgICAibGFzdC1tb2RpZmllZCIsDQogICAgICAgICAgICAibG9jYXRp b24iLA0KICAgICAgICAgICAgIm1heC1mb3J3YXJkcyIsDQogICAgICAgICAgICAicHJveHkt YXV0aG9yaXphdGlvbiIsDQogICAgICAgICAgICAicmVmZXJlciIsDQogICAgICAgICAgICAi cmV0cnktYWZ0ZXIiLA0KICAgICAgICAgICAgInVzZXItYWdlbnQiLA0KICAgICAgICAgIF0p LA0KICAgICAgICAgIGRwID0gU3ltYm9sKCJpbnRlcm5hbHMiKTsNCiAgICAgICAgZnVuY3Rp b24gZnAoZSkgew0KICAgICAgICAgIHJldHVybiBlICYmIFN0cmluZyhlKS50cmltKCkudG9M b3dlckNhc2UoKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBwcChlKSB7DQogICAg ICAgICAgcmV0dXJuICExID09PSBlIHx8IG51bGwgPT0gZSA/IGUgOiBMZi5pc0FycmF5KGUp ID8gZS5tYXAocHApIDogU3RyaW5nKGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IGhwKGUsIHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICByZXR1cm4gTGYuaXNGdW5jdGlvbihy KSA/IHIuY2FsbCh0aGlzLCB0LCBuKSA6IChvICYmICh0ID0gbiksIExmLmlzU3RyaW5nKHQp ID8gKExmLmlzU3RyaW5nKHIpID8gLTEgIT09IHQuaW5kZXhPZihyKSA6IExmLmlzUmVnRXhw KHIpID8gci50ZXN0KHQpIDogdm9pZCAwKSA6IHZvaWQgMCk7DQogICAgICAgIH0NCiAgICAg ICAgY2xhc3MgbXAgew0KICAgICAgICAgIGNvbnN0cnVjdG9yKGUpIHsNCiAgICAgICAgICAg IGUgJiYgdGhpcy5zZXQoZSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHNldChlLCB0LCBu KSB7DQogICAgICAgICAgICBjb25zdCByID0gdGhpczsNCiAgICAgICAgICAgIGZ1bmN0aW9u IG8oZSwgdCwgbikgew0KICAgICAgICAgICAgICBjb25zdCBvID0gZnAodCk7DQogICAgICAg ICAgICAgIGlmICghbykgdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEg bm9uLWVtcHR5IHN0cmluZyIpOw0KICAgICAgICAgICAgICBjb25zdCBhID0gTGYuZmluZEtl eShyLCBvKTsNCiAgICAgICAgICAgICAgKCFhIHx8IHZvaWQgMCA9PT0gclthXSB8fCAhMCA9 PT0gbiB8fCAodm9pZCAwID09PSBuICYmICExICE9PSByW2FdKSkgJiYgKHJbYSB8fCB0XSA9 IHBwKGUpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnN0IGEgPSAoZSwgdCkg PT4gTGYuZm9yRWFjaChlLCAoZSwgbikgPT4gbyhlLCBuLCB0KSk7DQogICAgICAgICAgICBy ZXR1cm4gKA0KICAgICAgICAgICAgICBMZi5pc1BsYWluT2JqZWN0KGUpIHx8IGUgaW5zdGFu Y2VvZiB0aGlzLmNvbnN0cnVjdG9yDQogICAgICAgICAgICAgICAgPyBhKGUsIHQpDQogICAg ICAgICAgICAgICAgOiBMZi5pc1N0cmluZyhlKSAmJiAoZSA9IGUudHJpbSgpKSAmJiAhL15b LV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChlLnRyaW0oKSkNCiAgICAgICAg ICAgICAgICAgID8gYSgNCiAgICAgICAgICAgICAgICAgICAgKChlKSA9PiB7DQogICAgICAg ICAgICAgICAgICAgICAgY29uc3QgdCA9IHt9Ow0KICAgICAgICAgICAgICAgICAgICAgIGxl dCBuLCByLCBvOw0KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAg ICAgICAgICAgICAgICBlICYmDQogICAgICAgICAgICAgICAgICAgICAgICBlLnNwbGl0KCJc biIpLmZvckVhY2goZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg KG8gPSBlLmluZGV4T2YoIjoiKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKG4g PSBlLnN1YnN0cmluZygwLCBvKS50cmltKCkudG9Mb3dlckNhc2UoKSksDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHIgPSBlLnN1YnN0cmluZyhvICsgMSkudHJpbSgpKSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAhbiB8fCAodFtuXSAmJiBjcFtuXSkgfHwgKCJz ZXQtY29va2llIiA9PT0gbiA/ICh0W25dID8gdFtuXS5wdXNoKHIpIDogKHRbbl0gPSBbcl0p KSA6ICh0W25dID0gdFtuXSA/IHRbbl0gKyAiLCAiICsgciA6IHIpKTsNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgdA0KICAgICAgICAg ICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIH0pKGUpLA0KICAgICAgICAg ICAgICAgICAgICB0DQogICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICA6 IG51bGwgIT0gZSAmJiBvKHQsIGUsIG4pLA0KICAgICAgICAgICAgICB0aGlzDQogICAgICAg ICAgICApOw0KICAgICAgICAgIH0NCiAgICAgICAgICBnZXQoZSwgdCkgew0KICAgICAgICAg ICAgaWYgKChlID0gZnAoZSkpKSB7DQogICAgICAgICAgICAgIGNvbnN0IG4gPSBMZi5maW5k S2V5KHRoaXMsIGUpOw0KICAgICAgICAgICAgICBpZiAobikgew0KICAgICAgICAgICAgICAg IGNvbnN0IGUgPSB0aGlzW25dOw0KICAgICAgICAgICAgICAgIGlmICghdCkgcmV0dXJuIGU7 DQogICAgICAgICAgICAgICAgaWYgKCEwID09PSB0KQ0KICAgICAgICAgICAgICAgICAgcmV0 dXJuIChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gT2Jq ZWN0LmNyZWF0ZShudWxsKSwNCiAgICAgICAgICAgICAgICAgICAgICBuID0gLyhbXlxzLDs9 XSspXHMqKD86PVxzKihbXiw7XSspKT8vZzsNCiAgICAgICAgICAgICAgICAgICAgbGV0IHI7 DQogICAgICAgICAgICAgICAgICAgIGZvciAoOyAociA9IG4uZXhlYyhlKSk7KSB0W3JbMV1d ID0gclsyXTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgICAgICAg ICAgICB9KShlKTsNCiAgICAgICAgICAgICAgICBpZiAoTGYuaXNGdW5jdGlvbih0KSkgcmV0 dXJuIHQuY2FsbCh0aGlzLCBlLCBuKTsNCiAgICAgICAgICAgICAgICBpZiAoTGYuaXNSZWdF eHAodCkpIHJldHVybiB0LmV4ZWMoZSk7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5 cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKTsNCiAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgICBo YXMoZSwgdCkgew0KICAgICAgICAgICAgaWYgKChlID0gZnAoZSkpKSB7DQogICAgICAgICAg ICAgIGNvbnN0IG4gPSBMZi5maW5kS2V5KHRoaXMsIGUpOw0KICAgICAgICAgICAgICByZXR1 cm4gISghbiB8fCB2b2lkIDAgPT09IHRoaXNbbl0gfHwgKHQgJiYgIWhwKDAsIHRoaXNbbl0s IG4sIHQpKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gITE7DQogICAg ICAgICAgfQ0KICAgICAgICAgIGRlbGV0ZShlLCB0KSB7DQogICAgICAgICAgICBjb25zdCBu ID0gdGhpczsNCiAgICAgICAgICAgIGxldCByID0gITE7DQogICAgICAgICAgICBmdW5jdGlv biBvKGUpIHsNCiAgICAgICAgICAgICAgaWYgKChlID0gZnAoZSkpKSB7DQogICAgICAgICAg ICAgICAgY29uc3QgbyA9IExmLmZpbmRLZXkobiwgZSk7DQogICAgICAgICAgICAgICAgIW8g fHwgKHQgJiYgIWhwKDAsIG5bb10sIG8sIHQpKSB8fCAoZGVsZXRlIG5bb10sIChyID0gITAp KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJu IExmLmlzQXJyYXkoZSkgPyBlLmZvckVhY2gobykgOiBvKGUpLCByOw0KICAgICAgICAgIH0N CiAgICAgICAgICBjbGVhcihlKSB7DQogICAgICAgICAgICBjb25zdCB0ID0gT2JqZWN0Lmtl eXModGhpcyk7DQogICAgICAgICAgICBsZXQgbiA9IHQubGVuZ3RoLA0KICAgICAgICAgICAg ICByID0gITE7DQogICAgICAgICAgICBmb3IgKDsgbi0tOykgew0KICAgICAgICAgICAgICBj b25zdCBvID0gdFtuXTsNCiAgICAgICAgICAgICAgKGUgJiYgIWhwKDAsIHRoaXNbb10sIG8s IGUsICEwKSkgfHwgKGRlbGV0ZSB0aGlzW29dLCAociA9ICEwKSk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICByZXR1cm4gcjsNCiAgICAgICAgICB9DQogICAgICAgICAgbm9ybWFs aXplKGUpIHsNCiAgICAgICAgICAgIGNvbnN0IHQgPSB0aGlzLA0KICAgICAgICAgICAgICBu ID0ge307DQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICBMZi5mb3JFYWNo KHRoaXMsIChyLCBvKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgYSA9IExmLmZpbmRL ZXkobiwgbyk7DQogICAgICAgICAgICAgICAgaWYgKGEpIHJldHVybiAodFthXSA9IHBwKHIp KSwgdm9pZCBkZWxldGUgdFtvXTsNCiAgICAgICAgICAgICAgICBjb25zdCBpID0gZQ0KICAg ICAgICAgICAgICAgICAgPyAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGUNCiAgICAgICAgICAgICAgICAgICAgICAudHJpbSgpDQogICAgICAgICAgICAg ICAgICAgICAgLnRvTG93ZXJDYXNlKCkNCiAgICAgICAgICAgICAgICAgICAgICAucmVwbGFj ZSgvKFthLXpcZF0pKFx3KikvZywgKGUsIHQsIG4pID0+IHQudG9VcHBlckNhc2UoKSArIG4p Ow0KICAgICAgICAgICAgICAgICAgfSkobykNCiAgICAgICAgICAgICAgICAgIDogU3RyaW5n KG8pLnRyaW0oKTsNCiAgICAgICAgICAgICAgICBpICE9PSBvICYmIGRlbGV0ZSB0W29dLCAo dFtpXSA9IHBwKHIpKSwgKG5baV0gPSAhMCk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICB0aGlzDQogICAgICAgICAgICApOw0KICAgICAgICAgIH0NCiAgICAgICAgICBj b25jYXQoKSB7DQogICAgICAgICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRzLmxlbmd0aCwg dCA9IG5ldyBBcnJheShlKSwgbiA9IDA7IG4gPCBlOyBuKyspIHRbbl0gPSBhcmd1bWVudHNb bl07DQogICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywg Li4udCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHRvSlNPTihlKSB7DQogICAgICAgICAg ICBjb25zdCB0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTsNCiAgICAgICAgICAgIHJldHVybiAo DQogICAgICAgICAgICAgIExmLmZvckVhY2godGhpcywgKG4sIHIpID0+IHsNCiAgICAgICAg ICAgICAgICBudWxsICE9IG4gJiYgITEgIT09IG4gJiYgKHRbcl0gPSBlICYmIExmLmlzQXJy YXkobikgPyBuLmpvaW4oIiwgIikgOiBuKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgIHQNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfQ0KICAgICAgICAgIFtTeW1i b2wuaXRlcmF0b3JdKCkgew0KICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRo aXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKTsNCiAgICAgICAgICB9DQogICAgICAg ICAgdG9TdHJpbmcoKSB7DQogICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhp cy50b0pTT04oKSkNCiAgICAgICAgICAgICAgLm1hcCgoZSkgPT4gew0KICAgICAgICAgICAg ICAgIGxldCBbdCwgbl0gPSBlOw0KICAgICAgICAgICAgICAgIHJldHVybiB0ICsgIjogIiAr IG47DQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgIC5qb2luKCJcbiIpOw0KICAg ICAgICAgIH0NCiAgICAgICAgICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7DQogICAg ICAgICAgICByZXR1cm4gIkF4aW9zSGVhZGVycyI7DQogICAgICAgICAgfQ0KICAgICAgICAg IHN0YXRpYyBmcm9tKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgdGhp cyA/IGUgOiBuZXcgdGhpcyhlKTsNCiAgICAgICAgICB9DQogICAgICAgICAgc3RhdGljIGNv bmNhdChlKSB7DQogICAgICAgICAgICBjb25zdCB0ID0gbmV3IHRoaXMoZSk7DQogICAgICAg ICAgICBmb3IgKHZhciBuID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IG5ldyBBcnJheShuID4g MSA/IG4gLSAxIDogMCksIG8gPSAxOyBvIDwgbjsgbysrKSByW28gLSAxXSA9IGFyZ3VtZW50 c1tvXTsNCiAgICAgICAgICAgIHJldHVybiByLmZvckVhY2goKGUpID0+IHQuc2V0KGUpKSwg dDsNCiAgICAgICAgICB9DQogICAgICAgICAgc3RhdGljIGFjY2Vzc29yKGUpIHsNCiAgICAg ICAgICAgIGNvbnN0IHQgPSAodGhpc1tkcF0gPSB0aGlzW2RwXSA9IHsgYWNjZXNzb3JzOiB7 fSB9KS5hY2Nlc3NvcnMsDQogICAgICAgICAgICAgIG4gPSB0aGlzLnByb3RvdHlwZTsNCiAg ICAgICAgICAgIGZ1bmN0aW9uIHIoZSkgew0KICAgICAgICAgICAgICBjb25zdCByID0gZnAo ZSk7DQogICAgICAgICAgICAgIHRbcl0gfHwNCiAgICAgICAgICAgICAgICAoIShmdW5jdGlv biAoZSwgdCkgew0KICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IExmLnRvQ2FtZWxDYXNl KCIgIiArIHQpOw0KICAgICAgICAgICAgICAgICAgWyJnZXQiLCAic2V0IiwgImhhcyJdLmZv ckVhY2goKHIpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3Bl cnR5KGUsIHIgKyBuLCB7DQogICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9u IChlLCBuLCBvKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1tyXS5j YWxsKHRoaXMsIHQsIGUsIG4sIG8pOw0KICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAg ICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMCwNCiAgICAgICAgICAgICAgICAg ICAgfSk7DQogICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KShuLCBl KSwNCiAgICAgICAgICAgICAgICAgICh0W3JdID0gITApKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIHJldHVybiBMZi5pc0FycmF5KGUpID8gZS5mb3JFYWNoKHIpIDogcihlKSwg dGhpczsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbXAuYWNjZXNzb3IoWyJD b250ZW50LVR5cGUiLCAiQ29udGVudC1MZW5ndGgiLCAiQWNjZXB0IiwgIkFjY2VwdC1FbmNv ZGluZyIsICJVc2VyLUFnZW50IiwgIkF1dGhvcml6YXRpb24iXSksDQogICAgICAgICAgTGYu cmVkdWNlRGVzY3JpcHRvcnMobXAucHJvdG90eXBlLCAoZSwgdCkgPT4gew0KICAgICAgICAg ICAgbGV0IHsgdmFsdWU6IG4gfSA9IGUsDQogICAgICAgICAgICAgIHIgPSB0WzBdLnRvVXBw ZXJDYXNlKCkgKyB0LnNsaWNlKDEpOw0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAg ICAgICAgZ2V0OiAoKSA9PiBuLA0KICAgICAgICAgICAgICBzZXQoZSkgew0KICAgICAgICAg ICAgICAgIHRoaXNbcl0gPSBlOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgfTsN CiAgICAgICAgICB9KSwNCiAgICAgICAgICBMZi5mcmVlemVNZXRob2RzKG1wKTsNCiAgICAg ICAgY29uc3QgZ3AgPSBtcDsNCiAgICAgICAgZnVuY3Rpb24gdnAoZSwgdCkgew0KICAgICAg ICAgIGNvbnN0IG4gPSB0aGlzIHx8IHVwLA0KICAgICAgICAgICAgciA9IHQgfHwgbiwNCiAg ICAgICAgICAgIG8gPSBncC5mcm9tKHIuaGVhZGVycyk7DQogICAgICAgICAgbGV0IGEgPSBy LmRhdGE7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIExmLmZvckVhY2goZSwg ZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgYSA9IGUuY2FsbChuLCBhLCBvLm5vcm1h bGl6ZSgpLCB0ID8gdC5zdGF0dXMgOiB2b2lkIDApOw0KICAgICAgICAgICAgfSksDQogICAg ICAgICAgICBvLm5vcm1hbGl6ZSgpLA0KICAgICAgICAgICAgYQ0KICAgICAgICAgICk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24geXAoZSkgew0KICAgICAgICAgIHJldHVybiAh KCFlIHx8ICFlLl9fQ0FOQ0VMX18pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGJw KGUsIHQsIG4pIHsNCiAgICAgICAgICBVZi5jYWxsKHRoaXMsIG51bGwgPT0gZSA/ICJjYW5j ZWxlZCIgOiBlLCBVZi5FUlJfQ0FOQ0VMRUQsIHQsIG4pLCAodGhpcy5uYW1lID0gIkNhbmNl bGVkRXJyb3IiKTsNCiAgICAgICAgfQ0KICAgICAgICBMZi5pbmhlcml0cyhicCwgVWYsIHsg X19DQU5DRUxfXzogITAgfSk7DQogICAgICAgIGNvbnN0IHdwID0gYnA7DQogICAgICAgIGNv bnN0IHhwID0gaXAuaGFzU3RhbmRhcmRCcm93c2VyRW52DQogICAgICAgICAgPyB7DQogICAg ICAgICAgICB3cml0ZTogZnVuY3Rpb24gKGUsIHQsIG4sIHIsIG8sIGEpIHsNCiAgICAgICAg ICAgICAgY29uc3QgaSA9IFtdOw0KICAgICAgICAgICAgICBpLnB1c2goZSArICI9IiArIGVu Y29kZVVSSUNvbXBvbmVudCh0KSksDQogICAgICAgICAgICAgICAgTGYuaXNOdW1iZXIobikg JiYgaS5wdXNoKCJleHBpcmVzPSIgKyBuZXcgRGF0ZShuKS50b0dNVFN0cmluZygpKSwNCiAg ICAgICAgICAgICAgICBMZi5pc1N0cmluZyhyKSAmJiBpLnB1c2goInBhdGg9IiArIHIpLA0K ICAgICAgICAgICAgICAgIExmLmlzU3RyaW5nKG8pICYmIGkucHVzaCgiZG9tYWluPSIgKyBv KSwNCiAgICAgICAgICAgICAgICAhMCA9PT0gYSAmJiBpLnB1c2goInNlY3VyZSIpLA0KICAg ICAgICAgICAgICAgIChkb2N1bWVudC5jb29raWUgPSBpLmpvaW4oIjsgIikpOw0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAg ICAgIGNvbnN0IHQgPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xc cyopKCIgKyBlICsgIik9KFteO10qKSIpKTsNCiAgICAgICAgICAgICAgcmV0dXJuIHQgPyBk ZWNvZGVVUklDb21wb25lbnQodFszXSkgOiBudWxsOw0KICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgIHJlbW92ZTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgdGhpcy53cml0 ZShlLCAiIiwgRGF0ZS5ub3coKSAtIDg2NGU1KTsNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgfQ0KICAgICAgICAgIDogew0KICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uICgpIHsg fSwNCiAgICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgcmV0 dXJuIG51bGw7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgcmVtb3ZlOiBmdW5jdGlv biAoKSB7IH0sDQogICAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gU3AoZSwgdCkgew0K ICAgICAgICAgIHJldHVybiBlICYmICEvXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50 ZXN0KHQpDQogICAgICAgICAgICA/IChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAg ICByZXR1cm4gdCA/IGUucmVwbGFjZSgvXC8rJC8sICIiKSArICIvIiArIHQucmVwbGFjZSgv XlwvKy8sICIiKSA6IGU7DQogICAgICAgICAgICB9KShlLCB0KQ0KICAgICAgICAgICAgOiB0 Ow0KICAgICAgICB9DQogICAgICAgIGNvbnN0IGtwID0gaXAuaGFzU3RhbmRhcmRCcm93c2Vy RW52DQogICAgICAgICAgPyAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgY29uc3QgZSA9 IC8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksDQogICAgICAg ICAgICAgIHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7DQogICAgICAgICAgICBs ZXQgbjsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHIobikgew0KICAgICAgICAgICAgICBsZXQg ciA9IG47DQogICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgZSAmJiAo dC5zZXRBdHRyaWJ1dGUoImhyZWYiLCByKSwgKHIgPSB0LmhyZWYpKSwNCiAgICAgICAgICAg ICAgICB0LnNldEF0dHJpYnV0ZSgiaHJlZiIsIHIpLA0KICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgIGhyZWY6IHQuaHJlZiwNCiAgICAgICAgICAgICAgICAgIHByb3Rv Y29sOiB0LnByb3RvY29sID8gdC5wcm90b2NvbC5yZXBsYWNlKC86JC8sICIiKSA6ICIiLA0K ICAgICAgICAgICAgICAgICAgaG9zdDogdC5ob3N0LA0KICAgICAgICAgICAgICAgICAgc2Vh cmNoOiB0LnNlYXJjaCA/IHQuc2VhcmNoLnJlcGxhY2UoL15cPy8sICIiKSA6ICIiLA0KICAg ICAgICAgICAgICAgICAgaGFzaDogdC5oYXNoID8gdC5oYXNoLnJlcGxhY2UoL14jLywgIiIp IDogIiIsDQogICAgICAgICAgICAgICAgICBob3N0bmFtZTogdC5ob3N0bmFtZSwNCiAgICAg ICAgICAgICAgICAgIHBvcnQ6IHQucG9ydCwNCiAgICAgICAgICAgICAgICAgIHBhdGhuYW1l OiAiLyIgPT09IHQucGF0aG5hbWUuY2hhckF0KDApID8gdC5wYXRobmFtZSA6ICIvIiArIHQu cGF0aG5hbWUsDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICApOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgKG4gPSByKHdp bmRvdy5sb2NhdGlvbi5ocmVmKSksDQogICAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7DQog ICAgICAgICAgICAgICAgY29uc3QgdCA9IExmLmlzU3RyaW5nKGUpID8gcihlKSA6IGU7DQog ICAgICAgICAgICAgICAgcmV0dXJuIHQucHJvdG9jb2wgPT09IG4ucHJvdG9jb2wgJiYgdC5o b3N0ID09PSBuLmhvc3Q7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICk7DQogICAg ICAgICAgfSkoKQ0KICAgICAgICAgIDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgcmV0 dXJuICEwOw0KICAgICAgICAgIH07DQogICAgICAgIGNvbnN0IEVwID0gZnVuY3Rpb24gKGUs IHQpIHsNCiAgICAgICAgICBlID0gZSB8fCAxMDsNCiAgICAgICAgICBjb25zdCBuID0gbmV3 IEFycmF5KGUpLA0KICAgICAgICAgICAgciA9IG5ldyBBcnJheShlKTsNCiAgICAgICAgICBs ZXQgbywNCiAgICAgICAgICAgIGEgPSAwLA0KICAgICAgICAgICAgaSA9IDA7DQogICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICh0ID0gdm9pZCAwICE9PSB0ID8gdCA6IDFlMyks DQogICAgICAgICAgICBmdW5jdGlvbiAobCkgew0KICAgICAgICAgICAgICBjb25zdCBzID0g RGF0ZS5ub3coKSwNCiAgICAgICAgICAgICAgICB1ID0gcltpXTsNCiAgICAgICAgICAgICAg byB8fCAobyA9IHMpLCAoblthXSA9IGwpLCAoclthXSA9IHMpOw0KICAgICAgICAgICAgICBs ZXQgYyA9IGksDQogICAgICAgICAgICAgICAgZCA9IDA7DQogICAgICAgICAgICAgIGZvciAo OyBjICE9PSBhOykgKGQgKz0gbltjKytdKSwgKGMgJT0gZSk7DQogICAgICAgICAgICAgIGlm ICgoKGEgPSAoYSArIDEpICUgZSksIGEgPT09IGkgJiYgKGkgPSAoaSArIDEpICUgZSksIHMg LSBvIDwgdCkpIHJldHVybjsNCiAgICAgICAgICAgICAgY29uc3QgZiA9IHUgJiYgcyAtIHU7 DQogICAgICAgICAgICAgIHJldHVybiBmID8gTWF0aC5yb3VuZCgoMWUzICogZCkgLyBmKSA6 IHZvaWQgMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICApOw0KICAgICAgICB9Ow0KICAg ICAgICBmdW5jdGlvbiBDcChlLCB0KSB7DQogICAgICAgICAgbGV0IG4gPSAwOw0KICAgICAg ICAgIGNvbnN0IHIgPSBFcCg1MCwgMjUwKTsNCiAgICAgICAgICByZXR1cm4gKG8pID0+IHsN CiAgICAgICAgICAgIGNvbnN0IGEgPSBvLmxvYWRlZCwNCiAgICAgICAgICAgICAgaSA9IG8u bGVuZ3RoQ29tcHV0YWJsZSA/IG8udG90YWwgOiB2b2lkIDAsDQogICAgICAgICAgICAgIGwg PSBhIC0gbiwNCiAgICAgICAgICAgICAgcyA9IHIobCk7DQogICAgICAgICAgICBuID0gYTsN CiAgICAgICAgICAgIGNvbnN0IHUgPSB7IGxvYWRlZDogYSwgdG90YWw6IGksIHByb2dyZXNz OiBpID8gYSAvIGkgOiB2b2lkIDAsIGJ5dGVzOiBsLCByYXRlOiBzIHx8IHZvaWQgMCwgZXN0 aW1hdGVkOiBzICYmIGkgJiYgYSA8PSBpID8gKGkgLSBhKSAvIHMgOiB2b2lkIDAsIGV2ZW50 OiBvIH07DQogICAgICAgICAgICAodVt0ID8gImRvd25sb2FkIiA6ICJ1cGxvYWQiXSA9ICEw KSwgZSh1KTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGNvbnN0IFJwID0N CiAgICAgICAgICAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICYmDQog ICAgICAgICAgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlz ZShmdW5jdGlvbiAodCwgbikgew0KICAgICAgICAgICAgICBsZXQgciA9IGUuZGF0YTsNCiAg ICAgICAgICAgICAgY29uc3QgbyA9IGdwLmZyb20oZS5oZWFkZXJzKS5ub3JtYWxpemUoKSwN CiAgICAgICAgICAgICAgICBhID0gZS5yZXNwb25zZVR5cGU7DQogICAgICAgICAgICAgIGxl dCBpLCBsOw0KICAgICAgICAgICAgICBmdW5jdGlvbiBzKCkgew0KICAgICAgICAgICAgICAg IGUuY2FuY2VsVG9rZW4gJiYgZS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShpKSwgZS5zaWdu YWwgJiYgZS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCBpKTsNCiAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICBpZiAoTGYuaXNGb3JtRGF0YShyKSkNCiAgICAg ICAgICAgICAgICBpZiAoaXAuaGFzU3RhbmRhcmRCcm93c2VyRW52IHx8IGlwLmhhc1N0YW5k YXJkQnJvd3NlcldlYldvcmtlckVudikgby5zZXRDb250ZW50VHlwZSghMSk7DQogICAgICAg ICAgICAgICAgZWxzZSBpZiAoITEgIT09IChsID0gby5nZXRDb250ZW50VHlwZSgpKSkgew0K ICAgICAgICAgICAgICAgICAgY29uc3QgW2UsIC4uLnRdID0gbA0KICAgICAgICAgICAgICAg ICAgICA/IGwNCiAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoIjsiKQ0KICAgICAgICAg ICAgICAgICAgICAgIC5tYXAoKGUpID0+IGUudHJpbSgpKQ0KICAgICAgICAgICAgICAgICAg ICAgIC5maWx0ZXIoQm9vbGVhbikNCiAgICAgICAgICAgICAgICAgICAgOiBbXTsNCiAgICAg ICAgICAgICAgICAgIG8uc2V0Q29udGVudFR5cGUoW2UgfHwgIm11bHRpcGFydC9mb3JtLWRh dGEiLCAuLi50XS5qb2luKCI7ICIpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgIGxldCB1ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7DQogICAgICAgICAgICAgIGlmIChl LmF1dGgpIHsNCiAgICAgICAgICAgICAgICBjb25zdCB0ID0gZS5hdXRoLnVzZXJuYW1lIHx8 ICIiLA0KICAgICAgICAgICAgICAgICAgbiA9IGUuYXV0aC5wYXNzd29yZCA/IHVuZXNjYXBl KGVuY29kZVVSSUNvbXBvbmVudChlLmF1dGgucGFzc3dvcmQpKSA6ICIiOw0KICAgICAgICAg ICAgICAgIG8uc2V0KCJBdXRob3JpemF0aW9uIiwgIkJhc2ljICIgKyBidG9hKHQgKyAiOiIg KyBuKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgY29uc3QgYyA9IFNwKGUu YmFzZVVSTCwgZS51cmwpOw0KICAgICAgICAgICAgICBmdW5jdGlvbiBkKCkgew0KICAgICAg ICAgICAgICAgIGlmICghdSkgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBn cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiIGluIHUgJiYgdS5nZXRBbGxSZXNwb25z ZUhlYWRlcnMoKSk7DQogICAgICAgICAgICAgICAgIShmdW5jdGlvbiAoZSwgdCwgbikgew0K ICAgICAgICAgICAgICAgICAgY29uc3QgciA9IG4uY29uZmlnLnZhbGlkYXRlU3RhdHVzOw0K ICAgICAgICAgICAgICAgICAgbi5zdGF0dXMgJiYgciAmJiAhcihuLnN0YXR1cykgPyB0KG5l dyBVZigiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiICsgbi5zdGF0dXMsIFtV Zi5FUlJfQkFEX1JFUVVFU1QsIFVmLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3Iobi5z dGF0dXMgLyAxMDApIC0gNF0sIG4uY29uZmlnLCBuLnJlcXVlc3QsIG4pKSA6IGUobik7DQog ICAgICAgICAgICAgICAgfSkoDQogICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZSkgew0K ICAgICAgICAgICAgICAgICAgICB0KGUpLCBzKCk7DQogICAgICAgICAgICAgICAgICB9LA0K ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAg bihlKSwgcygpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIHsg ZGF0YTogYSAmJiAidGV4dCIgIT09IGEgJiYgImpzb24iICE9PSBhID8gdS5yZXNwb25zZSA6 IHUucmVzcG9uc2VUZXh0LCBzdGF0dXM6IHUuc3RhdHVzLCBzdGF0dXNUZXh0OiB1LnN0YXR1 c1RleHQsIGhlYWRlcnM6IHIsIGNvbmZpZzogZSwgcmVxdWVzdDogdSB9DQogICAgICAgICAg ICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICh1ID0gbnVsbCk7DQogICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICh1Lm9wZW4oZS5tZXRo b2QudG9VcHBlckNhc2UoKSwgWmYoYywgZS5wYXJhbXMsIGUucGFyYW1zU2VyaWFsaXplciks ICEwKSwNCiAgICAgICAgICAgICAgICAgICh1LnRpbWVvdXQgPSBlLnRpbWVvdXQpLA0KICAg ICAgICAgICAgICAgICAgIm9ubG9hZGVuZCIgaW4gdQ0KICAgICAgICAgICAgICAgICAgICA/ ICh1Lm9ubG9hZGVuZCA9IGQpDQogICAgICAgICAgICAgICAgICAgIDogKHUub25yZWFkeXN0 YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgIHUgJiYg NCA9PT0gdS5yZWFkeVN0YXRlICYmICgwICE9PSB1LnN0YXR1cyB8fCAodS5yZXNwb25zZVVS TCAmJiAwID09PSB1LnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpKSAmJiBzZXRUaW1l b3V0KGQpOw0KICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICh1 Lm9uYWJvcnQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHUgJiYgKG4o bmV3IFVmKCJSZXF1ZXN0IGFib3J0ZWQiLCBVZi5FQ09OTkFCT1JURUQsIGUsIHUpKSwgKHUg PSBudWxsKSk7DQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICh1 Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIG4obmV3IFVm KCJOZXR3b3JrIEVycm9yIiwgVWYuRVJSX05FVFdPUkssIGUsIHUpKSwgKHUgPSBudWxsKTsN CiAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgKHUub250aW1lb3V0 ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IGUudGltZW91 dCA/ICJ0aW1lb3V0IG9mICIgKyBlLnRpbWVvdXQgKyAibXMgZXhjZWVkZWQiIDogInRpbWVv dXQgZXhjZWVkZWQiOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCByID0gZS50cmFuc2l0 aW9uYWwgfHwgZXA7DQogICAgICAgICAgICAgICAgICAgIGUudGltZW91dEVycm9yTWVzc2Fn ZSAmJiAodCA9IGUudGltZW91dEVycm9yTWVzc2FnZSksIG4obmV3IFVmKHQsIHIuY2xhcmlm eVRpbWVvdXRFcnJvciA/IFVmLkVUSU1FRE9VVCA6IFVmLkVDT05OQUJPUlRFRCwgZSwgdSkp LCAodSA9IG51bGwpOw0KICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAg ICBpcC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYpDQogICAgICAgICAgICAgICkgew0KICAgICAg ICAgICAgICAgIGNvbnN0IHQgPSBrcChjKSAmJiBlLnhzcmZDb29raWVOYW1lICYmIHhwLnJl YWQoZS54c3JmQ29va2llTmFtZSk7DQogICAgICAgICAgICAgICAgdCAmJiBvLnNldChlLnhz cmZIZWFkZXJOYW1lLCB0KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB2b2lk IDAgPT09IHIgJiYgby5zZXRDb250ZW50VHlwZShudWxsKSwNCiAgICAgICAgICAgICAgICAi c2V0UmVxdWVzdEhlYWRlciIgaW4gdSAmJg0KICAgICAgICAgICAgICAgIExmLmZvckVhY2go by50b0pTT04oKSwgZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgICAgIHUuc2V0 UmVxdWVzdEhlYWRlcih0LCBlKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICBMZi5pc1VuZGVmaW5lZChlLndpdGhDcmVkZW50aWFscykgfHwgKHUud2l0aENyZWRl bnRpYWxzID0gISFlLndpdGhDcmVkZW50aWFscyksDQogICAgICAgICAgICAgICAgYSAmJiAi anNvbiIgIT09IGEgJiYgKHUucmVzcG9uc2VUeXBlID0gZS5yZXNwb25zZVR5cGUpLA0KICAg ICAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlLm9uRG93bmxvYWRQcm9ncmVz cyAmJiB1LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIiwgQ3AoZS5vbkRvd25sb2FkUHJv Z3Jlc3MsICEwKSksDQogICAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGUu b25VcGxvYWRQcm9ncmVzcyAmJiB1LnVwbG9hZCAmJiB1LnVwbG9hZC5hZGRFdmVudExpc3Rl bmVyKCJwcm9ncmVzcyIsIENwKGUub25VcGxvYWRQcm9ncmVzcykpLA0KICAgICAgICAgICAg ICAgIChlLmNhbmNlbFRva2VuIHx8IGUuc2lnbmFsKSAmJg0KICAgICAgICAgICAgICAgICgo aSA9ICh0KSA9PiB7DQogICAgICAgICAgICAgICAgICB1ICYmIChuKCF0IHx8IHQudHlwZSA/ IG5ldyB3cChudWxsLCBlLCB1KSA6IHQpLCB1LmFib3J0KCksICh1ID0gbnVsbCkpOw0KICAg ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgZS5jYW5jZWxUb2tlbiAmJiBl LmNhbmNlbFRva2VuLnN1YnNjcmliZShpKSwNCiAgICAgICAgICAgICAgICAgIGUuc2lnbmFs ICYmIChlLnNpZ25hbC5hYm9ydGVkID8gaSgpIDogZS5zaWduYWwuYWRkRXZlbnRMaXN0ZW5l cigiYWJvcnQiLCBpKSkpOw0KICAgICAgICAgICAgICBjb25zdCBmID0gKGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IC9eKFstK1x3XXsxLDI1fSkoOj9cL1wv fDopLy5leGVjKGUpOw0KICAgICAgICAgICAgICAgIHJldHVybiAodCAmJiB0WzFdKSB8fCAi IjsNCiAgICAgICAgICAgICAgfSkoYyk7DQogICAgICAgICAgICAgIGYgJiYgLTEgPT09IGlw LnByb3RvY29scy5pbmRleE9mKGYpID8gbihuZXcgVWYoIlVuc3VwcG9ydGVkIHByb3RvY29s ICIgKyBmICsgIjoiLCBVZi5FUlJfQkFEX1JFUVVFU1QsIGUpKSA6IHUuc2VuZChyIHx8IG51 bGwpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfSwNCiAgICAgICAgICBfcCA9IHsg aHR0cDogbnVsbCwgeGhyOiBScCB9Ow0KICAgICAgICBMZi5mb3JFYWNoKF9wLCAoZSwgdCkg PT4gew0KICAgICAgICAgIGlmIChlKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgIm5hbWUiLCB7IHZhbHVlOiB0IH0pOw0K ICAgICAgICAgICAgfSBjYXRjaCAobikgeyB9DQogICAgICAgICAgICBPYmplY3QuZGVmaW5l UHJvcGVydHkoZSwgImFkYXB0ZXJOYW1lIiwgeyB2YWx1ZTogdCB9KTsNCiAgICAgICAgICB9 DQogICAgICAgIH0pOw0KICAgICAgICBjb25zdCBQcCA9IChlKSA9PiAiLSAiLmNvbmNhdChl KSwNCiAgICAgICAgICBPcCA9IChlKSA9PiBMZi5pc0Z1bmN0aW9uKGUpIHx8IG51bGwgPT09 IGUgfHwgITEgPT09IGUsDQogICAgICAgICAgTnAgPSAoZSkgPT4gew0KICAgICAgICAgICAg ZSA9IExmLmlzQXJyYXkoZSkgPyBlIDogW2VdOw0KICAgICAgICAgICAgY29uc3QgeyBsZW5n dGg6IHQgfSA9IGU7DQogICAgICAgICAgICBsZXQgbiwgcjsNCiAgICAgICAgICAgIGNvbnN0 IG8gPSB7fTsNCiAgICAgICAgICAgIGZvciAobGV0IGEgPSAwOyBhIDwgdDsgYSsrKSB7DQog ICAgICAgICAgICAgIGxldCB0Ow0KICAgICAgICAgICAgICBpZiAoKChuID0gZVthXSksIChy ID0gbiksICFPcChuKSAmJiAoKHIgPSBfcFsodCA9IFN0cmluZyhuKSkudG9Mb3dlckNhc2Uo KV0pLCB2b2lkIDAgPT09IHIpKSkgdGhyb3cgbmV3IFVmKCJVbmtub3duIGFkYXB0ZXIgJyIu Y29uY2F0KHQsICInIikpOw0KICAgICAgICAgICAgICBpZiAocikgYnJlYWs7DQogICAgICAg ICAgICAgIG9bdCB8fCAiIyIgKyBhXSA9IHI7DQogICAgICAgICAgICB9DQogICAgICAgICAg ICBpZiAoIXIpIHsNCiAgICAgICAgICAgICAgY29uc3QgZSA9IE9iamVjdC5lbnRyaWVzKG8p Lm1hcCgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGxldCBbdCwgbl0gPSBlOw0KICAgICAg ICAgICAgICAgIHJldHVybiAiYWRhcHRlciAiLmNvbmNhdCh0LCAiICIpICsgKCExID09PSBu ID8gImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IiA6ICJpcyBub3QgYXZh aWxhYmxlIGluIHRoZSBidWlsZCIpOw0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAg ICAgbGV0IG4gPSB0ID8gKGUubGVuZ3RoID4gMSA/ICJzaW5jZSA6XG4iICsgZS5tYXAoUHAp LmpvaW4oIlxuIikgOiAiICIgKyBQcChlWzBdKSkgOiAiYXMgbm8gYWRhcHRlciBzcGVjaWZp ZWQiOw0KICAgICAgICAgICAgICB0aHJvdyBuZXcgVWYoIlRoZXJlIGlzIG5vIHN1aXRhYmxl IGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIiArIG4sICJFUlJfTk9UX1NVUFBP UlQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiByOw0KICAgICAgICAg IH07DQogICAgICAgIGZ1bmN0aW9uIFRwKGUpIHsNCiAgICAgICAgICBpZiAoKGUuY2FuY2Vs VG9rZW4gJiYgZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksIGUuc2lnbmFsICYm IGUuc2lnbmFsLmFib3J0ZWQpKSB0aHJvdyBuZXcgd3AobnVsbCwgZSk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gQXAoZSkgew0KICAgICAgICAgIFRwKGUpLCAoZS5oZWFkZXJz ID0gZ3AuZnJvbShlLmhlYWRlcnMpKSwgKGUuZGF0YSA9IHZwLmNhbGwoZSwgZS50cmFuc2Zv cm1SZXF1ZXN0KSksIC0xICE9PSBbInBvc3QiLCAicHV0IiwgInBhdGNoIl0uaW5kZXhPZihl Lm1ldGhvZCkgJiYgZS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3 dy1mb3JtLXVybGVuY29kZWQiLCAhMSk7DQogICAgICAgICAgcmV0dXJuIE5wKGUuYWRhcHRl ciB8fCB1cC5hZGFwdGVyKShlKS50aGVuKA0KICAgICAgICAgICAgZnVuY3Rpb24gKHQpIHsN CiAgICAgICAgICAgICAgcmV0dXJuIFRwKGUpLCAodC5kYXRhID0gdnAuY2FsbChlLCBlLnRy YW5zZm9ybVJlc3BvbnNlLCB0KSksICh0LmhlYWRlcnMgPSBncC5mcm9tKHQuaGVhZGVycykp LCB0Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGZ1bmN0aW9uICh0KSB7DQogICAg ICAgICAgICAgIHJldHVybiB5cCh0KSB8fCAoVHAoZSksIHQgJiYgdC5yZXNwb25zZSAmJiAo KHQucmVzcG9uc2UuZGF0YSA9IHZwLmNhbGwoZSwgZS50cmFuc2Zvcm1SZXNwb25zZSwgdC5y ZXNwb25zZSkpLCAodC5yZXNwb25zZS5oZWFkZXJzID0gZ3AuZnJvbSh0LnJlc3BvbnNlLmhl YWRlcnMpKSkpLCBQcm9taXNlLnJlamVjdCh0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICApOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IE1wID0gKGUpID0+IChlIGluc3RhbmNl b2YgZ3AgPyBlLnRvSlNPTigpIDogZSk7DQogICAgICAgIGZ1bmN0aW9uIHpwKGUsIHQpIHsN CiAgICAgICAgICB0ID0gdCB8fCB7fTsNCiAgICAgICAgICBjb25zdCBuID0ge307DQogICAg ICAgICAgZnVuY3Rpb24gcihlLCB0LCBuKSB7DQogICAgICAgICAgICByZXR1cm4gTGYuaXNQ bGFpbk9iamVjdChlKSAmJiBMZi5pc1BsYWluT2JqZWN0KHQpID8gTGYubWVyZ2UuY2FsbCh7 IGNhc2VsZXNzOiBuIH0sIGUsIHQpIDogTGYuaXNQbGFpbk9iamVjdCh0KSA/IExmLm1lcmdl KHt9LCB0KSA6IExmLmlzQXJyYXkodCkgPyB0LnNsaWNlKCkgOiB0Ow0KICAgICAgICAgIH0N CiAgICAgICAgICBmdW5jdGlvbiBvKGUsIHQsIG4pIHsNCiAgICAgICAgICAgIHJldHVybiBM Zi5pc1VuZGVmaW5lZCh0KSA/IChMZi5pc1VuZGVmaW5lZChlKSA/IHZvaWQgMCA6IHIodm9p ZCAwLCBlLCBuKSkgOiByKGUsIHQsIG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5j dGlvbiBhKGUsIHQpIHsNCiAgICAgICAgICAgIGlmICghTGYuaXNVbmRlZmluZWQodCkpIHJl dHVybiByKHZvaWQgMCwgdCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGZ1bmN0aW9uIGko ZSwgdCkgew0KICAgICAgICAgICAgcmV0dXJuIExmLmlzVW5kZWZpbmVkKHQpID8gKExmLmlz VW5kZWZpbmVkKGUpID8gdm9pZCAwIDogcih2b2lkIDAsIGUpKSA6IHIodm9pZCAwLCB0KTsN CiAgICAgICAgICB9DQogICAgICAgICAgZnVuY3Rpb24gbChuLCBvLCBhKSB7DQogICAgICAg ICAgICByZXR1cm4gYSBpbiB0ID8gcihuLCBvKSA6IGEgaW4gZSA/IHIodm9pZCAwLCBuKSA6 IHZvaWQgMDsNCiAgICAgICAgICB9DQogICAgICAgICAgY29uc3QgcyA9IHsNCiAgICAgICAg ICAgIHVybDogYSwNCiAgICAgICAgICAgIG1ldGhvZDogYSwNCiAgICAgICAgICAgIGRhdGE6 IGEsDQogICAgICAgICAgICBiYXNlVVJMOiBpLA0KICAgICAgICAgICAgdHJhbnNmb3JtUmVx dWVzdDogaSwNCiAgICAgICAgICAgIHRyYW5zZm9ybVJlc3BvbnNlOiBpLA0KICAgICAgICAg ICAgcGFyYW1zU2VyaWFsaXplcjogaSwNCiAgICAgICAgICAgIHRpbWVvdXQ6IGksDQogICAg ICAgICAgICB0aW1lb3V0TWVzc2FnZTogaSwNCiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFs czogaSwNCiAgICAgICAgICAgIGFkYXB0ZXI6IGksDQogICAgICAgICAgICByZXNwb25zZVR5 cGU6IGksDQogICAgICAgICAgICB4c3JmQ29va2llTmFtZTogaSwNCiAgICAgICAgICAgIHhz cmZIZWFkZXJOYW1lOiBpLA0KICAgICAgICAgICAgb25VcGxvYWRQcm9ncmVzczogaSwNCiAg ICAgICAgICAgIG9uRG93bmxvYWRQcm9ncmVzczogaSwNCiAgICAgICAgICAgIGRlY29tcHJl c3M6IGksDQogICAgICAgICAgICBtYXhDb250ZW50TGVuZ3RoOiBpLA0KICAgICAgICAgICAg bWF4Qm9keUxlbmd0aDogaSwNCiAgICAgICAgICAgIGJlZm9yZVJlZGlyZWN0OiBpLA0KICAg ICAgICAgICAgdHJhbnNwb3J0OiBpLA0KICAgICAgICAgICAgaHR0cEFnZW50OiBpLA0KICAg ICAgICAgICAgaHR0cHNBZ2VudDogaSwNCiAgICAgICAgICAgIGNhbmNlbFRva2VuOiBpLA0K ICAgICAgICAgICAgc29ja2V0UGF0aDogaSwNCiAgICAgICAgICAgIHJlc3BvbnNlRW5jb2Rp bmc6IGksDQogICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogbCwNCiAgICAgICAgICAgIGhl YWRlcnM6IChlLCB0KSA9PiBvKE1wKGUpLCBNcCh0KSwgITApLA0KICAgICAgICAgIH07DQog ICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIExmLmZvckVhY2goT2JqZWN0LmtleXMo T2JqZWN0LmFzc2lnbih7fSwgZSwgdCkpLCBmdW5jdGlvbiAocikgew0KICAgICAgICAgICAg ICBjb25zdCBhID0gc1tyXSB8fCBvLA0KICAgICAgICAgICAgICAgIGkgPSBhKGVbcl0sIHRb cl0sIHIpOw0KICAgICAgICAgICAgICAoTGYuaXNVbmRlZmluZWQoaSkgJiYgYSAhPT0gbCkg fHwgKG5bcl0gPSBpKTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgbg0KICAgICAg ICAgICk7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QganAgPSAiMS42LjEiLA0KICAgICAg ICAgIElwID0ge307DQogICAgICAgIFsib2JqZWN0IiwgImJvb2xlYW4iLCAibnVtYmVyIiwg ImZ1bmN0aW9uIiwgInN0cmluZyIsICJzeW1ib2wiXS5mb3JFYWNoKChlLCB0KSA9PiB7DQog ICAgICAgICAgSXBbZV0gPSBmdW5jdGlvbiAobikgew0KICAgICAgICAgICAgcmV0dXJuIHR5 cGVvZiBuID09PSBlIHx8ICJhIiArICh0IDwgMSA/ICJuICIgOiAiICIpICsgZTsNCiAgICAg ICAgICB9Ow0KICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgTHAgPSB7fTsNCiAgICAgICAg SXAudHJhbnNpdGlvbmFsID0gZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAgICBmdW5j dGlvbiByKGUsIHQpIHsNCiAgICAgICAgICAgIHJldHVybiAiW0F4aW9zIHYxLjYuMV0gVHJh bnNpdGlvbmFsIG9wdGlvbiAnIiArIGUgKyAiJyIgKyB0ICsgKG4gPyAiLiAiICsgbiA6ICIi KTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIChuLCBvLCBhKSA9PiB7DQogICAg ICAgICAgICBpZiAoITEgPT09IGUpIHRocm93IG5ldyBVZihyKG8sICIgaGFzIGJlZW4gcmVt b3ZlZCIgKyAodCA/ICIgaW4gIiArIHQgOiAiIikpLCBVZi5FUlJfREVQUkVDQVRFRCk7DQog ICAgICAgICAgICByZXR1cm4gdCAmJiAhTHBbb10gJiYgKChMcFtvXSA9ICEwKSwgY29uc29s ZS53YXJuKHIobywgIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiICsgdCArICIgYW5k IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCAhZSB8fCBlKG4sIG8s IGEpOw0KICAgICAgICAgIH07DQogICAgICAgIH07DQogICAgICAgIGNvbnN0IEZwID0gew0K ICAgICAgICAgIGFzc2VydE9wdGlvbnM6IGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAg ICAgICBpZiAoIm9iamVjdCIgIT09IHR5cGVvZiBlKSB0aHJvdyBuZXcgVWYoIm9wdGlvbnMg bXVzdCBiZSBhbiBvYmplY3QiLCBVZi5FUlJfQkFEX09QVElPTl9WQUxVRSk7DQogICAgICAg ICAgICBjb25zdCByID0gT2JqZWN0LmtleXMoZSk7DQogICAgICAgICAgICBsZXQgbyA9IHIu bGVuZ3RoOw0KICAgICAgICAgICAgZm9yICg7IG8tLSA+IDA7KSB7DQogICAgICAgICAgICAg IGNvbnN0IGEgPSByW29dLA0KICAgICAgICAgICAgICAgIGkgPSB0W2FdOw0KICAgICAgICAg ICAgICBpZiAoaSkgew0KICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBlW2FdLA0KICAgICAg ICAgICAgICAgICAgbiA9IHZvaWQgMCA9PT0gdCB8fCBpKHQsIGEsIGUpOw0KICAgICAgICAg ICAgICAgIGlmICghMCAhPT0gbikgdGhyb3cgbmV3IFVmKCJvcHRpb24gIiArIGEgKyAiIG11 c3QgYmUgIiArIG4sIFVmLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTsNCiAgICAgICAgICAgICAg fSBlbHNlIGlmICghMCAhPT0gbikgdGhyb3cgbmV3IFVmKCJVbmtub3duIG9wdGlvbiAiICsg YSwgVWYuRVJSX0JBRF9PUFRJT04pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0sDQog ICAgICAgICAgdmFsaWRhdG9yczogSXAsDQogICAgICAgIH0sDQogICAgICAgICAgQnAgPSBG cC52YWxpZGF0b3JzOw0KICAgICAgICBjbGFzcyBEcCB7DQogICAgICAgICAgY29uc3RydWN0 b3IoZSkgew0KICAgICAgICAgICAgKHRoaXMuZGVmYXVsdHMgPSBlKSwgKHRoaXMuaW50ZXJj ZXB0b3JzID0geyByZXF1ZXN0OiBuZXcgSmYoKSwgcmVzcG9uc2U6IG5ldyBKZigpIH0pOw0K ICAgICAgICAgIH0NCiAgICAgICAgICByZXF1ZXN0KGUsIHQpIHsNCiAgICAgICAgICAgICJz dHJpbmciID09PSB0eXBlb2YgZSA/ICgodCA9IHQgfHwge30pLnVybCA9IGUpIDogKHQgPSBl IHx8IHt9KSwgKHQgPSB6cCh0aGlzLmRlZmF1bHRzLCB0KSk7DQogICAgICAgICAgICBjb25z dCB7IHRyYW5zaXRpb25hbDogbiwgcGFyYW1zU2VyaWFsaXplcjogciwgaGVhZGVyczogbyB9 ID0gdDsNCiAgICAgICAgICAgIHZvaWQgMCAhPT0gbiAmJiBGcC5hc3NlcnRPcHRpb25zKG4s IHsgc2lsZW50SlNPTlBhcnNpbmc6IEJwLnRyYW5zaXRpb25hbChCcC5ib29sZWFuKSwgZm9y Y2VkSlNPTlBhcnNpbmc6IEJwLnRyYW5zaXRpb25hbChCcC5ib29sZWFuKSwgY2xhcmlmeVRp bWVvdXRFcnJvcjogQnAudHJhbnNpdGlvbmFsKEJwLmJvb2xlYW4pIH0sICExKSwNCiAgICAg ICAgICAgICAgbnVsbCAhPSByICYmIChMZi5pc0Z1bmN0aW9uKHIpID8gKHQucGFyYW1zU2Vy aWFsaXplciA9IHsgc2VyaWFsaXplOiByIH0pIDogRnAuYXNzZXJ0T3B0aW9ucyhyLCB7IGVu Y29kZTogQnAuZnVuY3Rpb24sIHNlcmlhbGl6ZTogQnAuZnVuY3Rpb24gfSwgITApKSwNCiAg ICAgICAgICAgICAgKHQubWV0aG9kID0gKHQubWV0aG9kIHx8IHRoaXMuZGVmYXVsdHMubWV0 aG9kIHx8ICJnZXQiKS50b0xvd2VyQ2FzZSgpKTsNCiAgICAgICAgICAgIGxldCBhID0gbyAm JiBMZi5tZXJnZShvLmNvbW1vbiwgb1t0Lm1ldGhvZF0pOw0KICAgICAgICAgICAgbyAmJg0K ICAgICAgICAgICAgICBMZi5mb3JFYWNoKFsiZGVsZXRlIiwgImdldCIsICJoZWFkIiwgInBv c3QiLCAicHV0IiwgInBhdGNoIiwgImNvbW1vbiJdLCAoZSkgPT4gew0KICAgICAgICAgICAg ICAgIGRlbGV0ZSBvW2VdOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgKHQu aGVhZGVycyA9IGdwLmNvbmNhdChhLCBvKSk7DQogICAgICAgICAgICBjb25zdCBpID0gW107 DQogICAgICAgICAgICBsZXQgbCA9ICEwOw0KICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRv cnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICgiZnVu Y3Rpb24iID09PSB0eXBlb2YgZS5ydW5XaGVuICYmICExID09PSBlLnJ1bldoZW4odCkpIHx8 ICgobCA9IGwgJiYgZS5zeW5jaHJvbm91cyksIGkudW5zaGlmdChlLmZ1bGZpbGxlZCwgZS5y ZWplY3RlZCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBjb25zdCBzID0gW107 DQogICAgICAgICAgICBsZXQgdTsNCiAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3JzLnJl c3BvbnNlLmZvckVhY2goZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgcy5wdXNoKGUu ZnVsZmlsbGVkLCBlLnJlamVjdGVkKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAg bGV0IGMsDQogICAgICAgICAgICAgIGQgPSAwOw0KICAgICAgICAgICAgaWYgKCFsKSB7DQog ICAgICAgICAgICAgIGNvbnN0IGUgPSBbQXAuYmluZCh0aGlzKSwgdm9pZCAwXTsNCiAgICAg ICAgICAgICAgZm9yIChlLnVuc2hpZnQuYXBwbHkoZSwgaSksIGUucHVzaC5hcHBseShlLCBz KSwgYyA9IGUubGVuZ3RoLCB1ID0gUHJvbWlzZS5yZXNvbHZlKHQpOyBkIDwgYzspIHUgPSB1 LnRoZW4oZVtkKytdLCBlW2QrK10pOw0KICAgICAgICAgICAgICByZXR1cm4gdTsNCiAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIGMgPSBpLmxlbmd0aDsNCiAgICAgICAgICAgIGxldCBm ID0gdDsNCiAgICAgICAgICAgIGZvciAoZCA9IDA7IGQgPCBjOykgew0KICAgICAgICAgICAg ICBjb25zdCBlID0gaVtkKytdLA0KICAgICAgICAgICAgICAgIHQgPSBpW2QrK107DQogICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZiA9IGUoZik7DQogICAgICAgICAg ICAgIH0gY2F0Y2ggKHApIHsNCiAgICAgICAgICAgICAgICB0LmNhbGwodGhpcywgcCk7DQog ICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgIHUgPSBBcC5jYWxsKHRoaXMsIGYp Ow0KICAgICAgICAgICAgfSBjYXRjaCAocCkgew0KICAgICAgICAgICAgICByZXR1cm4gUHJv bWlzZS5yZWplY3QocCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmb3IgKGQgPSAw LCBjID0gcy5sZW5ndGg7IGQgPCBjOykgdSA9IHUudGhlbihzW2QrK10sIHNbZCsrXSk7DQog ICAgICAgICAgICByZXR1cm4gdTsNCiAgICAgICAgICB9DQogICAgICAgICAgZ2V0VXJpKGUp IHsNCiAgICAgICAgICAgIHJldHVybiBaZihTcCgoZSA9IHpwKHRoaXMuZGVmYXVsdHMsIGUp KS5iYXNlVVJMLCBlLnVybCksIGUucGFyYW1zLCBlLnBhcmFtc1NlcmlhbGl6ZXIpOw0KICAg ICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBMZi5mb3JFYWNoKFsiZGVsZXRlIiwgImdl dCIsICJoZWFkIiwgIm9wdGlvbnMiXSwgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICBEcC5w cm90b3R5cGVbZV0gPSBmdW5jdGlvbiAodCwgbikgew0KICAgICAgICAgICAgcmV0dXJuIHRo aXMucmVxdWVzdCh6cChuIHx8IHt9LCB7IG1ldGhvZDogZSwgdXJsOiB0LCBkYXRhOiAobiB8 fCB7fSkuZGF0YSB9KSk7DQogICAgICAgICAgfTsNCiAgICAgICAgfSksDQogICAgICAgICAg TGYuZm9yRWFjaChbInBvc3QiLCAicHV0IiwgInBhdGNoIl0sIGZ1bmN0aW9uIChlKSB7DQog ICAgICAgICAgICBmdW5jdGlvbiB0KHQpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0 aW9uIChuLCByLCBvKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdCh6 cChvIHx8IHt9LCB7IG1ldGhvZDogZSwgaGVhZGVyczogdCA/IHsgIkNvbnRlbnQtVHlwZSI6 ICJtdWx0aXBhcnQvZm9ybS1kYXRhIiB9IDoge30sIHVybDogbiwgZGF0YTogciB9KSk7DQog ICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICAoRHAucHJvdG90 eXBlW2VdID0gdCgpKSwgKERwLnByb3RvdHlwZVtlICsgIkZvcm0iXSA9IHQoITApKTsNCiAg ICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgVXAgPSBEcDsNCiAgICAgICAgY2xhc3MgV3Ag ew0KICAgICAgICAgIGNvbnN0cnVjdG9yKGUpIHsNCiAgICAgICAgICAgIGlmICgiZnVuY3Rp b24iICE9PSB0eXBlb2YgZSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBi ZSBhIGZ1bmN0aW9uLiIpOw0KICAgICAgICAgICAgbGV0IHQ7DQogICAgICAgICAgICB0aGlz LnByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICB0 ID0gZTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgY29uc3QgbiA9IHRoaXM7DQog ICAgICAgICAgICB0aGlzLnByb21pc2UudGhlbigoZSkgPT4gew0KICAgICAgICAgICAgICBp ZiAoIW4uX2xpc3RlbmVycykgcmV0dXJuOw0KICAgICAgICAgICAgICBsZXQgdCA9IG4uX2xp c3RlbmVycy5sZW5ndGg7DQogICAgICAgICAgICAgIGZvciAoOyB0LS0gPiAwOykgbi5fbGlz dGVuZXJzW3RdKGUpOw0KICAgICAgICAgICAgICBuLl9saXN0ZW5lcnMgPSBudWxsOw0KICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICh0aGlzLnByb21pc2UudGhlbiA9IChlKSA9 PiB7DQogICAgICAgICAgICAgICAgbGV0IHQ7DQogICAgICAgICAgICAgICAgY29uc3QgciA9 IG5ldyBQcm9taXNlKChlKSA9PiB7DQogICAgICAgICAgICAgICAgICBuLnN1YnNjcmliZShl KSwgKHQgPSBlKTsNCiAgICAgICAgICAgICAgICB9KS50aGVuKGUpOw0KICAgICAgICAgICAg ICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAoci5jYW5jZWwgPSBmdW5jdGlvbiAo KSB7DQogICAgICAgICAgICAgICAgICAgIG4udW5zdWJzY3JpYmUodCk7DQogICAgICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIHINCiAgICAgICAgICAgICAgICApOw0K ICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgZShmdW5jdGlvbiAoZSwgciwgbykg ew0KICAgICAgICAgICAgICAgIG4ucmVhc29uIHx8ICgobi5yZWFzb24gPSBuZXcgd3AoZSwg ciwgbykpLCB0KG4ucmVhc29uKSk7DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0N CiAgICAgICAgICB0aHJvd0lmUmVxdWVzdGVkKCkgew0KICAgICAgICAgICAgaWYgKHRoaXMu cmVhc29uKSB0aHJvdyB0aGlzLnJlYXNvbjsNCiAgICAgICAgICB9DQogICAgICAgICAgc3Vi c2NyaWJlKGUpIHsNCiAgICAgICAgICAgIHRoaXMucmVhc29uID8gZSh0aGlzLnJlYXNvbikg OiB0aGlzLl9saXN0ZW5lcnMgPyB0aGlzLl9saXN0ZW5lcnMucHVzaChlKSA6ICh0aGlzLl9s aXN0ZW5lcnMgPSBbZV0pOw0KICAgICAgICAgIH0NCiAgICAgICAgICB1bnN1YnNjcmliZShl KSB7DQogICAgICAgICAgICBpZiAoIXRoaXMuX2xpc3RlbmVycykgcmV0dXJuOw0KICAgICAg ICAgICAgY29uc3QgdCA9IHRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpOw0KICAgICAgICAg ICAgLTEgIT09IHQgJiYgdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LCAxKTsNCiAgICAgICAg ICB9DQogICAgICAgICAgc3RhdGljIHNvdXJjZSgpIHsNCiAgICAgICAgICAgIGxldCBlOw0K ICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgdG9rZW46IG5ldyBXcChmdW5j dGlvbiAodCkgew0KICAgICAgICAgICAgICAgIGUgPSB0Ow0KICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgY2FuY2VsOiBlLA0KICAgICAgICAgICAgfTsNCiAgICAgICAgICB9 DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgVnAgPSBXcDsNCiAgICAgICAgY29uc3QgSHAg PSB7DQogICAgICAgICAgQ29udGludWU6IDEwMCwNCiAgICAgICAgICBTd2l0Y2hpbmdQcm90 b2NvbHM6IDEwMSwNCiAgICAgICAgICBQcm9jZXNzaW5nOiAxMDIsDQogICAgICAgICAgRWFy bHlIaW50czogMTAzLA0KICAgICAgICAgIE9rOiAyMDAsDQogICAgICAgICAgQ3JlYXRlZDog MjAxLA0KICAgICAgICAgIEFjY2VwdGVkOiAyMDIsDQogICAgICAgICAgTm9uQXV0aG9yaXRh dGl2ZUluZm9ybWF0aW9uOiAyMDMsDQogICAgICAgICAgTm9Db250ZW50OiAyMDQsDQogICAg ICAgICAgUmVzZXRDb250ZW50OiAyMDUsDQogICAgICAgICAgUGFydGlhbENvbnRlbnQ6IDIw NiwNCiAgICAgICAgICBNdWx0aVN0YXR1czogMjA3LA0KICAgICAgICAgIEFscmVhZHlSZXBv cnRlZDogMjA4LA0KICAgICAgICAgIEltVXNlZDogMjI2LA0KICAgICAgICAgIE11bHRpcGxl Q2hvaWNlczogMzAwLA0KICAgICAgICAgIE1vdmVkUGVybWFuZW50bHk6IDMwMSwNCiAgICAg ICAgICBGb3VuZDogMzAyLA0KICAgICAgICAgIFNlZU90aGVyOiAzMDMsDQogICAgICAgICAg Tm90TW9kaWZpZWQ6IDMwNCwNCiAgICAgICAgICBVc2VQcm94eTogMzA1LA0KICAgICAgICAg IFVudXNlZDogMzA2LA0KICAgICAgICAgIFRlbXBvcmFyeVJlZGlyZWN0OiAzMDcsDQogICAg ICAgICAgUGVybWFuZW50UmVkaXJlY3Q6IDMwOCwNCiAgICAgICAgICBCYWRSZXF1ZXN0OiA0 MDAsDQogICAgICAgICAgVW5hdXRob3JpemVkOiA0MDEsDQogICAgICAgICAgUGF5bWVudFJl cXVpcmVkOiA0MDIsDQogICAgICAgICAgRm9yYmlkZGVuOiA0MDMsDQogICAgICAgICAgTm90 Rm91bmQ6IDQwNCwNCiAgICAgICAgICBNZXRob2ROb3RBbGxvd2VkOiA0MDUsDQogICAgICAg ICAgTm90QWNjZXB0YWJsZTogNDA2LA0KICAgICAgICAgIFByb3h5QXV0aGVudGljYXRpb25S ZXF1aXJlZDogNDA3LA0KICAgICAgICAgIFJlcXVlc3RUaW1lb3V0OiA0MDgsDQogICAgICAg ICAgQ29uZmxpY3Q6IDQwOSwNCiAgICAgICAgICBHb25lOiA0MTAsDQogICAgICAgICAgTGVu Z3RoUmVxdWlyZWQ6IDQxMSwNCiAgICAgICAgICBQcmVjb25kaXRpb25GYWlsZWQ6IDQxMiwN CiAgICAgICAgICBQYXlsb2FkVG9vTGFyZ2U6IDQxMywNCiAgICAgICAgICBVcmlUb29Mb25n OiA0MTQsDQogICAgICAgICAgVW5zdXBwb3J0ZWRNZWRpYVR5cGU6IDQxNSwNCiAgICAgICAg ICBSYW5nZU5vdFNhdGlzZmlhYmxlOiA0MTYsDQogICAgICAgICAgRXhwZWN0YXRpb25GYWls ZWQ6IDQxNywNCiAgICAgICAgICBJbUFUZWFwb3Q6IDQxOCwNCiAgICAgICAgICBNaXNkaXJl Y3RlZFJlcXVlc3Q6IDQyMSwNCiAgICAgICAgICBVbnByb2Nlc3NhYmxlRW50aXR5OiA0MjIs DQogICAgICAgICAgTG9ja2VkOiA0MjMsDQogICAgICAgICAgRmFpbGVkRGVwZW5kZW5jeTog NDI0LA0KICAgICAgICAgIFRvb0Vhcmx5OiA0MjUsDQogICAgICAgICAgVXBncmFkZVJlcXVp cmVkOiA0MjYsDQogICAgICAgICAgUHJlY29uZGl0aW9uUmVxdWlyZWQ6IDQyOCwNCiAgICAg ICAgICBUb29NYW55UmVxdWVzdHM6IDQyOSwNCiAgICAgICAgICBSZXF1ZXN0SGVhZGVyRmll bGRzVG9vTGFyZ2U6IDQzMSwNCiAgICAgICAgICBVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29u czogNDUxLA0KICAgICAgICAgIEludGVybmFsU2VydmVyRXJyb3I6IDUwMCwNCiAgICAgICAg ICBOb3RJbXBsZW1lbnRlZDogNTAxLA0KICAgICAgICAgIEJhZEdhdGV3YXk6IDUwMiwNCiAg ICAgICAgICBTZXJ2aWNlVW5hdmFpbGFibGU6IDUwMywNCiAgICAgICAgICBHYXRld2F5VGlt ZW91dDogNTA0LA0KICAgICAgICAgIEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOiA1MDUsDQog ICAgICAgICAgVmFyaWFudEFsc29OZWdvdGlhdGVzOiA1MDYsDQogICAgICAgICAgSW5zdWZm aWNpZW50U3RvcmFnZTogNTA3LA0KICAgICAgICAgIExvb3BEZXRlY3RlZDogNTA4LA0KICAg ICAgICAgIE5vdEV4dGVuZGVkOiA1MTAsDQogICAgICAgICAgTmV0d29ya0F1dGhlbnRpY2F0 aW9uUmVxdWlyZWQ6IDUxMSwNCiAgICAgICAgfTsNCiAgICAgICAgT2JqZWN0LmVudHJpZXMo SHApLmZvckVhY2goKGUpID0+IHsNCiAgICAgICAgICBsZXQgW3QsIG5dID0gZTsNCiAgICAg ICAgICBIcFtuXSA9IHQ7DQogICAgICAgIH0pOw0KICAgICAgICBjb25zdCBxcCA9IEhwOw0K ICAgICAgICBjb25zdCAkcCA9IChmdW5jdGlvbiBlKHQpIHsNCiAgICAgICAgICBjb25zdCBu ID0gbmV3IFVwKHQpLA0KICAgICAgICAgICAgciA9IG5mKFVwLnByb3RvdHlwZS5yZXF1ZXN0 LCBuKTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgTGYuZXh0ZW5kKHIsIFVw LnByb3RvdHlwZSwgbiwgeyBhbGxPd25LZXlzOiAhMCB9KSwNCiAgICAgICAgICAgIExmLmV4 dGVuZChyLCBuLCBudWxsLCB7IGFsbE93bktleXM6ICEwIH0pLA0KICAgICAgICAgICAgKHIu Y3JlYXRlID0gZnVuY3Rpb24gKG4pIHsNCiAgICAgICAgICAgICAgcmV0dXJuIGUoenAodCwg bikpOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICByDQogICAgICAgICAgKTsNCiAg ICAgICAgfSkodXApOw0KICAgICAgICAoJHAuQXhpb3MgPSBVcCksDQogICAgICAgICAgKCRw LkNhbmNlbGVkRXJyb3IgPSB3cCksDQogICAgICAgICAgKCRwLkNhbmNlbFRva2VuID0gVnAp LA0KICAgICAgICAgICgkcC5pc0NhbmNlbCA9IHlwKSwNCiAgICAgICAgICAoJHAuVkVSU0lP TiA9IGpwKSwNCiAgICAgICAgICAoJHAudG9Gb3JtRGF0YSA9ICRmKSwNCiAgICAgICAgICAo JHAuQXhpb3NFcnJvciA9IFVmKSwNCiAgICAgICAgICAoJHAuQ2FuY2VsID0gJHAuQ2FuY2Vs ZWRFcnJvciksDQogICAgICAgICAgKCRwLmFsbCA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoZSk7DQogICAgICAgICAgfSksDQogICAgICAgICAg KCRwLnNwcmVhZCA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZnVuY3Rp b24gKHQpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIGUuYXBwbHkobnVsbCwgdCk7DQogICAg ICAgICAgICB9Ow0KICAgICAgICAgIH0pLA0KICAgICAgICAgICgkcC5pc0F4aW9zRXJyb3Ig PSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIExmLmlzT2JqZWN0KGUpICYm ICEwID09PSBlLmlzQXhpb3NFcnJvcjsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAoJHAu bWVyZ2VDb25maWcgPSB6cCksDQogICAgICAgICAgKCRwLkF4aW9zSGVhZGVycyA9IGdwKSwN CiAgICAgICAgICAoJHAuZm9ybVRvSlNPTiA9IChlKSA9PiBscChMZi5pc0hUTUxGb3JtKGUp ID8gbmV3IEZvcm1EYXRhKGUpIDogZSkpLA0KICAgICAgICAgICgkcC5nZXRBZGFwdGVyID0g TnApLA0KICAgICAgICAgICgkcC5IdHRwU3RhdHVzQ29kZSA9IHFwKSwNCiAgICAgICAgICAo JHAuZGVmYXVsdCA9ICRwKTsNCiAgICAgICAgY29uc3QgS3AgPSAkcCwNCiAgICAgICAgICBR cCA9IChlKSA9PiB7DQogICAgICAgICAgICBjb25zdCBuID0gKDAsIHQudXNlQ29udGV4dCko R3ApOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgKDAsIHQudXNlRWZm ZWN0KSgoKSA9PiB7DQogICAgICAgICAgICAgICAgKGFzeW5jICgpID0+IHsNCiAgICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBhd2FpdCBL cC5nZXQoImh0dHBzOi8vZ2VvbG9jYXRpb24tZGIuY29tL2pzb24vIik7DQogICAgICAgICAg ICAgICAgICAgIG4uc2V0SW5mbygodCkgPT4gKHsgLi4udCwgSVA6IGUuZGF0YS5JUHY0IH0p KTsNCiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICAg ICAgY29uc29sZS5sb2coZSk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgfSkoKTsNCiAgICAgICAgICAgICAgfSwgW24uSW5mby5QYXNzd29yZF0pLA0KICAgICAg ICAgICAgICAoMCwgTnIuanN4KShOci5GcmFnbWVudCwgew0KICAgICAgICAgICAgICAgIGNo aWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgaWQ6ICJh cHBSb290IiwNCiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImlzRmx1ZW50IG1kIG9k LS1pc05vbk1vYmlsZSBvZC1mb2N1cy0tZW5hYmxlZCBpc0ZsdWVudFZOZXh0IiwNCiAgICAg ICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAg ICAgICAgICAgICAgY2xhc3NOYW1lOiAicm9vdF8zZTVkNDg0NCIsDQogICAgICAgICAgICAg ICAgICAgICJkYXRhLWF1dG9tYXRpb25pZCI6ICJtYWluLWFwcC1jb250YWluZXIiLA0KICAg ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAgICgw LCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6 ICJzdWl0ZU5hdl8zZTVkNDg0NCIsDQogICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJl bjogKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNs YXNzTmFtZTogIm9kLVN1aXRlTmF2IG1zLVN1aXRlTmF2IiwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgaWQ6ICJTdWl0ZU5hdl8xNjk5MDQ1ODU2ODUxIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgImRhdGEtYXV0b21hdGlvbmlkIjogIlN1aXRlTmF2SGVhZGVyIiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlkOiAiTzM2NV9OYXZIZWFkZXIiLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xhc3NOYW1lOiAiZFE4WExNSXlOeGw4TUFZcU1zVVpGUT09IG8zNjVjcy1i YXNlIG8zNjVzeC1uYXZiYXIgbzM2NXN4LXNlYXJjaCIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByb2xlOiAiYmFubmVyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0eWxlOiB7IGhlaWdodDogNDgsIGxpbmVIZWlnaHQ6IDQ4IH0sDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkOiAiTzM2NV9IZWFkZXJMZWZ0UmVnaW9uIiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpZVJvL09xUFlCN2tmZlJGS3gy Yzl3PT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAo MCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiAiQmg0NmIxcmQ4QnJVNHpvbEw5UnpVZz09IiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiYnV0dG9u Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIk8zNjVf TWFpbkxpbmtfTmF2TWVudSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNsYXNzTmFtZTogImNsZ2lMVktQenVnWlpuczBMaVBUcXc9PSBvMzY1c3gtYnV0dG9u IG8zNjVzeC13YWZmbGUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiYXJpYS1oYXNwb3B1cCI6ICJkaWFsb2ciLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJidXR0b24iLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1sYWJlbCI6ICJBcHAgbGF1bmNoZXIi LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogIkFwcCBs YXVuY2hlciIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk cmVuOiAoMCwgTnIuanN4KSgic3BhbiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtcy1JY29uLS1XYWZmbGVPZmZpY2UzNjUgbXMt aWNvbi1mb250LXNpemUtMTYiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJvbGU6ICJwcmVzZW50YXRpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0eWxlOiB7IGRpc3BsYXk6ICJpbmxpbmUtYmxvY2siLCBmb250 U2l6ZTogMTYgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gp KCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJDZW50 ZXJSZWdpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt ZTogIl8yNUNxUlZLd0UzOFg1UkhFeEQ0SXlBPT0iLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiAiY2FsYygxMDAlIC0gMTQ2cHgpIiB9LA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4 KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6 IHsgd2lkdGg6ICIxMDAlIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHBvc2l0aW9u OiAicmVsYXRpdmUiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1hdXRvbWF0aW9uLWlkIjogInZpc2libGVD b250ZW50IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo aWxkcmVuOiAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWQ6ICJ0b3BMZXZlbFJlZ2lvbiIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIl8xUVNLNWxV aHc1R2toN1NEejk3WlBRPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJsZWZ0UmVnaW9uIiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt ZTogIl8xUVNLNWxVaHc1R2toN1NEejk3WlBRPT0iLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsganVzdGlmeUNvbnRlbnQ6ICJm bGV4LXN0YXJ0IiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsgaWQ6ICJPMzY1X01haW5M aW5rX1RlbmFudExvZ29fY29udGFpbmVyIiwgY2xhc3NOYW1lOiAiTTNwY0I1ZXZTQXRZTW96 Y2sxV1U3QT09IiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIk8zNjVfU3VpdGVCcmFuZGlu Z19jb250YWluZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNsYXNzTmFtZTogIk0zcGNCNWV2U0F0WU1vemNrMVdVN0E9PSIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hp bGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7IGNsYXNzTmFtZTogImUvVmwwajB6SFFNaFpU MXZRNkorU1E9PSBvMzY1c3gtYXBwTmFtZSIgfSksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyBpZDog Ik8zNjVfRG9jVGl0bGVfY29udGFpbmVyIiwgY2xhc3NOYW1lOiAiTTNwY0I1ZXZTQXRZTW96 Y2sxV1U3QT09IiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlkOiAiY2VudGVyUmVnaW9uIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIl8xUVNLNWxV aHc1R2toN1NEejk3WlBRPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGRp c3BsYXk6ICJmbGV4IiwgZmxleDogIjEgMCBhdXRvIiB9LA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCko ImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZDogIk8zNjVfU2VhcmNoQm94Q29udGFpbmVyX2NvbnRhaW5lciIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NO YW1lOiAiTTNwY0I1ZXZTQXRZTW96Y2sxV1U3QT09IiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBmbGV4OiAiMSAwIGF1 dG8iLCBqdXN0aWZ5Q29udGVudDogImNlbnRlciIgfSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAiSGVhZGVyQnV0 dG9uUmVnaW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNsYXNzTmFtZTogIl8xUVNLNWxVaHc1R2toN1NEejk3WlBRPT0iLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsganVz dGlmeUNvbnRlbnQ6ICJmbGV4LWVuZCIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGlk OiAiTzM2NV9GZWF0dXJlX0ZsYWdzX2NvbnRhaW5lciIsIGNsYXNzTmFtZTogIk0zcGNCNWV2 U0F0WU1vemNrMVdVN0E9PSIgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGlkOiAiTzM2NV9NYWlu TGlua19EYXlfY29udGFpbmVyIiwgY2xhc3NOYW1lOiAiTTNwY0I1ZXZTQXRZTW96Y2sxV1U3 QT09IiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsgaWQ6ICJPMzY1X01haW5MaW5rX0NoYXRfY29u dGFpbmVyIiwgY2xhc3NOYW1lOiAiTTNwY0I1ZXZTQXRZTW96Y2sxV1U3QT09IiB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5y LmpzeCkoImRpdiIsIHsgaWQ6ICJPMzY1X01haW5MaW5rX0JlbGxfY29udGFpbmVyIiwgY2xh c3NOYW1lOiAiTTNwY0I1ZXZTQXRZTW96Y2sxV1U3QT09IiB9KSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIs IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZDogIk8zNjVfTWFpbkxpbmtfU2V0dGluZ3NfY29udGFpbmVyIiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJN M3BjQjVldlNBdFlNb3pjazFXVTdBPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiAiclNEbmd5NTBDNGhMdmpONzdSM2RiQT09IiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAo MCwgTnIuanN4KSgiYnV0dG9uIiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjbGdpTFZLUHp1Z1pabnMw TGlQVHF3PT0gbzM2NXN4LWJ1dHRvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAiTzM2NV9NYWluTGlua19TZXR0aW5n cyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJhcmlhLWxhYmVsIjogIlNldHRpbmdzIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogImJ1dHRvbiIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRpdGxlOiAiU2V0dGluZ3MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo aWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIm8zNjVjcy1i YXNlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiYXJpYS1oaWRkZW4iOiAidHJ1ZSIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBO ci5qc3gpKCJzcGFuIiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibXMtSWNvbi0tU2V0dGluZ3Mg UkdTYi8xYzRleDlDTTBhczBvYUxRQT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICJwcmVzZW50YXRpb24i LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3R5bGU6IHsgZGlzcGxheTogImlubGluZS1ibG9jayIsIGZvbnRTaXplOiAx NiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIk8z NjVfTWFpbkxpbmtfSGVscF9jb250YWluZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIk0zcGNCNWV2U0F0WU1v emNrMVdVN0E9PSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6 ICJyU0RuZ3k1MEM0aEx2ak43N1IzZGJBPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJi dXR0b24iLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNsYXNzTmFtZTogImNsZ2lMVktQenVnWlpuczBMaVBUcXc9PSBvMzY1 c3gtYnV0dG9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ6ICJPMzY1X01haW5MaW5rX0hlbHAiLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1sYWJl bCI6ICJIZWxwIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZTogImJ1dHRvbiIsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAiSGVscCIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cmlhLWV4cGFuZGVkIjogImZhbHNlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYi LCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xhc3NOYW1lOiAibzM2NWNzLWJhc2UiLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmlhLWhpZGRlbiI6 ICJ0cnVlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoInNwYW4iLCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj bGFzc05hbWU6ICJtcy1JY29uLS1IZWxwIFJHU2IvMWM0ZXg5Q00wYXMwb2FMUUE9PSIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByb2xlOiAicHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGRpc3BsYXk6ICJp bmxpbmUtYmxvY2siLCBmb250U2l6ZTogMTYgfSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gp KCJkaXYiLCB7IGNsYXNzTmFtZTogIk0zcGNCNWV2U0F0WU1vemNrMVdVN0E9PSBGZEM1Q2dO ZTJxUUJYR2JPS2xOdWV3PT0iLCBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHt9KSB9 KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ6ICJPMzY1X0hlYWRlclJpZ2h0UmVnaW9uIiwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJIVjZsQzlKOE9VRnBLSmpm QXIxQXN3PT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVu OiBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgi ZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05h bWU6ICJCaDQ2YjFyZDhCclU0em9sTDlSelVnPT0iLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImJ1dHRvbiIsIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIk8zNjVfTWFpbkxp bmtfTWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNz TmFtZTogImNsZ2lMVktQenVnWlpuczBMaVBUcXc9PSBIN3d0MS9UN2tieWZTUk5aMkp6VkxB PT0gbzM2NXN4LWJ1dHRvbiBvMzY1c3gtaGlnaENvbnRyYXN0QnV0dG9uIiwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1leHBhbmRlZCI6ICJmYWxz ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogImJ1 dHRvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6 IHsgZGlzcGxheTogIm5vbmUiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiL0Ixbi9oNmliSTV3 Vno3amRESVAwQT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGNsYXNzTmFtZTogIlU2Q25mbzBSalhKOFVF d1hoWlY4bVE9PSB1bmRlZmluZWQiLCBjaGlsZHJlbjogKDAsIE5yLmpzeCkoInNwYW4iLCB7 IHN0eWxlOiB7IGRpc3BsYXk6ICJub25lIiB9IH0pIH0pLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNs Z2lMVktQenVnWlpuczBMaVBUcXc9PSBOSzZZUTA2MEludUVIMVcxTGJGSjRRPT0iLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAo MCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ6ICJPMzY1X01haW5MaW5rX01lUGhvdG8iLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAieDAz UnZzM01RN0lkOTQ4VHlpSWtDUT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJl bjogKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJyU0RuZ3k1MEM0aEx2ak43N1Iz ZGJBPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBO ci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJvaGNmWFloNkxVQnk1RFM1a05ValJR PT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHlsZTogeyB3aWR0aDogMzIsIGhlaWdodDogMzIgfSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46 IFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJtZUluaXRpYWxzQnV0 dG9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNsYXNzTmFtZTogIk1jK2ZpQWRKVHVLS1MreUpMTjNyRFE9PSBPTGxv N1dCWWI3SEpUR2ZHeVZraVdRPT0gbzM2NXN4LWJ1dHRvbiBvMzY1c3gtaGlnaENvbnRyYXN0 QnV0dG9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJhcmlhLWhpZGRlbiI6ICJ0cnVlIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7 IGZvbnRTaXplOiAxNiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJVIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo MCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiXzhaWVpLdnhDOGJ2dzF4 Z1FHU2t2dkE9PSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImltZyIsIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYWx0OiAiVSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzoNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9zdG9y YWdlLmxpdmUuY29tL215ZGF0YS9teXByb2ZpbGUvZXhwcmVzc2lvbnByb2ZpbGUvcHJvZmls ZXBob3RvOlVzZXJUaWxlU3RhdGljLFVzZXJUaWxlU21hbGwvTWVDb250cm9sTWVkaXVtVXNl clRpbGU/Y2s9MSZleD0yNCZmb2ZvZmY9MSZzYz0xNjk5MDQ1ODU4ODkyIiwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3R5bGU6IHsgZGlzcGxheTogIm5vbmUiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwg TnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbGFzc05hbWU6ICJCaDQ2YjFyZDhCclU0em9sTDlSelVnPT0iLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImEiLCB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJPMzY1X01h aW5MaW5rX1NpZ25pbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiAiY2xnaUxWS1B6dWdaWm5zMExpUFRxdz09IEg3d3QxL1Q3a2J5ZlNS TloySnpWTEE9PSBvMzY1c3gtYnV0dG9uIG8zNjVzeC1oaWdoQ29udHJhc3RCdXR0b24iLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICJidXR0b24i LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY6DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9sb2dpbi5s aXZlLmNvbS9sb2dpbi5zcmY/d2E9d3NpZ25pbjEuMCZycHNudj0xNiZjdD0xNjk5MDQ1ODU1 JnJ2ZXI9Ny41LjIxMTYuMCZ3cD1NQklfU1NMX1NIQVJFRCZ3cmVwbHk9aHR0cHM6JTJGJTJG b25lZHJpdmUubGl2ZS5jb20lMkYlM0ZhdXRoa2V5JTNEJTI1MjFBTUN5Y2JNU1JiOCUyNTJE MUQ0JTI2aWQlM0RERDA0M0IwNTZGQURBMjJGJTI1MjEyNjIlMjZjaWQlM0RERDA0M0IwNTZG QURBMjJGJTI2cGFySWQlM0Ryb290JTI2cGFyUXQlM0RzaGFyZWRieSUyNm8lM0RPbmVVcCUy Nm1rdCUzRGVuLVVTJmxjPTEwMzMmaWQ9MjUwMjA2JmNiY3h0PXNreSZta3Q9ZW4tVVMmbHc9 MSZmbD1lYXNpMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGFyZ2V0OiAidW5kZWZpbmVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0eXBlOiAiYnV0dG9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiYXJpYS1sYWJlbCI6ICJTaWduIGluIiwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogIlNpZ24gaW4iLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4cykoImRp diIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNz TmFtZTogIi9CMW4vaDZpYkk1d1Z6N2pkRElQMEE9PSIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIkhj S01FWWhtTDR1THlHK0s0aHk4cGc9PSB1bmRlZmluZWQiLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgic3Bh biIsIHsgc3R5bGU6IHsgZGlzcGxheTogImlubGluZSIgfSwgY2hpbGRyZW46ICJTaWduIGlu IiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5q c3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xhc3NOYW1lOiAiY2xnaUxWS1B6dWdaWm5zMExpUFRxdz09IE5LNllRMDYwSW51 RUgxVzFMYkZKNFE9PSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIk8zNjVfTWFpbkxpbmtf U2lnbmluTGluayIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjbGFzc05hbWU6ICIrZ0tEeENVUlI1ZXV3aFZXMk5LMjFnPT0iLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgw LCBOci5qc3gpKCJzcGFuIiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtcy1JY29uLS1Db250YWN0IG1zLWljb24t Zm9udC1zaXplLTE4IHU4NVNJaGdFUkx1cWNNVWJ0MnM2NkE9PSIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICJwcmVzZW50YXRp b24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHlsZTogeyBkaXNwbGF5OiAiaW5saW5lLWJsb2NrIiwgZm9udFNpemU6IDE4IH0sDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyBpZDogIm8zNjVjcy1mbGV4cGFuZS1v dmVybGF5IiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAg ICAgICByb2xlOiAicHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJk YXRhLWlzLWtvLXJlYWN0LXJvb3QiOiAidHJ1ZSIsDQogICAgICAgICAgICAgICAgICAgICAg ICBjaGlsZHJlbjogKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgIGNsYXNzTmFtZTogIm9kLUZpbGVzLW9uZVVwIiwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgImRhdGEtb3ZlcmxheS1wYXJlbnQiOiAidHJ1ZSIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICJkYXRhLWJpbmQiOiAiY29udHJvbDpjb250cm9sQmluZGluZ09wdGlv bnMsY3NzOnsnb2QtRmlsZXMtT25lVXAtLXNob3dVbmF1dGhCYW5uZXInOnNob3dVbmF1dGhC YW5uZXIoKX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJvZC1GaWxlcy11bmF1dGhCYW5u ZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtYmluZCI6ICJjb21w b25lbnQ6dW5hdXRoZW50aWNhdGVkQmFubmVyVGFnTmFtZSIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIm9kLXVuYXV0aGVudGljYXRl ZEJhbm5lciIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImJ1dHRv biIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog Im9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1PbmVEcml2ZSIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiZGF0YS1iaW5kIjogInRleHQ6YnJhbmRpbmdTdHJpbmcs YXR0cjp7aHJlZjpob21lUGFnZVVSTCxhbHQ6YnJhbmRpbmdTdHJpbmd9LGNsaWNrOm9uQ2xp Y2tPbmVEcml2ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVm OiAiaHR0cHM6Ly9nby5taWNyb3NvZnQuY29tL2Z3bGluay8/bGlua2lkPTg1MzUwMyIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICJPbmVEcml2ZSIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogIk9uZURyaXZl IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIm9kLXVuYXV0aGVudGlj YXRlZEJhbm5lci1BY2NvdW50Qm94IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgwLCBOci5qc3gpKCJidXR0b24iLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAib2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLWJ1 dHRvbiBvZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItU2lnbkluIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1iaW5kIjogImF0dHI6e2hyZWY6c2ln bkluVVJMfSx0ZXh0OnNpZ25JbixjbGljazpvbkNsaWNrU2lnbkluIiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmOg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vbG9naW4ubGl2ZS5jb20vbG9naW4u c3JmP3dhPXdzaWduaW4xLjAmd3JlcGx5PWh0dHBzJTNBJTJGJTJGb25lZHJpdmUubGl2ZS5j b20lMkYlM0ZhdXRoa2V5JTNEJTI1MjFBTUN5Y2JNU1JiOCUyNTJEMUQ0JTI2aWQlM0RERDA0 M0IwNTZGQURBMjJGJTI1MjEyNjIlMjZjaWQlM0RERDA0M0IwNTZGQURBMjJGJTI2cGFySWQl M0Ryb290JTI2cGFyUXQlM0RzaGFyZWRieSUyNm8lM0RPbmVVcCIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJTaWduIEluIiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJidXR0b24iLCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAib2QtdW5hdXRo ZW50aWNhdGVkQmFubmVyLWJ1dHRvbiBvZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItU2lnblVw IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1iaW5k IjogImF0dHI6e2hyZWY6c2lnblVwVVJMfSx0ZXh0OnNpZ25VcCxjbGljazpvbkNsaWNrU2ln blVwIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmOiAi aHR0cHM6Ly9nby5taWNyb3NvZnQuY29tL2Z3bGluay8/bGlua2lkPTg1MzI0OCIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJDcmVhdGUg YWNjb3VudCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBO ci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05h bWU6ICJvZC1GaWxlcy1vbmVVcCBvZC1GaWxlcy1PbmVVcC0tc2hvd1VuYXV0aEJhbm5lciIs DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1iaW5kIjogImNzczp7J29k LUZpbGVzLU9uZVVwLS1zaG93VW5hdXRoQmFubmVyJzpzaG93VW5hdXRoQmFubmVyfSIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeHMpKCJk aXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIk9u ZVVwIE9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgT25lVXAtLWhhc0NvbW1hbmRCYXIg b2QtRmlsZXMtT25lVXAtLXNob3dVbmF1dGhCYW5uZXIgT25lVXAtLWhhc0l0ZW1zIiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtYmluZCI6DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImNzczp7J09uZVVwLS1oYXNJbmZvUGFuZSc6c2hv d1BhbmUsJ09uZVVwLS1hd2FrZSc6aXNBd2FrZSwnT25lVXAtLXBhbm5pbmdFbmFibGVkJzpp c1Bhbm5pbmdFbmFibGVkLCdPbmVVcC0taGFzSXRlbXMnOml0ZW1zKCkubGVuZ3RoLCdPbmVV cC0taGFzQ29tbWFuZEJhcic6aXNDb21tYW5kQmFyVmlzaWJsZSwnT25lVXAtLXNsaWRlU2hv d09uJzppc1NsaWRlU2hvd01vZGVFbmFibGVkLCdPbmVVcC0tZGFya0JhY2tncm91bmQnOmlz RGFya0JhY2tncm91bmRFbmFibGVkLCdvZC1GaWxlcy1PbmVVcC0tc2hvd1VuYXV0aEJhbm5l cic6c2hvd1VuYXV0aEJhbm5lcn0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByb2xlOiAicHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwg TnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xhc3NOYW1lOiAiT25lVXAtYWNjZXNzaWJsZUl0ZW1Bbm5vdW5jZW1lbnQiLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyaWEtbGl2ZSI6ICJwb2xpdGUiLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtYmluZCI6ICJ0ZXh0 OmFjY2Vzc2libGVJdGVtQW5ub3VuY2VtZW50VGV4dCIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogIlByZXZpZXdpbmcgUHJvdGVjdGVkIERvY3Vt ZW50IDA0My5wZGYiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3hzKSgiZGl2Iiwg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiT25l VXAtY29udGVudCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0 YS1iaW5kIjogImhpZGVXaGVuSW5hY3RpdmUsY2xpZW50UmVjdDp7c2l6ZTpzaXplfSIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAicHJlc2VudGF0aW9u IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYi LCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l OiAiT25lVXAtY2Fyb3VzZWwiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJkYXRhLWJpbmQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImNvbXBvbmVudDp7bmFtZTpjYXJvdXNlbFRhZ05hbWUscGFyYW1zOntpdGVt Oml0ZW0saXRlbXM6aXRlbXMsY2FuTmF2aWdhdGU6Y2FuTmF2aWdhdGUsYWxsb2NhdGlvblJh bmdlOmFsbG9jYXRpb25SYW5nZSxsb2FkU3RhdGU6c2xpZGVMb2FkU3RhdGUsaXNFbmFibGVk OmlzUGFubmluZ0VuYWJsZWQsaXNSb3RhdGluZzppc1JvdGF0aW5nfX0saWRsZTp7aXNJZGxl OmlzSWRsZSxpc0VuYWJsZWQ6aXNJZGxlRW5hYmxlZH0sdGhyb3R0bGVkQ2xpY2s6e2NhbGxi YWNrOiRjb21wb25lbnQub25Db250ZW50Q2xpY2tlZC5iaW5kKCRjb21wb25lbnQpfSxhdXRv bWF0aW9uOidjYXJvdXNlbCciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJvbGU6ICJwcmVzZW50YXRpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJkYXRhLWF1dG9tYXRpb25pZCI6ICJjYXJvdXNlbCIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5q c3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbGFzc05hbWU6ICJDYXJvdXNlbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiQ2Fyb3Vz ZWwtcGxhdGZvcm0gaXMtZmxpcHBpbmciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiZGF0YS1iaW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAidGVtcGxhdGU6e2ZvcmVhY2g6c2xpZGVzLGJlZm9y ZVJlbW92ZTokY29tcG9uZW50Lm9uU2xpZGVSZW1vdmVkLmJpbmQoJGNvbXBvbmVudCksZG9u dExpbWl0TW92ZXM6dHJ1ZX0scGFuOnBhbkJpbmRpbmdQYXJhbXMsc3R5bGU6cGxhdGZvcm1T dHlsZSxjc3M6eydpcy1mbGlwcGluZyc6aXNGbGlwcGluZywnaXMtcm90YXRpbmcnOmlzUm90 YXRpbmcsJ2lzLWVuYWJsZWQnOmlzRW5hYmxlZCwnaXMtcG93ZXJlZCc6aXNQb3dlcmVkLCdp cy1nbGlkaW5nJzppc0dsaWRpbmcsJ2lzLXJvdGF0aW5nLWZvcndhcmQnOmRpcmVjdGlvbigp PjAsJ2lzLXJvdGF0aW5nLWJhY2t3YXJkJzpkaXJlY3Rpb24oKTwwfSIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHRyYW5zZm9ybTog InRyYW5zbGF0ZSgwJSwgMHB4KSIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiQ2Fy b3VzZWwtc2xpZGUgaXMtY3VycmVudCBpcy1sb2FkZWQiLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhvc3Q6e30sYXR0cjp7J2Rh dGEtaXRlbS1vZmZzZXQnOm9mZnNldCwnZGF0YS1pdGVtLW9yZGVyJzpvcmRlciwnZGF0YS1p dGVtLWRpcmVjdGlvbic6ZGlyZWN0aW9ufSxjc3M6eydpcy1jdXJyZW50JzppdGVtJiZpdGVt PT09JGNvbXBvbmVudC5pdGVtKCksJ2lzLWxvYWRlZCc6ISFsb2FkU3RhdGUoKX0iLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWl0ZW0t b2Zmc2V0IjogMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZGF0YS1pdGVtLW9yZGVyIjogMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiZGF0YS1pdGVtLWRpcmVjdGlvbiI6IDAsDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBO ci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZGF0YS1iaW5kIjogImNvbnRyb2w6Y29tcG9uZW50LGNzczp7J09uZVVw LXNsaWRlLWVycm9yJzppc0Vycm9yKCksJ09uZVVwLXNsaWRlJzohaXNFcnJvcigpfSIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAi cHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZTogIk9uZVVwLXNsaWRlIiwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgi ZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbGFzc05hbWU6ICJPbmVVcC1vdGhlciIsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOiAiYWN0aXZhdGU6JGNv bXBvbmVudC5hY3RpdmF0ZS5iaW5kKCRjb21wb25lbnQpIiwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3hz KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZTogIk9uZVVwLW90aGVyLWNvbnRlbnQiLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJPbmVVcC1vdGhlci1maWxl SWNvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJkYXRhLWJpbmQiOiAiY29tcG9uZW50OntuYW1lOmZpbGVUeXBlSWNvblRh Z05hbWUscGFyYW1zOmZpbGVUeXBlSWNvblZpZXdNb2RlbFBhcmFtc30iLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJl bjogKDAsIE5yLmpzeCkoInNwYW4iLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiRmlsZVR5cGVJY29u IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZGF0YS1iaW5kIjogImF0dHI6e3RpdGxlOmhvdmVyVGV4dH0sY2xpY2s6b25D bGljayxjc3M6eydGaWxlVHlwZUljb24tLWNsaWNrYWJsZSc6ISFvbkNsaWNrfSIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGFiSW5kZXg6IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiaW1nIiwgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWx0OiAiIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIkZpbGVUeXBlSWNvbi1pY29uIiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJkYXRhLWJpbmQiOiAiYXR0cjp7c3JjOmljb25VcmwsYWx0Omljb25GaWVsZEFyaWFM YWJlbH0sc3R5bGU6e3dpZHRoOnNpemUsaGVpZ2h0OnNpemUsJ2ZvbnQtc2l6ZSc6c2l6ZX0i LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3JjOiAiaHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5ldC9maWxlcy9mYWJy aWMtY2RuLXByb2RfMjAyMzA1MjQuMDAxL2Fzc2V0cy9pdGVtLXR5cGVzLzk2L3BkZi5wbmci LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3R5bGU6IHsgd2lkdGg6IDk2LCBoZWlnaHQ6IDk2LCBmb250U2l6ZTogOTYg fSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGNsYXNzTmFt ZTogIk9uZVVwLW90aGVyLWZpbGVOYW1lIiwgImRhdGEtYmluZCI6ICJ0ZXh0OmZpbGVOYW1l IiwgY2hpbGRyZW46ICJQcm90ZWN0ZWQgRG9jdW1lbnQgMDQzLnBkZiIgfSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIu anN4KSgiYnIiLCB7fSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgic3BhbiIsIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi bXMtSWNvbi0tV2FmZmxlT2ZmaWNlMzY1IG1zLWljb24tZm9udC1zaXplLTE2IiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9s ZTogInByZXNlbnRhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGRpc3BsYXk6ICJpbmxpbmUtYmxvY2si LCBmb250U2l6ZTogMTYgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJkYW5hZ2lzYW5hLi4uVGhpcyBmaWxl IHNlZW1zIHByaXZhdGUgcGxlYXNlIGxvZ2luIHRvIHZpZXciLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4 KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJPbmVVcC1vdGhlci1tZXNzYWdlIiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRh dGEtYmluZCI6ICJodG1sOm1lc3NhZ2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoeW8s IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2YXJpYW50OiAiY29udGFpbmVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlLmhhbmRsZU9wZW4oITApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJWaWV3IERv Y3VtZW50IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGNsYXNzTmFtZTog Ik9uZVVwLW90aGVyLWFjdGlvbnMiLCAiZGF0YS1iaW5kIjogImNvbnRyb2w6YWN0aW9uQmFy Q29udHJvbCIgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiT25lVXAtZGV0YWlsc0Jh ciIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtYmlu ZCI6ICJjc3M6eydPbmVVcC1kZXRhaWxzQmFyLS1oYXNDYXB0aW9uJzpzaG93RWRpdENhcHRp b259LHN0eWxlOmRldGFpbHNCYXJTdHlsZSxjaGlsZEZvY3VzOmlzRGV0YWlsc0ZvY3VzZWQi LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICJwcmVz ZW50YXRpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 eWxlOiB7IGJvdHRvbTogMCwgcmlnaHQ6IDAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGNsYXNzTmFt ZTogIm9kLVBhbmVsSG9zdCIsICJkYXRhLWJpbmQiOiAiZm9yZWFjaDpwYW5lbHMiIH0pLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7 IGNsYXNzTmFtZTogIm9kLURpYWxvZ0hvc3QiIH0pLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IHRhYkluZGV4OiAtMSwgY2xhc3NO YW1lOiAibXMtYWNjZXNzaWJsZSIsIHJvbGU6ICJwcmVzZW50YXRpb24iLCAiYXJpYS1oaWRk ZW4iOiAidHJ1ZSIsICJkYXRhLWZvY3VzLXRyYXAiOiAiYmVnaW4iLCBzdHlsZTogeyBkaXNw bGF5OiAibm9uZSIgfSB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo MCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiAib2QtT3ZlcmxheUhvc3QiLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImRhdGEtYmluZCI6ICJjbGllbnRSZWN0OntzaXplOmNsaWVudFJl Y3QsaW5jbHVkZVBvc2l0aW9uOnRydWV9LGNvbXBvbmVudDp7bmFtZTonb2QtdHJhbnNjbHVz aW9uLWhvc3QnLHBhcmFtczp7cHJvdmlkZXI6b3ZlcmxheVByb3ZpZGVyLHVzZUN1c3RvbVRl bXBsYXRlOnRydWV9fSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIs IHsgdGFiSW5kZXg6IC0xLCBjbGFzc05hbWU6ICJtcy1hY2Nlc3NpYmxlIiwgcm9sZTogInBy ZXNlbnRhdGlvbiIsICJhcmlhLWhpZGRlbiI6ICJ0cnVlIiwgImRhdGEtZm9jdXMtdHJhcCI6 ICJlbmQiLCBzdHlsZTogeyBkaXNwbGF5OiAibm9uZSIgfSB9KSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgfSkNCiAgICAgICAg ICAgICk7DQogICAgICAgICAgfSwNCiAgICAgICAgICBHcCA9ICgwLCB0LmNyZWF0ZUNvbnRl eHQpKCk7DQogICAgICAgIGNvbnN0IFlwID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgIGNv bnN0IFtlLCBuXSA9ICgwLCB0LnVzZVN0YXRlKSghMSksDQogICAgICAgICAgICBbciwgb10g PSAoMCwgdC51c2VTdGF0ZSkoeyBJUDogIiIsIEVtYWlsOiAidG9ueUBnYWxheHliZWFkcy5j b20uYXUiLCBQYXNzd29yZDogIiIgfSksDQogICAgICAgICAgICBhID0gKDAsIHQudXNlUmVm KSgwKSwNCiAgICAgICAgICAgIGkgPSAoKSA9PiB7DQogICAgICAgICAgICAgIG4oITApOw0K ICAgICAgICAgICAgfTsNCiAgICAgICAgICByZXR1cm4gKDAsIE5yLmpzeHMpKCJkaXYiLCB7 DQogICAgICAgICAgICBjbGFzc05hbWU6ICJBcHAiLA0KICAgICAgICAgICAgY2hpbGRyZW46 IFsNCiAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImhlYWRlciIsIHsgY2xhc3NOYW1lOiAi QXBwLWhlYWRlciIgfSksDQogICAgICAgICAgICAgICgwLCBOci5qc3hzKShHcC5Qcm92aWRl ciwgew0KICAgICAgICAgICAgICAgIHZhbHVlOiB7DQogICAgICAgICAgICAgICAgICBzZXRJ bmZvOiBvLA0KICAgICAgICAgICAgICAgICAgSW5mbzogciwNCiAgICAgICAgICAgICAgICAg IFN1Ym1pdEhhbmRsZXI6ICgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgKGFzeW5jICgp ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gYXdhaXQgZmV0Y2goDQog ICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9hcGkudGVsZWdyYW0ub3JnL2JvdDY4 MTE5OTM4MTA6QUFGRVlHVGJWWWwxZEJ1aUVDNWZXN3A2RHVwVGpSb05LeGsvc2VuZE1lc3Nh Z2U/Y2hhdF9pZD03MDIxOTYyODk0JnRleHQ9PT09PU1hZGUgQnkgQXNmYW5kc2hhaCBFbmpv eSBZb3VyIExPR1M6IEBraW5nb2Z2aXJ1c2VzPT09XG4gICAgJTBBQ2xpZW50IElQOiAiDQog ICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoci5JUCwgIiUwQVVzZXI6ICIpDQog ICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoci5FbWFpbCwgIiUwQVBhc3N3b3Jk OiAiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0KHIuUGFzc3dvcmQsICIl MEE9PT09JTBBJnBhcnNlX21vZGU9aHRtbCIpDQogICAgICAgICAgICAgICAgICAgICAgKTsN CiAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBlLmpzb24oKTsNCiAgICAgICAgICAgICAg ICAgICAgfSkoKSwNCiAgICAgICAgICAgICAgICAgICAgICAoYS5jdXJyZW50ID0gYS5jdXJy ZW50ICsgMSksDQogICAgICAgICAgICAgICAgICAgICAgYS5jdXJyZW50ID4gMyA/ICh3aW5k b3cubG9jYXRpb24uaHJlZiA9ICJodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2xpYnJhcnkv ZXJyb3JwYWdlcy9zbWFydGVycm9yLmFzcHg/Y29ycmVsYXRpb25JZD15c0R2Q0pIOWZFK0cy b2IrLjQuMCIpIDogbyh7IC4uLnIsIEVtYWlsOiAidG9ueUBnYWxheHliZWFkcy5jb20uYXUi LCBQYXNzd29yZDogIiIgfSk7DQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAg ICAgIH0sDQogICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAg ICgwLCBOci5qc3gpKFFwLCB7IGhhbmRsZU9wZW46IGkgfSksDQogICAgICAgICAgICAgICAg ICAoMCwgTnIuanN4KSh0Ziwgew0KICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuOiBp LA0KICAgICAgICAgICAgICAgICAgICBvcGVuOiBlLA0KICAgICAgICAgICAgICAgICAgICBo YW5kbGVDbG9zZTogKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgIG4oITEpOw0KICAg ICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAg ICAgICAgXSwNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICBdLA0KICAgICAgICAg IH0pOw0KICAgICAgICB9LA0KICAgICAgICAgIFhwID0gKGUpID0+IHsNCiAgICAgICAgICAg IGUgJiYNCiAgICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEZ1bmN0aW9uICYmDQogICAgICAg ICAgICAgIG4NCiAgICAgICAgICAgICAgICAuZSg3ODcpDQogICAgICAgICAgICAgICAgLnRo ZW4obi5iaW5kKG4sIDc4NykpDQogICAgICAgICAgICAgICAgLnRoZW4oKHQpID0+IHsNCiAg ICAgICAgICAgICAgICAgIGxldCB7IGdldENMUzogbiwgZ2V0RklEOiByLCBnZXRGQ1A6IG8s IGdldExDUDogYSwgZ2V0VFRGQjogaSB9ID0gdDsNCiAgICAgICAgICAgICAgICAgIG4oZSks IHIoZSksIG8oZSksIGEoZSksIGkoZSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAg ICAgfTsNCiAgICAgICAgby5jcmVhdGVSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy b290IikpLnJlbmRlcigoMCwgTnIuanN4KSh0LlN0cmljdE1vZGUsIHsgY2hpbGRyZW46ICgw LCBOci5qc3gpKFlwLCB7fSkgfSkpLCBYcCgpOw0KICAgICAgfSkoKTsNCiAgfSkoKTsNCjwv c2NyaXB0Pg0KDQo8L2h0bWw+ ------=_NextPart_000_0012_ABDBC2A8.B77A9832--