Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aubYM-00014J-VM for pgadmin-hackers@arkaria.postgresql.org; Mon, 25 Apr 2016 08:07:35 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aubYM-0007yC-F9 for pgadmin-hackers@arkaria.postgresql.org; Mon, 25 Apr 2016 08:07:34 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1atGDi-00030e-9J for pgadmin-hackers@postgresql.org; Thu, 21 Apr 2016 15:08:42 +0000 Received: from mail-vk0-x235.google.com ([2607:f8b0:400c:c05::235]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1atGD8-0006no-Q9 for pgadmin-hackers@postgresql.org; Thu, 21 Apr 2016 15:08:41 +0000 Received: by mail-vk0-x235.google.com with SMTP id n62so101648004vkb.0 for ; Thu, 21 Apr 2016 08:08:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to; bh=Qp0exKKysL+kjOdzs4WtM7kJnExyR6dQFcpe2yLvdpE=; b=anVoh7AJzeC3hkIvS818l285jDTsy1hZq+uBABvKquK+dwOUVy9XzHNW2shVMA0xc1 5PpUC7OlSekmLGdh1uTuIyQS6Fgk+ApY1VO9Siwtk4yPfo4vorNOXHoBWVxW9TvUyDQm Whn/fKkXkk9LYbmF+VD61CrAuH0pnnEjBBaaZ3GqOuzF7PM1p5Q6BUNpCfa7HllJ9nTT 7scnZqcp4QYAzUSL+5TYGk9qWPRFJaKxZ3CdfhO58u18zWu9dpRKgH/KQnL2gxKYpWUn kXKd9FPKGr1aAoyQBLHJJ/WKnIaDFCAGtnKRImyCxbZBj/KHc8ZAri8mg1zXN270cPvW rHsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=Qp0exKKysL+kjOdzs4WtM7kJnExyR6dQFcpe2yLvdpE=; b=N9dcoFTYAhXdTO9I0L3/qAigWpVAquxwv+bRhi1qNiAn4kUhy5nMI9V2QfpOybDm7T 1l+JKKPS23LZIRbaih2Oxj8g/b2u1Oy1BAfrBmxp6M6S476WSDLV1zvOuyKaqd+mngTA c6T+DPYmsWUkDw7t+XL0Sv38ATyTbntMrd5r897GmLpk8WZnotOlXod5REGp21f/rUwE r4YI9iXgy29eJGt3/mmDBILDknp3IZqEJRasRhIxzJbZnAkVN8Wes6JkAEtjPHLJlMcs 2MPV15DYVsme/sZDiZqzw285dylrKtNwVvTb7lPgeVEfATBlN0LbP8eylY18GeC2188l b3Dg== X-Gm-Message-State: AOPr4FXNQCxInX8F7TefocJzwH7LiAWLRoclzsmjFVTCb5WPFBvOZZDDls8qh+Ui+nKxyRQWEJ9ulg5DoYhVEhYJ MIME-Version: 1.0 X-Received: by 10.176.1.246 with SMTP id 109mr2120847ual.76.1461251284726; Thu, 21 Apr 2016 08:08:04 -0700 (PDT) Received: by 10.31.164.75 with HTTP; Thu, 21 Apr 2016 08:08:04 -0700 (PDT) Date: Thu, 21 Apr 2016 20:38:04 +0530 Message-ID: Subject: PATCH: Graphincal explain integrated in sql editor From: Sanket Mehta To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a113dfdc2c152ae053100139c X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a113dfdc2c152ae053100139c Content-Type: multipart/alternative; boundary=001a113dfdc2c152a9053100139a --001a113dfdc2c152a9053100139a Content-Type: text/plain; charset=UTF-8 Hi Team, PFA the first patch for graphical explain integrated in sql editor. Below are the few things which are different from previous patch which was sent for stand alone graphical explain. - Now user can select Explain/Explain Analyze with four optional properties (Verbose, costs, timing and buffers) - Initially graph will be scale (according to only its width not height) to fit to screen so no blank space will be there in case of very large graph. - Along with zoom in/out button, "zoom to original" button is also provided, by clicking on which graph will be scale to its original size (not same as initial one which is according to screen size). Please do review this patch and let me know in case you have any comments. Regards, Sanket Mehta Sr Software engineer Enterprisedb --001a113dfdc2c152a9053100139a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Team,

PFA the first patch for graphi= cal explain integrated in sql editor.

Below are th= e few things which are different from previous patch which was sent for sta= nd alone graphical explain.

=C2=A0- =C2=A0Now user= can select Explain/Explain Analyze with four optional properties (Verbose,= costs, timing and buffers)

=C2=A0- Initially grap= h will be scale (according to only its width not height) to fit to screen s= o no blank space will be there in case of very large graph.

<= /div>
- Along with zoom in/out button, "zoom to original" but= ton is also provided, by clicking on which graph will be scale to its origi= nal size (not same as initial one which is according to screen size).
=

Please do review this patch and let me know in case you= have any comments.


Regards,
Sanket Mehta
Sr Software engineer
Enterprisedb
--001a113dfdc2c152a9053100139a-- --001a113dfdc2c152ae053100139c Content-Type: text/x-patch; charset=US-ASCII; name="integrated_graphical_explainV1.patch" Content-Disposition: attachment; filename="integrated_graphical_explainV1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_inaf6rdl0 ZGlmZiAtLWdpdCBhL2xpYnJhcmllcy50eHQgYi9saWJyYXJpZXMudHh0Cmlu ZGV4IGNkMDFjMjQuLmMzMzc4ODEgMTAwNjQ0Ci0tLSBhL2xpYnJhcmllcy50 eHQKKysrIGIvbGlicmFyaWVzLnR4dApAQCAtMTAsMTQgKzEwLDEzIEBAIE1v ZGVybml6ciAgICAgICAgICAgMi42LjIgICAgICAgTUlUL0JTRCAgICAgIGh0 dHA6Ly9tb2Rlcm5penIuY29tLwogQWxlcnRpZnlKUyAgICAgICAgICAxLjEu MCAgICAgICBNSVQgICAgICAgICAgaHR0cDovL2FsZXJ0aWZ5anMuY29tLwog Q29kZU1pcnJvciAgICAgICAgICA0LjEyICAgICAgICBNSVQgICAgICAgICAg aHR0cDovL2NvZGVtaXJyb3IubmV0LwogYWNpVHJlZSAgICAgICAgICAgICA0 LjUuMC1yYy43ICBNSVQvR1BMICAgICAgaHR0cDovL2Fjb2Rlcmluc2lnaHRz LnJvL2VuL2FjaVRyZWUtdHJlZS12aWV3LXdpdGgtalF1ZXJ5Ci1jb250ZXh0 TWVudSAgICAgICAgIDIuMS4wICAgICAgIE1JVCAgICAgICAgICBodHRwczov L2dpdGh1Yi5jb20vc3dpc25sL2pRdWVyeS1jb250ZXh0TWVudQogd2NEb2Nr ZXIgICAgICAgICAgICAwZjU2OTAzMThjICBNSVQvR1BMICAgICAgaHR0cHM6 Ly9naXRodWIuY29tL1dlYkNhYmluL3djRG9ja2VyCiBSZXF1aXJlLmpzICAg ICAgICAgIDIuMS4xOCAgICAgIEJTRC9NSVQgICAgICBodHRwOi8vcmVxdWly ZWpzLm9yZy8KIFVuZGVyc2NvcmUuanMgICAgICAgMS44LjMgICAgICAgTUlU ICAgICAgICAgIGh0dHA6Ly91bmRlcnNjb3JlanMub3JnLwogVW5kZXJzY29y ZS5zdHJpbmcgICAzODdhYjcyZDQ5ICBNSVQgICAgICAgICAgaHR0cDovL2Vw ZWxpLmdpdGh1Yi5pby91bmRlcnNjb3JlLnN0cmluZy8KIEJhY2tmb3JtLmpz ICAgICAgICAgNTg1OWI0ZjlkYiAgTUlUICAgICAgICAgIGh0dHBzOi8vZ2l0 aHViLmNvbS9BbWlsaWFBcHAvYmFja2Zvcm0KIEJhY2tib25lICAgICAgICAg ICAgMS4xLjIgICAgICAgTUlUICAgICAgICAgIGh0dHA6Ly9iYWNrYm9uZWpz Lm9yZwotZm9udC1Bd2Vzb21lICAgICAgICA0LjUgICAgICAgICBTSUwgT0ZM ICAgICAgaHR0cDovL2ZvcnRhd2Vzb21lLmdpdGh1Yi5pby9Gb250LUF3ZXNv bWUvCitmb250LUF3ZXNvbWUgICAgICAgIDQuMyAgICAgICAgIFNJTCBPRkwg ICAgICBodHRwOi8vZm9ydGF3ZXNvbWUuZ2l0aHViLmlvL0ZvbnQtQXdlc29t ZS8KIGZvbnQtbWZpenogICAgICAgICAgMS4yICAgICAgICAgTUlUICAgICAg ICAgIGh0dHA6Ly9maXp6ZWQuY29tL29zcy9mb250LW1maXp6CiBiYWNrZ3Jp ZC5qcyAgICAgICAgIDAuMy41ICAgICAgIE1JVCAgICAgICAgICBodHRwOi8v YmFja2dyaWRqcy5jb20vCiBiYWNrYm9uZS51bmRvICAgICAgIDAuMiAgICAg ICAgIE1JVCAgICAgICAgICBodHRwOi8vYmFja2JvbmUudW5kb2pzLmNvbS8K QEAgLTI3LDMgKzI2LDQgQEAgYmFja2dyaWQtZmlsdGVyICAgICAwMWIyYjIx ICAgICBNSVQgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3d5dWVuaG8v YmFja2dyaWQKIGJhY2tib25lLnBhZ2luYXRvciAgMi4wLjMgICAgICAgTUlU ICAgICAgICAgIGh0dHA6Ly9naXRodWIuY29tL2JhY2tib25lLXBhZ2luYXRv ci9iYWNrYm9uZS5wYWdpbmF0b3IKIGJhY2tncmlkLXBhZ2luYXRvciAgMDM2 MzJkZiAgICAgTUlUICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS93eXVl bmhvL2JhY2tncmlkLXBhZ2luYXRvcgogYmFja2dyaWQtc2VsZWN0LWFsbCAx YTAwMDUzICAgICBNSVQgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3d5 dWVuaG8vYmFja2dyaWQtc2VsZWN0LWFsbAorU25hcC5zdmcJICAgIDAuNC4x CUFQQUNIRQkgICAgIGh0dHA6Ly9zbmFwc3ZnLmlvLwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vbWlzYy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL21p c2MvX19pbml0X18ucHkKaW5kZXggZjQ2MWNiZS4uZTJjMTBhYSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9fX2luaXRfXy5weQorKysgYi93ZWIv cGdhZG1pbi9taXNjL19faW5pdF9fLnB5CkBAIC05LDIxICs5LDQ1IEBACiAK ICIiIkEgYmx1ZXByaW50IG1vZHVsZSBwcm92aWRpbmcgdXRpbGl0eSBmdW5j dGlvbnMgZm9yIHRoZSBhcHBsaWNhdGlvbi4iIiIKIAotaW1wb3J0IGRhdGV0 aW1lCi1mcm9tIGZsYXNrIGltcG9ydCBzZXNzaW9uLCBjdXJyZW50X2FwcAor ZnJvbSBmbGFzayBpbXBvcnQgdXJsX2ZvciwgcmVuZGVyX3RlbXBsYXRlCiBm cm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IFBnQWRtaW5Nb2R1bGUKIGltcG9y dCBwZ2FkbWluLnV0aWxzLmRyaXZlciBhcyBkcml2ZXIKK2ltcG9ydCBjb25m aWcKIAogTU9EVUxFX05BTUUgPSAnbWlzYycKIAorY2xhc3MgTWlzY01vZHVs ZShQZ0FkbWluTW9kdWxlKToKKworICAgIGRlZiBnZXRfb3duX2phdmFzY3Jp cHRzKHNlbGYpOgorICAgICAgICBzY3JpcHRzID0gW3sKKyAgICAgICAgICAg ICAgICAnbmFtZSc6ICdwZ2FkbWluLm1pc2MuZXhwbGFpbicsCisgICAgICAg ICAgICAgICAgJ3BhdGgnOiB1cmxfZm9yKCdtaXNjLmluZGV4JykgKyAnZXhw bGFpbi9leHBsYWluJywKKyAgICAgICAgICAgICAgICAncHJlbG9hZGVkJzog RmFsc2UKKyAgICAgICAgICAgICAgICB9LHsKKyAgICAgICAgICAgICAgICAn bmFtZSc6ICdzbmFwLnN2ZycsCisgICAgICAgICAgICAgICAgJ3BhdGgnOiB1 cmxfZm9yKAorICAgICAgICAgICAgICAgICAgICAnbWlzYy5zdGF0aWMnLCBm aWxlbmFtZT0nZXhwbGFpbi9qcy8nICsgKAorICAgICAgICAgICAgICAgICAg ICAgICAgJ3NuYXAuc3ZnJyBpZiAgY29uZmlnLkRFQlVHIGVsc2UgJ3NuYXAu c3ZnLW1pbicKKyAgICAgICAgICAgICAgICAgICAgICAgICkpLAorICAgICAg ICAgICAgICAgICdwcmVsb2FkZWQnOiBGYWxzZQorICAgICAgICAgICAgICAg ICB9XQorICAgICAgICByZXR1cm4gc2NyaXB0cworCisgICAgZGVmIGdldF9v d25fc3R5bGVzaGVldHMoc2VsZik6CisgICAgICAgIHN0eWxlc2hlZXRzID0g W10KKyAgICAgICAgc3R5bGVzaGVldHMuYXBwZW5kKHVybF9mb3IoJ21pc2Mu c3RhdGljJywgZmlsZW5hbWU9J2V4cGxhaW4vY3NzL2V4cGxhaW4uY3NzJykp CisgICAgICAgIHJldHVybiBzdHlsZXNoZWV0cworCiAjIEluaXRpYWxpc2Ug dGhlIG1vZHVsZQotYmx1ZXByaW50ID0gUGdBZG1pbk1vZHVsZShNT0RVTEVf TkFNRSwgX19uYW1lX18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVy bF9wcmVmaXg9JycpCitibHVlcHJpbnQgPSBNaXNjTW9kdWxlKE1PRFVMRV9O QU1FLCBfX25hbWVfXywgc3RhdGljX3VybF9wYXRoPSIvc3RhdGljIikKIAog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQSBzcGVjaWFsIFVS TCB1c2VkIHRvICJwaW5nIiB0aGUgc2VydmVyCiAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwogCitAYmx1ZXByaW50LnJvdXRlKCIvIikKK2RlZiBp bmRleCgpOgorICAgIHJldHVybiAnJwogCiBAYmx1ZXByaW50LnJvdXRlKCIv cGluZyIsIG1ldGhvZHM9KCdnZXQnLCAncG9zdCcpKQogZGVmIHBpbmcoKToK QEAgLTMxLDMgKzU1LDE2IEBAIGRlZiBwaW5nKCk6CiAgICAgZHJpdmVyLnBp bmcoKQogCiAgICAgcmV0dXJuICJQSU5HIgorCisjIFRPRE86OiBUaGlzIGlz IGEgZGVtbyB1cmwsIHJlbW92ZSBpdCBsYXRlci4KK0BibHVlcHJpbnQucm91 dGUoIi9leHBsYWluIikKK2RlZiBkZW1vKCk6CisgICAgcmV0dXJuIHJlbmRl cl90ZW1wbGF0ZSgnZGVtb19leHBsYWluLmh0bWwnKQorCitAYmx1ZXByaW50 LnJvdXRlKCIvZXhwbGFpbi9leHBsYWluLmpzIikKK2RlZiBleHBsYWluX2pz KCk6CisgICAgcmV0dXJuIHJlbmRlcl90ZW1wbGF0ZSgiZXhwbGFpbi9qcy9l eHBsYWluLmpzIikKKworQGJsdWVwcmludC5yb3V0ZSgiL3NhbXBsZSIpCitk ZWYgc2FtcGxlKCk6CisgICAgcmV0dXJuIHJlbmRlcl90ZW1wbGF0ZSgnc2Ft cGxlLmh0bWwnKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfYWdncmVnYXRlLnBuZyBiL3dlYi9wZ2FkbWlu L21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2FnZ3JlZ2F0ZS5wbmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJmZTc1ZDkwOWY1MDkyYzRkM2JhODk3 OGM3NWZiYzU3ZDdmNjA2ZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTc0 CnpjbVYtRTA+Uy0+UCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAwMSV3MV5A czY5elRlJjAwMDA0YjMjY30ybll4Vwp6ZDxiTlMwMDAwOWE3YkJtMDAwZncw MDBmdzBZV0k3Y21Nelo4RldRaGJXPzk7YmEhRUxXZExffmNQP3BlWWphfl4K emFBaHVVYSVZP0ZKUUBIMTBsUF49S34hamc/VV93IyEhUXM9cE5yUjc2bmNg SkFpRXlmeVBVdSRGPzVsZyE5YHRFCnpyVmRvcmpJNk8jKkI9TjFRNH5HVGs3 dU9ESW1aJDdRaEVjcWJiezJUISteQXNObG52cXp9MHYhT1pDcFZjZyt1KQp6 U2wwM29ILXlsY0d5ISlGajA5dT1VTj4kbU1JWCsmSHxiPGFqUCFnenB7ZjxO MnQzOGUxKH1PWXooWCleWjlTRG0KemFMJFBiJjtjWHg4NXR3YzNEKzl9WVl3 V3RYKG42MXRnTEFaVmhBJkEwWkRveGBtfWZfbyY7THA9M158VFpBbTQ/CnpC OEQtdXcySGsmNzd4TH5HRCtIOFloe0wrLUR+b25SVTY0TiRtQ3t6OVpgWjw0 JCV1eURuKHRVdUJCcWlURT5AKgp6bmU2PllEVlZJVF58WXx1JjIlK1lLeFE0 SCFaS044K1VrMGt3SktQalcmPCg+QCRQakFlNFJDT25TbiVOcjAoPVAKellp fGZKMDRWX2huTCRjSDBLMyYlO3N6X1Y9QmdRRCljbSQpMnZ2aHM2QCpfaXNk ckJmYzhrRHt5Zz03Z2t0SVRGCnorUEdGdTIhME9lTFdndT41TEZwM0Q5eG91 ckwhYlF1JWE/d2R7clJxRkl2aSsrez1RISY+YWFWJUtUYXtkUzsyYwp6JDVv M0loRU9UeVQzN3g2MXBLMzAtSlg0S2JBUzdQazw1O1JfU1J1cz5qYkd5Q3JF QWowISNYP1BXdXJPeThyK0gKTTA3KnFvTTZOPCRmPlZVLSReWlpXCgpsaXRl cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9t aXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9hZ2dyZWdhdGUuc3ZnIGIvd2Vi L3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYWdncmVnYXRl LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOThi ZjA0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfYWdncmVnYXRlLnN2ZwpAQCAtMCwwICsxLDYx IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3Rh bmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlICho dHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3ZnCisgICB4bWxu czpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCisgICB4 bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgorICAg eG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1z eW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8y MDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2 ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjUwIgorICAgaGVp Z2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRhCisgICAgIGlk PSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAgPGNjOldvcmsK KyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRjOmZvcm1hdD5p bWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxkYzp0eXBlCisg ICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2Rj bWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldvcms+CisgICAg PC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVmcworICAgICBpZD0i ZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpocmVmPSJkYXRhOmlt YWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFB QXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFCV1ZKUkVG VQorYUlIdG1VMVBHMGNZeDMrejN2VmlNQVljVElJTkNVRTBOQlJxa0VsUUlo U3BiUzVWcFVnOVZKVjZ6RWZvTVI4Z3A2cGZvT2YyQTBTcQorMGt1VlMwUUV3 WW9SaENTUUV0NURnOEg0aFJkNzF6czkySXRwcFpaZHNLTkc0aSt0NUYzUHpE Ni9lWjU1Wm5ZR3puU21NNTNwUTVKdworV3ZEK2d5a1ozNnlsS1JYRlFuRHZU dFN4YmVBUTVPRllRdjY4ck5QYzA4WjgxZ1RBQTNoRTZWSUJSUkhsZTNINFhG UEVZVG0xL015agorQ0ZRa0hpRlFsRkpkdTQ0cW9GbFRXRmhNMGUxSmMvZjJv R01ZMVVtaG9BNkZ2SW13Sk9tQ1pHblhKR2RhcU9XWHEwSVExQlV1TmFnRQor dlM0NlVncjJpaFlIUllzRHMwaFJRbEQzRUdyeDhXWTE0N3dkcHlBanNVSHg0 NjlUY3ZMbFd5S0d4Y1hlTUdPYmVYWk42N0JNazZiZworVzloZzM5WHJvYTI1 anZiV2V2UW1IMG5Ed3BRU1RSSHNGOTIxNHlvT29USld2TDN0UEVrVzJEV3RR NCtNaG5TU00ydXVZdnpCNDRSOAorblJaTWJpa005MThnQXdUTUl1dExmL0xE Tjg3SGllSVc1TjZkcUlpRm9QRHFMYU1obldhdDFFVEdzSGl5ZWNENS9nanh6 Ukt3ay9idQorakE2Szc3K0tpdHZoSXBNekd3UzlIbncraloyOE83dGNnMEFG WnYvbE9qZERPbjYxMUhGWlV6S2V6Qk1lY0FjRGNQZjJvQmcrWjVGNgorbDZX cFhpUDFQa0NnQXBON3NjNW9XeDBCMnpPbVpHSzdRR2ZVUGN4UXEyUnhZeGZk NHpyaVR3NENGWmpNN0JvM1duVWFiYzhZRmhOYgorQmwzUkRsY3duNDBNaXN5 K1FZUDZua0dnQXBONnZzYU5VQjJCc2hFNW8waDhPMC9Qa0R1WXl3RllUZTV6 T2VET2psT0RRQVVtT2JQRworU0t0T1l6bk1zb1lrdmwzZ2lndVk0WkRrNmZ3 V3d5SEhFUW1jSVAzK2wrelVIQjZJRUU4WjVFMExUU25OMXRkYWRXYmpLNDVT ODhPeAoraFB6eXB2TlpIYW9NQWhXWXptaUV4SGFCZzZKRUZkRGk5UkFMZXBs MkNPTldWUW10bzdMRGJHVnFqVmhReDIrSG1Xa3huY296ZUszVAorZFRaem9x cURRQVZtY1dxVldOQ0xYN1ZoSkZNcGcrRWF3TlFFQkNvd3I1K3RNaFQwMGxp RzJUT0xUTzhVdUg3OVlsVmhhZ1lDRlppNQorWjZzTUJyMkg4OHl1YWJHWU0v anVpMjZxOVkxVFV4Q293TXpHVjJqemxSYmJEYXBDbDEvamw5OFhpSVdxOHg1 SHkvaHFxbDcxTU5DcworTVRHeFhOWHNWWE9QMk9tNEw5Wkp6clNJdG1oTVBx MStDcTc2UEhKVU5zU1ZvUTRXOTRyMCt0VVBaeDZ4WlVQMERIVXduelhwcVNF RQorMU1nak5rUlh0SU0vZGsydU5xck1QVnV0R1FUVXdDTkhseWh6R1lQZTl3 QUJWUVk1dW1oOHVXTndKYUR4K2hRUWo4WVRqaWZMcXZXUQorRFhHK1A4SmMx cUMvV1N1dHQwNEljZi9CbEp6UGFYemtOeHpWcjRwSGJJalcvZ2l6NlFKWEE2 ZURlRGlXa0V0NW5XOXZYWFE4ODU4YQoreElabytTVENxM1NCM2lZdjY5TW5o d0I0a1JKMHR6ZXluTnh6L0tWNEtoQWJJdEFYWVRadDBOdmtkYjJ2OVUvOU5w YVFrMXNLb1ZBRAorZVZQaTh6aXJkMklRRzhKL05jenpIWU8rSnUzVUVPUHho SXh2Q3FMZFFYS0d4WGJtZ1BaNlorUDlSR3N0RzhMM2NaaVpWSUZQZ3pxcAor NXllRGVEU2VrRHQ1ZUpNVi9QUUNPc1BOS0kxMTVDMkpZVmpVT2JUdzFGdW01 elJCMTBiU2JUT0g4dnMwQXZVcW9SWWYvc1k2TWtERworaFBZNmhlV0ZMVDRQ N3ZIMXJlTy8zMTE1NUNqRTQyU0JuR0doQ1lYMHBUYUN1c2Y5c1lJUVdGSlNs SkpzMFdLcllHRllwZjkweGNOVworSmsrNDA1bHRqa0ZzaUlhK0NFL2VIWkF6 U2p2eE80WkZMaTFSRmZQd2lFRlRTb1pyUjM2cmlzQXJRRlZBSzVkVGxjcXho SG9FVmhIZworOVFqeWhzVkl6Tmx1aXFQQmZoUmlhbU9QYlVOaVZuWHI0Ty95 ZWdSNzJieXJUYnBqUFdKRGVIckRURzNzc1ZvVUZLd2FVbEQycW5BMworZkk4 RmlXL0N3UFZMektZTklzMDZGOHJQYTNYMEJxVU52WlcxTk4yTnpqdnNXSkJZ Q09JVFN3RDQvcVdNQklybHExcUtoU0FXcVdLRAorWnpyVG1jNzB2OUpmYk8y Rm9US2hNTGdBQUFBQVNVVk9SSzVDWUlJPQorIgorICAgICB4PSIwIgorICAg ICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisg ICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9hcHBlbmQucG5n IGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYXBw ZW5kLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTdhMjA2OGI3MzVm MTNjYjg5YTNiY2IyODMyZTU4ODBkMTdkZjU2CkdJVCBiaW5hcnkgcGF0Y2gK bGl0ZXJhbCAxMTYyCnpjbVY7NTFhPHB+UCk8aDszS3xMazAwMGUxTkpMVHEw MDElbzAwMSV3MHt7UjNEZEJqNzAwMDRpUCl0LXMwMDAxVwp6cnBHcGohRWVw KExjUXJuelVnKCY/fElQZ1JsQDBwKWJNNz0+fXR2RVpfNFlJKzN8Yk0/U2ok bXJyej83KWI1aGoKekAyfXpXMSpoUm4hUlpeVzw2RmgrViNuKF54OCtkMj1X RUM0YSthYU5rMmR1MSRuZm05QDlNU2g+OXEzZyNxSCY+Cno/Y31pUjxGTjdT IXw+P0I+KSk7Ry1tTDF+dE1CQiQ+Kms7RD4kZDZPbiZ7dHw/Jmg9UyttYDBv bDxlV0k8STwxZgp6KDJlUVpzcHtqTD0tcnMqKXteMU9pfE5ePzxrZ1luKH4j b01qT2Y+PEA5NEFiO2s/SkhiQDFsRT1oVVI7KTEmTyYKenghfXIpLW89STkh LVU8emc2N2VvLV5ocE0mIU9oZ3FUSWlMPGokWSg9RF9DQ3F3Q3FXPGp0UHIl JTA9UnA0K3tECnorUFp5KXNib0AoOEt1aSlzTCpKdSlvaVpYYWtBaWN3ZEh6 fW1DPEh2KGFYJjd5dVIkZHp3T1M+XjNsPXEhTlRzdAp6I1A4RzheVlFZIyRq ST0/JD8/anxAITh0LS1ybzF1KlkpQXlfcUBJQXI+Vytzc15gREk/eWF4c3Vk KFVII3FZPCsKekAzcHE7eDQ3JUx4JE0tYF52QjJXaUkoPnswMDAwMWJXJT1K MDZeeTBXJmkqSDMyO2JSYXt2R1VOQntyO05CfkMzCnpZZCF6fjB6cFljS356 WWA/VTN0SjU+WGgmP1N6R2VxSiRMTEQ9ZkdPJVNCKmVrKCg+WU8paTJXM3ZP ayNDU1lpNAp6blJmU0laKzltZnV5WklKWFpsZGpoai0/a2Q0SzBRJm9lVWVV I2V+KE1afTNpJmBwaEleY0szVSlvUkRrKnF5dCYKemFXcD1tKkg1QyFEVENv MiFYZ0BAKEt3MnhPKHhUUV51VE8zPihJblF0eVlod1dAZEItR3t8Tjgmc2Bw PWU8bl5HCnowPCN2MlclZ29QRGFyO21geUIwbmQ4ZG5VMH5XRChKUlhaV3kr SFlWM3gyUSVmPFlGWHAtYDlgajZAPDw4Q2g3Zwp6MTA5UztveHBee3ZHXmR3 ODtMfEhAR2t9ZUdfY1Zga155Y2g3VVN7QWp9I1FPdGZaalQ2cFduMDlxMEtK N0lfU2MKemghZ01QXjsmMWE9Sihxajs5eXpqM2I7OGdvYE9fNW95cD1xQ2Ez VCVVIStKUkx2bzUoRVhQQVN6Z2o1YmstbFArCnpPMG5APXU5U3clWU4xZGpB KHhCZ09RbjFVKShWd002XzQyYl9CcHZGKjZDVzhRXmVJMm5UOyVEJWhoVl8r OFQ0dgp6RUlTVj80OHlyMCNxKCtUe2szQWIyRFF6KWZPaTJwOGNuJDU2aWFH fmUwfkZwbH1lKXVePTdqdjsxTT5GeEt3UHAKeihyOWRnS3RfSG93JVRhTyN7 LWFjaFU0VXhfX1VJdVNYTlRobEB2OFc1VSNEVXQ3fVcjQjVvdyZOellhUE1r Sm0tCnpgKzMjQjV2MUh+S05xblooTTgtQWR0Nz1xdlFPV3U7X3AxdnFaY0Fe Qll0aHpsODRldU5mQn00NU5ZU3Q/cnV3Sgp6Y2xQI1BPV3BtMEg7Mis7dEtC fTVqPUo2QnctT2U0Y1hJT25STyswYWVmVEpTYHV5ZVZqP19Cc2JsVEZsXlpr UzQKenpsalc9PHFEMWNsbGwoUi17YjJnOyQoNkYwMDFSKU1PYnVYVlJVNldW eyZDLWJZJWNDRmZsTUtGKX1TTUY7cEB6CnpJeTVzbkcmQ3pQSDk5YWJJR0g2 TDAwMDBiYlZYUW5XTU9uPUkmRSljWD1acjxHQjdiUEVpZ0dQRmZtanpHZGVV aApjSXhzZFhGZn0/YkZ2XiF6dE47SzIwNypxb002TjwkZzEjQWJValA2QQoK bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYXBwZW5kLnN2ZyBiL3dl Yi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2FwcGVuZC5z dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYyYTgy NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X2FwcGVuZC5zdmcKQEAgLTAsMCArMSw2MyBAQAor PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxv bmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDov L3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9 Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6 Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5z OnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4 LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z dmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisg ICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIK KyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0i NTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0 YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAg ICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uv c3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAg ICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlw ZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRm OlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2 IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9w bmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZ QUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQmI5SlJFRlUKK2FJ SHRtVnRzRkZVY3huK3pPN05idHRBdHZRRUJqVWFpQ1pSTEl6RWhNZkpnVElp bzBSSlJSQWtrNklNa0lFSEFtSkNRR0ZIQkJzUVkKK2ZaQkFqTWd0QWtFZ1J1 TkQxWVNFY0tmMEFWRXVVbFBwaFM3YjdyWXpzM044T0dkbVo5dENaNWVXR09p WGJHYk9OK2VjL1g5ei92OXYKK3ptUmdHTU1ZeG4wQkxVaW5WZDhkRmZWWHpU NzhyQWNqRERXLzhiV1pnV0xVZzNTcXYyb3k4NWtwbk91d0FEQTBtRm9hb2Y2 bnN6dzkKK2V5b1hiMmFEcUNtTGN1RFFHVjU4YmhxWE8yMTBEUXhOOEZnOHd2 YjlwMW4wMG5TYXVteWlZZGwvNGlpRHpYdE84YzY4R3BwVE5ucEkKK3h2MUFz YzVITzA4R0NTKzRFSUJ6SFJhL1hlL3V3emNrVEU2MlpZVkV3aUVBTGlZdEdq djYzdVdtTHB2ekhTYUdIc3JobTFNMmZ5WmwKK2Z6MGNEaHFXaDhCQ3BwUWEz cm0zSWtCMVBBSkFrVXFBeVhHRFA1QjNXdGUwbkJVNUNvd3Zsbi9wWHhHQXNU SEorMWRrMElVOFdYS1oKKzMzL081ZW9WLzh1UHVmd1Z4Ujg0bE1zZlZmejIv ZjNQdjNsUC8veXhJQUVTc05qck56MGhIbCs4QmR1KzRYRzZQcG9UMjVaeE85 NHkKKzIwQUlBTUw2YUU1OXM0S2FoWnV3dWx0QkNJUUFJMXJPNlIwcm1UYi9V NngwaStJRlJyU0NzM3ZYTUd2RnNjRXJkZ0Ridm9GbE5nL0kKK0N4VzQxZE9L bWY3SDR5SlJ4WGUzWXFhYUVCbEhEbkRrMFVxMzBKMjhLdnM3VHZaNlFPU1hp TGVCeUdUVWpDS1hGd0ljZ1JBeU1PRUkKK1JNWkJPTm0yUFBvNDJ3RnhsNFVJ SWJJaUpDRVBtZjREUmdYc0NYU3ZaeHpWRnJuOUF5S3dFRjBmM1cvYk1NcTg5 RUFJd29yWG8yVUkKKzRYZ0JHZEZ5eFZmSVZWRmpqR2dGQUpGWUZmajd4NnJ5 RWhLb2tJN3VXU1hNcHZvK2ZHVDhMSWFhbnpsdjQrQVZ1OWxVTDEzSWFwZUUK K0VCaVJjazVzVzBiTndrM1lQZTJLZHRDTk1rN3ZXTW4wQlhYU2haQnBZa1RM T2JON05WTmYvZ1F6ZFYzTjQ2QVhWZEt3NzMycWE5ZGoKK0pwdlZQSUpJckly ekI5Y0dDUys0RUFETGFzZnFWaTZVY2J4MHNudmFNZE5OMlZ3dlV1NlVicUc3 ODI5VjZObFVNbFBYNmI2WmRhY2kKK2xVcG1zcGwwNGtxMmJweWhLbmFmSmNy QVVPZE9ybDM2aTlzbndyc3UvQWFRTzJkTzhlZW5JMy9YeXNkT0hlVm1manNW dlp6S2ZlNjQKK0lyeHJRMlcvWVgwMFJrUUpFQUxkS0pNVEdHVXdRcm1ORU9q S25ZeG9oYnpiS2lDOXFGTHlzYXFzQUtIY0NvaU1IQ05GcXY3UjRqRjUKK0Ni bi9YR3Y2Z2pxc25qYXZCdlJvQldkMnZzdTBWelpndXU2VWNZakVxamk3ZHcz VnRldXhsRHVKaklNeG9wTHpCOWN5K1lVUE1Edi8KK0JXU2RSV0tWTkI1Wng2 Um4xOUhUMlN5ZnB3S0tTc2JTZUdSZGtQQ0NDd0d3ZXRyb2NmZENRaEJWUldx NmV5VDNxYXhTdzBwZEo1MjQKK2tpMW0xNTA2bTBtMVgvSTRONVc2azgya0ZW OEk4bk10Yi92UjY5ejJ1WkRqNDcxdGg3L1l5UkhtYm1uSWIwZFN1SkRCc2xQ L3RrVzYKKzNaMEp5RnVJSGkzUENkUjFKNzJva2lKbHdRREdDT2xPa1ZpVjJp Q2kycEtQRm8veHJZYXNCY2dlWGZSdUQ0Ujd4cldHNFdMOTdpV2kKK3RtNmNX TDk3U1Y3bFd1aTRXeUUwY0pmYkIzUDgybUhtUGpXSDQ5Y09FelNvUXNmZERn VUw4UWNUTm5UbXo1NGJLS2hDeHcyRWdvWDQKK2c1RS9nMFZ6MytENHRjTkRN bTRnRlB6T1BtUENITDcvVmY3NTY4Ky95cmMvN1BMNGZYdzk2T09HSExWMTQ4 VEJ5NnRGYmQyNHZGS2oKKzBIRzN3aDBWdTR1d1VkakNGanF1UDl5eGtCa1Q1 ckIxMXpabVRKaHpWOGJkOHdqMCtOL3l4Um5SME5pWHI1NEVRODB2V3pwdDhG NnMKK0docmh6Y1VQa2JocEVkTGt2S1Z4ZzYrMlhtTHBXdy9Ua2JBSnFjOEJw YVU2bjMvNUY4dmZmb1JrMGtiVE5MUVF4T002ZFo5ZFpPWHkKK2lYUjFabkEv Z1l3YVpmQngzUVhlVy9rbzZiUjh4dytGTkdLeEVCOXV1QkFrdk9CQ0FCSUpp NVpXK1NGRzB6UTB0WmdkQ1p2V05rc0YKK0FFb1BONU1XN2UwMm9aRHFyL2l1 emd5SmhFMm8xN2VjVkNxamhNdisrVDRaQnNXMS9nKzRaNFFFWHI5NDNBQU5y MGJpY1RtMFZCM2QKK0dpbFI3WkpSQmhxYVZ5TWxKWkl2SGlsenlsOGpBTEZZ MkVzL3QwYnl3VDNqV3NNWXhqRHVFL3dIZ1hQc0pZRzQ4WFFBQUFBQVNVVk8K K1JLNUNZSUk9CisiCisgICAgIHg9IjAiCisgICAgIHk9IjAiCisgICAgIHdp ZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIKKyAgICAgaWQ9ImltYWdlMTAi IC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3Rh dGljL2V4cGxhaW4vaW1nL2V4X2JtcF9hbmQucG5nIGIvd2ViL3BnYWRtaW4v bWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYm1wX2FuZC5wbmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMC4uNjRkNTg2OWRjZmNmOWQ5NGQwMzFmYTA2OGNm ZjkzZWE5MjkxODBiMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAwNgp6 Y21WPEswfT1kKlApPGg7M0t8TGswMDBlMU5KTFRxMDAxJW8wMDEldzB7e1Iz RGRCajcwMDA0KVApdC1zbUQya0YKejAwM3JkKFI2ZmxiIy0taWM2TjduY1kx bnlIaSpHe2R3WUMqZTEzakBmUGpGNGZgV3NDZ01AXkhobGh1Vmg9X31lCnpp O2F6cWoqZ0NHbUMlb21rQzJkJWsmJSYmaj16JFVsRUlIUW02ZXJgbEhHY3Fz aE9GWG9TZEFWb31RYlcjR2p2Xgp6cmx6SytyPkQ4NmE7VGBOUFFLPjVzJmxL V3RHbGRweVJDTXV0KnUoWT1kUH08eXMmcSN1ZGx0YWQ4QDRHek9zNlcKengh YmFgdlNoe1J4M3s7bXdDWnVvP0FwNzJkZH0/SXlAfWt1ZlZ7b3p5dUl6KyFH ZVIpP1pkO3YtTkoqdyFTMlMhCnojKjVWTS1eUGFEJGNLe0VANWFhUDtMM14w JUYyfTNAWi15IzxJSkFxJjdSYFdqcFdYcyUrMng1JmhxOFpxMnwkfAp6KTY+ KFktdHkodmxqaFc8KXojSkspdXBaOV5WSFB5PSt+eWAqUWVeKHcmfmlhPkRz QjwrUz0qZHNfTlhUPilXezgKeit9eiNXLVJzYDA/QV5LRS1ybnJzdD9ifmc/ Y2NsSi11Q1JgdWlAZTA/QmxURjteT2IqenZib1NAYURrcT1mVVVhCno9anJM YEAkMUN1Pmd3P0RAYlU1U143OFdZXllpdWZfNGZBbWAxdHR3YFQ3MCp7cn5e fUM5JiVOMDAwMDFiVyU9Sgp6MDZeeTBXJmkqSDMyO2JSYXt2R2Y2OTUxVTY5 RTk0b0VRS0EwcTtwZkt+ellgP1VZJGw2RzBTKGI4fS1EaTNrY1AKeitPbyle aCQ0YndsdG9xdkw/RER7TWpmX25CcUR+TzI/QX55bWl4RHpvKjlhKkdtfSlN Qz83WnZ7Y2BLOEd2ez5RCnp2RHEka29+bzkocz9RRih3TCFONGsqNTJHSnF3 YXhAV0pFdGlVdX5Scn1lU2hEPyZWT2NhSypwaiFWdWdiPXNnIwp6Zll7JUBl KURlS2VzO2lxcnFrJnlDUERfRCFyLUNeTms0PEdXTVJseF96MEU9PWB4VkRF X2ZuRmo8T0pDPlB3dUoKelEjIT05bEY4NFRCQmEqTlJqVk9pOUxQMUlBXm5X Mi1AQGZLdyoxTDw7OG9wYUdhaXBgaF9sPitNbEIxRzZTRzlTCno9K3UkO0JY fTRVQmsmUm88Tz0+RWBoKyhPMVpFKj48PGZARHZ7SHNFSTxvdSM/blNIYGB8 Wk4oU1VSVi0lcj5IdAp6TlhvbzFxUCsmaFlkZ2w+PGtKe3N0TUhCa3J6b295 S3NKXk5nX2NxbFM9I1lBanAzek8zQGJQaW51SDAodkB4UEcKei10aH4oVCFu Mk1TKDw9eCNuZ3BnJVAlIz5lZjlwb3Q2QTltY3JONUgzKC14aSQ/UntwQWVR ZlFCJjhfSXMlY3xICnpHNXZ7UURjKEp4ezJIVGdPKWlKNDtyLXRWPntQUj8l Q2VsVypjVW5gXn4yOyo3eiRjJHJMa2J6IVE+JSQ2KWJGIwp6Z0RNaFcxXnI8 WCE5WEJrdjZVeTQqSClmKDNIYmVDXkVZLUhAJUtYU2pRTGlJNU1OO35HZFlv KlM7OVZfRkk9Uj8KY0Y3ek1pQTA/QHFJanU+OVcmaSpIMDcqcW9NNk48JGY8 cWZMTzhAYD4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2JtcF9h bmQuc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcv ZXhfYm1wX2FuZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNDQ5ODk4NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2JtcF9hbmQuc3ZnCkBAIC0w LDAgKzEsNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU Ri04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5r c2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcK KyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x LyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9u cyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIv MjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iNTAi CisgICBoZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEK KyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAgICA8 Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6 Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRj OnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5v cmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29y az4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisg ICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9 ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn QUFBRElBQUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFB QUJndEpSRUZVCithSUh0bUh0c2sxVVl4bjlkdTk1WVJ3bGIzWVkyQTBrSW0y emdtR1NERVhWT0Z3SnpPTlQ0ajF5OEpVMU1ETVNBTVlyUnFHZ2NNUkZICitF S1BCR01ESkVveExCa29SbzJLOGRiWWJZN2pBYnZZYmhjMVpWN3ExNi9iNVIr bTIwc3UranM0MVpzOC9iZDl6M3U4OFQ4OTNublBlCitJM3ZmTnN6L0FVa3pU U0JlbUJXU2FKZ1ZrbWo0M3doUlNPM1krTjA1MFRiZ0RJbm42ZWF5b2lSWEZn OHlycDRPc2E1UkNJbFhyY2dpCitKVE03NmhpU2hkZ0duRHhlbVkvZzlxR1J5 MURMWlN5YWs4eGJuMWxZTVFYUzRWRFhLUERjSXl1d3UzMm9aSDdlQzdRSzN2 ck13dWJNCis3S2k1a29VQVhCendjWEhBUzRwY2hsWWhHeHNzbnJDN2ZWeHdl Z0hRS2FYVGkwbkk3VG9GR2psak03SkFHMU82SkFTZU9YRkdwRUF5Citrenpk WEQ0NWJnMGJqeGZ1TTF6bTNkckdzUEhKSUZsSVVvdU1tbTNMY2JsR1VDcGxx RlJ5NXVrVjdLbHVnNUxZQ0VmQ0E4NXFkajZ4CitsK0doM25HQ2lubFlqMWJU ekVQUitjVXkwTjkvRDNQMXFwZmlvbm4wOXcvamRvOU1qWEVVREEvMVltdjht YlRiS3JGYWZzTG42WjA4CitpVVRjUjBTUmV5dmV3Tjd5SHFVUHZpazVMZjZy OVRwTXl4UmlwTGFhSmw5a3V4c1ZNWC94QWd0eW51WFU4WjJTeDR0SmlGNmZq RUtSCit4TmtmKzFHcDVHaTE4ckQ5QWlLNnU3dHBhR2lnczdPVGtaRVJEQVlE SlNVbG1Bb0x4VWlDRktyNTVPZXZwTGVqRG5GVVJLR2NIMThoCitTNWVrOE1G SEhXSGo0ZERlM3M3Ky9mc1J4ZkdKNmVucG9iYTJGby9IdzVvMWEwSnlzdktx c0I1OVBteThlUkora29XY3YrRGk2VzNaCitZVjByLys3US92WDE5WWlpU0VG QkFldldyVU9oVUhEeTVFbk9uajNMbVRObndnb1JiSFhrUC9vMlh2ZVZzVml5 T2gzYjV6dWhkSHRVCitmakc3MW0rL1dTa3Vtb2ZGWWd2cldvSFh5bTYzQTFC UlVVRnFhaXBhclpieThuSUFYQzVYeERHODdpdFlyYjlpV1B3STF0OS9EaElW CitOeUVBTzdiZnc1ZjFWM2pxeWRCL2RDSTBHZzBRVEZvUS9BZkNqSXlNcUxs bFZXL1Q5WHMxWlp2ZWtjd3JaaUhWZTc5aHczb0RCei84CitQbXEvM054Y0FN eG1Nd0NYTGwzaThPSERnSCtXSWtFRXZxN2RnWEg1RGs0ZTJYNDlNamxpZHEy Q2d2eW9ybFhUNUpPWmxpbkVzckl5CittcHFhc0ZnczJPMTJIQTRIYXJXYXJW dTNzbWpSb29nV3JGU25rN2Y4TGh4L0hQVVRUSjRoMXdxc0ViVmFqZEZvcExX MUZZZkRRVnBhCitHaWFUQ1oxT0Y5UVB4bTA0SzYvS3Y3QnZ3SXk1bHR2dDVz Q0JBd2lDd01LRkMrbm82S0MzdDVmVzFsWUtDd3R4dTkzczNyMGJ1VnpPCitu ajE3TUMxVGlEVk5QcGxncStPT3l0Y25uTFZFa3RYcE5COS84YjkzTFlBVEow NGdDQUpyMTY3RlpES3hjZU5HQUk0ZE8wWmJXOXVZCitvK24xK3BEYzRhRmVo Z2E2eUZqNkdJUE9UanpYSEpLNHhYeEVDYmpXaHZVR21wc0hndG9Dcjh1NWMr Y0FLQzB0QmFDb3FBaW4wNG5aCitiT2JRb1VQTW4rOS83eGN2WGh4bUJCRnhk TlQvZFZUYVFvZHBjcTFyMTY0RmZRS1VsNWV6Y3VWS1BCN1BtQTBYRnhjRHdV Y1ZjVlNNCitTVUFBTVFtWjZGcDMzcGtYOGF5Vm1aa0p3SkVqUitqdTdzYnI5 WEw1OHVXZzQ0cGVyeWN0TFMwa1Y2azFvRW8xSWpSL2lpclZpRktUCitMb21i VE9vbHR2ZE1sM2orUXVpT3ZIUkpDc3E3alRJWWY3WGEydG80ZVBCZ0VQR0pV S3ZWREEwTmtaT1R3K2JObTBsS1NxS215U2U3CisvK3BlVWJEVmhmVFB5cXZp cS9UdFVTOElKQXV4SG1nUkk3cldNemxqZ3dURWRIVjFjZnIwYWRyYjJ4a2NI RVNqMFdBMEdsbTFhaFhaCisyZG5zMjdlUHZyNCtWcTllVFdWbEpUVk5QdGtk NXRWaWJzVnJlRjNqQ3p4WmE2Q2wvbVdhUzMrSXozVVErRjJydjkvSHc1c3lP R1h1CitRNlVNZlhaZ1F6UWFqV3pac2lYaXMzYnQyaFdVRS9qdWRUa1lkSFp5 KzlxWHVQanRxeEZuOVVaTVMyRVZJSFpqY1RXUmNLQXQ3QTUvCituYnc0TWlw NXpHbXJFQ0Y2SlJpcDdjWVpHTFBpU1RBdEZlTE5RRG5uRmdEK3RId01nRXFY S1NsdjJpckVxU0FycjRxVytwZkR4bWVzCitRcHdLQkZzZE9ldGZ4VFBRTTda T2xITXlPTi93eXN5Y3RXNEdubjhFM0gzdDNGcXdEZmRmSFhoY2s5OHl3alJX aUhHRHhOUEt0RldJCitVNFhFYlNNRWNhOFFieGFxbEF3UW9mdVhqL3kvZGRI cit3QVN6clhPTjd3U05qNlphMGsrYXlVNkV1OFNlNHFZRlpKb21CV1NhSmdW CitrbWo0RnpzMm8ybUJiUVVFQUFBQUFFbEZUa1N1UW1DQworIgorICAgICB4 PSIwIgorICAgICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdo dD0iNTAiCisgICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9i bXBfaGVhcC5wbmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2ltZy9leF9ibXBfaGVhcC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u MjY1N2Q4YzM5MzI4YmZjODA3NTFjNjBkYjlkM2FiNDM0MWMwZGUzNQpHSVQg YmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEwNgp6Y21WLVkxZy1tdFApPGg7M0t8 TGswMDBlMU5KTFRxMDAxJW8wMDEldzB7e1IzRGRCajcwMDA0aVApdC1zMDAw MDAKejAwM3JkKE5je1dIaSpHb2xfRllAV25gOCkzOH5AfHRLd3ZwJn5jKFVX fHE7N2o9I1o9SGghVVNrQ05TYm9+YlJnCno8ZVF3dEk9SlBHdTVefk5IYlRB V041QVAjelVFODY9fXk3dlRFWFg7eW0rZ3U9dn5DPmlNaVdrI3BxKGo+WT5E NQp6WXNjdGwkbjJ1VlY2KEw5WnAtWCglanxFPj94eElUY0ZwWGkhUV5fKj9B eUpHeXVJdnUoZUghTj9TIz9wemBeYz4Keik5fGQ7Wkh2X0lrPTU+ISkkZ3Zf YW1MNSpsLVRmPiszflhBY0NGVXclKzJ3ait3dGV4RTlseFAmQ2NAYitiWm5h CnpEKD40VkA3eVohKyQhP2lEKWloY3ghZGZ3PVkwMHZEeWByMWBRMGh7LTZf PTZeUkQzWWBgIykxLVlOZHhEWmJ3QQp6eCRBJHgtfG9XVD96YEBTP2MtcVk8 NnAoJEA5XllieXpxcWI8WGBqVFUmckl7JG04KHk8ek12V1UmYGF+XzJwbXAK ejx6TSphVSg0azItcm5+Mz0zbn5lVShNejZ7TmBXJj0zbWswXjMmK15eNkgx dz5HUmEtXnpgZTgqNkg7Mj54Y08zCnpodTctJGBzfDFPPzF1akFoVC1xYG1F Y1FRMDAwMDFiVyU9SjA2XnkwVyZpKkgzMjtiUmF7dkdmNjk1MVU2OUU5NAp6 b0VRS0EwJjdWYEt+ellgP1VkX04oP0FyKE5mUStAdUJac1VRUipBKDNrN151 aUFfeGx3Yjc8WFgkVDJXbDQ2encKejNaPG9tZjFUWmdnZH1ZO0dSYD1EO0Mk SDM/Qj0mOyZiQGNHcntfZmZNMTIlaVUmc0MoWXV+cHpON1JSQnVPX316Cno5 U0hTZz08NDtDKVNIcH1rM0xkZyN3STN6eThscCp1aWQ9K3doSj1VK2s1cn5I R0ZBYzszK2pXSmFUVzZgVXt0Xgp6RUVsYlAtfDhJMktFSG5kXj5eJigtdm11 MyY8RTdZPCNHK3dMe1k0UngrRjw7OzM2OzE2UEpIQDVQRS1+I3o9VzsKemlZ V3Q7Vk53IzFTZUJKTjI9UzJjQS1sVWEhWjNebyM4aiNhNV9IK3dAZ1AhKVdp MkdfTDRzS3YjRzlmbiVXfWctCnpgZVJ0OSR5KSpCSWwlSSpLOT8oR29PRkB4 WlFJNFpVeV4wQ0RsMyh5QyhDVygwdlY1IWpfQSF6OGgtfX5tVCokNgp6YTIl KWw1SlhALTcjJHNkX2xlJXZwY2oheW1PI1BmYlVMa28zZGQjQzJwNURuRTsy XkdSZTtLNkc4emNhZilKZD0KelBTSD4qQ2BENyV2fVR9VVhVS0NkdmNDUSY3 NCFBUU1zUDJiMkQpRVdrJkM4UFRNXndxTTckfXFZJVpycSUtR3RSCnpnKHp1 VVNUJSFAWUElPDk1aVlCJTdHbjI4JjFBRHhwITw9SUVYJklsOyFWK2w1Vmom X1ktI0QoR3EkakI9ekBGRQp6KU9GbzxYQF8/STZoX0VeMV9fPXBMVDc5b0JR ckM8PUkwbFdNRGokemg/dWNic2YkYSY+KFlAMEF5eVYkaGZhI04KelZIb1gq OEpuOXNfS2V3eGIzY1J6Yn1gTXB1PG9PV1orYVIoZWdOazRjP2NrMUsqM0V4 RDRKbjJNc0xqfmxlMWcyCnpoNDJzPDF3bFlhdkZKa3JFflI5JFdWYFVaMFNy TTklcGVsVGxFNT5EOSVXeU9KPTJAVHUyX0deR2FnWn42YTlaVwpZME16LXtC NiNgQ3J+bSl9MDcqcW9NNk48JGYpe3tKR3luaHEKCmxpdGVyYWwgMApIY21W P2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X2JtcF9oZWFwLnN2ZyBiL3dlYi9wZ2FkbWluL21p c2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2JtcF9oZWFwLnN2ZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjA2MWEwCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9p bWcvZXhfYm1wX2hlYXAuc3ZnCkBAIC0wLDAgKzEsNjUgQEAKKzw/eG1sIHZl cnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/ PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5r c2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8v cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisg ICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6 eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJz aW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAg aWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+ CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRm OmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8 L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRm OnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJ bWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+Cisg IDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAg PGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2 NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRp eEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUJsaEpSRUZVCithSUh0bVZ0c0ZG VWN4bjluWm5hMkxWUXFJRkdFcUpDNlc1QVdRZ1F4SkkyeEJCTkZxZFdvWENR cEZ4TklpTUtEUmhNZlREVHdVSTJOCitORVpBbzFJdkQwdXBJRWJSUUNNQ0xV R2dYTnExb1dKb0ZrSWdGRnFCbmIyTUQ5UGRuZG5aMmU1dUM1cTQzOHZ1ZnZQ Zm1mUHRPZi92CitmRDJGUFBMSUk0ODgvZ1VJODRjVm00N3A3WDFYYlVYbHhh UFlzbWE2c0YzSUVodC83Tko5UndNMnZtYkdlTExsWDU5ZmFobVBZdjdRCisz bmVWbHhkV0VMZ2VwbEFXRk1pQ1NTTmNiUHoyOTZGcUFNQjNOTUNjZWRNNDBS dkNKUmtQbno1YXhmZERPMDgvV1VGM240WXFTYWd5CitsTjNoNHJPbVk2eXVt VTdQOVFodUdWUUJFMGU0MlBDTmZUeEtNbkdtTDh5WlBvMlJzcUJJRWJqRmtD ZkNnaE85SVE1ZUNnSlFLSUVzCitHYnovcXNheFhvMWl4WGhld1FEZmN6MkN2 eStNUzRKQ0VYVzhyMDNJNUdLRlFwbjRqTnhiWkNzWkVxYVZ1QURpTXpLdFJP VUM0Qm1sCis0cEtJejhnREkxM3NBeVlVeVFDV0dSbFVTSG54S0w3WWNkeFdW RjQ4aXJaaEVGRTE3Z0kvNzdGeWV3YjQ3NzYzOG9jRytBYmZzWlQzCitTUjZQ UlloMFd0QlFPNTMrL2dpcUtuQzdaZTRzVWRoUTE1WHhZQnRiZXZTV1U1Y0Jx Snc2aHNXVkUrSnJjLzdWT3Q2b3JTWVU5TWZyCitYVzRQUnh1YmVLTzJta2l3 TThFWGVEbXlyWWszbDFjVE52R0syK0RmU3ljRW9MYzN4UEhqSjFpLzdqRTJi OW5QbkVjcU1oWUIwSExxCitNbSs5OUNBQTczNzloKzE2S09oSHUzRVlBSUVl NXlQQlRvSUR2Q1FnMXByaFlDZmhBUjVBY25odXlnWll2KzR4ZHU2NnlJS254 bkh5CitaRjlXUWdDdWg1eWJFcXdDSlBQN0lmaEtTaUYxNys5bHdWUGoyTHhs ZjA0MzFYVjk4S0lreEdiQTZSY2Y3SnBOU0VtSmk1a3pLemh3Cis4QXB1dDB6 UmdHc01GMXh1ajJVV1hBVmVvQVBGN2JVT3pKM2dwUlI4TWl4Q3lqd2orZVRU czdhaS90S1BlTGJ1SG4xK3hUSmVxZHFRCis4d0lZWDE3RDBVWmZFdHZCK1BJ YWptekxqaWZKdHl4Q092ejlyS3E5MytKYWU4Kyt3NEUvZC9ITTdIazB0MzZl MFlDZE9pVFE3bVBHCis0bXFpV3JJTCtaaTV4SENuMks4dm1YZzkyQW5DeUZP SzZxWFZKczdCdGE1Y0NmUDhjM2Z6OXVldmN2TFN0end6ZTE3OCtyTjE5d3ph CitBT1llTWRkL0dEMUgxYUVtVmovZHhxV3VLWXd0UFUxdnp6TEE2azZTYVdD NjFrbjBac0sxbkpaRDJtMDdXWVQ1dlpBa0ZOWFlaZFdpCitBaVJGUVZGZDdO b05VWk9RMWN2WFdPN1pzSFZUWE1TbHJpbHhYc0xhekNMcE5aMklRWVU4TlBZ Rm1sc1RZcHBiOTZRckIyQnM0V0xiCit3TTJvS3AzSTJOTEVqRnpyZWRoMkQy SGFSNUlGWmJ5UGxKUzRVQlFwN2xwM25GVm9ibTJNaTltKy9uemFabC9WZ0dY cG1ldGJQcGlsCit6NXhUemFLZU1pVGdXcy9EU0NaM0VpUUVLS3JCeTZyWElr Q29PYnZXVWtaUC9ZM20xajNjZDlmOXdQbDBPZ0FJTzNSN09oYzY3TURiCitH enRIMXpLeTFzZHMzMVFoTWhHUkRvRjJ3NFdpQTlsSkFMTGJ5K0Z0UG1ZdnFT Wmljak41d0oxbUw2bEcxeEwxa3R2THdTOHpkSzJoCitaSzNCRURXNWs3a1hJ cHJCSi9lQ3JuVVN1WEVZU1dDc1dZZUZuYkozWWxscjVZcTV1UTFXMXkzT1pV WnNITEl3SGo2WUt3bXNHU3lyCiswSGhMczVZd1JEaEJTcFFsdlVtUFc1SzEw bVZmbCtvbFl2b3NtOXpKTENMbVpwSnF6VnJrN2xyWlp5Mm4rVWpuUWs2OHZi RnZaOWFLCitwcFlTYUUrNGszbGZpTGtUb1lSclNhcmhUbk9XVm9QRnpUenN6 OVMxY3MxYVJRV0ZOaTQ1YS9GRmZWTEZUOGFMQTMvcWdKSE50RE5sCitxSk03 Q0FlV3BYejJzR2F0YURqTVQvdXM5MWk1YURrQWtpSWp5WEw4dTVtaVlldW11 SWhRZDVsajNTM0lXaXVJbUZ4cjgxZGJNeDF6CitTbFNWVGtTZDNFYW91d3pY cEE3Q2dWa3A2MjU3MWpMM2dnU2dlam40WlpOREwreGc3cU1MV1JVd1ppSWNt SVZRUGR5MnJPWFE2em01CitrNzJ4L3lOWnk4bUY1aTVkU0VRenpyc2tRSmg0 WGZNbjloTFZ3NiszTW11WkQrYUNwdmk3cXVHNGJqbW8wenJSYnlSK3pkam1H Tkg4CitjS01OSWF6N2tORDg2RGZiaUpMbEtRcmtkcTdWY3VveWEyc21jZkZ2 alNzM3d3QzgrTVFFeG8xUXFmZDFwL3lPdWRra1FCZXBFMGttCitIcGV5SnBl c1ZUbDFEUFcrYmhSVHdsTWtRYjJ2bThxcFkyejFxZjdpU3hhV0RZWXRheTJ1 bkNBYVczcjBiYnZQVWJ2Z1BnQSszZm1YCis3ZnhYVmozeDVSVHJCZWhBcUI1 MHM0Q1lPNmtlNjRNY1hNc3lreC9VbjlFNy9QMjJvakxQU0Y1Yk96bWpISnJ1 RUx2cmw0MTZvTjNlCitxT1BMYThpV0wzMzg5ZUg5eDAwZWVlU1JSeDcvYS93 RElPLzVTYm50aWZJQUFBQUFTVVZPUks1Q1lJST0KKyIKKyAgICAgeD0iMCIK KyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUw IgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYm1wX2lu ZGV4LnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1n L2V4X2JtcF9pbmRleC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNi OTczM2I1Njc5MjUzM2U0ZGIyNWNhOTg5MGEwYTAxNDBjNmZmOQpHSVQgYmlu YXJ5IHBhdGNoCmxpdGVyYWwgMTE3Mgp6Y21WO0YxWig/PVApPGg7M0t8TGsw MDBlMU5KTFRxMDAxJW8wMDEldzB7e1IzRGRCajcwMDA0QFApdC1zMDAwe1IK ejAwM3JkKE5je1dIaSpHb2xfRllAV25gOCk0NXtMRGxhXiRhJn5jKFVXfHE7 N2o9I1o9SGghVVNrQ05TYm9+YlJnCno8ZVF3dEk9SlBQdXtNbVpianpZeEwl aXJvenYpaUM9MSMlc1RFWFg7eW0rZ3U9dn5DPmlNaVdrI3BxKGo+WT5ENQp6 WXNjdGwkbjJ1VlY2KEw5WnAtWCglanxFPj94eElUY0ZwWGkhUXxWI2V0T1JB K3I1ZH56SlI+Rj8wZURnLU5BeGAKeihkfnJNPyVsKEt6YF5jPik5fGQ7WlFq TCZpYDRHbCRBXipDPyU+RlhsR1gzNytIdUNtQDhIVWJsLVRnJCUhLSVVCnpA IzQ7bTxJSkEyO0M4TG4+Q0RhWDw8Nmt2KFQ/WlpFNnZYRz1GeT59LVNYdHJr Pj1CK140dSF0KVRGdUY/Nj5FOQp6dD41JDEpYnA8M15YQSE9PSt+ekktWU16 V3JAcjNweCRBJUQrP1QtTD8mO2Q3IXI8PWMtazlzIXg5WiVnP2MtcVkKejw2 cCgkQDlOI0d5enFxYzxYYEZHbzl4fVgkSyZ3RzxNN0prQGEqOE4lakVJaS11 QyhDVShNejY/QmxUaT0zbm1PCnp6M3RfKChkWTgrPUNhZjFeWTcpcV42SDF3 PkdSYS1edyNQMEBhTXRyPjlwN0NfM2BQJHtfS1lHP1opQm5fZz5Nbwp6YnBR WVcwZCFKTVF2ZzhiKmslOSMwMTBxTlMjdG1ZM2xqaFUzbGprVm53JUhfMDBO OWpMX3QoWSRMKkJzUXhaYGEKemhoMjZudmhCXnZPMW9Mby1KbUZ2NXxONVhC QXxfblJ4QjhEN1hjTVI3RkB2IzB7KyRRVksxX2E/QnExbF51aFBUCnoqX3BI WiV4fDdeZXpPQXVDLVlCY2tVJXJvdnd4P3ZGSSZZfCNEezBFcm9SekEyPVFj T2JvMz9oWDhpdTZrSHB1Pgp6PjZzdFdIXmslWEh9QWVaMHZYWTJ3S3NeZE9U KXVZaU9JMz9kbyNwZXIxV3orK3U3Jldpfks2Uyh0TGpYez52fVQKejtrU0J7 KU4+RTByXzw+PXY+U35eOGA+PCh3bjBLKG9YME1JPz9UOWYwfT4lPXVoKk1+ TW4wYyEwR21pZXQ2ZDI4Cno1UilQTWB3RH53SFg0blZSWkAwJFdrQDJ5TE55 dSticzxVQDVmTk5FN1JfP0d5ZUE8OzhaQFd6VE1GYkZweUFpJgp6ezM9Vmlp dEJJKisxWmgkUkk1I0I3S19FYkV8PVRiMXplfVkjVVohME5jNm1kZDlrISRR U3x3SVNzQjYrWGRYO1YKek91aFI9WmY9c3grfjhofSkzMWc/cTJkdlVKY1VF VmxuaiZ3I04kYXBlLXtxblR7NC12VXtUQWFRWj5iaW94I3NaCnokaX5LPm9T NXVoY20oUlhUJkBtIyNjWnwpd054eHRRTXI4cSRwciN8b0x+YGlJMl5QfSRK VzsrcXkkK0hrSiM8Qgp6TzNLPXJnZk5pdSUrQUlqVno9OVpEamkjMD9JNWpF c25tajYzfFVsWW5sN2t4WS1RIXg5YX54d1FXJk5NbH1Mb0gKektwYDBQN3k5 MSpEVE1JMUFJMkVZIXAyenlFZnpEP3dfe1RYblY8aTtqRUF1PjFHTFIlNFQ5 Zm5Sdl98QCNwN0ttCnp3QUVAc2h7OzUkYmN7bmZFKH4odkVlYUd4Qn4/MU14 T25XMkByYW4+cj5GdVgtRU1jWC18Y2ZoelBVTnteOCtSdgp6PUphX0J4Nnhw NV9Vam5BejJJXiFZP0M1Rm5NQGAoeEQ5ZWRrckg+ZzspZn1lJCFQM0I2ZlN6 eUZ9PnUlVE9eJU0KbXJ9RCZ4ZFZiPzdDdzRPYi1+MHcmZ3lYJENSe2o/TjAw MDA8TU5VTW5MU1RZZGV+VkI2CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2lt Zy9leF9ibXBfaW5kZXguc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9pbWcvZXhfYm1wX2luZGV4LnN2ZwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi40YjUyOTU2Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYm1w X2luZGV4LnN2ZwpAQCAtMCwwICsxLDY5IEBACis8P3htbCB2ZXJzaW9uPSIx LjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0g Q3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9y Zy8pIC0tPgorCis8c3ZnCisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3Jn L2RjL2VsZW1lbnRzLzEuMS8iCisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0 aXZlY29tbW9ucy5vcmcvbnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3 LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6 c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4x IgorICAgd2lkdGg9IjUwIgorICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJzdmcy Ij4KKyAgPG1ldGFkYXRhCisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxy ZGY6UkRGPgorICAgICAgPGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91dD0i Ij4KKyAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3Jt YXQ+CisgICAgICAgIDxkYzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJj ZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+ CisgICAgICA8L2NjOldvcms+CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFk YXRhPgorICA8ZGVmcworICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQor ICAgICB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3 MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBQkhO Q1NWUUlDQWdJZkFoa2lBQUFCenBKUkVGVQorYUlIdG1tMXdWT1VWeDM5Mzk5 NjdMMGw0U1VJb1VBYWJLakZHRWxNZEtkTmk2Z0NqVStSRlUxc3FnM1lRNkl4 TUhXdW1RNTA2ZE5xeAorclV3bjFjWW0weW1nTlRSVTdjUVFCRG90SHlTK05q alRRRWlJb1dNRTR3U0lpUWxtM1NSM2QrL1REN3Q3OTk3Y3U1c2xCTWs0T1Y5 MgorNzlsbnp6My81NXp6di85OVppVll3SmZCWE5jNmdjbXlhU0JUemFhQlRE WDcwZ0NSelJkYnFnK0wxcUZMdGtYRldUUFpzMzIxZEtVMworMi9Xdlk2Sytw Y2ZtTHkrZHorWDZkOXoxSFVzK0ZpQ3RRNWQ0Y0gwSlBjRXdQcmVFMXkyUm42 R3c2K1gvWGlrR0FPcGJlbGkyYWdsdAorQXhxcU81ckhON0pWNnYvWnl0clZK WFFOYWFndUY2b2JDbWNvdk5Cd2dwL2NYOHE1UUJpUEcxUUpGbVlvUFAyU1BS OTVyT09Eb1RBZgorREdsa3VpWDhzb1JIdXVKQ1dLeHRRS081WHpPdWxWaHpk MTdTT0RHb2tTVkg3K2VOK2M4RnduUU9oVkZjNEpQMHBIRnRRTDZlSmVOegor WTFSa2dkKzI1SXJzNXRrcWdGR1JKYk5VTGdBRk0xVVVGMFpGdnBhcGNBeFls Qm05djdraTR3SXB6cHBKN1lHVHRrWEZXVE01UGdrZworN3NobzU0MmpWdC9S bVAvZ1lhdi9QOERLdkFzODk0OFdXNXlWZVJkcytWaUF1RTVMMUd5K2hVQWdn cXBLZUR4dVpzK1NlYnJ5ZjJrbgorVzlmVUxKcmErd0VvSzhwaFk5bFNvemZY aFAvS3pzMzNFaHJ0Tk5Zcm5nSmE2aHJZdWZWWkl1RlBEYjlienFhbHRwS2Zi MzJXOEdoZgorSW1GUExpMjFsZncyRlJDQXdjRVFKMCtlb3VMeE85bTk1eTJX ZmJNa2JSQUFUZTM5L09LSGl3SDR6ZC9QMkQ0UGpYYWlEYjluODBmQworbjZL Tm5EZXVWVy8wTlR6YWh6WVNaUzZoQzRRUWp2ZDFISUNLeCsva3RVTzlyTGtu ajdhMm9jc0NBaEFNSlIvS2RFMUVFakdFTGh6ZgorbTgwUlNPVWZYbWZOUFhu czN2UFd4SkpJc210cGZUY1NpYjVSckxITXdKek1CbVRXTElWYmJ5M2huWGNI OEhqYytQM3VDU2ZsWklxbgord09INk5HNDVHMFhSRFFDeUp6ZjZLbWNqUElt TmtlWFpqbkV0UUFvTE12bkw4MmR0aXdJMy9JbjdLblZ4VjhsRC9Iamx2Z2sv V1B3NQorK2JUVU5Zenhubzc2YXgrenJaOWZYTTZKL1JXT2ZxaXkrQ3hBT2pv RGJOdDhuWVcxWGovN2E5NzU4QkRybHE2aXNmbEYwcEZueVpvZworMk45RjZV Wm4xaXA5TU1wTzhWYVM1V3hPN0svZ2xnY3FDUTMzSmhMMjVITHlwWi9aWWp1 eTFzQkFtUHUvOXhWMnZ2Z1liWDB2czI3cAorS3VQeit5cVRUSnZKekROaVh2 OUh2WnNWN3phd2ZkMXh6cDhwWXQ3aWR2cTdmd1JBYU9RVHRPRWVZeGFFUC9x MTBIQXZJNEdQalhocQorNURLR1BXNWpRWmpmU3k0WHNocHRhTlh2eFNYTHlL ckNvU09nbTRBODh2QjJTOHlhdmRVR2lQTm5pcXdiWUI3bytOQ25hU21CM0p6 NworQXhxYkUyQWFtNCttV2c1QXJtK2o1YnBtYjdYbGVzWDFDNW0zT0ZHUmdl N2JnT1MwR2plRHpZUno0enF5bGl5N0ROYWFjVmFtc2JuTworQVBOcWhTdmxz Rytyd1pLUmVYM1RNd3RFNmJKNzJkQjlFeTRFQTkyMzRmYmNDSFNncURtV0tz Ulp5NjFrby9xRUFVRHh6UmtmaUROcgorYlNLNzZHMGFtNCt5YU01MXdFZXBj QUFRVGpMdHpxelZnVDhuUHlrN3RiNnl3OUYvMmF3VjFWcC81dFhxNzBycGdF aGxjZGFTdFBjTgorbjFCdnBLV3VnWklOdnljODJvY2VHMmJGbTBQckt6c28v djR1UXNPZklQUllSYnh6T0ZYL2hDMzJwR3V0OFV6UzNrZU1KTFJXdk8vQwor bzMyTUJENjJ6WUwyK1VWR1BrdHNZTEludk9ORElhNjF0bTc1OW9TUzFZV3dN RmNxVTJNWjZCR1JBT0ZnUWhjcENlR2FheTNWK0ZMcworK1JGL2pzUmFDVE1B WFNTdHlGWFJXcW5rWFlhM2dKQ3BENFJhQUhTZytPWWtraWM2Q3dDS1A4K3lN YkthNnhqM3FtaXRaUFh3NStUegorNXI0RFk3eFIxa3JHVGs2RC9jVnByU1M5 SE96dll2bW05WVMwVHFPbGhGckFtL3NPc0tUOGQ0U0NVVTBsaEVETm1NdXAr aWNvV3Z1VQorb2JXRUFOV2ZSL3ZCSjIyeEoxVnIrYjArbTIrczFtcDcrd0Ri MXgxSGRCVWk1WGNnZWg0Q0lCVHNaZml6ajBDMy92NElEZmN5Zk9sYworMUtm cm9Ec1R3cVJxTFQwYzV0L0hyREcyUHZBd0FDN1pqVnRScU5sYm5RRFJWV2lz RTBJa1FKaG1RZ2dzczVQTXJvTFcya0xFbE1qdQorL1hzdG42KzRmaUZTdnJr aXQxdkJrQ1R4Y2JUWUY2NjFsbjlyUFkvMFJDc2hlbTQzV0V0V2MvRm14YWhY Z09MTEE2SXpZVzZudUQ4bAora01uU1dzazJMeFZyT1Ezdy9PTHlwUDVycnJX V2IxcVBwQ1YrSWNaWnEyanRVMmpCWG1QMzFjeDV0Qjk4a3B0Vy93b3RjTkZZ cjJiTworNWZUaFg5cGlUNXJXTWgvTWpacms3N2FhSThKOFVDZHBuVENTT0Nl TTk1MFc3R1Y0OEVOYk9iWEFSWUtEWnlFMk4zcVN3WiswYzYybQorOW40ZUxj K245M09OZ1pFd0FCdnUvaXA1R1NwVjlWM2pCOUFqRmhEQy9KTTJEZFp5Zkxw TlJHdVZGZVZRVmQrRmJPSUMyU1ZSVmQ5RgorV1ZGTzJuSDBpSTQremhtV2sw MmExdHBZdGxTcWEyb1dmenZTemVZMWl3QjQvclZ6dHZOZm9SWmdwcjJFMXNx elZFSE5uR3U4bXR2SgorTzJPZTQvMGw4eDhHbnFsNlEzUjBCbXlMQ2dzeStl bWpkNlIxbnBYcUVQdTkydVVpMkc5dk0zOU9QazcrK2NYbDlMVFdPL3B2V0ZG bAoreVVlYS91ZkRGTE5wSUZQTnBvRk1OWnNHTXRYcy85ZGhsZkNnTzhEUUFB QUFBRWxGVGtTdVFtQ0MKKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAg ICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1h Z2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYm1wX29yLnBuZyBiL3dlYi9wZ2Fk bWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2JtcF9vci5wbmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIyZmMzMWVlZTMyZTUzYWJmNjM0Mjc4 ZjlkNTc3NTExODFmMTVjMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjg1 CnpjbVY7ZTAjZn5uUCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAwMSV3MHt7 UjNEZEJqNzAwMDMwUCl0LXMwMDAwMAp6MDAzQjZTWX5Ve0hpKkd3bUMlaWp6 cmx8LWtDTlNib35mRmVud3ktJnh1PGVZelVJNUNiR3hpYHlSQ0x3IVJOZk4K emNmR05CdEV9azB2VS1XUitob1ApdiRYMkV5MUhAOD9BcDcyZGR9P0l5QH1r dWZWe296eXVJeishR2VSKT9jS3RJCnp6YF5jfCliOEtMaFRxN0NsR1gzViRN NHxFaUltdno8SUE0byUlMEBVcDVvQXI8aiRZVyZHRjY3XjNsPUo8PE96Iwp6 KFcwaV9eNXhjKD1HM0k7KXVwWjleVkhQeT0rfnlgKlFlXih3Jn5pYT5Ec0Mz K15YdV9zX1dhaD4peCNGLU1RQEcKenQ/Yn5nP2NjbEotdUNSYHVrN1FuQDhy TWE8bUIrPyEwX2s2QCQxQ3c/Q2tJRkBBVU5hfE5zQXF4QUZHPzAwMDRXCnpR Y2hDPEs8M3pIMDAwMDlhN2JCbTAwMFhVMDAwWFUwUldudTd5dGtQTUBkOU1S N2w2fClOTjBLVT0jKm1qJG8rMAp6WEd2O1NSd3h3YDYlPl5TS0B4Pjh6NVZ+ K2xDVzQwXkk+JGhZPD0rbCNDQ1M9P0EhX3JHdFhacCZ4T2ZQND1UfjEKekxM dURnJlZoSyNRM2g5e0IrJio4UzZmfmVCcE1MfnAoYiZedm42QFUkMFQybSNi ezhaNWNkNCZffk1FRTdPfi05CnpmKj1fNEdfdG58YCokJlVFMHU7WjNBVWlA V3Nfa3BjTnZwc3hDU0o3RVctdyFCeUooZSp6K0RuRypWIzA2c0Fkbwp6NTdS KHg4OTl6S3B4PzNwaV99fTNIQ1ZPajFoIz1yOzAkY3NtaXJaMHZUJShKWXxI WHotazVLaVRfMU9nYz4tKyUKeipJMmc9RWQjZ1pyajx0MFohcnZgS2w4QD14 fnt2cF9lRFIxcmlMVTwqaExhO0xSNEkxdUJOSlBjNFAwPT5NTzE+CnpeMyV0 PXMtcEJWZkJuJEpQck9veGRNRVFnTWtYVGk1NEk0YmxTJmV8a2ZiTmVheGIk bkdVPClZXk47Y2dATzRxaQpURjg4dW8wMDAwME5rdlhYdTBtamZMYkd3WQoK bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYm1wX29yLnN2ZyBiL3dl Yi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2JtcF9vci5z dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU4OGNj MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X2JtcF9vci5zdmcKQEAgLTAsMCArMSw1NCBAQAor PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxv bmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDov L3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9 Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6 Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5z OnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4 LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z dmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisg ICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIK KyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0i NTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0 YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAg ICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uv c3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAg ICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlw ZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRm OlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2 IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9w bmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZ QUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQTc1SlJFRlUKK2FJ SHRtRjFvbTJVVXgzL3Y4dFdtRFV1WmpiVlJFVCtRYlpKMFZJUU5iL3dJdTVt elVKbDRzNHM0dlJGQlZrWVpnb2ppZE1NTVFmVEMKK2pBa2lXQ2VCaWdNWmFy d1J4ZXJTSm95T09ZYmROSEh0MHJVeGFkcDhOSThYYWJOdVMvTSt6MXkydC9E K3J2SWVubi9PT2J3NWY4NFQKK01ERXhNVEc1RFdpeUIvZDhOQ1lTMmN4MWNa OXJQVWRlNlpIK25rWWNQSEZXUkVaVDE4WDd0M1F6dVAyaGhqbXNza2tTMlF5 NysveWsKKzhtVmFMUm90Rm8zNzIyd2MvREoyQXlYWEp6S2E0clZkVzBqbXl6 aTBhdDFlcDFVcWgzUWpBT2V5WmM1bGk3UmJOSnhXclpic1pwTE0KK2x6bVRL UUxnc3N1WHA5VElBeTRyclJacWI4VHJWSkpMc2Z5ZEs5K0lETktWK0Z6citX dzRYamMrMGtBbmhCQXJuelZ0OWRmNHRPY2kKK0h4d2JyUnR2bEFNVUdsazNy dkZ4c0lkY2JoRzdYY1Boc05EaHR2SmU2T3lxbW11YldJNnQxc3oyVElqQkZ3 OVRXa2hmS2REYVFYd28KK3hBRzkraVQ3QUdCMnRzU2xTMFcyYmUxZ1pxWkVQ cjhvb1prbEhBNFREb2RKSnBPNjUwc0xhUktqSTl4eFR4L3gySytVQzJsZERT ZzIKK2NpUE16YzBSalVhSlJxTk1UMC9yQzRUZ3laMEhTSTUveUZQUHZpdWRw K21OS0ZNUi9QRDFmcnliWHVYNzRVRnBtWkx0dU4wMnJOWjEKKy9QekxEQTZI QmFmVG9seW5ia0dPRGZqOWo1S2VpQ0FxQXF0OWc1eE9Oc0hHaDl2NTVPaEUz ZmpOb3R2WFQzeG9YOTA0T3I0bDNjanAKK016bGVEdDZuNUZxcXBCSVIvTThm b3BpZnFzVnNMWjBrdnRML2lTbTcxc21UY2JadDdTQVdTMGk1bGlyRi9CVHgr Tzk0SHR4RmZHemsKK3FxWWFvVHpzQTN1ZjRKdmpVN3kwNTNIbEltVUo5Qi9p d2xpSXdIUHZTMnVVR3drZC9wRm5kbmdJSC9sSlZTcUZBTDQ3TnNDOVBRT2MK KytHTHZVa1FmWmRmcTdmVTMxYlhzTFozNGVoNWo4bytoYW9HMk5lcGE5UVo3 VGJyV0kzM3ZyTmkxQkxhV1RrNE52NjZyTlp4cmxSYlMKK0xHUXYwTFh4QmVZ ejV5bk1UVXJwRE9oYUFsR3BWRDlXNUFZZGpPaGFGYUhVd0RMR2N5Mm5CeUVF cVZPZlY1OWJPNlYwaG5PdGVvTzkKK0psMXI4ODYzS2VhdURMak42V0g4K0J1 NjJxYmZFRlVwNWlhWno1eW4yNytiK2RrSmlzMXlyVnZDMGxWZkxGYWtKWVpy NU5yL0sycFcKK3JJUGhib2oydGpzQitEdjJLUUFPMTExU3VxYTdsdHZ0Smhn TUF1RDFlaHVlN2ZiMTF4M3MyKzVhbXFacFFnZ1JDQVN1aXExMlBwV0kKK3NH bkhXeFN5LzlUbXhON1d4ZWx2MzlTdHIrbTcxc3JDR3pXeFRPSGZGUG5wUDdt N04wais4Z1NGM0VXcDJtN0pycVV0b1pvTGtMMVgKK0dYRFhVbCt6QUFQdVdv NzJMaER3MTI5SHE4K3VMaW1kNFhhdGVvTXQ0MW9tSmlZbUppYi9oLzhBWFQr M2V0YmJTSklBQUFBQVNVVk8KK1JLNUNZSUk9CisiCisgICAgIHg9IjAiCisg ICAgIHk9IjAiCisgICAgIHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIK KyAgICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2Jyb2FkY2Fz dF9tb3Rpb24ucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFp bi9pbWcvZXhfYnJvYWRjYXN0X21vdGlvbi5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uZTk5ZjU3NDc4ODQyZjYxY2YwNTgyNDMzYjY1OWQzN2YwYzUz MmQ1YwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzM0CnpjbWVBU0BOPyhv bEh5YHVWQnEhaWEwdnBeTWoqX0AzPyEyUzZPQDF5WE1qKExFMDZ7UFhJSG4h ZTY0JGNFWEktYAp6emhETjNYRSlNLTlMQHJkJFlMUHYwbWcxOHYrYVA0OGMh Rjs1UkxPJkN0Qzl6UH5kUytKYU1ufWNMNThWJmV3bkgKem5TIzFvN25pSj5e PipUWCpgUXpnTWREN1BPelBhVG8rdzw5dXdwTEwpMUYlVyMhSXFkaG9NU3ho d3B+MEBjZjAyCnpoa01qbVJPZlpjYEVaKXdgUzt8aTwqZUBRcjhnUV5AOVIx MXw2UmM4fEFROUlSTGpTbVVPRmVXdE0pJSVab3pQaAp6UnBsJCYhKmc/aD9v Y2dwalZNVjtFSj9MV0U9bVBiM2BQY3EyRCprdXgoMD9KTWd+P1UjI1NhSys2 SmFwMV9sOzAKclJwbjRMPG1SVmpyZDJ7VDcrOFdlZksqITxtX2FuMG5qWDNh c0RaKUwpejQqfVEkaUJ9QDQwQiEKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4v aW1nL2V4X2Jyb2FkY2FzdF9tb3Rpb24uc3ZnIGIvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfYnJvYWRjYXN0X21vdGlvbi5zdmcK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjIyY2E3OAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4 cGxhaW4vaW1nL2V4X2Jyb2FkY2FzdF9tb3Rpb24uc3ZnCkBAIC0wLDAgKzEs NDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBz dGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUg KGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHht bG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAg IHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisg ICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRm LXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv c3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv eGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBo ZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAg aWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29y aworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0 PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUK KyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMv ZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAg ICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlk PSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6 aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElB QUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFSdEpS RUZVCithSUh0bWVFS3d5QU1oTE94Tnh2Yis3K1IreVVVMGRZa3A3bU9mTkFm aGFsM1JrM3FSSklrU2U3RUkzajgwcnliOWJBWnFhaDFzUm81CitNcVV4Mmtq RmJTamF5SXlCbHE3bTNVWXN3aXVoRWZFSUYxSG9lem9IYWluTlkrYjkrYXAr NzQwSWFxbTQ4NG0yd2JJMWZ1amJOTG1hCitSbG9UV3crU0Y3Q3YwS1BjWXlR NkJ5VTdNQi9iVE12RGRRU2pFeUlTVldTWUlpTGkrRDVabVVmUXdJckdhQ09W cm1ibVBUS2lPNkZzCitlMFRrUFBKRHZXeEd0bXoyMWZSTU1PbFRzUzJ6d3k3 VTBDQ1AzMUJUckI5V1JkdmVPaGpzUHVxaTcybDlxT1dBakZhb2taR1FXZHcz CitLanMyS0tKR28weUlTL1pYZEI3UW1LSytqVzh4Rll3aTl5cmpUNlBIRkJG WDVZQzhhVndGMDJSUDQvNDdJa21TUCtjSFVuVXY5UVZWCis1RlFBQUFBQVNV Vk9SSzVDWUlJPQorIgorICAgICB4PSIwIgorICAgICB5PSIwIgorICAgICB3 aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisgICAgIGlkPSJpbWFnZTEw IiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0 YXRpYy9leHBsYWluL2ltZy9leF9jdGVfc2Nhbi5wbmcgYi93ZWIvcGdhZG1p bi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9jdGVfc2Nhbi5wbmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UxZDc3OTM3MmY3ZmQyMTJkMjA5NmU3 NzAxYjBmMWFmMDVhNTI5NwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTk1 NQp6Y21WO1UyVkQ0eFApPGg7M0t8TGswMDBlMU5KTFRxMDAxJW8wMDEldzB7 e1IzRGRCajcwMDA5M1ApdC1zMDAwMXEKenghWDJ+IUVlcChMQX5pa3pVZygm P3xJUGdRTnJwfSFzPUpVPlZ3bnBpUGk5QyRuMHYjPn42fkpsLVRpXitWT25P Cno/U1JuamdWRjd6LVNNZDJAe1pLKms9NT4jKjYqKzNeOH1+aTImbSNuenYp ZkU9QCtmejlrMWhDI3BgMG4+b2N8Rwp6SUpmMEp4YUQhbj8wQy1YUGA+OT96 fkA9UD1aNFlrWXNjdHMkbXh+Vz9ednA8ck5RSzhtZURyQko9Z1RmJUo4P3oK ekBWM2JCdyQkXjsjX3pWcEAzendPJGtPdTEhdFMtZj96UGJJJElrSmB6VTtL VT82a2I+diZgfHY7cVVqaj56fXBpCnpwMnpSRHZnd18lPjdCI3h3WE51IXRM TDFtPWJPTG53NUh+b3JSSktYPChqKGV2KUFoTndDYkwtPlljQ1lvdi1NZQp6 c3BwJWM8KGlgOW5Zcnc8KjZILWJAM3lZIW9UJW9Ucns8Zng/NmFXY25ZWmgr KGVsVEA/WH1HQyM+KCk7eGErZ1gKekA1UERSam53SiUhfHRgZD9YPUREJEkw LTt3KDdGQT5hdyl6dmM+UGopOUNaVkAzeURybnc7YTluJlgoNjsrTH1OCnp2 Q2AtQnA1Jk9DOytMMT1tJDIhdnVqIW5Qc0QpOG9QQzdhfFI5O2R6YXl2YWxK I0s/K3RsejRaO2creEl1K1psNgp6ZTArU14qeDNMN3xDV31QXjc4VmRxb2Fl R2dzfHpiIVJeRCY9SkdkfEphMkRyJUY0PU5WUFJUKVRzRkVyJmdKckEKello WnF2ZCNsIUBldmYtTmdGTEx2c2E5VEFJQyhxNj8hPkw9dSZuNT8hMHA0Izw/ KF42ZFk7SWVRZTlHKCNoOCljCnptNXw/K2tLZEs1PWRhNztAdT1zVVUxP2Z6 bTJIJklqZGhLM295Vkd1LTt9QjV1Z2NAX2srRi1VLWx+az1sI0FZIQp6cns9 SDc8TTdNeSMpKmxFPD5scVA/ODMrNkBIdEY2SWFORHFvTlBGYUpiJVo2I15V ZEA+OU5HXyNJRVNEc15fcjEKej84Q2g1IT1+bzByUkpgcj1CflQhIW99aDV2 RldqcjtGZ0hwbFpNQHNoMWA7KDwqbWN1P3VwKSRoMWA+Yis+KVpACnp0LXwy JXcoR0sjO2crUTN0JUJUPXEyI1Q/O08/Jkp1KTZFUXhhK35kLXxucEV1JmR7 PXpVOyVOPUJ9WFJ0KUp3cgp6dyg3eVQrdzZlYmskJjJkcDV2fDU+R1F0Yz9Y QX03am8rMXctO3ttWWs7dm9rPTdCeWEwMDAwMWJXJT1KMDZeeTAKelcmaSpI MGIpeD5NMj48NXZ1XitaMDEwcU5TI3RtWTA3dzc7MDd3OHYkIWs2VTAwWWZR TF90KFkkTC1XLVI4d2FkCnoyWE1VMytQYlVPcyYoJn4yTGVRY0xYXlleMjFR WElxN1dCb3N8Kz45dD1GaFFOV3xkNGpVKFdTTDBkOzBpMzJ3VQp6JWFETWVx NT4rNDNffSEpelZgKEAkdnhxTj1YaVNoIVJOITlGWnJFK3s/QzFMWkVVe0pl PzlkR1lVKF8jNXUkI0IKemg3QjdMamhwPD9eaGVeU1gzYmwpQndEcEBeSylD R1VIZX07ezdQNlE0TFd4MClTMzlMT1ZfVTVpMChhbF9VY1hhCno+RCNhVzBI WGNDZnJBRFUtemE0V3s+Xm9zN1QrRHBVPF5lY1V+NlkqWEE4RFdybzk2PUlJ PnY3VV50dVlHeStDQwp6eUtxSzwxITBVSCY3Zz4jdEUoIyRtfFFORzJkcHVD eyNhblV4c01ab2ledXAwby17SVhxOFlMMFBWI2FEN0p1Pi0KekhhTk1EXkw3 VCMxUnF9XmpaQj9kT1N0eUhvOCZjeTElNllleGpCS3JkJThhZDAoXlckR3By TF5ydX4tfEd1Y2tGCnpQeng2aFhFd3xVNDRlXlVtQ09aZD5PM3ZVeW0+Z3Fm eVotMURTcDRSWFRrYDk7RSh3KkQhQH1YMk5uY31nb2U+bAp6N0Iwa3U9Uzgo eEdfOXReVmgodXZpY3BKU0BlO3tXOGQ8Z3M2R3lhSUtlU2prY0w2eTJkeUVl TnAtOGttNyghUF8KelI8NSM2U2JZOSFIbXE0b2xJeEAtSFMwR31yKnh4NENK VSNMT2A5K29NenhTZU05U3JuM09Pfktxb2BBe1d0QjJLCnpubnQjNntqI3hi K3ZQaCpHRDw8bCRSby0xUUV+LUk/JVpXJVc0bXxiNnpXOyoqJiRjIy1NMnNY MDNydHVWSW49Twp6UXBMczdRalEkS2d0e0s8QklPWkJlU35sZms+aUsoNH5z ZFdLQi1CZGt5RUVJNXFPe1d7fVpNQmI+P2pCeGYoKkgKeiNBITY9d0tRXyFM TiVHYip5Q2JFYihnKG48a0k9ZUl6NWVDeHFgYGo0a3pITV54QWNfdjYkS31j dzxfdks5TlJsCnorJVVVaXV7VE5iKUBfaUl4OTs0PGtIX2w5PyVsJkZ2cHQx QDNtXztZRyR7PUpSKSF9Pkx3cmh0X0NFWlJud0ZrSAp6T0xfMUI2TGRYOV88 QmUoQT4zZTQkM1k1aWsoIW5MRm8jQlJiMT99TkVmPEdDbDRQWSEzQ1VgO0NJ eiVRLUo/YFUKemZCZilDOSpzUEdpcGV2dlNleWl6R1RITkZQQFVBRVhRNitU bTZabmhQWU1iT1kyP0tWT29CcF9hRXE2ISs3XmtaCnojVmFWdkQ9YUxjaz1M KWtgZD9YMUFaJSUtQC1SZkotVzEyZlRkbHElNWk7Xn5AYHw5U3c2dl87Sk8j YkAtbzJ3PAp6ZXo9N1NzOz52dEF7fXlZaSZDU3AhZW1ZdT8+fCZsZXQ2SFkw cClYcEs/VEpofEhYXlYlRmMocGYmeWJIbHZQd3oKem5KaU9zRD1UeFVsd15a aVQ/YDRBYi1FSHIlWUtYJlRXQjtJJWZNN3NXbDUwdl5vZT5ZTHYmbm1OPDdA eG0heExFCnp0Q3wqTnM3MU5TV0djN1pTan10dlljfT9NeyRLTU1ASjA3SDhs bns1MDAwMGJiVlhRbldNT249SSU5SFdWUlU1eAp6R0I3YlBFaXAxSkZmbWp6 RmdpM2RJeTV2WkZmfT9iRmdUZWQ5c21GVUMzSG50Yll4KzRXamJ3ZFdOQnUz MDVVSyEKcEZmQX1TRWlmQHVHQll8ZkcmKFJnRD07LVdGZmh1T1JqZEYyMDAy b3ZQREhMa1YxaWI/QzVacTQKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1n L2V4X2N0ZV9zY2FuLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4 cGxhaW4vaW1nL2V4X2N0ZV9zY2FuLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42ZWIwZWZiCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfY3RlX3Nj YW4uc3ZnCkBAIC0wLDAgKzEsNzQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg ZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVh dGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykg LS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMv ZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVj b21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMu b3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9 Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6 Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6 Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisg ICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIiPgor ICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpS REY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgor ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4K KyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJo dHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAg ICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+ CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAg IHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dn b0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZR SUNBZ0lmQWhraUFBQUNGcEpSRUZVCithSUh0bVd0c1ZNY1Z4My83aFBLd1lY Y05aTzFHRFNGeFdtT0RVeVBSckZxckwwRXJSYlZpTlVxTEdpUTNJZDJXcHNv REFoaEZWU2tQCittOUtxVG9LanRyS1VGSm9vYUJWRFJCc29JbkpTZjBqTXd6 WTRZQ2ltdk5aZzcxMGJteGg3ZDMybkgrNjljKzk2SDZaMlVMLzQ4R0Y5Cisv M2ZtM1BPZm1mT2ZNd05NMlpSTjJaUk4yZi9CYkJQdFdIUG92QWlkREtmZ2xh Vis3amIrMG9vSFV1SjIzbkhrWXl4ME1zelh2bHRNCitlMzhjcCs1MjZSdzNv Y1B0Zkh0bENXY0g0amdBaHcwV3ozRVRPdGhHNWFOTHVEQ1l3R2tEcHcwZXpI SHhabU1yUDMxc0tWZHVKWERhCit0ZmIzelhKU3Q2K1Y1eDh2SlR5VXdHRUR1 ODFHd1V3bjI5ODZrVGFlQ1JNQmFPK1A4MUhQc09iSVpzT2hFenA5TThZbmtS aHV1LzRSCit1L2FpY3lCT1d6U0d5dzR1RzdMOXhWdHh6dmJIY2RrMWdnN2Rm M2dvd1lYQm1QUnZ6N0orSmtXa1pJNUwvNGoyWEp6cnBnbFluT3ZXCitpS0VG KzFDT2kvTkFZWTRMcDgwbVorVCsyUzZhZ2Z0bXVYQmlrek55N3l3dExQOE03 ZGVZRWVNNW5VMDRSNTU0WjUvbzZwcVhnaTljCisyTVBkeHQ5Ky9JZi9XNDdz YmJvcW1qb1VBTXFMdkt3cUw1QU91dWJYOGNiM2Y4ZGdJaXJiejNaNldIMWN3 d2NTV2o4aFlKYlRROVdKCitPaHErdDVPQlJCUmhhZi9VaVRyK3NyS1dmdDJQ QUhJZEh0YTAxdkg2aWxyNjR3b0NFQWptdUx6OHZMVXViYXhaaVRSMUtGVC82 RUVBCit0cjUxTHVYOVlDSktOSDVkUGdzOXhJR0VRaVJteFRXN21ZaWl4THJs czZyLzFaK0kwaHZyUmhXYUQ5V3Q0WDF4aFJ1eHNFWkVnSm9sCisxbkZ6WkNp ZXJYdDZFOElrSUNROUUxUDFSdFoyQmdtUjFGL29lS3Fmc1RZdUVTR3lkVGR0 ZEV4Zzh1UENuQkV0WUdGNXI1a3FCS3FsCityVEZUVmorcTBNaE9tRWcybSsz MHlHQkJ5d1VUTndPZGJlQ091YWh1YzlSekhScWU2L1RLR1FHWTQvVHF1SWRS eStETTFmMThya1FxCisvUldzUHY1aVdyenF4THEwK05NbjE2ZkZmOWFhSGwv YnRpRXQvZ2tmcGVEakVzbVVJYUZ3SXcwUDc1U3FKWUFjcDRlcUUrdG9lSGdu CisvWWtvUWw5R3VVNFBUNTljejUrVzF0Sm5xQm5hVEFSYjE3TjdhUTE5VXAy MGtWL2J0b0ZYbHV4QWlWbHdsNGZuMmplbWpXZFNPVEtZCitpQktKZCt2dHpL WFVsNGpTT3hLV0FadTRRaytzVzI4clVIWGYwYmpDOVpHd3pBRjFtdmFyeEJU Q0kyRlVQUTQxU3l4M1FDVEx1ekVFCis1SzhRbGtSR0JpREVHSFd5OUpNa0VI THdWRXh4VUptay9HYXpKT1d4akhETDRWYitkZkJqYmx5SUFPQmZ0QUM3VDJY enhtMHBQcWJOCitjSEN3L0JESC9wRmNETnFYMnhpK2R4amgwQlJSKzk0a1pp VGJkRXAxc3VTQ2ZiOUszNHpiYksrdXBiQ3dFSURPems2T0hqMUtjRmN3Cit4 Y2ZnNENENzkrL25qODJ2Sk9IMTlmV2MrZWM1aW45UUxDbDRkRFdiR0pFTWVL Vy9ncWZHcUpPdFE3Qjh0SXd0VzdiUTB0SkNJQkFBCitJQmpVQ0FRQ0FRb0xD MmxvYUtDenM1T3FxaW9jTXh5c1diMUdCcjlueng0QXZ2U3RoZno3RzVkNDcr eWhsTzlPU0xVeXpXWW8zTWlmCitTMnU1cWRkT1FzQ2I3K3hqMWVwVkFCdzdk b3p2clA0bXhWLy9NcWNPbmVId3JTWmVyUHNWQjE5N1gvb29XRlRBNWZ4cmFm MTNEVjFrCitWMWtOUGJHSURNUG44ckwrOUthMDdlOWdSakl2cmY1RWxKNlJi cG04QTRNRDVPVGtBQkFPaDNFdEZRem5EaEg0eVhMZTcvaVFnY1JBCitVditF U0NROUI0TkJPWHRWVlZXY09uT2FlUDZvdWVObldlYjI4WWdJa1ZtNWpOSkNV eGY0d3N6cERBeG93ZnI5ZnZwdkRIS3paNUFqCitiM3lBL1VNeGJybFRYMTlQ SUJBZ0VBaHdadTQ1NXQyL1FOWmFSZ2t6Q1NMWkE5Q0lhbk5TdHJLVUF3Y09B RkJXVnNiSGU0L3p0MStFCitLSmxYeXBQZUgzT3AvZEo0bjB1eTRhRVlLb0pS b2RkYVdkcU9TeVNiZnVjNHZmamNDOGh6MzBPZSt4NGVLUTl3Wk9nRGFtdHJ5 Yy9QCitwN201bWVibVpwWXRXMFpMU3dzbFh5MUo2dSswSmEvc1lEQW8renk1 YUJVWGo1eWpZRm8rWDV5ZVQ4SDBmUExjazFDdFRITlI2YThnCittSzVHQ2o3 R3UyKy9TK016KzdIcFp5NlJiNk4wUlNtMW43MktmYTVLSUJCQTVOc1F5MjJz ZUdRRnIrMTduZnI2K2lRL2htcHgvbk5TCityVXpMS2hSdVpQZVNHcUlKUmFy V1hKZUhYN1p0b0c1dERjb3ppdHhqUEc0dno3VnY1UGZGMjRrOEZKSHR2UzR2 NjA1dm9yWjZCejB4CitCZlE4OExsOWJPell4TGFpYmZURWV1WEdPOS90bzdx ak9tMDhreXBSbElSQzk3QjU5MlNvU2lTdUVCNitadG4xTmV1TlI3aHkyNmpC CitoTVI3WWdwWGhxOWF6aU1HM3N2bDI5ZGtyWlV0VnllMXN4dXZWTXRKRHN5 ZFhnWmdISlFzWnc3clFVbm95V3o0a20xQVA0OGsxMllUCitJaUt5WExTb0NC SVdvZ1pwTFFCcjRXZjRTaTR5c1FSc2xWZjVYaDhFMVh5Y09KRnM0K0J4ZWxH bm1YbmswVlhGNi9MS0FJeGNNSEE1Cit3Z0s4TGg4QWVXNXZVa1djcCtNK3Qw LzZBSmcvelRkeElwbk95WlgrQ3A1dFQzK0NlLzVVNnVHbjBsK1J0cnlvOUZl d0tVMENWL29yCitlUG5UeldueGlkVmFHU3dVYnVRUEpkc3RKemlCMStYamhW TWIyYmw0RzVHNElwZFJubHVya1hZVWJhTTNGdEdYaWlEUDdXTlRSelZiCitp N1p5WThSVXAzbHVIeTkvdXBuZmZPVzNYQjh4YTYzNWJoKy9QcE5LTGlNUjY4 WGNTTUxjRHRmc2JoUFdpN3BJVE9IYXNGYjBtWWtKCit2WEdGSzdjTjNEeW4z SWhGdUt5ckU4Q283dmY2U0MrWGRIVUNjeWxkSDRud245dFhOVDlaU3FXTVJK bzZGSjZ0WEVqUFp6SDZoclhDCis3b21WQmN5YjZhWXUxQ1hiR1hrd2R2a1ps Mm5HRFl0cWFXOHFuUm14VlhLTkU2SEV4d3BBQmt0Ym9wUVhlYWtMZGVHeVhI Kzc3RGJxCitRbDJVRjVsbGdpR2hRdjluZmxUb3VtOVN0Z1k4S295QzAwTGNj aVlYRm53ODJUVXM3WXlzS2krdzdXMjZLdjc2OXl0VVBYb3ZBQTN2CitYVTY1 Ly9XNnZGSlZqRnpRY0YrUy92dmN1anE1ZkhLUE1YSUJORFd5Qmp4Znh4ZU1V YW14ejFiTGVodWY3Uks3NXZ3dUVRbzNwdlNwCis5RmR3dC9HWEhuaGh3ditM TUdWVE5tVlRObVZUbHM3K0MyZ2ZydHhYdmFMREFBQUFBRWxGVGtTdVFtQ0MK KyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjUwIgor ICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3Zn PgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFp bi9pbWcvZXhfZGVsZXRlLnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X2RlbGV0ZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMC4uY2EwNTFjZDVkMDFlZTJmM2FjMTc3NzliMzYyOTk5ZDgyYTkyODVi NQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEyOQp6Y21WLXYxZVdgV1Ap PGg7M0t8TGswMDBlMU5KTFRxMDAxJW8wMDEldzB7e1IzRGRCajcwMDAzXlAp dC1zS0xEXj4KelRVK1FzMmxoPThIaSpJNWIwXk15RUQ1Uk4oMTk7PG1aNmY4 bEVJSFEqTjtndXdkSGxEJExmJC1MQT5iOHFGQ2FlCnpYLWRIOSRFdFBYcWkk V3E+U008MFlzY3RsJG4wKio+fitvVCtQaSsreT9AKWlpUUsrYCtgb1coKGVL PkJmYHJsVAp6LU5TPX4pOX5LSmd4PHg0LW99UUUpYjhLTWh1X0dFaz01P3Qk JSowMmlrSTIoPElBNG4mV3oqQ3A1KUQqOz9SeGMKeiZZeiYkQCNFNXU8PE96 eih+IyFUcTJ8JHw8a1hTbyh4VCttbElHSys8PF50dClUSE90ckxOJWY9R20w ISpRViYjCnpyez56MD5EWl5+KntKOC1tKzlLNj5lO3NHK3A2b0B4OUh4UD5m TmdCK18+ckJuKE4tST9BXk5TLT52TjR5Nm9Wcwp6PmZAYTQtQEVNTHVJPUV2 PmcxajU7Oy0lRHl6SnchP2Q3clc8aTczWnZoTD15QDghVm89RF9kaHYrd0Qo QGFWJHUKej5COHtydyg7eDReNmthKj9aKSUpJFl5KGMtfmEjczBkIUpNUXZn OGIqayU5IzAxMHFOUyN0bVkzbGpoVTNsamtWCnpudyVIXzAwT20xTF90KFkk TCo4YmRsXnZfI2Y4YkctUExMJW5oTWN+cSNgbVEycUJENylGb21QZ2M2Mk1R TWRnNgp6azNEbkZGZVhOdGhranJDa29+WnB7TzBWbl9NKnxlJXMtZzdsc0hS TzRXWX5pZ0pGbC0rY2NSRHNEbj50XkNAK0AKeng0KFoqb2djWn5VbnkwQHUp ZS0tcGYtYDNzRT5OUi1jMFF2ZTRqZW4tWnMwYnp4MnYweXpeMzNMKlFYSjk2 bjY3CnotfHZyTUVDfDh+TW0qMENmY3lyKUlGQWhQP2B3VFlgP3Q1WkpySWh5 VHBSZGdHRn1Cak9udz1TM1ojYVM4Yk9Legp6MilTSTJoaHtROU1aUWxhLTMt VmB6bE1LfHdPMUA2cUBEWWc8ZT9zcSNWUWgjJHIhNT5raUZwalhEKXRWN3RI fC0KenMrQ2UjQD90ZjlwQCVjKEomM2J+YiQzeXY/XjxpMFdkP05PWT5hej9G b3NkUCY1dk1FdVU1T3o8djZaMHtqaD1vCnpvbVEqV1pPQVR+cUtuSENhNiFM NkZZaUNjTlFoN0BsMzxme3NLemNZSU48eiNaKzxRJiV3VGc8MVA5Q0dVQEk1 Rgp6QU97N25tKEdHbCRyeEZmZDBCTVAkIURgSW1fSXNMI2lONGUmNHhJQ05O bWE9M2ZWemRYeDBha2J9Sj14aSV1YioKej8/NVleUEJsUTtNQFZPMHVWfCRH bGBkJUhCN0poflYmUEdUMGFnJUZrSD05bGg7cVQ4eld7bGZycWhyKmJ+enMt Cno1LTNKbWw5VTlTckI2OyRrWj9Na2o1Pm4kPVlDMm14QGFMNnNZQy1CRVc/ eWw1ej9eX2I0fVk/bVlEbnMjfXp0agp6XyZUZlBNdlZsXi1hJERVM0Uhd01o V0I1PzlhdHF6S3JSaiRoJmIlX2tVRH5rcCtII1lwKDZAbXlXTz9+IUkzSHUK ej1GczU/TCYkRWsxPU52RkhrKW9LeXAkdTZASEplQTApZ3UlNjVHTn1kJC1z KCltS2BuMWlBdnpKQkVwdDtVKkxjCnpwO3JQdi08QTRlcSE+Z1EyWDxpLVVI QnsoJWI3Wm9hRVprcjhwWGxOaCh7ZV4oR3tZU00oaVJJdS1QbT1JOXJhfgp2 RjtUUVgoUm1rRjkqXmhoaU50b0ZeUklsRnw3bV4kSDAjRnVzP2tGVTAwMDAw Tmt2WFh1MG1qZmh3VzYzCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9l eF9kZWxldGUuc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFp bi9pbWcvZXhfZGVsZXRlLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4yYjRmMzcyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfZGVsZXRlLnN2ZwpA QCAtMCwwICsxLDY5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n PSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRo IElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8 c3ZnCisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRz LzEuMS8iCisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5v cmcvbnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5 LzAyLzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8v d3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9 IjUwIgorICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFk YXRhCisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAg ICAgPGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAg PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAg IDxkYzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1 cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2Nj Oldvcms+CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVm cworICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpo cmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNV aEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFo a2lBQUFCeWRKUkVGVQorYUlIdG1YdG9ITmNaeFgvcm5abVZWb3FlcXdmT0Ew ZlVOb2xWU1hIc1lHakEwQkJhWTVxMmNWdlRrS1l0YmFHWUVxSVNnbEdNbklq VworR05lMVFrR20rY3RnVWpkcENFNGNYS2NVV2dRdDJDVzJIckhjUmdSSmxt VEZlcXhzUGZZeHN6dHorOGM4ZG1ablZ3OW4zUXFqRDViZAorZStiZWIrNlpl Nzl6ejdDQjNielB2UkFiL3Q4VEtGU3NFMWxyc1U1a3JjVTlRMFFxUkpJbnp0 U0o3bEhOaCs5K1NPRnU0Lzk2YmpJQQorQlNMU1BhcXg2Nmx0ZkRLWGRyQWRs UkxkZngzZzZUMU45TnpTcUpZQ0FHd3RWemgzdm85bjlqWXpIa3VqQk0zK2o1 VEpuRHJieTQrLworM2NKNDBxQVlBY0FENFNBbjMrdmx3TDRXWmxRZDJVekRn eVV5UjkrK1FyRjF2NElRQWZoa0xzM0ZxUCtwOWR6UytQdWs2clMvWTMwUAor TDJqMDNFcjUrZzh0cGhoWTBCM2lkc3lvT3NNTFp2NmdKQUhlc1FVajh1Vnli Nm9kbFJMZHdHT1ZDb0JuUlQ0RkhyNVBRZDZ3d2JNaQorRjRHR1VobEZDbnBX QkNBU0NnS0taMFhjRVNpRVJYbjg1Sno0eC93bUgvNWsyUWgzRzc5OG9MeHdO ZkpOdFl2WGYvNDc5UFNzZ3dXbAorS3E2Y1docFBxMUVYWGtIUDZTNWUrMWtu YWRYVlg2Nms5NjB1RHYva0JLbmtqSU5MU2hWOVo3cTRUQnNlSWgyZFI0VDlX N2wvTndlLworOXhYdkpsMG05UFFzV3ZKenN5RUVzaUtXeE5OcUZDMXh3eG12 RkJrV1BvdVduRUFZWmxzcE5yOVR5Um0wK0xpWlJoY1ExajMzMytBbQorc2Yy Rk4yaisvbkVBanY3cG40STdDWkZuV0Q0Y0VJWkFHTzYyNGJubUhpLzAzSG1j QTdIeFc3OEdJQ2hMUFBMa1hocWF0bnRXYWJrUQordXNnNTJYdzR3ckFJZUs4 Smk1RXdCRUxYM1JjUXVrQUkrK05ONTZtUitQUjFBSWI2cjdENWlWMXNmK0VO T25oSnRMZTJMYnZOcEZDMQorcHgyVUtwYkVnM0lWU3BFMVJ3UkJ1ZExzcjFS N1ZrRlNxa3k4S0dLU0VTWXVaK1YxVkt1ajg0alkyTFNIbVdpY3V2c3JDSVpr eWpjMQorRWd4VWNPWDBTeXhGNXZqcHQwVThPdVRER3lLN0dKcTU2TU0zTnUx am92KzlndUEvZldxclY3WGFXOXNDTnBuU2grcVkvMnljdVpHcgorbEc5cVhI Wmw0dEVoZHY3dE14OCt1RVBsc1YrY1JFL05PalVnaGFyb09kMUt5L01uU0d1 bWFnbERJQmRGNkgzcmx6US9kNXgwY3NiWgoranBKU1RkODdyOUM4L3hoYVlz ckpMWWNpOUw5N0VDelY4cGpHOXRhMndFVC9CZVlHeHlqNzBnT2tGdUxNalZ4 RkY3ZE5Nc3ZVelB4aQorelBuWW9hZG1VZU1UYUVuelkwdHJXb3VpSlNaUVl6 ZlE0dU9rRXRNbW5weEJqZDBnR2J0QmNuSGNrVnd0TVdYaUMyTWtGOGJRNHRP ZQorZS92Yzd4Y2xreDNaYXVRclpydUR5TlNGRUpaQUNPSDB0OGNEWVBpbmtO UEdMMFdtZWYreE95QmpPSlB3cVpRdVBNb21CR0QxRnk1cAorRW9aRndCQm1y aXpaeW51eTJ6VURleWpmOHFCVE14TkQwMngrK2tVNk9vLzRhcWFzdE1TWEp5 aFhPb2VhWFF0Z25zeTRKaVFwcGdySgorb1dxRWtaRmRPV1QyVjRvanppcUJw V0t1V05acjJVOS9ZOU1lSnZvdkFPYkJxYWZTOVAzeFpkcGIyd0svNzN4VHFQ TVR2ckhWRGJ2LworOTZxVkwreVZzVWtBM096OUMvVXRYM1BhVTBScE9kQmxG cWIxMUtTaUNIMW5YcWJsK1JNNThlYjl4MGlwVWVjSnkwVVIrdDU1aGFidgor SGtWTFpGUkxDZGZRLys1QkdwODlRc29wY0lGY1hNUFZzNjlDdHRkYUNSbUFy Vjl2SlJDQVUzLzRtRXNmYjNiNjJGN0lzUkRXUlBMaQorYWhSMWNjeXBBN3Vv dGNRTTZzSm9wckR0L3ZGcGt2T2pqaEFZdWt0RldNVTd1MTBQbjM3VXlYOHVk SExwMGlWdkI4TndKdXV4RUhsdworWWVnWkVvYVJVVGNoY25zdE1tb21oRjly Vm1Yamw3UXFXYktaVDA3ZGF1T1JVK0Zkc1l3NXRNbDZDYTVZdFZZYmtsSk5T TmdUTjVCQwora1NWeE9SUXhWOEZXSWNzN1NVVVJRb1lBVEVNcEY5Y0FvSlRV Wmg0SW9JVHJQUGN2eUJ0aVBxLzFjTVhqRE4rKzdNUHplYkE3OFdZcgorVnEy VlJEdzY1UEZDd2pCMWYvak5GOW5aNjVmbHNTMXo3QnljOXVHRE8xUWFmM2dj TFRibDFJRVNybVhnZzBOc2UrWlhhTEdiMWs0VAorS0NWMURIell6cXBVYXlX aEphWklMb3laRGNOYkMyN3Y1VDQwYytGYWJJckUzSFVyVCtiQTFCWnZrcGkv N2hUL2t1OGpYeVFjQ3dFNQorTGNTSzg5ampiSXNpTWtYdktGaVc5RUlCaWVT WHpkWG53ZTJ6Uk5ZSzZMYmQ4WklwR0JFbFhKTzVxU0dRd3pYT3RWd2VMQit1 aE90YworN2xZZ0Y5ZGFlSzJWMnlRUUtxMzNqQ3NJa1hCMWcvV1M0NDJHTFY5 bFVPcjI0UnZMSDJXdzdKb1ByMjdZemNDNVEvNytUZnU0ZHY1dworVHR5T2dx bVc2WVdtbkMybGxOUnk5ZXlyTlA3b3R6bnhiVC80RFZwczBrd2dCRXBKUFFQ bkRySHRHeDJvaTVOT2JpVmN5N1h6aDNsMAorNyt1b2l6Y3o1MGhwUGYvKzgy c1VYTFZTOFNrU2M2UE9TVzd2OFh5NEZwc2tjWHNrazhEQzFjVkpFclBER2Rq YVN1ckM1OFJuUjdLNworTzFGQTFjcnlRYTU2eVlWN3J1ZVkyUEkzOURZTDlr ZVArMm03OVQ4ZmpzaXRiRzQxTW5URHIxcDVvb0NxVmVzeGhVcEovZEs0N1oz YworNDNHcGthc1dBRUwzMVh0V0lWUjJsMVJyNElQY2FwTVgvN0E5SjU1UG5j ekM5dU4yRk1RMHJvVzRaLzRNWFNleTFtS2R5RnFMZFNKcgorTGY0TG0xRFJp UHJnNzdNQUFBQUFTVVZPUks1Q1lJST0KKyIKKyAgICAgeD0iMCIKKyAgICAg eT0iMCIKKyAgICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAg ICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfZm9yZWlnbl9zY2Fu LnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4 X2ZvcmVpZ25fc2Nhbi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNi YTQ5YzRmYmZkOWI4NzE0NDRjOWU4ZDUyOGRlZGEzYTM3ZGRhNApHSVQgYmlu YXJ5IHBhdGNoCmxpdGVyYWwgMTYwNwp6Y21WLU4yRHRmJlApPGg7M0t8TGsw MDBlMU5KTFRxMDAxJW8wMDEldzB7e1IzRGRCajcwMDA4blApdC1zRypNSjkK ekdjX19qSnU1JiZHKEpCeUtSXy0rTT9YVkZJej5mME1uKnFNT0VGR1NHRWg9 Tk8tQEttUEJsX2hObGl+Z1BmdFpxCnpQKWtveU1wMDV0UWRCIXdUVDUwflBG WSR8VFUkWTJWTmhJTExTU04xVTBxYVFVYEokVVIkKmRTVnE7aWlXSnphZwp6 UyE4OGVXb0JEdVhJeTchVnJPWXlYPStieGE5P1VgTl5vKmtaRTxGNlpEKHQ0 VlFwP3hhZGN2Q1olJVl9VntkUnwKemFCKmRFYSRzfEVXXiF8RmFkY0M4ZHYw PWRYbW9YTmI5UU5VYiEmSGJiYTtEcmQzSkFtZG58fi1WMUkma2R3eTdoCnpp aFh+NGIlQjkqZ00oZyprYSZjSWRXTUYzaGxoTktoPEo7TmV1fDJPaUhyY0s8 OUNqZDBJQjdHakUjYmhrQkUocwp6MEl1VlNqKiowcmtwUXNlZ15ga2RsJGVL O2x4PiNKa0NUPihtNm5RQG14N3N7Z1BOWGZwezloSnBORV44aismY1MKenM7 aVFvcE55Y05GfTNCS298fXhMczVIMGRqaWprSXhhcFJydGVLeyFwcnhwcXI+ OUUxPVM7b21vfnhgKXpVaW97CnpyJEVCJlRFT059IXRIfiZ5PDVUT3QqQCtI IXN4RUJ0KzJBTHBTSFY7eCFHVUU+YW54MFZhTSFaJG5JcHhAM3B0SQp6WXNs enEkPzJ1TiFFTVV3WnAtVmN6ckx1eiNjPDgtcXI9OD4maERrYj01KX5VZWFg VE8oQ29wKHpsUEU2IW88T2MKeigoYl47JGdJcklpcSFETSRIYUAoQHk1dS1r ayN6MiYoZz1xIyp4PFQjbWRjKypZMj48KVJmcm92KHdnPStWUW0xCnoqUnxF eXNATG56KDlFe2grMFc2PXg3WFV4KCRCY3ErcnJuQHJgXzw8KVh9S2tAdyhn SSk3OD90K3Z+Z0ItQE0pNgp6dEtzeSQtcj5hRDtsPHRKelRXUUcrU2Ize0A1 Yk5ien5KJTY7Ti0jS14ycClsI15VWUM7XilXWD8ja29uJG1IK08KejxtMVda QFhoN3cte0ljUzw+Yi1rPDxhSHcoJnkmVj1KTWc+O00zXm0pOTNXcz1qWVZ1 XzFveV88bVRobT5Hc158Cno+Z0RJOy1Sa1NzPi1YTzQ/QkRGfDtPKnw9Pyhn ZEM+RUgxN0BBMjtPXllIWmReWXs3b2B1ekYpfE5IKmBgfnFoSAp6UFhHVl8w ZCFKTVF2ZzhiKmslOSMwMTBxTlMjdG1ZM2xqaFUzbGprVm53JUhfMDBSZH1M X3QoWSRMKkJhUFpMb1QKeiMmTz9KNnIkcDtEREh+OHFFWFpsNjw1SC00WWxJ Rml5TWZfYnlwSGBtJTU7V09JJktEZyl+KStHYDUzR2hZKkhSCnpYSU9gWFNT V31uSWUmcSgpWT0pXjJOR2peOzU/anB4eGYzfUA2MCpKJWN+eytiekg+d0BS OzJwKnpNVDN4TWJ7Wgp6TGMtWmMqd2Uocz51PDJQX3dKez4kM0NQemZCNlk+ aV5ON29NI2ZfJipHNUhNIVY+byNKYWh2fmp6NHVlMXhyZ3gKenk4MFVYT0Rl bUNIKyMmSXZyMl9SJCRkfkElZCZNc3UwXiVaWSk1dmhtOWBAWnFOdU18QENh K01TWGppOEI8WSROCnpXRi1nX0VrbWxTSnRLcV8oSSEoOXFeanlTTFBgO2FB UDhET0ViYkFSaXhTPWlQMWhoQk8+XnEqa2FXYXskMUZ1RQp6RCtRSFc3WnAz aEZxe2ZhKD43JElDYHp2NEstZ1gzbl55RStlMFgocWM7NntnRllGQipkaDxa d3F+cUk8P1RrXkEKekdOaHRITTB4YGtrMytjQkBGYUJVN0MxMyZJS1lfRW10 bE9XQyFgeXxoQyVhMzBuOG91NEEjdE9FREgkKmkwSmpECnp2OHpnc2wkTUhL YH5kY2g0R1JEV1UkX31RJnZed3Mmb30leSpCS3JUY187VCRUcjVfczRnYXU9 RSZ3eXtPb1g0Xwp6Pm1jfnNuSmVGQyE9bE1lRGtkVT1Oe0lKSmV9RSVQQXxT JnoydEdwYUpqZXBTVFYlT1JyS217cyhnUHFHKEV8YU4KekZMKGo3TXMpbE4o NGpqKCs0Tk1NKylIN2hmR2A2OSkrMVZ8Km5eO3pGfV9EMyFAb30hP0JBeC01 aStFcEt0JCVXCnpZOCF5KTlxbjNvWUNtRClIUWgzd2V1S0JKOHMtejBud2pZ VnNwMDskMStpUnFIWVkqZzRBLTFFIU1IYDUpbm9iagp6UDhBenNEYXpVVzw9 bmlLMnFQZEAkOyVURWVsOTNQPkdnVU5rJE9FPkJ+cihgQVQqa0VUIXhzPDQj YTRuX2BeSisKeih7VHVxREluP1RvKUMre1U/NjNQTW5mUm5HczA0JlROaFJ3 JEVgOVhIQERkcDZBX24xUUkxTjRgeClWV1BEUSNkCnp4VyQqOSVgWk99N2xn ekd1MiFwek5IV0diVDVTJEQlNnx+Q3VvfDM0KUhwSiFSOG1CI0ZsKTdEUUg4 RyhESGN9YQp6eEw8OFRNbWZTVVQqRHxHVWdSJExyRHJpM2prNDl9U21WdjlT V0VuMEBlNDtoPW5IVmhUQWNzQDAwMm92UERITGsKRlYxbSoqT05SZ2UKCmxp dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2ZvcmVpZ25fc2Nhbi5zdmcg Yi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9mb3Jl aWduX3NjYW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjQwZjFhNTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9t aXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9mb3JlaWduX3NjYW4uc3ZnCkBA IC0wLDAgKzEsNzUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9 IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGgg SW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxz dmcKKyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv MS4xLyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9y Zy9ucyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv MDIvMjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMu b3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMu b3JnLzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0i NTAiCisgICBoZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRh dGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAg ICA8Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8 ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAg PGRjOnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVy bC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6 V29yaz4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZz CisgICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhy ZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1Vo RVVnQUFBRElBQUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNBZ0lmQWhr aUFBQUNHbEpSRUZVCithSUh0bVd0c0ZOY1pocCtaOGU2T2Q3MEc3Qm9iUWpB MGdJM3ZUb2k0SktqUUFBSUthWkplbkpKUWlnb2hiU2lYS0szU0VyV0tHaFNh CitINFhTRm9YOEtzUWhjaEVFc09WSUdCQlFHc3pOZDNNeG1BYUhoanMyOXE3 MzV0blRIK09kdGZHc2JkWkJSWWp2eit5OGUzYm1mZWQ4CiszM3UrT1N0TmVQ R0hQQXdoLzc4SmZGUHhTTWlERm8rRVBHangwQWlKaWZhSEJhK3ZGVnNxci9i QUYrV25jTC94b2cvWFNIZmpVUXZaCitVbm1WR1RPemFHajJJMHY2ZGNjTnNi SmxieTJ6WitmUjJOb0JnSU1BbVlPdGJDbXRaZEg4UEU2M0JnQ0lVNEtreFZ2 NGNGY052M3dwCitqeXN1Z1NwM0lFa1NvK01VMW02djVwMGY1OUhVTHJCS09q N2NZZVBkVDAraG12Q0pXZ2hBUTdPZjBwc2R4dm44VGtFbld3TWN2T2tCCitX Yy9jUllvKzVuUnJnS3JiUGhSWlJwWmtKRW5ITDdnMHpyY0VjTW9ha2lRQlZn Q2EyZ1dYWEY0QUpFbnEvTTQ4QmlSazNCRDlocUVaCitHVHZZd24rQUNmRVdo cUJqRGdLa08yTTRCV1RFVzR6ZnhpbEJ4amxqT0FDTWlWTndJSGViRVlDUmRn bFFqUmtaWnJkRzVDSkYyNkk4Cis4Wk1DVVg5eGFBODg4OXZYdWQ5NDQ2ZEY5 MVlqcTFkdEZPWDExd0NZbEpuTStnMHJqQXRreFNmd3dXczUrSHhlWTd6TnBy TDFlRVVQCiszR3ExOGZHSlN2NjBOQnUvMzljbmJyRllLVHhaeGJvbFdkejJh UUFvK0Jsa2k2WHdaQldOSmx4N0ZWSmVmNDAzRjZRQjhPZHQ1M3A4Cis3L041 Y1dzZFhRQ3ZnZC9xSkFDUWlFN1M3L2YxQzdjTC9UcTNmUnErVG9GQkxRaDRJ bkx0czBZOGdjZ0ZkajlDQ0VHSDBHdEJ3ZDhwCitvTy9vYzBFVVFZRUlpajR2 NU8ySVhyQkhCQkZDSUlSK0h3Vy9PUmNSbWNlQVhNdG1VNDEwY2loNnpvTitE S1ZONlB4dTNJdkFZdEdmCitmTHhWcFVOb2hvQjRxNzVTT0MwMjZCd3ZoTUNo UktZYnRaRDhFY1BaZXJ6Q0ZQLzRST1U5NFlVbnEwenhiUlUxcHZodUV6NTlD b2swCituWldYdjJiaDAvbW1MaFFKZjNWQ0hxMytzSnZGVzFVS1QxYng2b1E4 N3ZqQ2hleTAyTmhXVWNPQ0ozTzZtY0RnR0VGUjlXbFRQZ05LCitMYi9mUjBs eENTMHR6Y1RHMm5HN1hYeHh0b0hXWTBjWVBUYVRtMWUvd21hejRYYTcrRmY5 R2I3OHZCaEprbmhtMWx4dVhiOU14YitQCiswaXpIa0dhVGFMcDhuWXJEQjFC alkzbDI2bFN1dGZ2WnYzOGZ0MXh0V0dNSE1TNDNHODBaSDVGTDFETVNpdjM3 OWxGYzlFazM3UEFYCitKOW0rNXpQK3VtNnRnYlc1WE5UVjFiRzdaQy9uS282 UmtKQkk0VWViK09mMjdaVHRLYUhkN2Fid28wMEFMSDVqSlMyS2habXp2c09T CitsMy9FNjh0WGs1bytEcHlSZVF5NGpkZmF3eW54L3NaTnpGbjZCcCtWRnRQ VzJtYmd2L250SDFqNnUzZVJKSWwxNy8yZXdiRnhYTGh3CitnUTVOWS9LVXlW aXRGaDVMU2piR2owMGR6YzBiTjhqSnlhVkQwN2pRZElrWWk0WGVvbS83RlVH RU1QZHlxOVdHb2lqR3VkUHBSSWx6CitvS29xZm4vWVF1MEpnNUNIRHVQWWlX b0FYcGcvQzBXUk9WRlJ4K09QamFEcGZDTlRKdWJSNW5MUjd2V1FrVGFhbU5Z V1VrZU9wTHk4CituS1NrSkJLc01vazJwUWVIZXhBaVROTXI1RUpmM2drLytl V0xGMUt5L2dNSzVzL2gzSTFiQmw3ZmZJZnZUWHVXSXhjdkFwQ2FPb3BqCis1 eHM1Y3VRSUFLTlNSekZseWpQczI3ZVBRd2NQTVgzNmRQTEdad0pRVmxhR0p5 R1JRNWV1VUZSOW12d1J3MDE1Umwzc0lkY3FIeFJPCiszRis5dllhajU4NlRs NXpNNDQ1WUE1K1ZuVW5aMGVQa3A2UUFjT2JNYVJJSmNyRlI3NXBlVy9KVHZw V1l5TUhENWRoVm1UbXpaL1B6Cit4YThBVUZGVno4TFZiNUU2S3BVNFZXRlhW WlN1NVNWeXNmdjlQbnlFMDI3a3lGUlNwczlpZm5ZYTc2MTV4OENiTGwxQzln WjRidTRNCitBUDZ4dFlqazVCUnFHODV3NWVwVk1qTXlBS2lwcWNadXR3T1Fs Wm5KVi8rOVROS1kwY1RFMldueHRBUDJpRnlpVGkzUVd3dG5mTmdTCitBNEdB OFRrNU9WeThmM3o3MS96bHJSWDQvVDUrc2Z4TjdNT1N5Sjg2SFlmRFFka0JQ YjJxcXFzWU5EUUpXM3djZGZYMUFKVHRMZU9KCit0Q3djRG9mQkpWSU0ySDVU VWxMSW56QVppOFBPbUxGanlVelBBbURZbUhRbVRwdUJGdFNJalkybFRaTjRL aU9ORWVNelNCOC9ub1RoCit3N2pWMU1qZmQreGcxK2NsV0MxV0preDdEcmZi emZzYi9zYUYyeTE4TnorSHArZk02NU5EdjRUMEZrNkxqV1dyVnJKczFVcERk RWxkCitBM1paWWQ3Y21jeWJPeE1BdTZ4UVZIMmFndHlNYml2MXp4WXZKdmJK aVJUa1puRFRxNzhPaUtBZzd1VWZzS2ZtTE0vbnBPUDJCUkZCCitnU1JMT0d5 UkUyaEF2ZFlucDZwTmNiTTJJaHA4VDgxWlUvd2I3N1ZlZVNxM1crOFU2cEVL Y2pObzZXenJOYTJEUkp2NWpJVHdGL0l5CitjSGsxNDM1eHFzTHU2alBHaklU Q1laTk54ZlZMU0VCRVhsRmIvVjVjbmpBeGYxRC8zTkloY2R2ZDFtV2tic1cz ZkJwM3ZCNkRjTWlGCitYRjZORms5N2w0ZW00MjVma09aMnR6RmVCQjBSdVF5 NDJBRjhNZ1NEUVVKN0hGclgxOTkrWEs4M1orelAvV0dBeFM2RXdFT1EwRkxT CittNEQrWHEvYmVUL2VURU14SUNFT0pZYUF6V0lJQ1BWQytqRzhzb2Z3T0ZV aGxEWkNDTU9GOUdONHNRdmhxcW95cE12OVZOVnNqN0dmCitRaUkxak5HNGtG bDcwWnM3bGRiV211SlJ1VmFrcUx6OGRVUVh1aHNQOVVqZnp4MXZ1Qk9FWGVq NW5QUnVwcUdxS3FXMXRjek56c2JyCisxVjFSQ0lGRGxTbXBhekRsWXlxazY4 WmNvQ09jOTVObnJoRmROK3E2dXBBZVlYZlNleU02U2VoNFQzZlNYY2psMFdq MnVJM3hvWFR5CitlcjNjYm5jQm9BV0QrT1RJYjFhbVFzcnJyN0hzcFhGY2Iv ZHhzL1BKdmpnN2xhRjJHNXQzbWorUlNOR2pnTHVjbXhWenQrK0ZRQXNPCitZ RjlyVW1ZeW0zYzJJTXZoRnhsWlZ0aThzNEZKbWNrOXhwdlpaMStXMnR2NDBO RjNEKyt2cGpPeWZzTUthZldxaldKSDZVVVd6RThGCitZRnZ4eFI3N3YzZTdr KzVLZXU0TDBkT0ZIRFlaRVF6aklSZFNWWldFTGdJY3FqNCt3U3FETTV4T0Nk WW9lcTJRbUczRmw0Q2VtOWk5Cit1ZFB1NmpPbStMMjZrMWxoUjNLdHFQOVdl TkRpb2ZrejlKR1FCeTBlQ1huUTRwR1FCeTMrQjVjMThob1dKUTdoQUFBQUFF bEZUa1N1CitRbUNDCisiCisgICAgIHg9IjAiCisgICAgIHk9IjAiCisgICAg IHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIKKyAgICAgaWQ9ImltYWdl MTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mv c3RhdGljL2V4cGxhaW4vaW1nL2V4X2dhdGhlcl9tb3Rpb24ucG5nIGIvd2Vi L3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfZ2F0aGVyX21v dGlvbi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZiNzI4MjY4NjIw OTg5NjY0MTJhOWVkOTMyMGVkNDUxNGZlM2U1YQpHSVQgYmluYXJ5IHBhdGNo CmxpdGVyYWwgMjE4CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeTWoqQHhC cEEkR3cjb28wcmpqN1BVPFFWPSQhOUc8eWQtYVQ3WTQ/PQp6VUJYTCVKa0Ex LSRZTFB2MG1nMTh2K2FOa0sySTBONVEpcGwyQDxUJG9EMislNkJybmUmYzV2 bGx1PDJsalZNVjsKekVKP0xXRT1tUGIzYFBjcTJEKmt1eCgwP0pNZ34/VSMj U2FLKzZKYXAxX2w7MFJwbjRMPG1SVmpyZDJ7VDcrOFdlCmJmSyohPG1fYW4w bmpYM2FzRFopTCl6NCp9USRpQn1hVjljSQoKbGl0ZXJhbCAwCkhjbVY/ZDAw MDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9pbWcvZXhfZ2F0aGVyX21vdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9t aXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9nYXRoZXJfbW90aW9uLnN2Zwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDE4YTczCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9pbWcvZXhfZ2F0aGVyX21vdGlvbi5zdmcKQEAgLTAsMCArMSwzNyBA QAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5k YWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0 cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6 ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1s bnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHht bG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3lu dGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAw MC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci CisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu ayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdo dD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0i bWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisg ICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1h Z2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAg ICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21p dHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwv cmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRl ZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFn ZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5 Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUNCSlJFRlUK K2FJSHR3UUVCQUFBQWdpRC9yMjVJUUFFQUFBQUFBQUFBQU1DakFTZENBQUZr ampFK0FBQUFBRWxGVGtTdVFtQ0MKKyIKKyAgICAgeD0iMCIKKyAgICAgeT0i MCIKKyAgICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBp ZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfZ3JvdXAucG5nIGIvd2Vi L3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfZ3JvdXAucG5n Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNWRlMzFiYzEyOWE5YWJjZjRh NzNlMTlhNDg3MzkxMzlmNjYyNzEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs IDEyMjgKemNtVjstMVQqYElQKTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAx JXcwe3tSM0RkQmo3MDAwNGlQKXQtczAwMDFXCnpycEdwaiFFVmF6TTdgO0Qm aEM1OT9vWXR6UmxAMHApYk03PT8zVVRfZzM7fSEtdHZ5cj92bUU7dWleNnJy e05vfQp6PDZGaCtWI24oXng4LVpjPShFQTVmMkNWZWpUd2ZpV09BMEZndDEx VSM5cU9WSHVVaHdAYSh0bT45ejloI3FIJj4Kej9jfWlSPEZON1MhfD4/Qj9C SzJJLW1MMX50TUJCJGJFRyF3PUFZQHtuJntxYD8maD1SKl9HdGVrbUFzZT5E c0M0Cno8REJIeGxIdHNZPkRpfl4mV3p+U3JsUUFTQDk0QWI7az41SVd5aCpA QGFEa2gpVEhMcXF3TCtlY0J3al53VEl4IQp6aVFkSjktb3UzNSFHaCt8cTJJ YGQ8PEZxMylAfElyZmFKfWRpQHMzcj1EX1JPd3pjSlo8SUpBcCVidlVNZ1c5 YCYKemQkZEU5JVVwRyFPbE8hbGopa2pjWXRoV2pAd35xNXpRNjZ5JiteZ0he MXtPSSFeUThAKWJyS1ZedktCWSQ7dDdgCnola2tPVF8xQG4xKlZweW87ckcw fj81Qztic0gqM2B6d1dAbz95YXhzdWQoVUgjcVk8K0AzcHE7eDQ3JUx4JE1p Iwp6QHleY2p6YF5kKylieio0QFJGNiR5R0xvWDAwMDAxYlclPUowNl55MFcm aSpIMzI7YlJhe3ZHVU5Ce3I7TkJ+QzMKellkIXp+MCl0NkpLfnpZYD9VWlIo K0NVVkIoKmRgTlFmWGE2Xn56IX0xT3lec0ZeVi12UTZQbmlCNmdXcHV+bjxL CnoqNGxtaj56eFRwTnJaRkU9e1lfOTtDIzR6O287OG48XyEjVWVnNV5pZiN+ VHZKMFp3b3dPVl5uWihvMV4wMjtWeQp6dT8oV1lVWWwoUTRHcjd2d0BecEtJ eDtlMU1TVHYzPDJKZjhJeSExV0pwe0wqO2p1QWA5c1R1fEBkPWk3R0l6QioK emNieGBlYSV6ZllWQXx6IU8qZzA4P2U+N2pKSHo+NG1pRyQqJj5ANWZrfWNx eG8xMWVycmFLZjBONUN0SkFga3hnCnpYaklaOD57UVQ2SzNZZ0Q8fGFydT47 K0RZJE5lQmdxbHUmdVZWTzIwTXYrSzNFT05sZDxNUlNZM3lGa21Lbzt2cgp6 JVZMUklhTVojdDVReylrbVF3fn5Td3JwdEp6Wnh6O1M1ZVhuX0p3fDtFNj1N S0pmODh6WEFiQ05+UiNDREN0JHUKejV6Q3FUYihkSHl2X3ZkS2FmVnBUUTtT MypEfSVET3AzOCZvU3taRSNMeFQ8SmdIMnwkMXFJVVV4dHl4b2w2bGJCCnpA K1ZsbjV2KkomdGZlOEolTjB2SGVQYHhqLU5oNX0mZF9KZ2AhfFMxUW5OQENp JmElRWw/e24pbm9YPlVmUkUkJgp6U3kmTVNERjcqMVI+PCQ/XkoqRSZyTEJy XyVYU14lO2BNcWdYY2xYbE1VaHgrUmpidkM1IXVsPyl+SDhZdXhoYmIKekVr V2ZuR1Z5NDhoY0B8Z3UlI21YYXRDQ2JGeXdCcUF4SUtRTm1ldXFtMEUwM2kq bHU2YlF5b2x2Z3tNKURXPDNFCnpHYHdQcSVjUG4zKzRKNHFKelUlMGZBSkNA OTNIKG8jPmFjTCs2Z3s2STU+VGM0ZG9CZ2NPU253Sjl+U00tKDZoMQp6fEEw UyFgdXljOXsmeE8temxNTU9KVWx1ekIzZmZpQWtGZSQ5Y2gqUz5NcEpGfEko N19JeTtyJEx9SmJJbkBWaFIKeiQ3RXNARzVjSS0ja1Myb2VmcX53d3A9fjI+ K2A+ei0odWUrSjJvJDtMSTN+JkMzSG50Yll4KzRXamJTV1ducHc+CnowNVVL IUZmQjFNRWlmQHVHQjckY0dkZVVoRD07LVdGZmNmb0JfMDMoMDN+IXFTYWY3 emJZKGhpWik5bV5jPnBwbgpxRiklR0tJVn5fVFI1Q0w8RyZETGVIWStlU0l4 c05HbXNQOSkwMDAwPE1OVU1uTFNUWEBgR28pZwoKbGl0ZXJhbCAwCkhjbVY/ ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9pbWcvZXhfZ3JvdXAuc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfZ3JvdXAuc3ZnCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmY2NiNGUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9n cm91cC5zdmcKQEAgLTAsMCArMSw2OSBAQAorPD94bWwgdmVyc2lvbj0iMS4w IiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENy ZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcv KSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2 ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2 Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0 cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIK KyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+ CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRm OlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+ CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0 PgorICAgICAgICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9 Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgor ICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0 YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAg ICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBL R2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNT VlFJQ0FnSWZBaGtpQUFBQjBKSlJFRlUKK2FJSHRtSDFvRytjZHh6OG4zVW1x L0NiYnNYSFdkT3RvU1R3bnFac21sSFVOT0FSR1lBNGpNMjI5RnloYkZzcFl3 VjNtZGxrOUNvRlIKK1oydm5wY3ZZd3NCTFNxSEpraFMzNitMQ1ZnanhHRFFM OGVLM21OU0xhenV4RThXT1h4VFpzaTNkM2JNLzdrV1NkWkx0ZUtIK1ExODQK K2p2dnFlUjc5dnMvOWZ0LzczVUVXV1dTUlJSYWZBNlI3bmZqS2lVOUUyL1Zv Q2wvMVJRLzNtMy96dTArbHhDMHZPZklGYUxzZTVhczcKK045SWIxbXp1aVVL RjgvL281dXU3TnRNVGl1SnhHZiszcGNqTEIyYzcyYk83a3NGcEZaL0xHRjll b1BEMit4MTgvMXVQTXhMUjhMb0UKK0FJL21LYngxK2pJL2VXNEx3WWlLYks3 elVJN01vWlAvY1l6bm5vVUE5SVkxMmtiblV2aWVVSlJMRXpINzJ1TTJJcjhX anRFN2xickwKK2d6TWFuOTZOQzdjUWpLajBoNDN4Ym5mbVVGY2twQ0xQRGZq czZ5Y0tGYzREbXdvOEFIWmdHd3NVL291eDA3SWtKZDJSQzhERE9XNFUKK3la TjBSd0RLL0VaNGlYZmtub1g4cmUyRXVEVGNTbmZ3SEFEYjFsWFRVTnNzYmM4 ZjVGL25rc2VlQjdibkQvTHgzNVA1SVpQLzRHd3kKK2Y4SGszMzQvOVgrMzV3 L3kxbWxuL3FKRG5CbUwzUktoNUk3eFVIRVpBSC85OThlMDFOK1MyZzQvS2Ji KzRBaXFPbW1QbCtWQzJvL1gKK2tZbVB6WS9idkZzT2NQbWQvV3g1L2pDeHVU c2dCRUtBNGkybTQ5MTZLci96RzlTNU1ZUXVFRUtnZU5mUWRlWUFWZnN2THEv WUUwVjAKK0RWNWw0UFlOdHEycnBvVm1BRlIxa2xnMG1ESXZIUitiSHljNk93 S0EwSFU4UHQzZzUrNHdQejBjSDZnWkJoS0xqREkvTTR5dUdlT0UKK2VYYUNL NU9RN3VBNVcwU3g4aGd0OWJla2h0cm1KVnUyMERUelNBNUE2R1pnd2p6clJt M29xb2F1YXZhMUVDSXVRdFZBcEJleXBHSWYKK3VIMkRwdnJVMjdtWWlGUk90 MFhvTVEyaEdBR2pHUUtNSDNTRUVQWjRkRDB1ekR3N1lWRWhranY5VFpQbFFz ZHJXUzVFZU16ZEV6cHUKK09XRHczaUtFTUFOVGpGb0FrSDBsZU0wNkFGQzhh d0R3K0V0QnhJVW8vdEo3RnlJcmlpUHZlYkNLOXVOMXkrSXZ2N1Bma2U4OCti SWoKKzMzWG1nQ09QZzIrbEZkSjRhcDhZajNYeDJjaFFVb0ZiaUk2MEpibVQw SFFVYnpIdHgrdlk4dnhoMVBrSmd4YzZzbEpFeDd2MVBQNjkKK0ptS1IwZmlm ZTRycFBQVXpIbnYyMTBRdFh1akl2aEo2V2hyWVZOTklOQncwMXhGNC9LVmMr ZkExeDNnZGhWZ2l0cFpYMHRGL2hmTGMKK1J4d25xK3BrM0lVMDNTNUdkWDZD Nk53SWVzek0reHdqTldLUlVlWm1Sc0NzRTQvZk9FY2pvOHpkdlc3cTBQR1px UlFOQjVrTkRZRXUKK2pOclNsK2xhbDRaYmJSRUJLdGhiL2Fwam9RdE50dzhq Q0pNWGVsd0VwdU5nRnF1dW8ydkdZYnVaTUV6QVBxejFoSWlMSUhPeE93cloK K3RxNmFqdjRyUExsNUsxUDBjcXoxVVBvVklCNUFHanUxeDZXeFUyRUdhNG13 aWg0OTduS0pqdWNFeDlScXFHMldHay90RXhlNzJ5a3AKK0tTVTQxdTg0MlMw SFVEeW1BQ0dRbFNKalVhVUl2QnA0alNEZEhzT2RGTythcEJTVWZTVUc3eTlO RXVBeDNjbVRXNVpndlRyZTNMSzAKK1FqSStHMnFhMW9vZmZuc3ZmLzdMTVZy cWJ5V04vZVQwS3lJNjBwWXl4L05nRmZlYmYrcTVOLzkvN3lQUmtUYkRoYXpl U2RPUWZTVjAKK25ueVp5dG8zaU02T0FVWktlUHlsZEowNXdLYWFSdHUxaEth alBGRENsUTlmWStNM2YwbDAyblFuM1hDbjNvOE9VdkdOZzh4UEJ4RUMKK0VP RExMNlAzbzRPTzhTd3F4T1AzcGYwdE5qOXV1dzJBMTNLYjJUSG13amZpVDJV emxXS1JVV1pEUThuRkRFU25nOHhPSmZCbUxjeUYKK2c4eE9EaXdXSXJCSXIy WGhLeHNxYUR5MUw3WGdFOXVRQmEyRk1Ic21rZGhpV0U2bEM2UFlFOXpJRXFF bnJwblJZcFloWkhQWlR2cXUKK2ZjcU9wM2N3a3pOQVRkTmFrU2pJdHRPWXVp STd0ZnN2emJMcHBRdXdrREcxdHEycjVsSmZLMkNJMmZIMERvNGUrMk44c204 TlFzUjMKK1UwN29uWHdKdTZ3OFlMaVR4MSthMUFSYTd1VE5MY055WEtzV0lI NjJzUEE2RVl1K1dQMXo0QVQ5NCswMlY1THpKZjcwb3d2U2IxOC8KK0k2N2VY Sjh5cC93TGZkeHYvcWUvZUhiNUwxWUZoVkgyYk5obE40L3Z0Um52cTFkdnJ1 ZUZ2UTh6RllyaGtveDFDd01LUjV2aHhSZSsKK1RDaWtBaUM1SlFJRk1yOC9D aS85K0JIQ1lSVkprcEJjVUZBZzAvUTdxSC9wVVNJekdpNHowZlB5Rkg3VkJE K3ZYOC9zckpGdUxwZUUKKzMrL2k5VGVjWTgwb3BEdDRqajFmMjBWbmZ5OER0 MjhBSkRXUVUxTXh4dTRZWHpra1NVSXliL0JrU0dWOFBHWUdFQy9FdStFWUV4 TXEKK0xwYzUzdHpYbVdtTlVFaEZja0hpaDVSSVJET0ZHK016aGJ1azU0aGJr ZGxkWHNmZTZsZWxoVjN3YXNHaWJmejEwWnNaRzhmVmdoVzEKKzhZR0FBaEoy alFRQ3huS0ZCYktkVHBKYklyL0E0UFB6RkNRa3UwYnk4dzArSjllTkpKRlVJ d0Irdjl0T1A2dEcwc0Z4bDJ1YTFvcG4KK3FuYmJiYnpUQjRjamYrZ1VQYjJw Y3pkVndQM202MTZzWEpwckpiYnhGN3ZiT2RaNlNDeE1yWjVlMHJqV1FCclgr aXlOYTExTDQxcDkKK2FWeXJ6eW5rbGJYeHE4bTEwaVpkUTIyemRHMTRnSW9O RzVuSkdWajA1ZXJ6eHBLYVJvQ3pWNCtrOUZxckNSbWZJNXZMZGpKNGM4anUK K3M0Q2tYbXZWdTVhRmhWL2lJZjQxZnJXNVZoWlpaSkZGRmxtc0JQOERma0I3 b2hNQWdpSUFBQUFBU1VWT1JLNUNZSUk9CisiCisgICAgIHg9IjAiCisgICAg IHk9IjAiCisgICAgIHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIKKyAg ICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2gucG5nIGIv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFzaC5w bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWYzNWM3NjUzOGMzYTQxOTIw YTdiOTNiOTRiZGY5NzQ0M2RmN2FhNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy YWwgMTE2OQp6Y21WO0MxYUE5QFApPGg7M0t8TGswMDBlMU5KTFRxMDAxJW8w MDEldzB7e1IzRGRCajcwMDA0aVApdC1zMDAwMW4KenNib0AoOEZpK3xIaSpI WSM5blhCP29ZdyNWI2V4cyZoNGgmQDxGfW4zOH5eTnYqYnk8PTg0bnBZPXE1 Yll0aFdqCnpAeGEwRSM+ZWw/JmhwO2dfTV52UHl1SXpLdG13MH0+ZVNUcHJw I3FWenYrSV8/eTFwZmlgRFJ2KllJLTg/MG5BYwp6cHhnMHwpYjVrakAyfXdW T1RYIT8pQF4wVD5xRVFkUGA+QUUkTFgleGFndnFNYSthYTg7QzhgfUh1VWt5 QGEocz0KejxhelYlJE01S34/JmgtYj4le0VpdTxZVGs/QksyTj1mVWdkcDEw X0lAOURNWi1JKFJvbEh9OG4+Zk5sbT9TYmFuCnptRihpTDxJI0BrK15XM3Jn eVBTUT5Eczk0O0h+ZkYhMHpGX3BHI3peN1o9Qj5iJTJmfmIjXjRSUSRGS2tX OTM2Ygp6LTliVVE+d3U0WklQY2BZPSt+I2ApfWAjO3lNfGpBKD5fMW8kY1cj QGhVVjB5dS0kWFg1RTBCZ0ptSmlXLW8lOUYKeih4U2MmNCNoaD07S18qSCEt VTx6ZzY3ZW8ldzFqUil+NCo7eCNyUUw8PE96KStxZHhPIXNnU1k8aiRiIyp8 eXVnCnpmNy1mejxJSkFpemslZTxwNXgxJi1pJEBLMDAwMDFiVyU9SjA2Xnkw VyZpKkgzMjtiUmF7dkdVTkJ7cjtOQn5DMwp6WWQhen4wIVQ/akt+ellgP1VV PFU1PHdXbkBwVjhFUXQ1XmpOO2ZTa1ohWl50eFplYT4jM2NpWE1HXnVlNWxi KmAKekJMQkwoQm5DQE1fe2x6YUtGbCpTYH4wM1c9Z2gxfmJmPz9aNz5vJmk4 ei1FYDJNRG4rTG5JVEUoa1VgUGg9bXk8CnpsaSE9MztVT0hzR0I8TiE0PF9n YHRLYy10LXYmVnNrd3xnPiFOVyg3NiQ2Tkoycn5FTj5EO3F4PGY9ZGREaj9s Qwp6emZ2QVRCKG5LPURPbXRESlNRKCtOPypNdVE7VW1CWl4jZnRDWVFfS2tf cGhqSjBme017YjdPM09mRH1rXiYkT1AKelNRbEJ4V2t1TCF3YlImWWNlJk8l YDVKK0JBbC1ScTZtfihhUE4mbk43VzgwMSEtbW1sTFgtS1UjZnJqTlAtbkIq CnpiZl5QNklNQz5IST9aVHl4IWooQUJNJEp3Mjg7TjduYG0qbntlZS1DRWlq X2w9V3wpbTxNIyhDOUc9QyZyZUZ+Xgp6I2lrYD4jcTl0Xmc/b2A1biR1MnE4 OX5IUHV1SFFEe1RWcSRldmRyfTlnVzVJcVYlPGshUXBeN2R8e0MmWlN7QnAK ejJARXEjYT0rSndqLWBPRnhFRlJJXl9CTWNnS1BAc0FmMytpQk9xMlBsYDU1 NXQ8a0p9VGk1SURfUEJRb3ZlX0lSCnoyPEd6KUNldyQ5Zys2NU91UCYrVl9h bUNoPVppX3E5M0djV2BqQldZY2w2Xj03TChiYFckQTImblYpUW0pQUM4Pgp6 WT1wKSoye3AjUW10VTVVWEIhZ34jZXtKYFEhU2swUyo9Izk1NC0pNCtzezRe RHFsUUVWKWVMR3MkaXxyWHIyIzQKenU4SiprI2c8RjBSdCt5MiYxUVFUKHB6 ayQpb1JyNnl2YXYrU3JRYihyS2xGbG9mSD4hdGhkfGt6QVVgSUdTYmA5CnpY cE1+YFVZN3B8eHBAe3xWfFRpQlQ+Pik0cHpjUWhCY31pVzAzfiFxU2FmN3pi WShoWWElRXczV2RKZlRGKSVHTAp6R0ElR01SNUNDK0cmNEZoRyVHTVFJeHNM ZW5JIz9vMDAxUilNT2J1WFZSVTZXWkVzfDBXX2JXSUZmbE1LRmdZelMKakY7 cEAkSXk1dm9GZzdiTkg5OWFiJTltQkYwMDAwME5rdlhYdTBtamZyKn45VwoK bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFzaC5zdmcgYi93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9oYXNoLnN2Zwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDI0OGUyCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9pbWcvZXhfaGFzaC5zdmcKQEAgLTAsMCArMSw2NSBAQAorPD94bWwg dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5v Ij8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5p bmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6 Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0 dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5zOnJkZj0i aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIK KyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisg ICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxu czp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKKyAgIHZl cnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0iNTAiCisg ICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0YWRhdGE4 Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAgICAgICBy ZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3ht bDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAgICAgICBy ZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGls bEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRmOlJERj4K KyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgor ICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFz ZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQ NGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQmw1SlJFRlUKK2FJSHRtSHRz Rk5jVnhuODdPek83N0JySHBkaUJBbTFxcWthaEJqZklJaUp4NUwrSWttTGt5 bFZKWDZLUHVDWXBpbFMxQ3FpdHFqU0oKK1FpS2xKRUdKRVVrSUNWVmFnVkdS S05CRzBJcFlxcUN0YkJlN1R0cTBoSzd0VXJJeHdnNDJ5ejd2eVIvejJEVTc2 K2M2VVpMOS90bWQKK2I4L2VjNys1NTN6M3prQUpKWlJRUWdrZkIydy8wQ0xO T3hiTDlnTXRVc3h4ZlY3a0E3ODVMUjBEeVR5KzRkTW1UM3hqcmVkL3BvTHQK K0IxcWs4My9IYUxwbEhZZi9lb0s2cGV2NTZkMTdaanhlTG5RdnNtTWd5ZHAx SzRtTXBmaWs0YU15NktlMnd1RHA5ci9QT0ZHdUNNQVcKK2M0enRCMXFrR0dJ OGhRRDBqcVQ0eThVRXkwTWF5K1pwTERCbWx5dFhoQU5IVERGUVVNaXFDb055 SFhkRmxvVUxoazRKZFV2WHU1TjIKK1NzdmhEN0ZuVm1OREFTRnIwbVZjM1R2 STlmYjFNUEFhc0daeEdYK2JZU0tuZkpwM0xIYWIvTkNQTC9pS0lRSUtDRWxl MEduOTNnMk0KK2pXVXdUUitCZ0o5UFZPZzh2dU0vUlVtcStmMUZHU2NYQmV0 bFpDVE44SENLWUZCajNqeEZ3SnhhajB6a2VCYi9OZnlHbFhiTjR4MlMKKzVR dkY1L05lemptN3d2ZUE0M2k5SXlrTXplSnV2azduNVBFKzdyeHJKWDEveEJY eTFRMjFIRHpTd3plYmF1bS9rc2JRZkJqQTUrYnIKKzdQcnRHWDY0OFdiZWpx VUJNSHcrbG9aMUh0dmY3Wm0zNkVJZzYzZ09EUHV6WnlTRm42eVFmNCttQURn WFUvUU5KekY5RU5COGFIN3IKK2hnOWVTZlBtYUpxUWIvSzlzNkNRaWdvZFhm ZTVQUklLVGIydVYxVVk3bmREZzVycmRFNEN0UlVHZllDbVcyay9QOStnQjZn T2FmakYKK2RGZWsyczYxTEt6anVMNnpJdE1TVXJNQ250OGI4ZVFuUTMxNWhE K2ZHTStkdFBsWC93QkxEZEJOUytqQkl6M1VsMGY0OWVIeDhjZnQKKytLZmJ2 Y2YzY2s1UElYMXZNR1BYYWtxMDhmQjl6NUJPWGNvbU1SYlF0ZGZpTiswQlRi ZnUrSjlhVGJyM3RmRlE2MDdTeVl1SXNrckkKK2J5emd6Q3R0UEhqUGs2VGlG MEVwRUVFUExLUm5meHRQVGxVSXpOeTFBTktwUzZTU0Z6eDVBTDlkV3M1MUtq NUU4dXIvczVQS0tKdS8KK1NPTHlBQUNpRkdhbWNLL01TYk1YZ3RnVGRKb2RV ZU4rVjVtTXpkc1R6bVFRcGV4UWhWd1RuNHYzVllnRFowTjBTa2xsbEN0Q1Vo a3cKK2xjMUxqaEN4U3F3QTVzUzFkR09CKzEweUNyOVdrY2VEMVFzQVJuQ2h0 UXBLSVNib2dZVXVMNkpjQVVhZ2NucEMxa2FlNGEwdkhjbm4KKzZ6YncvQ1Fp ekNVTmRPMjkzNzArS2NQMHloakxvMkhldnVuTHNGVnpmM3UxNWl1VTFkL0lH WDdrT1U1disxWlBIZy9mOGhRUzZqekMKK3JZMk5hSkVJQUhHbE1LdXJPWFUw WDl5MVNKN3ZZUFczZDdxTnZQT1ZGalp2MnN4enYzcU9UMzMvczBDL0czdHJZ eU9uamg3bHRtZmIKK1NjYUdBQkJSbU1GS2VnOXVZMlh6WXlSajc3aThFYXpp OWNNLzg4eGJzTFMwU0lSOWkvcm9YTzNjd1gvQkNvMW1Gays0emU1VWcvQlMK K2N4NS83M2Z1WmZmTHUxa2VEYlByeFRicXVoVWpnMmN0OGJFaEVtTURiczg0 cFpTTXZVUDgzZjVzbjVUUDBMVTZWMnMwM2JKdTNHblYKK2NaeHJQelZkUi9O cmFINi91MDg0TnV2Z0IvZHNZZGVMYld4N0pBNUFvc1p1Y0ZHSUVzUnBlTnRt TFY2NVFtYlU3SEdscU90V0hPWkUKK29aQXBZL09telFEdVNnQmNVUmtDa2wy QnJJaXN6WW9TMjNaeE44VnBDekdycTduanpSUjM5RU5DaEVCMU5XOGRQODdk MGVpRU8yUEgKK1UydmtpOSt5ZDJTZ3RmMCtBSGEvdkp2Ymh6L0Q3ZjA2MUVE QUhwT3paekVDbFVoWVFBUkJNSUpWMWh6bVZVSkdBWUlJR0tHcWduazkKK0ov WFMraFlKZGVZM2RxeHVBOTg5TnZHTGd0UHREMGp5ZklkN25ldGFkZnRHOCtM TDZtK2tyRDZleDV0TEdzZ2RKNWRmdS9HSnFUMlAKK25MN2hmbG9mM2xIZ3JE WHhvMm55ZkFlMVgvOGw2ZmdRQXR5VUVZemdRbnJidDdLcTZ3V1NzU2hnOVlF WnF1SWZoMzdDRjVvZXRYZ0IKK1JHR0dyK2YxMy8yY0ZZMFBrUmlOWmtXRXEv am43My9obVhkT3pscXArQkNKMGNHczI0ampRbEhpbHdlc280cms4RmVpWEIy SnVNM3MKK3VGZGlOTXJWNGYvYXduT2FmanBDWmdPeGp4YlgycWxreEpwUVp2 eUVVZGJ1N1Z5N3ZOUDBkandUR1AvY0NKbklUalA1ZGlvaU9TSlUKK3pqZzVJ aWJCbkp5MXpHQ2xiYW5XNUV6YmJZeGdGVEpmckRzdFlJYXRGMDVtdUdyY0tw aGhLejR3ZjlHNFZRaVVMNXFla05rOElacEwKK0d1Zzl1TTJUOXpwZW1Fc2Fl T1BvZzU2OFYyTVhPbXQ1b25WTGozUjJ2U3V2ZFZ5U1U2ZUhwYXY3c3B3N0Y1 UFdMVDFGZllOZVRNeUoKK2EzMFEwQ1lQK1hEZ0l5TmtUbHpyZzBEUlhhdUVF a29vb1lTUEZkNEROMnduMnpVdGhqOEFBQUFBU1VWT1JLNUNZSUk9CisiCisg ICAgIHg9IjAiCisgICAgIHk9IjAiCisgICAgIHdpZHRoPSI1MCIKKyAgICAg aGVpZ2h0PSI1MCIKKyAgICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1n L2V4X2hhc2hfYW50aV9qb2luLnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3Rh dGljL2V4cGxhaW4vaW1nL2V4X2hhc2hfYW50aV9qb2luLnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi5hMmE0ZTkzNjlmYTc4YzZmYTE5YmY1Yzc4MTRm OGE1ODZhZWQ1NTY1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNTcxCnpj bVYrOzJIZzNIUCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAwMSV3MHt7UjNE ZEJqNzAwMDhuUCl0LXMwMDAxKQp6eW0oVEw4SHVedUhpKkhZIzluWEI/b0do eVZhRHJyJkZyUyRAPDY9bDYwNzFZdipidjs9ODRucGJjQHd5WXRoV2oKekB4 YTBFIz5lbD8maHA7Z19NXnZQeXVJd0p0bXcwfT5iJCt9KVlTOCglVmIhYiVS e35DTjVBUHl6dis5Pz99WEZ2CnpzTCpKYSszfSM7QHJLZ3dqTVZPcykkWHB+ Xjh9fmkzOH5AX3NeVTw+PlJpUl50SlEzRSZGcTJEP093eV5XeVI9Zwp6JExO JlNAMj1XJHJLc2Uzb35nM25jNENVNyFIK2lkQHlZUCl4QWdHSF5ZRjtFPCRD ayYjYDVnTj9kR3hWPGdvMUgKenU8YDF7PiprOzk8KH17Qncoc2UreGFvZkc9 Q2tlUHZGRjtCPUdtM3oqcCUkeXVKRykoPmcxajM8REt2N3dlUlYpCnp5NnU3 RypPVFNlbEkhMkM+ZkBhMDsrKmQxdiVLKHg8a2dZbih+Iz1qdEd8WFp3fWdQ T1VPdXUpNlNRR0ojRV50PQp6WDFNZTMkTTVLfl42a2EoPkJJMm4hUnA8cj1n X0lRVT5uSXo4ck0tRztaIUc9UjhzWm07aXBxPHNUVVg5eUBgTzEKekM0WUQ8 eTwwfVFZJEQ9UkRGNlRlK05PJWBXQGhMX01DM3c0LSQ2cCpWcUA7K3ZicFBr bDZeVnY8aUZ8THNfRUxQCno+RGoyaVlCYS1lTCszKzhpKEQ5S2NeUVJUN1Ns ZEk7bXdRVCVabEwyaUwqLSl2YGlHP0xQRGEoVSE9KW1yX0Utbgp6KHJUXk9a P041U3YqTEtSPVh8XkdnVSU4WCN9RStBSlVyPnlye0t3bS1eaG8pWER7MThL IWpRciNTYWpeNGkzZ1UKekpMdVBALV5ZZ0QjZjhtfVRpanRgJnBrY0xKVXFv YUpJcX5PQGFWJHE7SH5UNnQmNGolP2NjbFIpVEhMcXF+X0EyCno8O3RWQWs4 cTF4YS1tTi11dCpaOG9YUE8hITBPenA/Jkg0ZztrQFY4clJVWTg/QjJUVS1N UXdgcVVGKHs8PEZ0KAp6K1BDNypqcEVMWDttbkthKnIoXiNycipiaC1vfVJC I0QoVjNxMT9jTStgb1heekpUUDtwWGIhMS1vdTM1IWhfdHQKemZaTSUpK3F7 MHsmN1M3ZHF1cy1VLU5KKDB6PUdQbGVkRWlYPWhkYTwoNHBuZXB6R1BUPElK QXcqdFdIcWVxYjtwCnpJeypMeDBkIUpNUXZnOGIqayU5IzAwQ2w0TT9gLX16 ajVVTjAwMFNhTkxoMEwwMDJrOzAwMms7TSMqYkYwMDA3WAp6TmtsPFpOWEtK Zjd6RzBnNz9+SngkfXpLbTA1Z1VUUkB7MTYqd3tIWnhtWWxDdTtTTGshcCsw VyRCKDgzcXl3bWoKekcrVGZVISljM3ZBUDVNYzNwMyVnZ01tUiVOTFdOdk9i fG5oSTM2dCRsMlh6I2E0cGFQV01QdEpWdTcmYkZvRzBLCnozayNkUGZ9Iz9P R0xzNkVEdk8lQmhOYyMjWFZKQkFZd1BJaHZGSX15RmQ0RUs4Sm4xelZGb0Zo VSpOV3c8Rj5eRAp6OUFYd1F0fGkjem1NbHpHT2VfJCNIQWF4NCo8eGRCWEo9 PGA8R3wjfDxZZVJRO19CdlpnQXRAP2V6Q0ZoQGJ2VnUKekBuLVUyXjBvMnY0 K3NwaEt+O2M3T1IjNTFYcVpoblF2e1FyamF5KTNSNVcyTlVMaTVEO1dsd2hA bDArdUt+VntiCnpOeSNheFkzVWk2Yz5JIyg5aUUrSTt8JGMyWW0qbjlsd1ZM LVI5c1NBUjljNDZRZUZXOTx1R29namczdGVRKntNVQp6T0dPUWtaQnR1UlM2 NSRPU0paJmVRcWtEZCt8cFZCeDVYKjBqajVmZjFFezY3cU8rXkpyPzxFY3Fe R3pLTmxYNigKekNVbnBxIThETysoJlVRbkRPMENTRlIySVZEVmMkIVdoTjhy RWItYTBiNSFPVSVybD5Gd1pMKHFQa1kyN3JvfkheCnpSeEYjZ2U4dE0qZFhP RnpUVU0+Y1gzT2R8WXU4bipVJEo1MXJYckE2UTJueGIlaHFrJTVxe2FSYX5J R3J5VE84Ywp6X1VfdyVmYW5rZDBkUj1mOTZXVVIkbCpnckB4O3JxcX5sI0RZ KS1CfWJeNDZXKj5tU0ZUcUs7dmokZ1diPCpMb0sKej5vOyFoeDRDdXUmZlI7 MjZBVU98KlcyOVJffjc5IW4rdU5+S1kyPTYzbiphaytkTzt6O15oVUtkeWsq SWRXfVUzCnpucU4qe2QkU2tsaSg3QnNVOUBAcztsdH5YbjBgVWFtNmhPN0xN QV88RHF6NF9qXlA3Pjcpfjg1VDFmWWMxeEEzMwp6ZiZtNXFQMiVnbUZJbk9I MDAwMGJiVlhRbldNT249SSU5SFdWUlU1eEdCN2JQRWlwMUpGZm1qekZnaTNk SXk1dloKekZmfT9iRmdUZWQ5c21GVUMzSG50Yll4KzRXamJ3ZFdOQnUzMDVV SyFGZkF9U0VpZkB1R0JZfGZHJihSZ0Q9Oy1XClZGZmh1T1JqZEYyMDAyb3ZQ REhMa1Yxa2d4UShwaTgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4 X2hhc2hfYW50aV9qb2luLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X2hhc2hfYW50aV9qb2luLnN2ZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTZmMDM5Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcv ZXhfaGFzaF9hbnRpX2pvaW4uc3ZnCkBAIC0wLDAgKzEsNjcgQEAKKzw/eG1s IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJu byI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cu aW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRw Oi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJo dHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9 Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMi CisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgor ICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1s bnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2 ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgor ICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRh OCI+CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAg cmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4 bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAg cmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3Rp bGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+ CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4K KyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jh c2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFl UDRpeEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUJzdEpSRUZVCithSUh0bUcx c1UrY1Z4MysrdnRkTzdCVUlEb0ZFQ1MzcHBzSUlHRmpGeTFhS3FKSm1HbFBS a2tVVVRZSU50UWw5a2ZhaFdwZE5sZlpoCitxaFNtUmkwclRRbFRBNjJHeXBh bEZkUFlCZ21GcUdoaGJBa2thOGxXa2doSW00VzhrTVJ4WHV4cjMyY2ZydTkx a3B0bWRtS0pxZlAvCit5OVZ6N3RGNXp0L1BPZi9uK0VJU1NTU1JSQkpmZEZR M2xJdWl5a3hSM1ZBdUVoM2JOdE53Nk93TlVYZTF4K0pZdkRHTEh4ZCt4ZUlm CitLNm9ieXNYWjFyZlp2YVdBMDMrdHA5QzduN0w4aW5uSG13bDVwcUh1YWcv YkN0YlJOYXFTN3BCWTVyU3hJYzNCYTcrOU91OU5wcElBCitJbVRlcHJxaFhD U0tqSVVJUU91UVN0dFFnS3dVaWV4VUNZOURXdEFtVTBrWU1NZ2tDck1TOGFZ cDNDZGpua2lPZTFhM21GSG8zVzhtCitiWlNXWVgrUGlnWEZObURKOEZGN09y NmFiaklqNjJIZ0l2RG9BK2xjbWVjbVJ2a1VWV2FhVGY3ZUMvKzJKWW9FekVM RWR6TkU2WUVICis4UHZET0J3Mm5FNDdhVXRrS2lwdkpHUkR5VzVQU0p5Wm1M Vm1ob2RWaG9aQ3BLUklwS1pxT0IyeDllTmNpcWZibjBTU2RTS2JLeHBGCisx RDRkdWVrdXVnYkdaNDN6ZWNxNXNPS2ZBVVB4UGhwV2tTVTkrSWFsRHVyKzFN WVR1N3kwbkFPN29tLzVnKzlzNFBqNzEzaTJlQU05CitFMkVjRXNnMldPbFdx RGpWRXJkeUpwUUk2SXAzcVg4U1JiTGhzSUZpMTMvQWYvcFVJRXFreTYrdmI0 MkY2QnhWY1VwRXlOak1PUEVvCis1NnhFbGl4UmtHWEo3QkdYSy9hNjlxWXAy RzJZSjdKMnNVSVBzSHFSUWd0Z1Z4UUFjcitrMEFqYzc1WjEwcEVUeVhMSlpw eDRsTlB5Citkc2QyRDhkcWJsb2NkMnozY095TnVVbmtaL1RTVUQvZFZoK3gv LzRNWkNzZ08zUWl4OSsvUm41R0wxVjExeXh4OHFUYlROUXNpVXM1CitMVVFh UHh5Y3Qyb1ZqbFR5MDJkZUo2VGVqVzRncDlGOHZKS2ZIUHdsKzkrS2x0YjVw eFZhM3Ftay9LbFhVWU1Eb0FtRUFNWHA0ZHJKCisxM0VmcUk4cmg0U3FGa0JJ dllzYTdBV2hYeGtpOGd3RkJnR3d5L3FXYW1TdEJnWUlqbjJtK3drQm1qYXZI QkxlN0tBbnBDZUdTVWhmCitZTXF2RUhyQ1FoTUlUVE9KQ0cxK2czSENpZWo1 R0dTSW5rd2tRZU5DTkJQV3RDaVJDQ2x0UWtWdE9vTHl5UWVJZ1krWlhKN0hz TGNBCitsL3B3ZkVRV29scXluQWFhd0RnWnU1eW0yNVdsMC93VWgwZTNPenpt cVlBZ1BLb3grVWtmU3dlUHNVaE93ZVZLWjN5NEc5LzVLaDV5CitibVdzOTVa d3I3amZVbWNXSWp0N2YwWG50Mm90Q2U1OHBJUmovNFZFMXZwaVdrNzgwRnhm RUVPMENUL3IrajMwcmkyQ0Y2TjN3Wi9YCitmNWYwZkMrdC9HaGFqRURuQUVz SEJabk9SUURrMUxZRDBGMnloazJCeTN6MndXOW0zZHRDUkxwVVM4SHUzUVM3 dWdocEFsVUlwRldyCit1SHpHU200bWV0cnEyTFR2TmRUZ0lBakI0WGZMS050 WFJ2VTcxWGhLYzRHYnB1L1dYZC9tOHBrLzhQaWhVd1FuK28yYTVQcmhWMWdr CitSMVd2dTJRTk9iWHQ1TlMyTTFiMElIZXVuSTJOaVA2cmRQSHJ6STlvMm1p Y1lEdXNsU2dpYzg1T1BLeDF3NGxpaS8zZzl3OXk5TVJSCitsZzlBMVZ0djhM WG1NTDVQT3dBSWp2Y3hPWG83SXI4Qy82MU9YS2taNU5TMjAxMnlaaG9abDEx aHBLTTFkaUpCb2RHMDBjYnVMUVhZCitKQnMybTZRL0pRbEprckRacHo3dCt0 TXVJZG50dW85ZE1uME5QSFBnV2Q2c3FlS2xsd01FTkkxQVhsaC9JVFJFV0RP VnpwMjlrdkcrCitVUUFMbWZHd3l1SXZlNEh6TVJMUk5EWTFoemxOL1d5djQw TFp2aklBM3F5cFlsTnptSW13UmtCbzV2MWlObnBFZWhldnpzUFhjMkZhCitT UmxrZktGSmxtOHVqSjJJYmRVcWRuV0VlZnkyM2lQTzNGdzZ6NTFqejUwN2M5 NUtqYTl1RnQ2OXJ4Q2E3RWNBWlhYUEEzRDB4RkcyCiszVjFKZnJjRGRaM2VD NDdjWE9qb1FFbFpoaGJXekR0bnhUZFcwdFo2RVFaOWpCVTlpTXV1TUI1VzhZ VW1hWEZ1WmQ5amU0QVhyVG5QCitOTHhiL0x5UUxsa2JXM3VraEwxMVIrWWtj dVA4SWRIVFZtZXVwNnJXVjQvM1cvelQ4NzNJRHc5YjdINit6dlcvU1dTTU5i RTQ4QzlHCituQS9SNTk1RzltTjcyUHZVbHRqK2oxeFk4VFNsZjN6NWMrYWNJ M1B4b0tldER1K2VYNWdxdEZxQWtwTE9QMzVYVHQ2Vms2ampmZVpsCitxYVJt OFBIcGwxajd4TThKK3U4Z0VLQ0J3NTNCOVRNL1krY0wwVmtyNTE3TVdyb0tk VWZIamJEZTFNR3hQaVpIYmtWdjhMRGVJMEYvCitMK05ETjgxSndCaGQ3dm1z WlRadlJFNk5walpHRWNPT09Xc3h4U2FtekdieElmRkQ0d3c1RmVGSXdtS3FP cGs4RUdMS3dCaDVOeDhrCitmdFpLV1lZekhFMU1jV1VBNEhCbDZLY1NVU2VI VzdjNzNjdWpBNlFBNTMwcjVwV0RwZkJPbnZwVU5INDRhSEhjc2QzRDk1N01q a3UxCitER1N0THlZZXU5LzFUVTYzV1NlRVdISXdVZnBjcS9oNzg0aTQySGhY L0tWcFNEUzMrRVJYMTdnb2ZhNDE0Vi9RRTRtRXE5YTl3c0srCitUdjhQNFF0 REpPR3FkYStRVU5WS0lva2tra2ppL3c3L0FRRzFrOUlVMEY1dkFBQUFBRWxG VGtTdVFtQ0MKKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lk dGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIg Lz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9zZW1pX2pvaW4ucG5nIGIvd2ViL3Bn YWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9zZW1pX2pv aW4ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNTFmOTk2NzgzODcz YTRhMjdkYjRiOTcxMTM1ZTk1Y2FjOGQ3NDQKR0lUIGJpbmFyeSBwYXRjaAps aXRlcmFsIDE0NTIKemNtWStDU3h9UCk2b24mPGlsQzl3RFdZfWoxRVc9PVZH JnNeTXlNYz5WRV9kSVdzZjIlT09RPlZQXjNhPiNlemJpCnpRJFdmcE4tO29X Ml5iJj1rXmwqV0I/SmlCX3dgVHlLVlk/T3ZgP0ttPWJuM0s/KVBAZWYmd3E+ dmZPNzBnVFokQgp6YH1xVyQoKCQ3JCV1VnhhVVVvNElXPnlufjQpcnlpd1M/ XjhwWkFzeHRoa2hwSnxrVUVuTzB2UyUzPipzJXhQc1MKejJrPDd5WSYhV1Rk VzMhaWFUIXljUU5EbWxvfUhUMzVsN1hPM0M7OGp6fk1sRE92RG1+bTdPbzdK LXU/bXV4ZnJACnpwVzRaKzh8U3ZyNT1nNzYqSjd4aGFkVEt8OUYtWm4xej9X PSNFVT9oYSlZa2c3P1ZPfDg4amg+N0IhbTxZbGhCKwp6K2loSUtPRm1lPXRn Qi1LXntjPzM3JGkhZEV9a0M4KllecVpsWDdEaEpGVFQlbXxOZUd7PE5NdVFI U0daJk5CIV4Kejt2JWszSSFLbX1SPTV+K2xVbjhMJT8pOW5EMGtCKypufFd8 e1c0P3t6fWYoTEJKc3ZMN3ZjK3lWKTJHcntaMWluCnpGb051VVMlSn44dFhF SXopaWt8fDJJLWQ4SU4tdjlldEZyaiMoYHdBT3wyNGRHX1ZJJU1TMncjUCpP cWRsMHNCMwp6N3lobzFeJUFyWDBPY2cwbTteUDg4VTxiPkA2JCtvMDN+QDc7 JV52dU1tQEpKPGFXb05KdUFheWdeJXA+R21uc3kKenVHMSpYYjQ7QllnT1Uz OTJ2TyhQJiFLcDZAcD1fU0V5ayZZLTI7bGslNnZDYXk8amomSEUtMGRPVjBi ME43KklpCno+QEE2fld1RTs7QyM3ZzU2cz8kU1AlP1FhUjErbi1jYH5rVDh1 TlZhKjJ8QG8/bG8pPUtOfk59OGAyY2Qqd3s+MQp6VFRnajxZREZaeWcxT0BE e1VFfVl5eFYjTjR5U2x7Nz9rcmA1bV9UNVhAdWk/YFBeITNFWnhoQz5naEBM QFIrKUcKek8oUGhRdmYzbnpFIz4jbUt3MXV7U3lPVGIjantOISN4dm5lZ0pL eUVZMWJnbDhYJWhtcXpxOEt4O2okMExNVUpsCno8cUslXzhYLXZ8NyszUX4p bSlRXmZQfSN3RHFzKWhZeHJaVGJzYHw5dDQjfiVqWlJGTHYrJHNMNFVvPSlz dWk3aAp6Iy1MO355SGl5aCgkVGw1UWQyZHpXQ1JDPnpgVnNRak9vfnM+VVJ9 dU8yMUczYn41Pl9zbDtmMXBMM3lwNlkoKjIKelRnfFFQWVZGZGY0bjJpMXJ5 dC1+UiYmRXlFSH5HSWFBWmF8ZXtwPGxkWW0+PChZbSRTeSMxa2JXRmRTIXNs NCM4CnpnKy0mNDZSKT9wPXY8SXJ4S0FrQmBoMjxUTDQtfFpAU0l+Ujt4WCpX KUEtNjhsXzhKS3c7VX50dzM8KTs1cSVMJgp6TytXVmhtVjk0JlQ/RV5HRmc/ NTErYnBRVXpoVG1RaFZobX4zWjBvKzloPFpDd1IjQFMjZko7PDxaYilvVCMj SnwKeil+UVNnNE0jKGRwdT0zQFBQM0UhY2hjQCp2JEM/VlU8e0F8O0VhJEMp TXZwaGMzUSZJRDVeYlNNZ303JllZRXchCnorRz1yc3tjWEZ7UFF2UW5jO0pK SXNFbiRyNGdOSnhgSnBMPElhZkFZYEFoQkFgTzBiR2pZQ3p7UmxoeS13SGt+ RAp6dFNybDslOE1mMnN7LWNxeih0MS0hQl5tQmlPOVBwb3Q/P3tBKCEyUDAm LTVmbDVQPmR4PkRaVUxnKlRLX05ydDUKei0yaU9CQHNLWT1KYzBzM2EqezZH MnNfaD81UDEhd3JIelBeaio1PSZQJnBFa2VecHp8eU96OVRwRFVib0dRakJ4 CnpNbyExb3RCQDFleVY7UmMmKD0qVit2PT1LXkBOKWF3dXBmMHhTbThBUElS MGEpKWdefkxEKFZgaXolJUI5bFY8OQp6Tlc5cXgrXiFTLWA4c3g9TT05TEZu KXBTV1JFTlZac2xEIUI4d3Z9Jk59dzB+USlJcTxfaCo2ZUwlUj5UPHhidEIK ekhWS1hfdkpiaUQkUEloUGMzfGtzU2puUy1saD84UV9nbnJkWmFXcCM/LXgj Y2cqfVcmcmJvTnlGI2V0QHExRjZwCno5VCo+MGFsaipVMGJ+fmB3eF9WeGBf bn5ZMW99Oyo9d2VYbXojd1BhIS1XSFUpSzdNVzsra3tLQl5oclRPSVN6awp6 UWVtKn03dXY/bCozRWdRZzR0KkloRyEoaVcrYn1EcnplXk09N0BBYUF7LW5N TlFZMklxYFJ8fHlSLTlnPFl7KiMKdCh6Vnc5O1F4Ui1ERzVvS29je28lK2I3 YFR3PiM0MUtZJl91YEdwQzlgVEdYP2JmSUZ0e30pRShMXiVLZQoKbGl0ZXJh bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9zZW1pX2pvaW4uc3ZnIGIv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9z ZW1pX2pvaW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjczMGM2YmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9t aXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9oYXNoX3NlbWlfam9pbi5zdmcK QEAgLTAsMCArMSw2NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu Zz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0 aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKwor PHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50 cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMu b3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRo PSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRh ZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAg ICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAg IDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAg ICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9w dXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9j YzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRl ZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6 aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T VWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZB aGtpQUFBQmdCSlJFRlUKK2FJSHRtR2xzVkZVVXgzL3YzamRieTBqTDFnNGlk aEdYc2xtTUtGb2dSckJ4U1pvVWlScVRZa3lrNFBKSm84U1lhSXdrWUVLVUNO aGkKK2JNQWxiaWtKaVN2V0FLRVJKR25RaGtBVXFGVklGOFMyMEVJN3k3dlhE MjltT21VV3UweURrZmwvdVhQUDNEbm4vdWVlODcvblBjZ2cKK2d3d3l5T0Jx UUczRE9sMjV5YWRyRzlicGRQbzFFaGszZm5kQzF4OXBpN092S0ozT1MrV3pF djVtT0todFdLZS8rMlVuRlhjc1ovZFAKKzMxTStmeFhWeXphTTJsOHN6RVRH K2lOdExGbytsNWJlSUZPY2dxa3VnMXR6bmJ6OStaRlJCNG9sQVlUSjdLUzJZ WjFPQjVtRVJBQisKKzZRN1MzTzFudWxzd3d5T1k3QlJqQ2hSTElvSUltWFFn S1pINXVRNjhKdEVUdVM0NzZkSmhvWHorcXVpbUk2a1ZzZTlpdzVoOFF4SWkK K1MrUVVMdFNkeGhlZTl3RDdnQ1VGVXpnOHlrQ1I5S25jNUlzVythN24yNDEw a0lBa1JDNjBobGo5WkFGOWZSWk9wNEhMSmNuTk1kbXcKKzZVUmFnZ29wMCtJ bkZrbnpwYWNuU0hkM0NMZGI0UEVvWE03aDFXTXl4YnVyZUJJbCtWNitQYndJ WWRwRXRoOW8xU1UrTDhmYWUrUFcKK3A3S1gzVEE1YmpOalMvd0VTS1Y0NVhj WHcyR1FEanRzOGF3OGpwM281S1liOCtnT0tDUWdCVXgxU1k0YzcrRDJrbng2 Z3dwcGdEQmcKK29rUFNlTFE5WWR5MEU0SGtpdGZScjRCQkltY0hMQURPK1JX ZC9TRk13OEFVWUliLzcvTUJSVmZBd2pTd3lTUys5bElUeWNseFlKb2kKK1dp TlpXY1BQNjJTS2wrOFJZU0lPQUthNUpiM0FGSmRBR21iMFJIS2RrbFpnb2xN Z0lpUU04RHFTWHdFSmlTeGRQSm50ZGEySjdWdFQKK2sxZzJyWU1HVzFucERO djJBV1hlVTl6eXg2OTJVS2ROcFBqM0Q4bnpGakdoWlEvWFgrYm5ScXVNMDRk Nmh0aitBZ3B5c29aUFpQK0IKK3YwZXRXdVhuTi9IeTJuY0lCYnNHZ3pnbTBW UlhnNjkwRi96NGFqUzFmTGZlVC92UDMrQ2Jmei9LdW9RRzBCb2hQVFR2YzNG YmFRNkIKK2dFSktBMU1hdU4yQ3hvTmRDZU9tWGJVQVFzRXVnb0dPT0x1eUxn RWdUWFBJM0xJdVlRVjdBUTNhSmdNdUJnWXNCdm9WcG1sZ09nUlMKK2pxSkcw Z3M5WklqSWIyU08xdUhONjhHUEk4VDRFdEVhclRYYVVrUE1rUXRSUjNZY1hq ZjBSRWFHY1ZFdDB6SEozcGpXb0JSUzV0b0UKK2hIdklPaUU5NFRFTEdVTkFt SFpCdTkwU0lZeG9qVGdjSTB5dGV6cmU0OVFEWDhUYnkxYXkvVjlJVEorM2dx YTY1Nkx6dmJxYlp0M0gKKzdNNXI2Q2k4SFY0Y2xORGRSUXVaVVZrT1ZmRitm TGxMYVVydzFGQXcwek44SXFMeEM1WlhWQkJvYVNHa05FR3RFWVdGSFBvcW50 emwKK2FHdXVaMEhWMndUOTU5QktzZm16dFZSWFZWUDdRUzFUVnhjQnJkRzFk ejc0RUlkMmZjbUNOMTlIQlM5R1ZVdWEyVFEzZXRLald2NVQKK0xYemtPOHJC MHNoeEhvZlpna3A4S1JONHN6b05PMWJFMmRjOHNZYWFIVFhrbllOdDcyL2x0 aWFMQzJkT0FtQUZMMklGem9mclBWTHQKK252U29Wa0FyRHBZYVZOeXhIRU1Z R0lhd1J5RVFRbURJMkZIYW94UUlLZTAxVWtUWFJyRDJ5YWQ1dDI0YnI2ejM0 MWNLL3h5N1JVRnIKK3RJb3QvRlIvMVVpSktNV0NKb3ZkZkQ5eXI1ZWh1cW9h Z0hmcnRyR2d5YUxmVXZpMWlsRXR3b0tsR2EzK0ppVmlGQmJ5NEVtTCsvNjAK K2E4UlZWTVNwUFh0NHBMTXo1YzI0LzYyRmV0N0RHL0JmN0VRcnhUUGZ2QUJB elk0YUZuWE5aTmxwSjhHNTltYWRSVVZ3OGlUQ3pFTEcKK0VCQ09iR0JrcXBY d20wOVdQS3RGWTN4aHE3S1ZQRmEvSlNXUkV6OXMxRzNOOWRGNXJHck4yZGtU dDM1R1pUblhWcFhGMmYvU1MybnYKK25oaG5MNWpwWWQ3Y2ljTjdIdG1iL3hT cnYxNmZwTmZha29vSGJjMzF6SzU0ZzBCdkIxcHJpcFhDbFozSHNhOWZZK0Z2 MzJJRkx4SzUKK3dhVWppN1BIZjJEYXpmY1NDdlRaRHJSR09pZlFmSERDbGUr MS9CZmE2ZS82SGExVStHYTNVOFlLOWhIeVg2NU9FQXIwRVJyb0NiY3MKKzRk dWRDVmUrMTlKS29Td1ZWN1QyM2dmYmtOZ1daWWhhcGJQWXh3SnRKVkVlclVI cDZNVkhqR3BGVDRuQlhuSWtHSmRleStYTlR6Z1gKK1pqYlNwYU1wSk1QcUpK M1pnNmVEUmpyVHBGb2ZmM3BHN3ovd2Q1eDk2ZUxKUFA3b2pCR3BWZ1NUQ3Uv Q20xY1NaL2ZtbGREYmVTek8KK25oYlZHc3NUNHF4N1gwcENkTFN2OW9hSGNW R3RLNEd4dlpuK0QrRi9RMlJjVk90S0lPMnFsVUVHR1dTUXdWV0Zmd0Q4WTh2 NGRVY2EKKzBnQUFBQUJKUlU1RXJrSmdnZz09CisiCisgICAgIHg9IjAiCisg ICAgIHk9IjAiCisgICAgIHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIK KyAgICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0 b3BfZXhjZXB0LnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vaW1nL2V4X2hhc2hfc2V0b3BfZXhjZXB0LnBuZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwLi43NmM1NDZhNGRhZGQ3ZmRhZTMxMGRhZmNlYzJlY2RlZjk2 NDlkNGM1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMzc3CnpjbVYtbjEp bG5lUCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAwMSV3MHt7UjNEZEJqNzAw MDY+UCl0LXMwMDAxcQp6eCFYMn4hRWVwKE9+QzE0I19NKj8/NTV1R0spbVNe dEt1eFA8VmR7Y2lQUD82bUMkQnUoYWc+OXpgXmR1JE00T34Kel40e0x8eXVJ d0p0bXcwfT5iJCt9KVlTOChzTl9ZeT19ZkBzUV5NK24pYk56cEBPc1lkZ1ZG N2EpYjZke15PP01PCnpRakhtcXdydHF0JUxsMDk1VWIpRXVIIytCPnY3Qk1Q UUs8XiFSS1ZmPSN0ZyVwflBOPHV0anBDSEZ9PEBZTEJNRAp6azJkdTIkPyl2 QUBhKHFsPiRkYW4kRCtxej5nMWozPERCVz5uKHBTYXF7P0lPPmJCfE9vOU4k fT1pUWc9PEZLZEEKelg3QXs7PS0heTsrbWAwb2w8ZVRHbSVEWF93bj11WEpN cnRwP0JLNUotbUxIQnpxLSsqdUcoPlV1MEdxbmlNNSUyCnp3QnZkMz1EX0xQ c19FTE89K34kMS1AQUlUTEZ3QTU7TEQyTiRjTnM9aDMzKHNqbG9tcypRVmRi aFRnLTMtTkF6OAp6JiFEI0ZlQ0Vgby1OSisxej03TW5mOEA9Y3gkQSVIK3Ft VjxweVNNKj5lI2xyP3QqLUBMJWleV21kc3UyPUFZfjMKenA2fV9qXjYxdiEk Q31XcVh2TFJBJEYheGFzbm0+Kys7TWYodmJFXm87cjgkOXdlc3g2PUYrYXd0 Wkp5ZEZQUGFZCnpqcVdHNnZDNCZrem18dWohbkxeYV5aVjQqQH5OIWxqKjtF TCF8YytuWT97XzlpMXNGV3pINSg/LU8kblQ/QSpjZwp6P1opb3J2aEMhcz9C Y0tSPWZRIzZOJHVzYT1HbTN5KXwyR1prbX1zM2NkJmZpej5lKFZ1SEBCYDxJ PDFmJlchMlUKenJ8c1h5Oz9SeFomNVBqNWlSYWEmYHU2VmM8RyQkRnJ7fnRD P0FeS1MtbiErYHEyJGg9PilFIzR6SlN9amUlaVp6Cno8SUE0ZnlNRWZiZVFS S3o5ez5PVjBkIUpNUXZnOGIqayU5IzAxMHFOUyN0bVkwN3c3OzA3dzh2JCFr NlUwMEtgKgp6TF90KFkkNzVoMTghJDN+MDMjX3tuMyEydSsxUXkjKCEjO1gj bXomUzdTZTZ1MV5iMVU2ZkohRzApaiVxZD9hWlIKejVmdX1jNz5ycy1fbHFQ UzJ1S2I8aChYZ0d1R0VLMzNscD1IdzJVbTFvVjxkZjUpKGN4JHxAP1ZZN2l8 UD5LZDlfCnpPeGlsU2RpdlAzITJQMFBVfDxOKkwlPGU5aCQqV1cwcmh+eWpL Ukp6IUlrPXVMcm1Hb0ttfG1ibndlV3pUQUFWcwp6T0JDO2BTVk9kISt0fUxL bzhuM3JzOUdFI1N7JDk2VTBqTE87cygqOz8mMGE+amF2KHtpK3owa2x0RWhq VD59RHgKemFRWCEkalJwSUtnYVktMW5Td3cjYWo4IV5HeT49fSk1eGdrbXs/ UHlRZVNYckw+JGwtKUEpcU1xLTMwYUt9bWMqCnpEUkUlR3FeNn4zV2E4OTxR WWZpcEt8KEEkQ3BSeDJ3LSk1MFBvKTUmckxaVyF4Q0V6UFA7RHMlWWF0TH5r UilnZgp6MzlxdHA2KyZVazA4V0REPTRQZks0SnV7ajZ7XkgmRnxWd3dHJmNw aTNhQ1NrU1M9UDFUVTNiQjBuJD1zUSpEWVEKelFkMykzVXRpYkkqd296SSlZ Nkw4RlAzZlk/TVBaV0k9aX1pZFYyZiVDcnEzO1k0VmgqbXw3cUs4aXZwQFpU Z0hFCnpHaUpgM0ohZWA2a1VNKThyWEpJfF5YNHlEMilDdUM2UXBDJmwtVWRu YjJAODRkWnU4dyYyO2dTck9UR1h3YlhWMgp6Yjw5e1g4Tl47JDNuQ31DVX0j eWpkZD1FKGE0bUorQVQzUmtLPHhFKEFhWVVAaEwqcSQ4I2lyK1lwTCU2WD0k RGEKelZzRUpqa3JTSVN2fjFuQkokbmE5VEZecF9EMk1HIy1uRHhWWTJNJHBj aTtYNHF5X1RzZ05GX3d2PTl9UTJNKGNWCnpBdEokO21LLT42cG9GQWtpSnIh JjNqbX59LUBYMEk5KHc9KTAzfiFxU2FmN3piWShoWWElRXczV2RKZlRGKSVH TAp6R0ElR01SNUNDK0cmNEZoRyVHTVFJeHNMZW5JIz9vMDAxUilNT2J1WFZS VTZXWkVzfDBXX2JXSUZmbE1LRmdZelMKakY7cEAkSXk1dm9GZzdiTkg5OWFi JTltQkYwMDAwME5rdlhYdTBtamZoI0JYUQoKbGl0ZXJhbCAwCkhjbVY/ZDAw MDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9pbWcvZXhfaGFzaF9zZXRvcF9leGNlcHQuc3ZnIGIvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9zZXRvcF9leGNl cHQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFj ZjE1NDgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0 YXRpYy9leHBsYWluL2ltZy9leF9oYXNoX3NldG9wX2V4Y2VwdC5zdmcKQEAg LTAsMCArMSw3MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i VVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJ bmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2 ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8x LjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3Jn L25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8w Mi8yMi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5v cmcvMjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5v cmcvMTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1 MCIKKyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0 YQorICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAg IDxjYzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxk Yzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8 ZGM6dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJs Lm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpX b3JrPgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMK KyAgICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJl Zj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhF VWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtp QUFBQjRwSlJFRlUKK2FJSHRtRzFzVTljZHhuL1g3NGtKaVJPSFpuR0FwQTJN QUxVeldJR3R2SlFSQk5JbUZaRVBtN2FwMmVpMGpnLzdzbW9xMnFScG1pWUUK K2s5aVFScmRTYmF5czY5U1hrWUhVVGFPa2dNVTdpQkM3a0JBU2NFaGlKNENU T0U3aU9MRjl6ejQ0Y1dQcytOcDVLNnI2U1A3Zy8vM2YKK2MvN1BQZWM4NXpr SFBpZVFVajNjZjdKRkhMdmhTWWhYZjZXWTE3WXRTZm51WEVPVDZ1R3hHeDYr dHZWWjdnMkVNT3RVRk9vbEtrMDYKK0RyNS9ZNjdxU3hzcGlRQTQra0k0KzBZ b05xZ295VkpSb0ZQTlJWMFpRNUdJemFRbFIwTnNSQllhRlYvNVRKQ3lLbXRP THBkT2ZRTEEKK2c3SFkyYkg0MWRtdEsyT2tKS0pxbFBqVHJrb0dCeVBvZEJK NnZScFRub1o5QjFybXFyNjBvVGhQZkw0UWZYMWhEQVlWV1ZreWV0MFQKK0pW WXhQSmtyZHdyNDNCQlJuRnA1ZVZvMEdsVnNqV1JucStlaXJveVJjc0svODI2 bnNKL3JTWWh2MmxEQTk3NVQ4a1F0bHBRallqL1gKK3c0OTNsWDZoV284amxY ZWJycWViMDIxNjNMczE5b2ZRcTBDdmtsaVZyK1BZaHc1ZTJtSERFd2lUcFpZ d3FDV2VObXJaLzE1OTJtM1AKK0NKSERkWHZFU2NkUkFEWldWTFBkVnNNeXkz Tkp2NlNqTDhRbDd3aFphc2hXUzJTcm8ybDNCOExjSFJobG5sb2lXeU9obHpJ YitSbFIKK3JaT09vN3k0ZGlzQUhkNW0vdWM0eW0zM05aR01qTTJrUmFzaU5p TExjclUwQTgva2FNaFNFeHNSUzNabTN6aGw5cVlOQmJ4NXBDMTUKKy9QVlAv Mit6MVhEaXlsRktGNVJnSzZ1SWtYa2NWUXU2cVRzVkgrc0F2cXAzOC9mamlm MW40dWxtUkxWZXFkb25BUnl1cXhFTzE4ZlkKK3lpbzRjZVZZUW52YitnL3dp OTEvSkJ6cUJRUkNnRVpqb3Y2dGcremFlbXBhNnFpNHMvdDhJUjQ5R3FXbkow UmZYNGhBSURKcDdpdFYKKys2UzJoNTFJNnNtYkRZZDZHUTE2R0IzMk1EclVT V2pZbTNFL3lUQXJxcVZTVDc3N0Mxa2dJakpDanY3a1NHWUZUNFpaSWFKT1FR UTUKK2dvaEVvbVFpTXFobmhvamkxTXJMMDFKWXFLT2dRSXZKcEZYMFdsdXQz OGYxb0lQeWhVOXp1RzZQU09oUWJVS2pMVUtyTFVLckswS3QKK3laOVNQNDlq eHIzV1I0NjNSVjN6RzZ5clhNUFZtOWNwbS8vMW1CaTBmTHhmZUp5SklqQ1l2 WjBUenVxTStzbUl5RlJ4dUc2UGNQa3YKK3N2NjU1em55L2x2VXZ0b2xBZGov c0ViWXZ2MDdSZ0lQUVpZUkVZSFdZT2JtOFY5aTNKaGN0ZDU4M1paV2pUTitI dm5JOFhhTXhNWDYKK3kyeXoxY1E5SHhsOHdIQmZHNEZlRjRIZWU0ejR1NEJa VnEycFhORGRmZWlrc0tDUWkvV1hXV3hjRzV0VzR4Q1JDQ0lVamxPdW1jQ00K K1g5Q2RjdjZESDMzM1pmN3l6Nyt5OTlVekNXVGxpSXdjamtSSlJPYUlDRXp0 Z2s2dG1WeHh0SG96WWw0WUlXU0VBSjJ4Q0pqK1NYUlcKK0x1aWtTZmFSWW1z MWpSLytLaUUrbUwyZGQ5THdkS21Rc3FxSkptL2lCVjNWZ3U2a1p1NXczUjdS RWJ5R1NwVjgxSlpzZVcwU0Jib0sKKy9DWWhtaTRKVUNBU2IvTEdYdERtYy8z SUFmWk95QnMvajNRRXIvSEMrczNjYVcxbVkwVTF0UnhLdjVKcFFuR2VoRU85 aEVhN1UrYWMKK2RCemxKei9jalVxbDRrNXJNNk1QYzlsdXE0RW5pVWdpRWx3 SDIydzF2UEczUHdQS0o4VFpRdnBFaEVDSXFITjlIQlAzaXVoMGloOEoKK2Yz ZWo2SFdkeDlkWno1QzNGUUNqdVp6aHJBMjRoMnkwZFJsd3U0TUFXQ3dHbGk2 WmgzWGxmRW9YWjZmOU1SU0phTFQ1Q0NGQUNKQmwKKzFHcFR1bTBENEhIV0N0 ZjVRelRsWGNCbkRUTlVHQVpnK2JtOTFGOGZ3cVJyWUkzVlRPWExXd0JvYngv bVZ0TUF0Y2U3c0ovemlrMGIKK3pOTy9SU20yVm5QOXlFK1R4a25qRU9weDFn cHZ5Mm11TExmVFd4cUt4ZjJYdDNMN2ZnSGYzUEZsU293cVBJNFBHSFFGS0xi dWpCWGQKKzRPZ1haK3pldE1ta0pPSnhIbVBWU3djSmpYakg3SVJBbzgzSDhl N1BGVW40dXh1RjYveWhCQklqbmM5Zy91Um5iSDdCVEtVdFZ3THcKK3R0cUZ1 K0U5L04yTlluN1JjZ21nMHBZck5UajZ4ZW16WHRydUI0VFNORlBjcGtlRGp3 Z09kQkQwZHhEc3Y4L28wQU9sVndEb2RaMm4KK0tlOUNIQW1BUU9OcUxCWkRq QVNBdVh5VFpEU1gwK3M2SDVkYmFjdVZMQllEenB0K3hmNFVpWWhJQkRrY2p2 NUNZVVE0UFZmcTY2ekgKK3R6Q2NFQzlzK3dFcktuSVM0cWJGNi9CMUpsN0ly YWpJNFU3TG9HSi9pb3RkaE9Vb2diR2pxWnhFdFpKaHlOc2FXOWdUNFhZSFdi UW8KK0t5R2U4OVN5bUtKTnhLSkZXVEZGUzRXMFZFdG5DTVhXaU5aZ1ZtejBz NENpYWpuL3RTZHBYRW0xak9aeWpJKzY4QzJNWHlNV2k0SDIKKzl1R0UvSUVI dHpHYXk0RzZ1SGg3K3pBV2l5RmxYNUNHYXExNDhiZU1EblJITjBOWlJtOThp c2IvL2xxeDRieVNWZVIxWEVvZzhxajAKK0xXNDE3VTdJNzd0L21ieVNWUW54 VzAwRExGMHlUN0UveGNVKzR1OGkwSE9QZ1BjdWdaNTdCUDJwZmRjNDhzdldV K0Y3bnZ3MmJWdzgKK2UvbDEzTzRnRFk3K21OZnh0dHJGa0xlVi9MTDFjYmtO am43aGRnZXhycHcvZlNMUlM3VG8ra2hpc3liRi9LTGxVdUhTS3RZMWJZNGoK K295KzVpL2ZaMzNQRzdxWEIwUys4clhiaGNYeEE0ZElxeHZlUWNSSm43RjVX cjhwTnk2b29xMVpreko1TUFjWFduWkxIV1N2V05zbzAKK2VTN2dXeGkxS0FX VmRTd2JxT0UveDlzeDZkeXN0SDZMMHJJdCtBZENZdHlpbkQ0YkpURWpGZ1ZB bjFPVThuODZaUHpkalNMWFZZblAKK09kRTBIdUVicXpmZ0hxcmthb3VCZjU5 dEJqNDFqVHQzZkNrajA1Z3ljYklMdFdKcmRZclQzaGVZRnY0UG45aVlEUU1V UE04QUFBQUEKK1NVVk9SSzVDWUlJPQorIgorICAgICB4PSIwIgorICAgICB5 PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisgICAg IGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9oYXNoX3NldG9wX2V4 Y2VwdF9hbGwucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFp bi9pbWcvZXhfaGFzaF9zZXRvcF9leGNlcHRfYWxsLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi5iYTI0ZWQxNmFlYjBkOTNiZDEzMzkwMmIwYjIyMThl Njc0Zjg0NTI4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNDAyCnpjbVYt PTElPipGUCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAwMSV3MHt7UjNEZEJq NzAwMDZeUCl0LXMwMDAxcQp6eCFYMn4hRWVwKE9+QzE0I19NKj8/NTV1R0sp bVNedEt1eFA8VmR7Y2lQUD82bUMkQnUoYWc+OXpgXmR1JE00T34Kel40e0x8 eXVJd0p0bXcwfT5iJCt9KVlTNjswMDU8XjxWQyplT3UqPz0hcz48OEBSWm9f ZGR9PkYoZH49Vz95Y1lSCnpuWT8mWGpUdy0oWX1uPD8yZExyQHRLdTUyPDZY dDthbSh5WnpVRXJOPVZabWBsR1gyXyM5b0IzTVJLRHhkWS05agp6a0VYJG9I dVVreUBhKHRuPzYmWGd3KTV9RHFRX3dCPGVsb3tvYXh9Mj8maDxrJTQ2Xjl3 Jn4lVT0tLSo9LUl3ZysKenUmMiN0QDk0QVctazlneG1nZC0kP0JLMUp5TEU9 UE5wYDlgQCQxQ3c7SThaNXRuY0sleTN3UHErSHJXVUtISSZDCnp3Vjhnajw5 WURyITBGdG8+RHM5MSpRZjJAeUx6IWY+RHNCXyVabEh+aHUrMTc9RnleISFC Z25ocnIqWWYtb3UzNQp6IUdoKF9wdGszSD1HM0khIWhfdHZmIW49KjxqdFBC PndvTHB4YUgyRTxJSkF3KnRXWHZmXyRfP3l6cXBVJXc2bHwKenBYPXFHQDlE Smk9K0B4Sm4kVzlnI2d8MEt3NTY9NilRcGhhYWRwKFB3ZG1tQ19WNFBvXjZi VXQoeXIwMFlOKSZ+CnpuQXQwaD9rQmdnJTd1WnltV1FPbXdZYyowYF8kRilz alRJV2s9Pzw9PzkjMWxuJHwwYl85bEExWW1idU0oOSFZaQp6K2A7cWgjX3J+ Xz9jfWlSOzstPU0hR1lSST9kN3JOKl9Hd2lsalBIbz5mRVkjdXpjTFdqX2wm RDxrZ1ltKHZSWksKempPb34/P2NjYFkoMmUyRWl7USRNPWhkYjlfVWBaRnpV YkplPWhtZ3stTVFARXk1LVFKPGokWSMqfHl4aWZaTSEmCnorUGkoQCVid2Mx ZSVpV3lIa2N+bjAwMDAxYlclPUowNl55MFcmaSpIMzI7YlJhe3ZHVU5Ce3I7 TkJ+QzNZZCF6fgp6MCViYD1LfnpZYFZfK1p+RmZ4R3ZCUG0qI218MGxhKnFL UHUhb2tWSyV8bl9OKHJ3YGRgLVBWakVxd2R9ZjxuVDQKekJ4dzs1NiUmXmpq OU9yUmsoODhWa1lvVE1MT19aUzFmKVB9aVBiYGVFcFdlcFoyPT0jeTJGK0Z1 ejg8fVN6MU9gCnpqITlsWVFBd0V6cEI1RVdSVylecDc3aChmRW9+K3BUfElw UlkrQiY0dVdEIyQxa3BwbDdJPXNPWjd+TXcwZzBKXwp6ZVBOMCNeJnpKKjY9 T3FINU4mMnxWUUZQO2hBWmA8Y3dmfjlxUSUxMiZmZFdjU0dxdmU7dDB7PTxt fT89TXgrKloKemghemh8RksteypUOTk0cj4qdWNtKGh9ZW43IS1gdEZOaEVX ZilNfUVGcmMxckdaMlZDbWNiMkYhWGtsQUdtRENqCnppSCRRT0QhK3o9TWFC YmRGLXU1SE4+MEopN25IPjNuO0gtSE9JbXRIVylAQkBEMjAtMEhZQ0p5YWBX O0ZhQkQjPgp6YGN3LWNUOGZHYk49a0ExMT1XQF51b2VPIzIxJFlAa25rJDZQ JGQrbTRCI1lhVlBTM3QoeDYmaVFLPzNaN0teSD8KekRobzVQdEFJTXhpUGQ1 V3V8PF9BOVV2eyR3bCF1KkJESG4oNEdyfjtQMGNNVyY4PS0le2JKU2IoU2Y5 O3YjWXpPCnp4M3tsPCFvKjNGQ1FxMzw0TzBzd0sqSkZfcnE3cjtiTE9uc2JM TEwoMWFqeGgjPylnclp+bFVYaXtRNEBjN2IjKAp6bztydHRWUXlDfk5ZN0xa eDB4K2p4QGBGaHhSJHpacHBLYTxyLTBiMj5Pa2FfUnR6bngqUXtOKTk8SFVu MmMpSFcKekdLanNROXo7JVYjP1RWOWFudDU0YTRpa0pBVDJHRUs8dXB6QWFZ VSpoTCZ5SGNqVzlPTmVmenQ1I19MNURaQlVWCnpDQyZUMF93N0cka2hEUEZi TGpBNGdjaFFyXjU5XzxFa3E8M3Yoa2VINTA7WFlFWVpeI2JwWmV0OHtAb30z MnIzLQp6MDAxUilNT2J1WFZSVTZXVnsmQy1iWSVjQ0ZmbE1LRil9U01GO3BA ekl5NXNuRyZDelBIOTlhYklHSDZMMDAwMGIKemJWWFFuV01Pbj1JJkUpY1g9 WnI8R0I3YlBFaWdHUEZmbWp6R2RlVWhJeHNkWEZmfT9iRnZeIXp0TjtLMjA3 KnFvCklNNk48JGY8RCpsV0I+cEYKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4v aW1nL2V4X2hhc2hfc2V0b3BfZXhjZXB0X2FsbC5zdmcgYi93ZWIvcGdhZG1p bi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9oYXNoX3NldG9wX2V4Y2Vw dF9hbGwuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmIxYTUxYjEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNj L3N0YXRpYy9leHBsYWluL2ltZy9leF9oYXNoX3NldG9wX2V4Y2VwdF9hbGwu c3ZnCkBAIC0wLDAgKzEsNzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j b2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVk IHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+ CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxl bWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21t b25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0 dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3 aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8 bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+ CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAg ICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAg ICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRw Oi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAg IDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+Cisg IDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhs aW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FB QUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNB Z0lmQWhraUFBQUI3SkpSRUZVCithSUh0bVcxc1U5Y1p4My9YNzRrSmlST0ha bkdBcEEyTUFMVXpXSUd0dkpRUkJOSW1GWkVQbTdhcDJlaTBqZy83c21vcTJx UnBtaVlFCitrOWlRUnJkU2JRemFkZXJMU0VGcXAxRlN3T0lkUkloZFNBZ0pP Q1N4RThCSkhDZHhuUGpsN0lNVE40NGRYenR4VWxUdEwxbjJmZTV6Cis3bm4r OTV6bk9mOXpERjhTU01sdTdqL1ZJbzdmZE1YWnE3OVd6R3ZibGlSdE85ZFFK YnQ1L0thTGIyeDlsdnNEQVl3YUJZVmFpVXFECitob1B2MzV5citGSkdVaUlB dHI0QTlyNFJpblVLU3JJVUZHZ1VjeEZYMnBBbFlqR295VkVSSFpHRmV0a21Y d2lTUm1YT3llWHk2YzhBCitlRGhtT3pkbXZ6YTdjYVdOcEVRVWpSSi8yVlhK NEdBSWpVWkNxMVZpeUZPeDcwRExYTVdYTW1UbmljY1RvSzh2aUU2bklDc3Jq RmJ6CitSQldyS0o3TXpKMEd2alJFWktkV1hwNGFsVW9SelpIc2JPVmtGekho dHpSMkxVMjROeWR6TVdrbjc3emJLYXpuZStMc216WVU4SVB2CitsVXdPZHZJ M3pDR1JwQ05pUGQvRFQzZVZwbEsxUktMMmM0bE1WYTN4a1JoSHdsRkpwdDFt cXVreXNVeExVM3hQL2gzVmJvMzlBYlFLCiswQ29rVnVWck9QNlJqWmQyV0hE NWdtUXBKWFJLaWFmMWF2YS9WNTl5RUJuUkc0ZnI5b2hUdG1NQWJLeW9acnVs aG1XbTV4SytTVnRmCitnTXZ1RWJLVWtLMlV5RlpHM080TkJMazNNTW84cFVT MlNrSXJwWmRhbWFoYW5MSWQ0OFcxV3dIb2NEZnpYOXN4N2ppdmkwUmtMQVkx CithZ1hSRVZtV3E2WVplQ1pIUlphUzZJaVlzdE43eDBtOU4yMG80TTBqYllu dHIzOSt2YzFTdzhtcnh5aGRVSUtsckNKS1pqS3FGblJUCitkenJXMWdGOFhl dmtyUlB4L2FlajZUSlN0VjZwMmljQkhLNnJFVGJIcDFqS0tqaDU5WGpjODdi MUgrQlh1LzlNTU5BTENJUUFsY3BBCisvZEdEN05wNmVrYWFUblpsOTNnQ1BI NDhTazlQZ0w2K0FENWZhRXJmVjZyMlNXMlBPcEdVVXo4MkdPaGwxTzlpZE5q RjZGQW5nV0YzCisydjBrd3F4c0xoVEsrRHdhaHdnTFJDaU1DRWMrNFZCNkFV K0ZXU0dpVEVLRWNBZ1JDa1hJaE1LZ3pBd1IyYW1WbDZlbXNGQkRRWUVhCitn MEdkc0dwTnhGYnpEM0U4N0tCODRkTWNydHNUdCtJcmxBWlU2aUxVNmlMVW1p S1VxdnhwOVRNWm1kQmFNZmpFOXJhb2EzNkRkWlZyCit1SGJyQm1YenZ4a3RC aTJmN2hjdWUzd1JHTXplemtsN2RWcjlwRVZrdWpoY3QwYzR2SmRZLzl6ekhI bi9LTFd2ZGtrQTFqK3RFWmJ2Cisvb0VSM3lNSWh4RWhnVnBuNU5hSlg2UGZt TGhxdmZtNkphVVlNNzRmK2NUMmRwVEVwZm9yYkxQVXhOd2ZHWHpJY0Y4YnZs NEh2dDc3CitqSGk3Z0ZtdVd0TTVvTHYzeUU1aFFTR1g2cSt3V0w4Mk9xM0dJ VUloUkNBWVU3a3lnWXdmMEoyMi81T2ZmUDlsL3ZhdnY3UDMxYk54CitaTU9o TU9GZ0tFSWlORWRFWUhvSGRFclYxQlZIclRVaTVnVVJJb3dRb05FWEFhbHB1 bVNZbFFNNmFZcDFwTmhjVGVOSHY0bXpEMlp2Cis1NTBVTkYweUpJMXFvc2li ZUVCWHRhQTdvWmc3WExkSGRQaXZvMUFrSHJVbFcxNmJvZ0pkQTM0WFowMlZC TWdRaVJWNVl3M1UrZHc0Citjb0M5RS96Rzl5TWQvdXU4c0g0emQxdWIyVmhS VFMySFVvOWtocENkSjhGQUw0SFI3cVErcDJ6SCtObVBkNk5RS0xqYjJzem9v MXkyCitXMnJnU1NJU2ovaHpobTJXR3Q3NHgxOEIrUjNpYkNGMUlrSWdSRVM1 VHNiRXRTSXluV0pId3R2ZEtIb2RGL0IwMWpQa2JnVkFieXhuCitPR3NEemlF TGJWMDZuRTQvQUNhVGpxVkw1bUZlT1ovU3hka3B2d3haSWlwMVBrSUlFQUxD WVpSS1E2clBCc0JscnhXT0M0ZG95cnVJCit4eHhrcURBSXdQTHplNm0vTVlS QjA4QWFzNUhLbDdjQTBONCt6TzJtQVdwUGRHRTk3eGFiTmhobmZvcFNiSzdt eHBHZko3U1R3aWJVCitaYThWN3BZelhGMXVwYmMwRUxWN3Iyemx6b01DdnIz anE1VG9GYmhzSHpEbzhGRnMzaGtOdXNIV0w4NWEzU21UU1VyRVpUL09xcGNP CitFaGh4ajhrSmdVcWRqKzNkWDhxUzhIWTNDc2VGUTNFa1JqcWZ3ZmpaTDlq OGdwRktTNjRFNEc2MUNtZkRlM2k3RzhYOG91VVNRS1VsCitWMnF3OVlzejU5 eTBQZkFKdVdrbXUweVAraC9qSCtqQTcrM0EzLytBMGFHSGNrMEE2SFZjb0Nu dllnd0pBRi9qYWt3bVhaUUVnTEY4CitrNlEzbHRQcnVCRGpXMm5KbFV3bUhm WmJYdG4rWkltSVVJaHdNQmo1QklLSVlHcXExTk5aajJkaE1NNWUyUFlqVmxU a3hOa05pOWZoCis2WXcva0Z0UmtjUGRsa0haL21TVFhRVERFUUpqVzlOd2dx cVZDRVB1MW1oaVQ0VFQ2V2ZSb3F3NGU4NVR5NklWYlNJV0xjcUtWclJrCitT S2xxYVhTQmFJNm9kVWJaaDM0UmtLMWE5bi92U1dpWHExcDZZem42eDExNEZz Ym1pTW1rbzcxOU9NNS80T0VkOU1aeW9DN0czdDQrCitqTW1rUzlvWHBGQzFW cno0ZTBZSHVpT0xZVGlNVnY4VWpmLzVyZXlEODBwV2tkZHhPWTdJNDlLajNH N2FIZWZmOStBS2VTV3I0dXkzCittd1pZdW1TZWJIK3l5VDdpN2NMWGN4K2Yr eDYrbnZ2NHZjbDExemp5eTlaVDRYbWUvRFoxakQxNytRMmNUajhOdHY2bzFu RzNXc1dRCit1NVg4c3ZVeHZnMjJmdUYwK2pHdm5EOXpJcEZEdEVoK3BQTjN6 dnlpNVZMaDBpcldOVzJPSWFNdHVZZjcyVDl5MXVxbXdkWXYzSzFXCis0Yko5 UU9IU0tzYlhrSEVTWjYxdVZxL0tUVW1xeUZldDBKZzhtUWFLelRzbGw3MVdy RzBNMCtTNmlHZGhSS0lVVk5heGJLQ0dqMCswCitZOUE0V1duK0RxVmxXL0FP Qk1TNFJEbHpMa0lpSXhJRlFKdFRsUFE2RlRMZTdrYVI2NmpFWTU4b0dvL3dy ZFViY0E1VmNxMUZ4NGZuCittb0hQUmVQT0hWOUpTelFtZFp6cVFLM1lYSjFr dC9kL3pBai9BeXBUb3hCT1o3L2RBQUFBQUVsRlRrU3VRbUNDCisiCisgICAg IHg9IjAiCisgICAgIHk9IjAiCisgICAgIHdpZHRoPSI1MCIKKyAgICAgaGVp Z2h0PSI1MCIKKyAgICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4 X2hhc2hfc2V0b3BfaW50ZXJzZWN0LnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mv c3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0b3BfaW50ZXJzZWN0LnBu ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjUzNmIxMWI2OGZjYTZjMmZl ZGExNGE4MDExMDAzNjc4MjA0ZDYyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh bCAxMzg5CnpjbVYtejEoTiFTUCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAw MSV3MHt7UjNEZEJqNzAwMDZ+UCl0LXMwMDAxcQp6eCFYMn4hRWVwKE9+QzE0 I19NKj8/NTV1R0spbVNedEt1eFA8VmR7Y2lQUD82bUMkQnUoYWc+OXpgXmR1 JE00T34Kel40e0x8eXVJd0p0bXcwfT5iJCt9KVlTOChzTl9ZeT19ZkBzUV5N K24pYk56cEBPc1lkZ1ZGN2EpYjZke15PP01PCnpRakhtcXdydHF0JUxsMDk1 VWIpRXVIIytCPnY3Qk1QUUs8XiFSS1ZmPSN0ZyVwflBOPHV0anBDSEZ9PEBZ TEJNRAp6azJkdTIkPyl2QUBhKHFsPiRkYW4kRCtxej5nMWozPERCVz5uKHBT YXF7P0lPPmJCfE9vOU4kfT1pUWc9PEZLZEEKelg3QXs7PS0heTsrbWAwb2w8 ZVRHbSVEWF93bj11WEpNcnRwP0JLNUotbUxIQnpxLSsqdUcoPlV1MEdxbmlN NSUyCnp3QnZkMz1EX0xQc19FTE89K34kMS1AQUlUTEZ3QTU7TEQyTiRjTnM9 aDMzKHNqbG9tcypRVmRiaFRnLTMtTkF6OAp6JiFEI0ZlQ0Vgby1OSisxej03 TW5mOEA9Y3gkQSVIK3FtVjxweVNNKj5lI2xyP3QqLUBMJWleV21kc3UyPUFZ fjMKenA2fV9qXjYxdiEkQ31XcVh2TFJBJEYheGFzbm0+Kys7TWYodmJFXm87 cjgkOXdlc3g2PUYrYXd0WkxsQWpfdSNaCnpgdTZVKHZDNE9Wci16NCYhbkxe YV5aVjQqQH5OIWxqKjtFTCF8YytuWjB5e0BrQ05TZSVVaGIoRTZ+eUxeWDxt Jgp6PUNiWU51PFlXbUBhTXNaXzlwRyt2RjYjODw8XnRyKH4jPWlzJiVNX3NK dClpOzshVj9rPms+ajs/OWllKnIkSGEKelIrIWw8Oz9SeFomNVBqNWlSYWEm aDNobnA/a0RmI3pVYkplPWhtZ3stTVFARXk1LVFKPGokWSMqfHl4aWZaTSEm CnorUGkoQCVid2MxZSVpV3lnQE0xOGhvc1RxNGdMVEMwMERHVFBFIUN0PUdi TmMwMDBTYU5MaDBMMDAyazswMDJrOwp6TSMqYkYwMDA2fk5rbDxaTlhLSmZB UjkwO2ZkQ15aVDl9d3dTbFFUX05ZY1c9JDtIaD5uaWtTKztSWEFKbWxRMzAK emB+cmVQIWg5clk1ZksjPW1sJXYlTmNXMio5fCVZZUshYCFwOWo/QGVPJCFz VmwoZFgybGJwUFFxN29CNkV5Xms/CnpzJWo3fDlPQGRIVDE/dEh4X2JLOXc3 fnRNVnFqbmgoTD14JU0ySVA/N3k8UXcjRWlrZEZ1fDRqa1Y4el8kVXBAfAp6 bzBeJGhTWCFDbDNRSDk0dDVgI3tuQV9PZSpfK31AN3BQaHNBWColcW9MeVhy KVp6eHc7X2woOzwmOWVsdld0Q3UKentnZ3BrezlPWUFnSyt1PEM1Ozk5Z0Bn azJncWVhc0lCfV5ASVd6KzNHfUZrYT0kS2VqcUVjVVFYaGE7KTdTczVJCnoj SDNgTGVuQ2xtSn1HZnZ6b2UkNlhKcTJrZj5KMXtXSTtrS0owfnxVQUdhM2Rx RURwJnFOVDdYenFrYWFVcj1vKwp6MSMyTT9WdnI8ZzM8PEJZYXVxXmgkXmNH Kz1IX09tQVBwKkk8clMqTFhmZHk+dFRaPFR5OSVnN2phViVmNUw7QTsKeihn RCZeV205ZDZCdk1tYlM2XlMoKEFkPTYrfDwmRilpMEs5PyhJbGdJeSQ/JGR3 UDJOYFhAfUJJQkR7ZnNoQzxJCnowVUN6VEY+Tn1Lb0h9Rlh0WjV4VSNfU29H ZFE5aWNvaX4zMCs/Slk3a2REP1ZHWiF3TCltYTE1R1g9d0tyaSZJWQp6Uy1L M2FyTTMlMXdrJSU9MVNASm0/OHore1QyYClGeT1FPDNPSTxnSlkrNDc+dmMz KylwNDViKUMyKyZXT2BHOWIKej5VJShCXkE/Ym50QFItRyNBWGFGK3FVbj4t YnM9Y3Y9QWY4VllgeGRAN1lWNV9qbTh4ZjhaYyNmeFBGPztsbF9tCnpMYENK biF6Znh7M0ZnUkFvQyhJWDxsdz1CQl90KEZeZlgzWTAwN04qKztsZnFYKkI9 PDAzfiFxU2FmN3piWShoWQp6YSVFdzNXZEpmVEYpJUdMR0ElR01SNUNDK0cm NEZoRyVHTVFJeHNMZW5JIz9vMDAxUilNT2J1WFZSVTZXWkVzfDAKdldfYldJ RmZsTUtGZ1l6U0Y7cEAkSXk1dm9GZzdiTkg5OWFiJTltQkYwMDAwME5rdlhY dTBtamZ1STJKTgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFz aF9zZXRvcF9pbnRlcnNlY3Quc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9zZXRvcF9pbnRlcnNlY3Quc3ZnCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjY2NjNmYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBs YWluL2ltZy9leF9oYXNoX3NldG9wX2ludGVyc2VjdC5zdmcKQEAgLTAsMCAr MSw3MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgi IHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2Fw ZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAg eG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgor ICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIK KyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y ZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5v cmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw MC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAg IGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAg ICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpX b3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3Jt YXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlw ZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgor ICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAg aWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0 YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFE SUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQjRo SlJFRlUKK2FJSHRtRjFzazljZHhuK3Z2Mk9UeEU0Y0NIRm9FaFlZS2RUT1Fp bXNmSTBSQk5JdVdwRUxwbTBpR3EzVzlXSlgxVlMwU2RWVVRSVk0KK1ltTWEz VXExc2RLdVUrbEdCbExWalJJZ0VRd29sQkI3RUFnSkpKQTRIK0I4T1luanhQ WjdkbUZpWXV6NHRmTlZWUFdSZk9ILyszL1AKKytUL3ZPZWM1enpud0ZZR1U2 T0hlRTAzaTZOV09tSGpGdC9KNGZldVNoTy9PTlRTSkhoNjkyc0czdHp6RG5j RUFWcDJLSEwxRXFVWEgKKy9vK3Z6bFY5U1NNaEVRQm5Yd0JYM3loNUJoWDVh U3F5ZGFxNXFDdGxLQkp4V0xTa2E0aU15Q0tUNGl0ZkNoSldaVS9QNU1MSi93 SFEKKy9UQlc4ekIrYVhiclNoa0ppYWdhSlA2NHE1U2hvUkE2bllSZXI4Wmkx ckJuWDlOYzFaYzBGT2RKZjMrQXZyNGdCb09LdERRWnZlNkoKK0Vxc0luc3lW T3dWOFpZZ29UaTJ6V1l0R280cXNFYU5SUFJkMXBZeUVFLzdEajlwRjdkbWVt UGpHOWRuODhQdjVUOVJpU1RnaXRXZDcKKytNbXV3cTlWNjNFazhtN1Q5WFJ6 dWsyUGU3ZUdnUUI2RmVoVkVtVlpPbzUrNG1Ubml3NDZmRUhTMUJJR3RjUmlr NWE5UitxU2JudEcKK2lCeXMzaTFPT0E4RHNLR2tnbTJPU3BiWlZzWDlrczYr QUJjOG82U3B3YWlXTUtyRGFiY0hnOXdlSEdPZVdzS29rZEJMcVkzOGpLalcK K0NlZGhYbGk5QllBMlR5UC9jUjdtcHZ1eWlFZkdZZEdpVlJFWmtXV1pXaHFC YjZSclNGTVRHUkdiTWJWdm5EQjc0L3BzM2ozVUdqLysKKzlxUC9XeDJWSFAv OE1JWHo4M0VVbFVUSVBJN3krVjFVbjR5T3RRSFA2dDI4Znl5Mi8xUTgzWXlv MWl2bGV5U0FnOVdWd3RseUNrZFIKK0NjYy9QeHJUM3RhQmZmemkxVDhRRFBR Q0FpRkFvN0ZROTk1K2RtMDVPUzExVk56Wisvc0RQSGd3Ums5UGdMNitBRDVm YU5MY1Y4cjMKK1NLMzMyNUhVa3pjYkRQUXk1dTlnYktTRHNlRjJBaU9lbFB1 SmgxbFJMWlY2OHQxZnlBSVJraEZ5K0NlSFVpdDRNc3dLRVhVQ0lzZ2gKK1JD Z1VKaE9TUVQwelJCU25sdG1zSlNkSFIzYTJGb3RGcStpMXR0aC9SRXQzRzhX TEZuT3dlcmVJNlZCdFFhUE5SYXZOUmF2TFJhM0oKK21sSS9qMlBHdmRabnpn OUVkZU03ckNsOWprdlhybENVOFh4RURKcE83UlVkcmxnUkdESnU0N2lySXFW K1VpSXlWUnlzM2kxYXZPZFoKK3Qyb3RoejUrajZyWE9pV0EydDg5Snh3N2Zz T283ejdJTWlJazBCcXNYRHYyUzB3YjRxdld1Mjg3a3FweHhzOGpuemsvaUpB NFgzZVIKK3JZN0txT2VqUTkyTTlMWGk2MjNCMTN1SFVXOG5NTXVxTlpVTHV0 djNYZVJrNTNDKzdpSUZwdFdSYVRVT0VRb2hBc0VvNVpvSnpQZ0YKKzNVblgz M2o1QnkveDU3Ly9oYmRlT3hORFZnN0p5TUZRbUVSb2pvakExQzdvMUpySkZV ZXJ0eUxtQlJGQ1JnalFtWEtCNlo5RVorV0MKK1RwcGtIOG16VjlEd3lSc3g4 U0hqTmo1TXd0TWxRc0txSnBxOGlSZDA1Zk83NHBxNWc5VzdSWnYvTWlwVi9G RmJzdm4xU1JUb0V2Qm0KK1REUlpFcUJBSk5ya1BYeEJtOFdWUS90NGEwTGUr SG1relgrWjc2emJ4SzNtUmphVVZGREZnZVFybVNZVTUwa3cwRXRnckN0aHpn bm4KK1lYNzY0MWRScVZUY2FtNWs3SDRtMnh5VjhDUVJpVVdNNjJDcm81SjMv dm9uUVBtRU9GdElub2dRQ0JGMnJvOWo0bDRSbms3UkkrSHQKK2FoQzlMZWZv YjY5ajJOTU1nTWxhekVqYWV0ekREbG83RGJqZGZnQnNOZ05MbDh6RHZpS0R3 Z0pqMGg5RGtZaEdtNFVRQW9RQVdVYXQKK3RpVGJOZ0FkcmlyUmN1NEFKbXN4 aTU3ZFNmcUNaUUNjT3RsTXpSZTNNZXYvelZyN001Uyt0Qm1BZS9kR3VINWpr S3BqbmRTZTlZaU4KKzY2M1R2MFhKczFkdzVkRFA0c1pKNGhEYTRhb1NucWJU MkVwM1lDM2VHQ21vOXF4SDNMeWJqZTU3dnlmYlZJLzV4aWFHV256azJiZEgK K2N1cWRBK0pNclNkcE1nbUpkTGlPVXJaelA0RlJ6ME03SWRCb3MzQis5SE5G RXQ2dUJ0Rnk3a0FNaWRhN1BsRjFySk8rNTkvQXRQd3kKK3ZjQkZ6ckM2UWNi YjFTQXljcCtXQUVvZG1WSzljMENjcnZIUWV0Y25sS2FaNGpZOTVuK0FmN0FO djdjTi84QmR4b2E3bFY0Qm9MZmwKK0hDWnJjUlFKQU5jMUw1MExqbUJhZnZs UmJtR0FHK2IvMHR0eUxxcU5Va2VtWkxNWmNGM3pLdmFuU0VTRVFzakJZUGdY Q0NLQ3liblMKKy92WTZMQVZyWXVLM21vWkkrMlo5YlA2aUlQM3RzUmR5eTB2 U3VkVTBwTmlmTXBHZ2pCd0lrNUNESWVRNHFoVVB3NTdteU1LZUNMZmIKK2p6 Ny9UbXgrVGpDaWFCUHgxRk5wRVVWTGhLUlVTMmNJUk5hSTFtQlZiUFRMZ0tK cXVmNjVPMjVjU2JWTTFtSUd1Mi9HeEcwMkE5NzIKK3hSZ2ZtMTZtQnhwTTFt S2dPaXArNzk0SU5wc2hZVitRaEdvdGYrSFhqQTEyaFRkRFdVWnZXa0REcDc5 U2JOaWNYMGJmM1lzeDhhVkwKKzVuRzJzVFNHaUxsTmd6bS9MQ2IvK28xQmxp NlpwOWlmNGhvWjlYYmk2N21EejNNYlg4OGQvTjdFdm1zY1dVWHJHUFkwNDJt dWpmSTAKKzloVVpMT3pld2ZEMVZZOXlXN1dVOUs4bHEyaGRWQnYxemdIaGR2 dXhyOGlZUHBId0pWcDRmY1N4V1pNaUkvZHBLV2RwT1IzT2YwU1IKK0tTd3dT aXZMTXNtNjhDYkQxMWVSMWFwbHpZMU41Q3d0WjN3UEdTZHhwdGJEeXJMTXBL eUs0bUlYb1lmMlpBcklzMitYT2x4VndsMS8KK2hPYWEzd3BMd1pxSWt2bDZl Nmo3OUdXQ09qZjlkaXVGUlp2eERnYkV1RVU1WFJNbU1TTVdCVUNmbnB2d2Z6 Smt4azFqMnhmdlJ5UjIKK29iV1k3NjVjajN1NGxFdE5CdjVWMHdnOE1vM2JY MXlZa21sTW1EalpoVnFldlNMQmFlOXJUQXYvQit0WGljOFhsNit0QUFBQUFF bEYKK1RrU3VRbUNDCisiCisgICAgIHg9IjAiCisgICAgIHk9IjAiCisgICAg IHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIKKyAgICAgaWQ9ImltYWdl MTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mv c3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0b3BfaW50ZXJzZWN0X2Fs bC5wbmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9l eF9oYXNoX3NldG9wX2ludGVyc2VjdF9hbGwucG5nCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjAwMTgxNTdmNjRhNWFlNjAxYTJkYjA4ZmIxZTRhNTUzMzg1 YzMzYjkKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE0MTcKemNtVjs0MSRP JDBQKTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tSM0RkQmo3MDAw NzJQKXQtczAwMDFxCnp4IVgyfiFFZXAoT35DMTQjX00qPz81NXVHSyltU150 S3V4UDxWZHtjaVBQPzZtQyRCdShhZz45emBeZHUkTTRPfgp6XjR7THx5dUl3 SnRtdzB9PmIkK30pWVM2OzAwNTxePFZDKmVPdSo/PSFzPjw4QFJab19kZH0+ Rihkfj1XP3ljWVIKem5ZPyZYalR3LShZfW48PzJkTHJAdEt1NTI8Nlh0O2Ft KHlaelVFck49VlptYGxHWDJfIzlvQjNNUktEeGRZLTlqCnprRVgkb0h1VWt5 QGEodG4/NiZYZ3cpNX1EcVFfd0I8ZWxve29heH0yPyZoPGslNDZeOXcmfiVV PS0tKj0tSXdnKwp6dSYyI3RAOTRBVy1rOWd4bWdkLSQ/QksxSnlMRT1QTnBg OWBAJDFDdztJOFo1dG5jSyV5M3dQcStIcldVS0hJJkMKendWOGdqPDlZRHIh MEZ0bz5EczkxKlFmMkB5THohZj5Ec0JfJVpsSH5odSsxNz1GeV4hIUJnbmhy cipZZi1vdTM1CnohR2goX3B0azNIPUczSSEhaF90dmYhbj0qPGp0UEI+d29M cHhhSDJFPElKQXcqdFdYdmZfJF8/eXpxcFUldzZsfAp6cFg9cUdAOURKaT0r QHhKbiRXOWcjZ3wwS3c1Nj02KVFwaGFhZHAoUHdkbW1DX1Y0UG9eNmJVdCh5 cjAwWVRVcSUKej9jY2B3X1VeWl8lNkVYTGhsaCo4d1ljKjBgXyRGKXNqVElX az0/PD0/OSMxbD9BKmJSbEhHbUZUYmtBQCg5IVlwCno/WilvcnZoQyFzP0Jj S1I9ZlF+ZkNoZ18xPUdtM3kpfDJHWmttfXMzYipQNEB5ZjV0SHVIQEJgPEk8 MWYmVyEyVQp6cismez9uQXQxaCgyZTJFaXtRJE09aGRaIT5va3EtQy0zOUY9 LTgqeyl9YCMteCRORyQ8PE96eiZZJGJxdyVvcGUKeitxezAteU01ISFwNHoq OStQWnkoZnhuaUFxeXVFMGAyWVhfMGQhSk1Rdmc4YiprJTkjMDEwcU5TI3Rt WTA3dzc7CnowN3c4diQhazZVMDBMYENMX3QoWSQ3NWgxOCEkM34wMyNfe24z ITJ1KzFReSMoISM7WCNteiZTN1NlNnUxXmIxVQp6NmZKIUcwKWolcWQ/YVpS NWZ1fWM3PnJ0QWV2eT12V1JQUzRBd29jazQrTndAWUtoZkNoQW5XdmZOY1JJ U2h+Wk4KemBtbE1RaUNKMWtSKnAkdEt+WUpXMzctfWZSYUdeMGghemVGTylZ SUU5YkcrcjE4aUYwdjlEQHFYYXZ6aXohckZqCnowY3xrYD5IJiRGZlBHPCNF QT02I0YlQEcmUlM8MXZaZWVMPFpINm9McD9GYF8yQk84biozUkMrM3xHMjkp IzM9egp6O15nZSY+UERtJWNaZTFiUGNMc0QrKiopYj9DYTtSMEA0IVQ3OG4k YSg9VWgrMUEtOSQmQGlCJGE1RTV5SyRnSmAKelJLZztHUEJWKiZqKXsja0JQ emQhZ2hqPiFaODF3b09pRTZ7PUAqcDU9YklXMl9EZm9OTXJJYUhFaHZTT1lC blVxCnphJnEoWDN2Zz5lRjhXanBBekYleDNyYjNIYFVUYU5HTyFpYEFxR2k7 Q1huemR1VFVpdnJWUVhEWGtsUykyR1hFZgp6VVF3dz1qMjRUa3N3eFhKdSZh UE4pUVF6JTM5Jl8kQz48YXopd1ZUZU5GdWQkXiRpWDZqWk11aEV6UFpNU3A4 enYKej8kTHB5ckwoS01yPzxEU2Y1T0JgbE98N0BJdF4wYEJ0WEx2STtQSjZs R0EzK25teFN9JGUxJHxROypyKWRHaS02CnpneGdadjE9NyhyYj1JT3F2JTZ8 UmRadUV5JjF+X0tyT1RHWHdiWFRrJGtyOCRmTThgRWgmYG5oTCg4aHdZdTJ1 Vgp6WXBMJTZrPElIdFN+az4hKnByKHZ2Oz1NM3cwUjMkT0c3VitZfXBGWnZh SkVjcDQ1ViZXJjRodUlsRDtHZiktKiMKekljI156cDF1MzlkY1BaJl94SjJT YVBTYW1meFAkZGtzfUIjTGBDSkhCUGQjNjNGaGNBb0MoSVBedzZQMHI2ZVV3 CnpeZlgzWTAwMFV7OzchfjNMdDZqPDAzfiFxU2FmN3piWShoWWElRXczV2RK ZlRGKSVHTEdBJUdNUjVDQytHJjRGaAp6RyVHTVFJeHNMZW5JIz9vMDAxUilN T2J1WFZSVTZXWkVzfDBXX2JXSUZmbE1LRmdZelNGO3BAJEl5NXZvRmc3Yk4K WEg5OWFiJTltQkYwMDAwME5rdlhYdTBtamZDWnpVbAoKbGl0ZXJhbCAwCkhj bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9zZXRvcF9pbnRlcnNlY3RfYWxsLnN2 ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2hh c2hfc2V0b3BfaW50ZXJzZWN0X2FsbC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMzNiNGRkOQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2hf c2V0b3BfaW50ZXJzZWN0X2FsbC5zdmcKQEAgLTAsMCArMSw3MSBAQAorPD94 bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9 Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3 dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9Imh0 dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6Y2M9 Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5zOnJk Zj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5z IyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci CisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4 bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKKyAg IHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0iNTAi CisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0YWRh dGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAgICAg ICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3Zn K3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAgICAg ICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9T dGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRmOlJE Rj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2IiAv PgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7 YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZQUFB QWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQjdCSlJFRlUKK2FJSHRt VzFzVTljWngzL1g3NG5KaXhNSFFoeWFoQVVHaGRvWmxNSmFYc1lJQW1rZldw RVBUTnRFTktqVzljTStWVlBSSmxWVE5WVXcKK2lZMXBkQ3ZWeGtwZnB0S05E S1NxR3lWQUloaFFLQ0gySUJBU1NDQ3hrNER6NWlTT0U5djM3SU1URThlT3I1 MDRLYXIybHl6N1B2ZTUKKzV6ei9lODU1enY4OGhxOEpwSGczOTU5cUVzZXZ1 NkxzRmQ4cTRQVnRTK0krTzlmUXhMdDUvTHFMYjI5OWhuc0Rmc3c2RlhsNmlU S1QKK2pvT2ZYSityK0JKR1hDSUE5bDQvanQ0UkNnd3FDdE5VNU9wVWN4Rlgw bEFrWWpOcHlkQVFIcEZGUnNWSHZoTEVqY3Fha2NXbDAvOEYKK29Hdk1Wak5t dnpLN2NTV051RVJVRFJKLzNGM0c0R0FRblU1Q3IxZGp5dGF3NzBEVFhNV1hN QlRuU1YrZm45N2VBQWFEaXJRMEdiM3UKK2lVcFdZVHlaSzNjYStOb1FVWnhh MmRsYU5CcFZlSTJrcDZzbnU0Z0p2Nld4YTJuQ3ZUbVppM0U3K2VqamRsRjd2 anZLdm1sRExqLzgKK2Z1SGtZQ2Qvd3h3U2lUc2l0ZWU3K2NudTRrU3lsb2ox L0Z3aVZWbHJmQ1RHRVhOVTRtbTNtV3E2Vkd6VDBoVGZrMytIdFZ0RHZ4KzkK K0N2UXFpVlU1T281L2FtZlhTelpjM2dCcGFnbURXbUt4VWN2K1kzVUpCNUVT dlhHNGVxODRaVDhLd01ibEZXeTNWYkxNc2libW03VDMKKytybmtIaUZORGVs cWlYUjF5TzN1UUlDN0E2UE1VMHVrYXlUMFVuSkxLeFZaaTFQMm83eTRkaXNB YmU1Ry9tMC95bTNuVlJHTGpNMmsKK1Jhc2lQQ0xMc3JRMEF0L0kwSkNtSmp3 aWx2VGszbkZjNzAwYmNubjNTR3RzKzl1UHI3ZlpLam41eFZHSzV4ZGlLMWtl SmpNWjVmTTcKK3FUNGRhV3NEbnRVN2VmOUVkUC9KYUxxVVpLMVh5dmRKQUll cks0Vzk1UXkya3VXYy9PSjRWSHZiK2cvd2kxZi9RTURmQXdpRUFJM0cKK1JO MTdCOW05OWZTTU5KM2l6dDdYNStmUm8xRzZ1LzMwOXZyeGVvTlQrcjVTdms5 cWZkaU9wSjY2MllDL2gxR2ZpOUZoRjZORDdmaUgKKzNVbjNFd3V6Y3JoUXFh UFgwVGlFTEJCQkdTR0hQbkl3dVlDbndxd1FVY2NoZ2h4RUJJTWhNa0VaMUtr aG9qaTFzck8xNU9YcHlNM1YKK1lqSnBZMmF0aWRocS9SRXRYVzJVTGxyTTRl cTlVVHUrU20xQ284MUhxODFIcTh0SHJjbVpWaitUa1FxdEZZSFA3UitJNnNa M1dGZjIKK0hGZHVYS01rOC9sd01tZzZzMSs0SE5GSllEQjlPeWNkRlVuMWt4 U1I2ZUp3OVY3UjRybkkralV2Y09TVDk2aDZyVU1DcVAzZGM4SzIKKzh6ZU1l QitDTENPQ0FxM0J6STBUdjhTNE1YYldldmR0VzBJeHB2dzg4cm45Z3pDSmkz V1gyV2FyakxnL010akZjRzhyM3A0V3ZEMzMKK0dQRjBBTE9jdGFaVG9Mdjcw RUZlYmg0WDZ5NVRaRndibmxiakVNRWd3aCtJeUZ5cFFNb0xkS2NkSC9MeUQv Ync1Ny85aGJkZU94ZEYKK1ZnN0t5SUZnaUVSd2pvakE5QXAwYXMzVUdVZXJO eVBtQlJCQ1JnalFHZk9CeERSZFBNeEtnVTZhWWg4cHNGYlE4T2tiVWZiQjlP MTgKK2xJQ21pNGU0VVUwVWVSTUxkT1h6TzJPS3VjUFZlMFdiN3lvcVZleFJX N0xsOVNreTBCWGd6U2hyb2lSQWdVaWt5QnQ3UUp2RHRTTUgKK2VHdUMzL2g1 cE0xM2xlK3MzOHlkNWtZMkxxK2dpa09KUnpKREtNNlRnTDhILzJoblhKOVQ5 cVA4OU1ldm9sS3B1TlBjeU9qRExMYmIKK0t1RkpJaEtONkRyRE5sc2w3L3ox VDREeUNYRzJrRGdSSVJBaXBGd25ZK0plRVpwT2tTUGg2V3dRUFMwWDZHdXZZ OGpkRElEUlhNcHcKKzJnYWNRelphT3d3NG5UNEFMQllEUzVmTXc3b3lrK0tp OUlSZmhpSVJqVFlISVFRSUFiS01XbTFLdEcwQVhJNHEwWExoRUVaektZdWUK KzNVWEdnbVVBbkRuZFRNMlhkOG5XLzRzWHJNOVF0bWNMQUE4ZURIUHoxZ0JW Snpxb1BlOFdtemFZWjE1RktiQldjTzNJejJMYVNlQVEKKzZuSlVDWGZUV1N4 bE96R1hiZ29IVkh2ZUxXN2Z6MFgzdmQrVGE2d24rOVptQmx1OEZGaDNoSDNx N2YzaVhLMDdZVEp4aWJnY3gxbTEKKzZ5RCtFZmVZbkJCb3REbllQLzY1SWds UFo0Tm91WEFvaWtUcmZhK29PdEZCNy9OdllGeHhsUjdnTXVkWTJ5RGo2V3dR bWZsUFN3QmwKK3RpeXAzdDR2enRhNGFiM3ZGVXJUVEhHYkh2VTl3amZRaHMv VGhxLy9QcU5EWFVxUEFORFRjZ0dqdVRTQ0JJRGpob2VPQmNjd3JyajYKKzJM Zll6NjNzLzlEVGNpR2lqVEpibG1TeEdIRGM4Q2oycDBoRUJJUElnVURvNHc4 Z0FvbXAwcjcyT2t4RjY2THNkNW9HU2Z0bWZiVC8KK29nQjk3ZEVGdVJYTE03 alROS2pZbnpLUmdJenNENUdRQTBIa0dGa3JGb2JjemVHRlBSRk9wdzk5NGIx by83eEFPS05OeEZOUHBZVXoKK1dqd2tsTFYwQm45NGpXZ05ac1ZHdndvb1pp M0hQL2JHdEN0bExhTzVsSUd1MjFGMmk4V0FwMzB4NlpPbWwvR1JCcU81Rktp T3NEOTQKK01JekZZb2piRnlTUXRWYTgrR3RHQnpwRG02RXNvemN1b09Helh5 azJuRjI0aXQ3N2w2UHNTNWZNNDN4aldSU1I4bzQ5YUFyblJmbmYKK3ZEWEEw aVhSOXNsUVhDTWpuZzY4M2Zmd3V1L2k3YjZIenhOZmQ0MGpwMlE5USs1bTNN MjFFWnJHdWpLVGhWMDdHYnE1NXJGdnE1WWgKK2R6TTVKZXNqMnFpMzl3dW4w NGQxWmViTWlZU0thS0gxa2N6Zk9abjVUMHQ1Uzh0eDJmOGVRYWE0S0YxYXZT cUxuRXR2TW5SekRUbXQKK1d0YmQya3plMG5MRzk1QnhFdWRxM2F4ZWxaV1FW RkZjN0NJNEprK21nUUxyRHNubHFCTE8rbU0wMS94V21JcldoVE9adDZlYnVz OWUKK0pxQnowbWMxVTF5eUJjK0FYNHhMbExNMUlSSXBrU2dBK296OHVOZUpr QmtYalcxZnZoOU9zUXZOcFh4MzlRYWNRMlZjYVRMd3o1cEcKKzRMRm8zUEhT d3FSRVkxekhxUXBxQmRhS09LZTkvMk5HK0I5TjRaYWdYV09mT3dBQUFBQkpS VTVFcmtKZ2dnPT0KKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAg d2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2Ux MCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfaGFzaF9zZXRvcF91bmtub3duLnBuZyBi L3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2hf c2V0b3BfdW5rbm93bi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E3 OGZhNmExZDM1ZDhiMjY2NmVlM2ZmYTU1ODNkYjk2NjJhNjdlNApHSVQgYmlu YXJ5IHBhdGNoCmxpdGVyYWwgMTQ5MAp6Y21WO0AxdWdvQ1ApPGg7M0t8TGsw MDBlMU5KTFRxMDAxJW8wMDEldzB7e1IzRGRCajcwMDA3ZlApdC1zMDAwMXEK enghWDJ+IUVlcChPfkMxNCNfTSo/PzU1dUdLKW1TXnRLdXhQPFZke2NpUFA/ Nm1DJEJ1KGFnPjl6YF5kdSRNNE9+CnpeNHtMfHl1SXdKdG13MH0+YiQrfSlZ Uzgoc05fWXk9fWZAc1FeTStuKWJOenBAT3NZZGdWRjdhKWI2ZHteTz9NTwp6 UWpIbXF3cnRxdCVMbDA5NVViKUV1SCMrQj52N0JNUFFLPF4hUktWZj0jdGcl cH5QTjx1dGpwQ0hGfTxAWUxCTUQKemsyZHUyJD8pdkFAYShxbD4kZGFuJEQr cXo+ZzFqMzxEQlc+bihwU2Fxez9JTz5iQnxPbzlOJH09aVFnPTxGS2RBCnpY N0F7Oz0tIXk7K21gMG9sPGVUR20lRFhfd249dVhKTXJ0cD9CSzVKLW1MSEJ6 cS0rKnVHKD5VdTBHcW5pTTUlMgp6d0J2ZDM9RF9MUHNfRUxPPSt+JDEtQEFJ VExGd0E1O0xEMk4kY05zPWgzMyhzamxvbXMqUVZkYmhUZy0zLU5BejgKeiYh RCNGZUNFYG8tTkorMXo9N01uZjhAPWN4JEElSCtxbVY8cHlTTSo+ZSNscj90 Ki1ATCVpXldtZHN1Mj1BWX4zCnpwNn1fal9VXz41KXdBNWRqbnVKbyl5S1RT enUmMj08Jj5EOyNtRGFHPT1rc0l3ZXN4Nj9BXmxMIUg/ejh0TWNkNgp6YH1w JDl2JVJyfm9WdHBRKHpVVm1fV2EtQV59b1VGczslWUcoKCZFR2tANGx3X3Q/ KFhQJTc2djRCY2l0e1BPU0kKei1TbiVqPUpWfnc/JmgtWDxnbzFHdWtoIT08 R1EpbVFZKyRjUDE7RXUtKWx3ZjwrMH0zbUYzb3g8a09KcSteV2Q2CnooOGl2 eSsqVH4/OzshVj9rPms+ajs/OWllKnIoclBKPWE3UDs/UnhaJjVQajVpUmFh JkAzRWZNZFBERXl6VWJKZQp6PWhtZ3stTVJHM3pVcldkPzQqd1I8PV5ieXk1 LVFKPGokWSMqfHl4aWZaTSEmK1BpKEAlYndjMWUlaVd5JVVlZDwKem9eOH0m TGVydmB2WkVETTAwMDAxYlclPUowNl55MFcmaSpIMzI7YlJhe3ZHVU5Ce3I7 TkJ+QzNZZCF6fjAqeSZUCnpLfnpZYFZfK1p+RmZ4R3ZCUG0qI218MGxhKnFL UHUhb2tWSyV8bl9OKHJ3YGRgLVBWakVxd2R9ZjxuVDRCeHc7NQp6NiUmXmpq OU4oZGl6RldpTkRlQFZMREw8cylRMyRBNlNJYEdqNFlGIXluPjw8NkZ4MTxE a2BkSzVHQD8pOGskOzYKeitCJio9YHE7Rjx7aTAlRVU8bERleiFwU15EWFNP KF4/PH5UIU0tclRtSExvRk94ZWdsMXdAO2duT2omfG5jQG1kCno2ens4OEwk c0xOKnhLMmY7en0yJlN7eHUrOUcjcTlUIzN9OzJHUWN+O3B5ZCNUTU0jX2VT SDB0TDBiRz4wfEo5Xgp6YFVORzgxXmIxQjBgLUtNZjxRUU5zWlRqSDBfWmY7 JGYpUjtTV31gPlV2T3dkOU1CZmlfPUxveVdTbzlNTnFqeWoKemFiVWxzcmxu X087PyNtdEQ1KyNZTE0lSGNIIW1OejdVWkgmcjJ3TCh1cWVOezFnQnE2WjdC dDdBck5BYUJ4bm8/Cnp1ZDtGI0xTZjFQUEotczxXfkx3d0RyTXlycz5Fbjl1 ZEoqekh3QyoyczYmbGRFZnhANFJFV3w2KG8kdHBaSGdwUAp6UShJU0dVKVJ2 cylaRTxFKHUmbkRtVG02c05MbzVOeVNqVU5kaShrKE9xQDdyQHwzQlZTfDkt JGhSYHU+SXM/T3UKem5YYGFrXzhiTz14JGBqZm45ZzZZYU01RDhFajY3JDlT bG9tRW5UKkopfnBwaz1HLVk1Wlpsb0VZVzE0NmE0b2Y2CnpBYWRQJDI4S0Jz WDNZWXpDJTBmfCp8PSUqbWFUOXRiPUBHY1glZGp3SGZ1WUdKKmYjcE9XPTsz eUxROTEpYzFoTQp6PTd8Z3BkdUdrcjN0fkBmIz9aMkZ8QUZqLTcrTVoobj5G aWpKJDVaPEFxSTJVa3kqMmpjR3V4PipzPGl9Q3IrWXkKenpoeUV8M3F3fmU0 KH1nN2JeNlIldl9OajFHTTltMmRTP3hlS3Q2SHF7Q1J7SE5LYFVSeSliTG0j U1I3PlFGLTx9CnppV1g+c3hpbzltV24ybHl3QitwQnZuMz1ZT1l9NUdUPnQ8 bGUlaWozQ0FnM1AwMDFSKU1PYnVYVlJVNldWeyZDLQp6YlklY0NGZmxNS0Yp fVNNRjtwQHpJeTVzbkcmQ3pQSDk5YWJJR0g2TDAwMDBiYlZYUW5XTU9uPUkm RSljWD1acjwKc0dCN2JQRWlnR1BGZm1qekdkZVVoSXhzZFhGZn0/YkZ2XiF6 dE47SzIwNypxb002TjwkZl4tYHotMmVhcAoKbGl0ZXJhbCAwCkhjbVY/ZDAw MDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9pbWcvZXhfaGFzaF9zZXRvcF91bmtub3duLnN2ZyBiL3dlYi9wZ2Fk bWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0b3BfdW5r bm93bi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NGM5MzMyYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mv c3RhdGljL2V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0b3BfdW5rbm93bi5zdmcK QEAgLTAsMCArMSw3MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu Zz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0 aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKwor PHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50 cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMu b3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRo PSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRh ZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAg ICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAg IDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAg ICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9w dXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9j YzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRl ZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6 aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T VWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZB aGtpQUFBQjdaSlJFRlUKK2FJSHRtRzFzVTljZHhuL1g3M1lTRXNkeENNRXRo QVJvV2hHemRxVXI1V1hkUUVGaVVxdEYycWF0YWpTRzJ2WEx2bFJUczFicXFt bXEKK1lCc2EwdFlOcXBXVnZreDlHVzNScW0wcFlTeTBneGJVSkU0NnFDRWhn U1FtMkU0Y0o4YnZ2bWNmbkpnWU83N082MURWUjdvZjd2LysKKzcvK2M1NTV6 bnZQY0ExOFFTTGtlN20yK0tJNjB1ekxpRFYrcDVLbjYxVG5mWFd4b2NqMDgw dTdpL3UzcnVEUWVvMHlud3FxWFdHL1cKK3NmK3Q5c1hxWDk3SVNRVEE0WXZS Nll0UWFWQmhNNnF3NkZTTDBhOFpRNUdJM2F5bFNFTnFSRzRyVUh6bC80S2N2 YW9yS3ViMHNTNEEKK3JrM0UvajBSUDdPdy9ab3hjaEpSblpQNHc2NzFCQUlK ZERvSnZWNk51VVREbm4wWEY2dC9lVU54bm95T3h2RDU0aGdNS294R0diM3UK K2xoS3JGRzdObFRzTGZHR0lLRTZ0a2hJdEdvMHF0VVpNSnZWaTlHdkd5RG5o WDM5alFMUitPSndSMzdyWndnKytaN3VsRmt2T0VXbjkKK2NKakhkcTM4VXJW dVJpN3ZObGRQdDZqYjlLUjNPK2VQb1ZlQlhpVnhkNm1PSSs4N2VQUmhPNjVn SEtOYXdxQ1dXRldnWmUrYmJYblgKK25oY2lCMXVhUkxQak1BQmJhaHZZWVcv a2p1WDNadjJTRGwrTTA5NElSaldZMUJJbWRUS3RaenhPejNpVVFyV0VTU09o bDJZMjh2T2kKK1dzMk93engwMzNZQStyMU8vdWs0ek9lRFowVTJNbmF6RnEy SzFJamNVYXpGQ1ZRWGFUQ3FTWTNJY3RQTXZuSE83SzJiTGJ4NHFDOTcKKy9J VWI5L1gyUm81K2NwaVY1VGJzVmJVcE1qZGpXL2tRTGNmU1kvM0FWL1dEdlBK ZVp2c3o4WFR6b2xxUGI5c2pBUnhzYVJTTzN1UFkKK3EybzUrc21SakhyMS9u MDgvY1R2aU1kR0FJRVFvTkdZYVh0NVA3dTJINXVUT2lydTdLT2pNVHllS01Q RE1YeStHTUZnWXRyY3g3ZnQKK2tmcmNBMGpxNmN2R1l5TkV3eTZpSVJmUjZ3 UEVRdDRadDVNTkM2SmFLdlgwdTcrUUJTSWhJK1RrSlNkbTF1SHBzQ0JFMURt SUlDY1EKK2lVU1NURUlHOWZ3UVVaeGFKU1ZhckZZZEZvc1dzMW1yNkxXMjF6 MUM3N1YrYW01YnhjR1dKcEhSb05xTVJsdUJWbHVCVmxlQldsTTYKK3EzWnV4 cng3clE4Y3I0b1c1d0crdG40RFp6NzdsS29sRzFOaWNQSDRYdUhxekJTQmdH a0hSenNiWnRUT2pJak1GZ2RibWtUdjJDazIKKzNmc0FoOTU2bVhlZXZDb0J0 UDUyZzdCLzkxZEVnbTZRWlVSQ29EV1U4ZGw3ejFDd0pidHF2ZmlDUGE4K3p2 di95QWVPVjFNa1RyVjkKK1RMMjlNZTE1SkhDTmtLK1A0RWd2d1pGTFJNYXVB Z3VzV3JNNW9PdHhkMksxV0RuVjlqRXJDdTVMVGF0SmlFUUNFWXVuS2RkOFlO NFAKKzZJNTF2c2J1Ny8rSVAvM2xKWjUvOGtRR1dUa2hJOGNUU1JLSlJTSUNz enVnVTJ1bVZ4eXR2Z3hSR0VjSUdTRkFWMUFCelAxUGRFRU8KKzZLUnA5cEhL dWdiT3ZmOXNSanhnMnNIcmVYaTZYTWpacTZrbWIrb0IzYmJ5b2F4bTdtQkxr K2dQbjBXbHlqNXFxNy81MURRS2RBYjQKK1JVWTBYeEtnUUNUZDVFMjhvQzNs MDBQN2VINUszdVQvU0gvNExGL2Y5Q0FYdXAxc3FXM2dIWDZmZjAvbUNNVjVF bytORUlzTzVjeHAKK2Roem14ejk4QXBWS3hZVnVKMUYzTVR2c2pYQXJFY2xF aHV1ZzN0N0lnVC8vRVZEK1Exd281RTlFQ0lSSU90ZWJNWFd2U0U2bjlKRUkK K2p2U0pzYXRkQkR3WENQdVQrNUtodUpLSTNvNDNYTTJRVjRkbk9BcUExYUxE WmpOU1hXV2lvc0tROThkUUpLTFJsaUtFQUNGQWxsR3IKK3pmbldCc0RiYzFL NHV0N0ZXR3lqZkcwOVJ2UHRBSFFjTzR2clZDOUdqWVBhdTJyNDFzNmRBTGpk RWZvdWh6ajVuMkVjblg1aHJ5dWUKK3U5ZWF6dVJWMWpYa1VLQjBFdjdCZHNx cXQxSzhmTDBFRVBxOFRmUTJQWUxrdlpLV3E3dHpQU3QrOHpjMFM4d1NRSGRQ UUxRN3hsaFQKK1UwQStaSEtPaUt2ekNIYy91cDlZeER0aEp3UWFiU21PTjM2 cVZKZmdTSjl3ZGIyTHRlYkJGQWtBN3hWUGtrVDVDZ3B1WDBYWTJVNWkKK2ZK VG91UTc2Zi9hZDFQczExWVZTZDA5QXRIWDRHUm9LQzZWcHBqaTFvbUVQa2NE QXhJOVFBcDB4cGtnQ1lPeHFGOFppV3hvSmdNSFkKK1V1UmRyN0Z4MThNUy9K ZjRtRS8wN2Q1TXpOVkgySEU2clVaTmRhRjBvdFVyZW5xRGl1MHArZzJSU0NE SDQ4a3JGa2ZFODNPbEFjOEYKK2lwYldac1F2QjYwcys4YjIxTDFtaVZsU0Yw MnNPNE14STMvbENpTURBeUhGOXBTSnhHWGtXSktFSEU4Z1oxR3RiQWo3WGFt RlBSV2UKKzRTamw1ZnJVdmUvb0lSRjJKazJvdktFdUk3KzhYSjlTdEZ6SVM3 VjBobGhxaldnTlpZcEY4MEhnN0wrRTU4RFBHZnIxVHdDdzdINEcKK3Q5a0xI SjlWdlp4RUt1c2E2UHhyVTlZNENrZG5odUpLUXI0ckdYR3JSWWZiSGFISTJj SGtTRlMvMlVWWWRSMkRzemtqMysyT1lMWG8KK2NyWUZlYWpXWFEvOWt1ajRV SEl6bEdYMEJVczU5L2ZuRkFzWFd0Y3dmdTE4UnR4bU05SjNPY1M2S1RIZDhp cHBzT050VVdoZGs1SGYKK2R6bUV6WmE1ZG02RzRocUpqRjBsT0h5Sm9MZUg0 UEFsd21PNWZkY2tsaXhiUjhnL2dIK3dJODNUVkZlWjhIZ2pqTjcvR0xVZkJh VGEKK2p3S1NmN0JEaFB3RExGbTJMcTFHZDA5QWVMd1JxcXRNY3llU1BFUkxy bzhzTm10YW1FcFhTaVcyZS9EMnRLYVJxYWd3U0d0WEYrSjcKKzl0dWMzMVFv em04cUZPN21seWl4M1lPcGRHVktxaWMzeExXckMvT3lLb3FMWFNRbTdNa3NV RmE5UmZMMm5CU2U3aE1NZHJ3dGlwYlcKK3BwVE1xWXVuOHNLYU96RXUyOGox WUZ4TVdwUzJEajlyVnhmbXRhdm5SVVJmVkpIelBoOHlrNmJSN1d5K1lSb2Jk eExSUDUweWphMnYKKzlBTTNUT09XQnl6elp4b3I2eG80LzQvbnNzYVZWR3Nx cGs2Wkw2R0Evd0ZaMzZKMlY0dStmUUFBQUFCSlJVNUVya0pnZ2c9PQorIgor ICAgICB4PSIwIgorICAgICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAg IGhlaWdodD0iNTAiCisgICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2lt Zy9leF9pbmRleF9vbmx5X3NjYW4ucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfaW5kZXhfb25seV9zY2FuLnBuZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi43NzY0Yjc0ZjVlNWU1YWYxYTIwNWIyZWNl ZTllZDE4NDcyN2UxZmUwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0OTgK emNtVjxPMFMqMyVQKTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tS M0RkQmo3MDAwMU5QKXQtc3xOc0FWCnpiYVhhfCFEZzF4IUgraDJvfmNkMT40 fn05VmFEcmsmRiomMT83aDljck5RTGV5QHs+WD44OVREXlZ9LUQtUj1NMAp6 RFp0PEUhcjw9MztxUy1lQFd8dXYlSCMwTTxuajZEVShNejZ8Sz94Tz1rbjkm XlZJM3wqNkg+Mz54Y2dBaFQtcWAKeiFOQGQ7MDAwMDFiVyU9SjA2XnkwVyZp KkgzMjtiUmF7dkdmNjk1MVU2OUU5NG9FUUtBMFV0PzNLfnpZYD9iTz4yCnpm LW5wUTs3TztWMD9OYl8mSig9PEozNUxeVURxanpDZFN5U1d5dSM8YClALTA+ KnM0MlZHVFF3WGYlbDlAaWNsTAp6TmRPWGV1aXlTeXBDTTQhO09AeSZYe3dT T0lVWHF+WFFzLX02UXZZUzRoS3JBQEw0PTBsfl5mOV9JcEFeWno5QmAKeiRC aGtrSk1mOHNAc0wqVmhMV3BiNFEjaS0yK3JJUSs5LWVQP25vUTBsWUJOSCps ZDghaTdaVkRseT1FXy1JPVViCnowaXdOUnhkaXNsV3U7QSN2biY+IUo5WjxA T3gjSihva3YyYD0qPWUtMStaIUs9a3JFcjhrdX47ZD1CPVlYPmoyWAp6M2Be NVo+fnk9aF53JSF6ITxYbUg8QS1CeHJpY1RfZ316TURGME1CfSYkOFV5ZXRj OWMoRSpZYGshMXliTVpITGoKb0YmUnNPTXt2JCFwWWJqb2BgNVNDOFMhNXBp NForOyZqMGBiMDcqcW9NNk48JGc1I0k9XzVjNj8KCmxpdGVyYWwgMApIY21W P2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X2luZGV4X29ubHlfc2Nhbi5zdmcgYi93ZWIvcGdh ZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9pbmRleF9vbmx5X3Nj YW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZl MTBkNzkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0 YXRpYy9leHBsYWluL2ltZy9leF9pbmRleF9vbmx5X3NjYW4uc3ZnCkBAIC0w LDAgKzEsNTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU Ri04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5r c2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcK KyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x LyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9u cyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIv MjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iNTAi CisgICBoZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEK KyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAgICA8 Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6 Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRj OnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5v cmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29y az4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisg ICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9 ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn QUFBRElBQUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFB QUEybEpSRUZVCithSUh0V0UxSUcwRVlmV3VhRllxWFlpMGw2Yytob1NsSVEz c29wWWRHV0ZvbEI2RWxJRlRhU3d0S0w4VkROaGQ3TFlKU0VBOUtMMTRVCitD NFdGUXFDRnRpazE0c0ZhRUFPaUZpMEdNZGlEaXZTSG1xU1pIdUxxSmp1YjdE cGp1b1k4V0FpejM3eVpsMjluNXMwbkVFSlFDYWo1CiszeFBnaGFvUXU2RXF4 RzZvQ3JFYktrYklzWElNMHZ0dWlTZ3pTZXE3NEZVWHdzMGVnWFdNc2doUlpw SzRjZnN5dnYxSTQ2U1krd2dhCithZ1ZjT1NHaS85VU13czBlNWpFcSs5TWFp NjJSOGJrTkFFQlRZejNhL1c2bTFOODZ0WTRQNzNPL3YydmFQKzIrNHdHcWtQ RzVEWFRmCit1d2dBZVBieUs5cjlicVpCV3JhZjQrbWp1M0NrRi9MYW5hSVhF eU92QWJReDhRTkYxc2l2VkphWlhBdEhlZ0dwMzlOY09iV283RFZ5CittS2ly MmIvL3BEanlHZ3JKZ3UrRnl5bDZBZVJQUHRjMno0Vy9MQmx4K1lLWUdGRW9i K2JoOGdXNWpHRzRSZ2doNEhVTjlraGhJYkxtCitSOGJYQTMvWGxPRHZtaEl5 dmg1RTF2endTR0htVXgwb0lpUkxDTEtjaE1peVRBS0JBQ1JKMnB1MEpFbENJ QkNBTE10Y0JqbjBYWXNtCitRZ1ZQTVljcXBKZ0lGYnpFR0FySlpIUFBRV0ZH aEFvZVlwaDNyYVdQdlNRWjErOUlyVzdBaFFZQWtpbWVjL2lDVm5jTXNmN3JP akV1CitYN0RrcHNBc0pCbFhjTzIrM2tmOWRWN0M5S2dDanhRMnpYUHp3UjJr VTR0NTdUay9WcHJIK0VDMHNHUFJmSlI0M0hUM1BhUlRpeEQvCitmTGJlRVVX RUhMVlNhaEdMVW42SURIMk5NMktCUlBWUitqWnJQb3FJWGhTdWFHS1N4emdq V1hOU2VQa29aaDdWVTJtZmpzRlpNcG5ZCitJcE9KTGRJeE9FdG9NWVZQS0JR aTBXaVVSS05SRWdxRlRQWGh5Y1BGL1ZJT1B5TExNdW5yNjdOa0NKbDRqRElT Vzlra3NaWE5raGxSCisvOEhDZHF2L0tDc1BreENqd2ExT2dnZVBRRHN2T29m aXBEMXdGZ0F3OW5ZVkx4Nzc5bEpyWkVtME5xS2NNU29zcnhHYUpTbTBFVFM3 CitZUlFqYUdMSUFXS29RclNGdVl4bSsrMGNpaE50b2M1TWFhZlFidEFLRFVK cUVkREUwRmEwbVJpZGtQRzVEVHdKWHNENnp4MXM3MlFBCitBRzB0WjNDNnJo WUR5ckt1VUtkV1JNeFVRMWhPYlRQSXU0ODBOZFpqUUZtRzZOalhMVG9FRENq TGFHcXN6K3VvTGV2WUFYa1oyZjEwCit5T2liVlR4c1BROEFHSTRrZFBWZnAr Z3RXZFlwdEMwMHExRm9TUTRhb3hPaUZUTWNTUURRRjdIcFZpTGZScFF6UmdW MSt6MktxSmphCitiMVdJM1ZBVllqZFVoZGdOL3dDQlVqUFVOOFptNndBQUFB QkpSVTVFcmtKZ2dnPT0KKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAg ICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1h Z2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaW5kZXhfc2Nhbi5wbmcgYi93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9pbmRleF9zY2Fu LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDRlZmY0MjlmYTlhMzQw OTc3NmVhODhhMTE0MjE1ODJmNmY0NTk4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0 ZXJhbCAxMjk4CnpjbVYrdDE/fkVZUCk8aDszS3xMazAwMGUxTkpMVHEwMDEl bzAwMSV3MHt7UjNEZEJqNzAwMDRpUCl0LXMwMDAxcQp6eCFYMn4hRWVwKE03 YDtDJmhMNTk/XlZMLWhTY3o4JG4wdiM+fkc1Sm1mNylwJmgzS0g/V1clSGpA MGd3KjYqKzMKel45ODVqT35MNkt1SCMkOT50ZV8ySUpmMGN6VU9QbD15YTJv ZFktQUohUV5JXihaUD40QCM9QHw8NiFnZiRuZm04CnpAOURNaj9aeGlxdis/ VzE/QmxUVD5COGFmX3ZoTHg+ZzFqMzxEQlc+bih5ZWQ9LSEjPCs/VmE7dkY2 Izc8PF50egp6O0h9b19fM1l4Vz1HdkMqO2paTT5sSSEyQz9kRyFVLW1MS0V6 fGBzViVjNUFAeUB+NEdzXyoyISk5Q1okKVJFKVQKemtLKWpjPkRzQiQ9a255 IWttQW1hQDhlKFQrcDZLcmlzeyo/X1VuaTM7az9ifF43R19oPSt+I3sqUVZ7 QHlZQWE2CnpeVn0tbiQlKV57aH5MTUQ9RzNJaTxuajZEVSo1KXMlSCMwbyl1 cmFzcXNaZyV7X0tZRDwtcUxTeTJzPTIjb19QJgp6PTNuZ0l5NWBjTj1GeV8m KFZeX3p4Y31aTS1vJTk2IS1MJHhnNX1WbStgZlJxO09ed2twWD1KVXp+QW9W JjdTSm4KenchR2MjK1BpK14lJH17Kj5FcHx1NUJkYUEwMDAwMWJXJT1KMDZe eTBXJmkqSDMyO2JSYXt2R1VOQntyO05CfkMzCnpZZCF6fjA/QTI0S356WWA/ VWRQRDU+WGgzWktBTjtRX0MjKkt3dWJMU3RUVH0xX2ZMSWt3czdoOEEoTXpX bU4+Pgp6VS0hKEMhZzFuPm8xUU5HRSlGLW0meVYtXzlacH4wJWx6d2tNWD5Z N1F3JCtxT0MqdnYjOU9JVStFNFZxZHB8SHAKejM9Unpzan1SbEhWYENvKFFB OUY2SzBaTkFPaW9VSUJ0QV98TyRgdTNwUVh9YVZzdl9YVjJ0Uk5HViU4KlUl MjFRCnpwSUBKITlwOWFpJCE1PzgkUTI1TzlBPWVEPHQpc3FSNE8mN05zYG9u aE4zN2ZiUmU/MUlUPyM2PUk3QFhwaj1wMwp6UkRvKH5YPXhjcW9uQ0pNJTRq czFGPVM8PjE2a3d8OVNOamZ1Y3lGYkc8OFEqaSE4Rk4oOz52NXw3TjdYWUZi XmoKemk2ZXJgWjtTN29nKyZXbXYoNF9ua2hMYHlgMnA8az1nO1MtNyRUJm9t cX02JDhpUnEtZll4ZEBKSFNFSHY9ZDhOCnpVdkcxSHZhcWxnOCtNPndabnA8 UkhhRlc0UW01bUtIQ247RXkwSndBP1JJWj5MM1ZePERYdilDbWRpemhjWUU5 Qwp6N2YwbFpvdDwzfjMjWjVMNGA5Z05VZUFzMzIqYHVNQVdFU3VSeExQZWND LXRwKlcrPFFBUVRFbUx7bEtSemFJQF4KejdDdk1WaVg5eHJHMzRrLUslJnRF RCVPT3Eya21tWHoyTmNyZD81JVE5NDJ3KF8/U25jRVcjRlI3bURAIVZ6RHIh CnpsRjF+NEF0eHNzdllTWEcoeVJzamk/YXdJaSpQQ2VrdlBNZ1Yjd0s5JnlB ZypiMUNVV0NYOzQmO1lHWGZgJEdZVQp6cX5oQGxJTCtxcm1tckV7dUNBXiF4 V3pSQ3hrOW02PlcxKndCTlU0cnEjJk5XRUBVQkpFUzdQa1FmV2dUaSQlTCYK enRfeWBjbCMxbllSVUFvWVNlRmlxVHJQaERIPkdPejIxOU9kZHYxKEpncEAh eWc/NGVsRnhnWU1FUnsrcXJDT2BxCnp3V3B3bXVVPTsjS2YjNSs5ISFDPUQ2 PHh8TXgkfXhqPnkqUCYxTjBfYHZvTCokWDxedVNMX3FnPlApRkxvMFhATwp6 SU5DKVBhenolWW1kbE1BK35XdmgmPmZxM2JoJSklbjhqVkkpdz02IU9uQW43 WTN5Ykd1WHpCcjZiMzN4PXc2fSMKejAwMVIpTU9idVhWUlU2V1Z7JkMtYlkl Y0NGZmxNS0YpfVNNRjtwQHpJeTVzbkcmQ3pQSDk5YWJJR0g2TDAwMDBiCnpi VlhRbldNT249SSZFKWNYPVpyPEdCN2JQRWlnR1BGZm1qekdkZVVoSXhzZFhG Zn0/YkZ2XiF6dE47SzIwNypxbwpJTTZOPCRmQGo+S1NwV2I0CgpsaXRlcmFs IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNj L3N0YXRpYy9leHBsYWluL2ltZy9leF9pbmRleF9zY2FuLnN2ZyBiL3dlYi9w Z2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2luZGV4X3NjYW4u c3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzZTdl ODQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRp Yy9leHBsYWluL2ltZy9leF9pbmRleF9zY2FuLnN2ZwpAQCAtMCwwICsxLDY4 IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3Rh bmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlICho dHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3ZnCisgICB4bWxu czpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCisgICB4 bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgorICAg eG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1z eW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8y MDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2 ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjUwIgorICAgaGVp Z2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRhCisgICAgIGlk PSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAgPGNjOldvcmsK KyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRjOmZvcm1hdD5p bWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxkYzp0eXBlCisg ICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2Rj bWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldvcms+CisgICAg PC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVmcworICAgICBpZD0i ZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpocmVmPSJkYXRhOmlt YWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFB QXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFCdXBKUkVG VQorYUlIdFdWMXNGRlVVL3JZN2MyZTdCYUhkN2RJZ3hxU0tiVnpzRHc4bVBt QWYwR0NpS05nSUtqOFJIbndrbGpSQWdJZ2FRQ1ZHVEUxNAorRkZNS0JFa3Bn cEJvZktrOG1OQ2s3VGJkbGdwRktMUzBTN2RwYWZkdmRuYXVEM2QrZDJlMjdi YkVsejB2Mi9ubXpKM3ozWFBQZDgrZAorQW5uTFc5N3lscmYvd1J5NVB2anQ3 N2RwYTlkSUJsNWZ1eEpQRzkrL1lYVkczTnljSTArejFxNFJ2UGJtS3doT0pq V3N0cGlnOVk4ZQorckgrckNuZWVpRHBlSXFEMXR3QTJ2Vk9OZXpNU09BZkFP eWdxbGhIODNOYU5UemJYWURnaVFYQXkveGVYOHZqaGx5NTh0cVVXbzFFSgor WEFHTCs3a2lEbCtmNzdTTUoyY2lBQkNjVEtJOUZOZXVDNVhSZXFkRWRJWjFJ c1JaQUFDNE01MUUzNlNJZEJ1T1NBaE9pdUM1QWhNKworR3BVd09NMzhPYWN6 YXl3TEl1SmZ6cHV1SzVjU2pBRllzNHdBQUZ6S0F2QXY0M0ViYktZNWg4T1Vr YjhCUEZ2RXdqQm1CQURLM0F3MworWnNUT2NxNlJ4aDlQMGI4aS9nejg5YUln clBBM2ZLUDRNMVMyS1BqeDNWc3o0czVLNUd6N1E5b2VEQU1BNnZ3ZWJLdGJw Zm0zbjN5VgorMW16YkRDa3hvUGx6UWdXNno3Wmg3YTRtcEtRSkRYZHlKZWc4 dlFkcmR6VkJTb1FOK0hKME5UZWdkdWRKU0FtRFAxK003cGE5cU5uKworUFpM eGNYMThVb0xBdVViVU5keWNYN0czQjhNNDlORkxBSUJqNS8vSnVDOGxCaURH T2pMd2xEUUJNZjZJWFZBS25sREZQd3d4TnF6NQorRVplczRCTVE0eU9nTXJz bWhldzNHUitIR0gzSWhrbFJ3SjJ5alhYV0dvbUk4bXd1OWthcC9TMlpnc3JH YTlsMHovZzhUZG1QbzlxQworaXQzT2FJcGFrNkN5SHFRUlZoaFJtY0xNam9L bUtLaEtLQXVmQlJIaGhBcUw2ejV3Z3NlRU83bmw3SmN2QVhFcE1ZTEN5UmV6 NTRqSAorbEFXT2xERGM1V1ZrS01QNXRISG5SVVNHOVRTNFBlWG9QdHVXaHZi QjdTbEg1K2s5R2Y0cnErclIxZHhnaVhlMzdMWEVBK2NhTFhIZworWmdhZWMw YWk0YnV3VTYzYW5TZVJTazVvcTRRVFN0RFYzSUNhN2Q5REVwbHFVWm1DZDNu UjNiSVgxUjkvQnlrK3JxMGRqbmdRdUxBUAorMVZ0UFFJeUZ0UEY1d1l1ZWl3 Y3M0NW1WQ00yeU1HMVZLem1CUkRTelQ1TEVNTVRZaUY0THl0aFNmQnlKeURC N0Y2VVEzQXdYWXlHRworSzBLUXJlaG5YMXJaS3N6RzB0WElXTXcwWlpCUXF0 ZUZTb0w5TFp1ZVZ3TEorczVGVmEwQ1F6MVp5cWw2blVxVFZ3cEFsak95VDJW bworQktnc1o1V3RSVkV0bFlEZ3FnVFFEeWRmckcxcWFpMEFiR2VHSVNDT01C WGlCUStvckdlS0Y1Zy9LZlJxV1FJVUZjdVZpR1N6SDFxcgorVmovRDU2bENn UXY3TEhHcnduNXFxbFVnM3RJd3AxQ0pqcFkydlVkU1pwTnplUkU0MTRqcXJT ZVFUSVMxR2VaZFhnUXU3RVBWQjk5QQorak9tcVJkeWw2TGw0QUd2ZVA0NWs5 TEV5T2dWZldJcmV0a09XOFN4b2FSV0l0NUJVVkl0M0FPcmlVSHVrOUZwSUpz Skl6RHd3N05RcworM1dKc0hJbnBJYjJ1VlAvb1k4U2ZER2xDSUtmczI2VkZV UzFlNlVXSmVpNlNaWTBFVlhkbUFGUk82U1JrV1ZjM1NtM0VRVmV6Yk52QQor bklqTU5nQnZkUkJJazFPajJwamtsS2FwVjBvbndIek5CQmVrV3RsNlg2ZFFD YWZoZE1xVENnRDk0SWdIQWxVSnllQVVGZUlGTDh1QworcWtKSzc4UzV2QkJr Q29BeWxTc3NCUUNRSXA4K0lRQ0llMFh1Uk96bXdPMHBSMGVMdFdyTlY0VjZM eDIweGkwS08yZlZrbTEyMUdqNAorTHRidDJJU2tPQUNpWUpSVTRNYVp5Nlll aWNwc1AraTVlSUNwVTBURktYaDNLWG92SGNTYXpjY2dSa0xhTWladUg0Sy9I b2IvM2FNUQorSTZQS2JGS1FvaFVJWHYzY01wNEZxWlpESEFDSjY3T2psb3NZ Q3lFKy9VQ1pDWDFwaUpFUTR0TkRHYlVnUmtLSVRkMVgvUFVOVTV3WgorUmV6 SmZhMzRuOXA1eE03c1dndldheG5VVE5iL0JxQzNLVlFucWlsWUZ1a0Y1a0Fr bFVQVE9CYzVaVzRHMVRMMld1a253cFRhN2l4ZworSDhrYUw2a3dmWWFoaW1v UmQ2a3BDN3licVJCZldNcXlZcWdGOXJ2QzBOMVM4SVUrMDMyVmdMQWs4L1BR bkluWWRjOXVUemx1bkxtYworaGpMVnNsVW5HeFVLWGpsc2lmZGRPMktKTDNx dnRXN0hKamhFL1lTb3FoYnJrVUxha2lKRlB2UzJIWUwvdmFNUUkyT0tNd1Vw S2tQdworeW1INE4zNkZ4TXlZTmc1eCs5QjM3UWhlZnZ0TEpHWkc5WDFrU1Ju NnIzOWhHWThsRWVPSE9jbVFrazlQQmFqeFE1MURIQUFzVkNzWgorRFNFMk5h VHQ4RlJUclRIRUp1L3BMMUx3eE13WVloUC82ckN5bEJMVGp4Q2R1SmZ1UG5j aTdjRXc5dFMvZ05HWkJLWVNFZ0JneTRaVgorS0ZzaW9LbDEwSDQwTFpDMC9p aTlpT2NncDlZRDI5OHFzQUxyL0I0MHRRNkNPUFZTSms0SG1sb0hVZWUzL3lT anZjOUl3bml5bzVtbgorUmNDc1JuSkt6bFN0T1pobFJyYlZyWEtjYlg5SVc2 NC93TzZOendNQWZycDZQK1A3cjcxcStVek5JaWtxVTM1OXBpWlVWU1ZOalF5 MQorQUFEQzBqSlRGb1JuN0ZVcjU0L1lIYzBmMG1qNGJzWXpiazg1clBDVlZm VVk2V2xkRkh6MSt2MDUveGNoYjNuTFc5N3lsamNyK3c4RworNURGT3R1SjZJ UUFBQUFCSlJVNUVya0pnZ2c9PQorIgorICAgICB4PSIwIgorICAgICB5PSIw IgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisgICAgIGlk PSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9pbnNlcnQucG5nIGIvd2Vi L3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaW5zZXJ0LnBu ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjJkODM3Mjc3Yzk5ZTE3ZDJi NjYyMzJkZTc5ZmNlMDEwNzUyZTdjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh bCAxMDY1CnpjbVYrXjFsSWVCUCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAw MSV3MHt7UjNEZEJqNzAwMDN5UCl0LXNCbWdLfAp6VFUkMVchM25BMmErYVp6 bDlJdVhIbWFGOG91NEB9d2RIbEQkM2VYNCVjNThrO31RenRNb1BmeCRFdE4q I09oPGwKej5UQWQ3WHZwbFQjZCZWYT5fX1kldmMhQTkhR0x3bT9BeUo2K3I1 ZTB6SlQxbmZQMnlKK2Apb2AoZUI7RGdNYCFZCnotbyU5NyNmOUYraEskdGkt XllqRiRjVH5FPyU+SVo7bW5HYys0MTdlak47SVo8aiRYPCt3dFNsa0xBI3o8 a09KbQp6KFZeemlxVTYrKD1GKzAlKXNwN1pxdmg2PD1HM0k7KXVwY0JeWEEh PD0rfnlgKlFlJiVtZyg1MT5EajJ+Kz9WT3YKenNwO0ZRPilOO0kta0l2JXNf ZmpqPkVOMnstbUw4MXk2Zk1xP0IyVFU7SH5ROG9iQkpjP0JUQk07SmZQTm8k VFZUCno/Y3UhYTxGTWBKdkczJSo/ZEchWD1Da2tSITBfaDRAOTRBZD45ejNh IXRtK0JAYShxbj4le1d5I3E7Z1BeWUYrTQp6IUxucmwwMDA0V1FjaEM8Szwz ekgwMDAwOWE3YkJtMDAwWFUwMDBYVTBSV251N3l0a1FoZTw/MVI3bDZ8bTBO U3QKelAhdlhLJmBsQkIyQ0phT1RBKWF8cShHcmkydGtPMVRqV3ZAM0lRVl54 Qm1aTTs3UUttNSkzMkdJSE0yVTU5QCkrCnpPN3sxaUdsUmtLSDIreztQfEVE Mm88aTl5N1J3b1JhYm1TelFrU283d3JsRzghc1dXNVptdDQ+UG41MT1GJmQy KQp6PklCaEJ5KXY4NEh0RyFORjYhI14pRTEhcihwUjNUSk1XflAwKn0rX15s ezFZY3N6JT5FWHk7UE5zPUBIezBzb1MKenNaMVhwVDRUYS13T1NwNFRxelgj QVo0QFpDU1lVbmdRaGh+T0kyRH1zbUxHfjNJeiRlKzROSFJ4PnlZSnV2VyRg CnpePGtCeE4oQ3dYIXNvMDY/UXw7REFXQStASHk1elpxVkImK0BsOCQ5b3hy NW9zMH5STDJtTyhtdUFHO2slPT12PQp6P3smMDN0UjB3LVdPK19GPi1WSkBP eG4lbjVRZF5DNHdmKDBJQXM1SWltc0M0dF9FVD45NEBaKy0qOForNjt2ckUK ekRtTDRPWDZvKSUxVGg+QTYqcD45OVdALU82ak1AKlpRTXFxQjl1WlFNZ1c3 PnAqaSNtKzVndVJnUTZoeFZEciR5CnpwJlRtZypWeGlRN0soI1RxMSZEaTRq Vk9lN0syaTtJRGo2ez1RXk9oa0hGYGo5fmo4fis3dHsqITNYXzU0en0odgp6 enlWVSk9YF58K218YD48RTx1ckQ3Iz96ZHBMYmchcUVjeSU1RW07aiFDKCRE VWF5emNTSjN8QWNTMHBhNTJlVXUKekk/Ji0qd3l2eEVMMVhLJGgrPTYjSTFt S0IyYn5QWi05dFRAaD0wKnY0RFl7eyFveHpzP1IzV1U2P2AhO2BDIW5XCnow blkxakNuNF4xcDZeZ19yS0A3bVMrRXxySX1TMURgRlRXTiFUVzFjQm9nczVs dyotZGBMflV8R2J5OD8/cEohYgp6M18xbXNyWHl0emtDaD9SUnEofTdYKiNt bz9NT2o5Q2UmM2pLSUxNbCsqamV5RElfdVhScW9ranZXfmZEbWQoY0EKajk0 aG02bFRVeTF8TGduJnhnQGBFbV5BOTEwMDAwME5rdlhYdTBtamZTJDtlQgoK bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfaW5zZXJ0LnN2ZyBiL3dl Yi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2luc2VydC5z dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY3NzY0 YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X2luc2VydC5zdmcKQEAgLTAsMCArMSw2NyBAQAor PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxv bmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDov L3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9 Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6 Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5z OnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4 LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z dmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisg ICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIK KyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0i NTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0 YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAg ICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uv c3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAg ICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlw ZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRm OlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2 IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9w bmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZ QUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQnFWSlJFRlUKK2FJ SHRtVjFzSE5VVngzK2JuWm0xMTdDTzdiVVRCYWdvU3ZnUXhuWXNpbmhJRmFr UklnRVZFVklhRlZGTFVYaEFsWXB3aEZCVTJqNlYKK0trb1JHNEhFbTJVcHBl RWpTcTBHb1JCUlBpejZrS3FRMk1hUm1vQk00Z1EzWGU4NjJJNzNZM1puYmgv bTgrN3VyQjA2S0NieWtheVoKKys1ODc5NTcvdmVmODd4bHZaRDEzY2ozWXFt dnRRRmkyUW1TNTJRcVI1V2JYRFJFbGpFRzJIeG9VdzVONkZiNzVCeHJmTlQ3 MHhLNEkKK2hFUmtlRkxuL2kxMzgvbHMyY1h1YlZFWWZ2ODBEMnpyNHRSbG5U WWxBc0FkelJwSDN4M2xrWWU3dWJoUVJvdGEvZTlLcUF3T2piQnIKK2V3OFhD eWFOQ0FCdWprZDU3Y2dJdjlyUlE2Wm9vRnJEY0V1VHlyNDNUN3J6aFVJRTRQ UFpNaWV5MWF0MjZyTE9SLzh0dXUyZjJkZXYKKzVuVk9YUzVWOVorNFV1TDB2 T0VTZHl4VE5QaHEzaG8vcWlpQS9HNW9STzVwbG9lNnQwVmhHTmpZb2dGSU8z SUcrT0dOR3VxcVZkS08KK25BQnV1MEZGVTZMU2pnQWtZMUZBazNZa2RDS2JF dWY0eHdjeU5temo3eCt6MmhrYlAyUGpSOStWKzUrdzhjR2gydU8vZHFRMmZ0 UysKK2o0UlJhdzJrRXFKMzF5c1k1UmtYaXlxdG5CeDhobnA0dVpqMTRhczVk YkNmalgwcHlrVmZmN1dGa2RmMzBQUGt5NVFLR1JkWHRGWkcKK0R6M0g3djQ1 T2RrSFVnbmgzR3MzYmVhWFAzOUhEdEpGekNqUG9CZitZeldFUU5WRVhieGN6 S0xudjNiZjF4cE1HNTlCTDB3aFRLdXQKK05WclhVaUdEbnJ0b0RXTUlpQnZT L0t2OEpIcjdEdEQ5aTVjQStQUGJQeFY4R3hNQnJ3WGhnREFGd3ZTM1RlbVov MzFoMUI3SFBSQTcKK0gzMFJnS2lxY05lbWg3bXRxMWZhcGNWTUdLS21zMEU0 d3JRSnlNK0V6VWlZQW1FWS9nY0lReUNFOHljUEp5Vjdidm84QUJOako5bHcK KzMvMzA5aDFnZ0dlRkU0ZjFUSW0xU2Uyb3Nyb3VIbFZiMFJwc0h4RkUxUmFy djlZbTdZS2l0VnA0UTlJaUl5eGNyUmpYVGZhQlZFS3MKKzY5cEdKcHRqelUy cmljWlVtbS90SkJwWnpjbUR6MUtQekJzSGUwUXVPMUdGcit2YXdkUll0ZHlF aVcvYk1oaVJpUGpKTk45K0MzTmYKK1hrUzlNYjRrTWdPcGhOallsOElvemJp eHJzUmFYUldxaGZjOCtUSmwzVkl0WVFyVWhpUWpyKytoKzRtWEtCY3liamdx V2h1amJ6MVAKKzk4Nzk2UG0wTzZjYVN6SjJlRysxYWdIczdwK0xES1NPQ2ZE SXpKNGJwL25XemtYRHpDak5VTXhOTFJrdjYxbjAvSlFWUnNKMEhTOFgKK01o UVh2a1lJSzdkaWNRdlg4MmtMdDRXZ011bXJxdC9kL1hPUnFiRmp6SjY5UUdM OXpaVG1jOHllRzhjUTMxaGtBZ1NnVW5XOHBBM0MKKzdXUjJPZ2d2THh3UzFy MHB2UStBV2UxQ3pUSytIcG51bmZ2cmtERzlGZk5ORm9TRHRiSitaUk1Dc1Bz TDRSL0RKbUFLYTZ3SzJRb3MKK1VZTENiR3BpbWcwUFBNTkE2aFVwektKcWkz dDRPVEZmRDFlMFZ2QTVwR2lXQ3FteE5vVHB5YTRhcy9wcmpVbDNsOEJXTVo4 dFdxSTQKK3E3K3VheHRUWTFiaDFOdDNBS05VWnZRTnEwUllEcXExYU5GbzdV eENPQ1FBTG8wY1oyM1BnMjQ3bDUzd2FpRjcxWlNHSktPSG5ndkUKK3UzZnVw MVRNdWl1c05pUVpmZXQ1dWg3Zmg1NzNWRXVMdHpOMmVDK2RqLzJSVW03YW5s R2dOcll6UHZTQzY4T1NxbCtIRE1BZFcvdUoKK1JHRHdMNS95ejA4M0FKOEJY aTNrcW9udFNDQmV6Rks4Y3NITkF5ZXA5WHlHNHZ5a2w5aE8vOXcwaGJsSlZ3 aE13NmNpU3lYaUozUG0KK3ZSU0FUY0pucHVrNks1VVFBYmd3RFkrRWFYcnFK a1R0V2d0UHpVUkZvbDhWRVllTTEvcE1mbGdobTBGeTZsY2JTVTZGdkdQZU9l R1EKK2xRa3VXYld1MWhTdGpaaHdIRGRSWXNtNnVCcExXcnZncUpCZE95a05T V0ttQUt5Q1VtMXNCMEJyNnZBV0JORGlhNlQ1US9tdytsNm8KKzFsSXNsNTJR YWlGaFdyby9kbmh2SU43MStENzBCUWNYcVBGMnh2LzZHenEzdjRpK2tIYnpR SXQzY1BwdnYrWHVSLzZBdm5ESmpqU0IKKzFyU0cwKy84M3ZVaHRORFM4MmtL OHhlc2hpL21BL0dGTklYNXlhcGMwQmZTNUdmUDIvMjlBMU8vY29uODNIazMr ZXQrai93LzVwWVEKK0lKVVF3YmlRMWN6MDdoMFNRaElIMzBkWWhmU0dTaVJR TnBjZ3B4SUJJVHdTVGhzZkg4TXBkNzdsT2JLWWFmRjJhYlhWZUh0ZFhHMXMK K3QzYkZsd3ZXZFkydnVoV29qUjNTYzRkQTdJYTEwdnpYUkxWRTcwT2svLzFl RmQ1eDU5YXJ4cC9hL0dhNHFtWFZRbWszZExTbURzYUgKK1hxaUpmM0Q4ZHp6 OTBObXFjZjcwOXdpLzNwcW93bC85OEhnZzdsaG9vVlhLcGNuUFRyb251Uk15 UVRqQWp4bzk1LzZWbjNQdmY5emsKK2tmeGs0ZlpGY1FqeDl4RmhWdFJCdnJ5 b2hZZHQ0Ukh4Tyt1WDJRQThiQXRSdFRxa29sQnJXbHNYQnptYy9GWVpOb3Zo Y0kxVTY5SjkKK1c3aHk5dU1xdkgzRFQ1ais0c09yd3Zkc09sTDlmNjN2czEw M1A0YXVFRmx1dGtKa3Vka0trZVZtL3dORmVmQm85YlZWRUFBQUFBQkoKK1JV NUVya0pnZ2c9PQorIgorICAgICB4PSIwIgorICAgICB5PSIwIgorICAgICB3 aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisgICAgIGlkPSJpbWFnZTEw IiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0 YXRpYy9leHBsYWluL2ltZy9leF9qb2luLnBuZyBiL3dlYi9wZ2FkbWluL21p c2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2pvaW4ucG5nCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAuLmMzOTEyMzNjNDQ5YmRjNWEwZDUyZDUwZjUyMmJkM2Uz NWM2NDljMzYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwOTAKemNtVi1J MWlreC1QKTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tSM0RkQmo3 MDAwNGlQKXQtczAwMDFXCnpycEdwaiFFZXAoTVpXMXchMEEpTT5WPyRzbC1U ZmsmZ19ISD9UZ2d6dD41IU55eSp3MTt0O0ZpOG17QUEjcGBqKQp6PmB1UHNU RVhYSiNwc2dOP183PEBXXjIqUiZHRWd6P1ozaDghb3UjOyliclRjXnY9KW4o YjRrTSliIXhzX2l+bkAKelRaZyMzejNpdXs9Yz1zZHVDTTlFI18hOV9AeEgo OSNtNFp+KjdVKVRIdVVreUBhKHQxIVMyUyNANkZFZy1ybn0+Cno9QVd5cT0o RHV5eXVJenopYm87KyhUMXNIUWpIbVpyQ1lQWHJsR2BNZ3xiRytzJiRUcXQ4 JHw/cVFfd0g/NiMpTgp6VyRXZGg+ZzFqOD45cF9idyhzYiheNmJUZ3NBNmBp SkQjPE51Ryg+VXUwSGViI19yfl8/ZDdyVDs7LT1NIUx7VWkKej1HdkMhKk9U UGFrbX1zM2QkVTYxKXNmQFVrSylnYj5EWkBAIUJnd3J0bTRwKTttd1FTJThC UkhyMChMcT0rfnl+CnotTVA4emY0YzYxPDxYKCEmWSRZb3coUjR1eXpxcUZ6 SlN9amUlaVd5PElBNHY8REJXP28waU83PS0tKl87SH5NfQp6c3FwRS1AOC1i WCNmOUMkZzU9R2Z3THxYYTAwMDAxYlclPUowNl55MFcmaSpIMzI7YlJhe3ZH VU5Ce3I7TkJ+QzMKellkIXp+MHJeUXBLfnpZYD9VVUpDKD9BcihWXkJicFJt RE0ybC0yYiVFPiQkNjErZ3E7REo/QXB4Pl8pOEhFRjMwCnoxcXY8eUkhUVk2 NWk8aD1KbitKT24zc0lOZHZlWnF0e19+YE1kcFRSNHRlPHl2RWs7ZSN3TX0o Y0ZVYytCSHVFeAp6d1hNQ1FRfCE4VHwzU0NOd35WZEFUPXZpc0NOR31+PlVx QExfWlU2dGZCSXx5Kl5vaE4mNSZ+JDhYZyZhe3NPJngKeiklV18xOVJaZ2xO aU5qJF9UQnByaCFjX0FabnVQbktZa2tmZH0pTn5nXjdHWT04I3RxV1FAT2xK SWprKjEkI1c+CnpncVoreXpXLWFzXmRqUilnRT9ubkB9dmkhSCE9TDwxbWZq TjN7TT4rKD0pU1lDdzNCWGBGd05wNmZlJE03KztpNgp6UDBUc3wjaWZBQkt5 V3p9VWcxJl48VXF2eUgzK1MpdHckK2RvYWdFZkx9SGRvSUcjd1JEMlZmcjdK Z2NVME9eZyoKelVrVkx6b0dYcnkjNEBSQGxCME5Xc15IKUZecDRmZm1Bck4y NF5oZGZzK09teTgwR1cmZi1vTntnamN9SUU0RD10Cnp3Zk1LQlFAbnQ4WDFo RlIxe3pPOysycSpQNHIjSmhEJHg8JmM2b09oM1R5RjE2d0pSZWkyQSpOJk8m Qyh5UT5BKgp6VFRkaF9WODY8fHVJcDRVTWxBfmFhMWdEZUdHSHFLR3FMJnle NGJ1IyU2QG4rZUVeeFBxVTd1PFklZk5XSFkkKisKelIlPEZSbDE/Tnl2IUdP S0hIe2FFQ1hNb2VTfVBWMHwzakV3dG54dWwoKz1+T1BWOVFGV3t2PjxXVmdC c28wV2s4CnowMDFSKU1PYnVYVlJVNldWeyZDLWJZJWNDRmZsTUtGKX1TTUY7 cEB6SXk1c25HJkN6UEg5OWFiSUdINkwwMDAwYgp6YlZYUW5XTU9uPUkmRSlj WD1acjxHQjdiUEVpZ0dQRmZtanpHZGVVaEl4c2RYRmZ9P2JGdl4henROO0sy MDcqcW8KSU02TjwkZj9leERHeW5ocQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx CgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFp bi9pbWcvZXhfam9pbi5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL2ltZy9leF9qb2luLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi40MjU2NDkzCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfam9pbi5zdmcK QEAgLTAsMCArMSw2MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu Zz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0 aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKwor PHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50 cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMu b3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRo PSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRh ZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAg ICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAg IDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAg ICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9w dXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9j YzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRl ZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6 aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T VWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZB aGtpQUFBQmJwSlJFRlUKK2FJSHRtV3RvRkZjVXgzL3oyczJ1SnQxRWJWTVRp ZzhVWXcwcE50Z0trVkRCRHlYMEFZVUtmbWd4RmFtVVNyRW9HQ2hJSzdIRjFw YUsKK1dzUXFDb29wVkxSdDhJTlFXQ2pHU2hLSldtdDh4RlEzTm1xZWJySm1k M2JtOXNOazE4U2RpZG5OK0Nqc0gvYkRuTDF6ei9tZmU4OS8KK3owa2dpeXl5 eU9ML0JNbk91UDVRZ3doZWo2WFlLMS93NEdUZnVtS3g3VjZQQzZxZE1YZzl4 dUpscFZ6bzEvSEs0SlVsRmhaNE9QWmIKK0MrKzlYY2JOU0J5ZklwR2pTTXlh cFBGVlhYTkd6dDFNbUMwUmdKWmVuWWF1S0Q0Ri9JcUVYN0hldnhxT2N6VWNZ N0lpNFZjbHZGTG0KK0IrRm13aHlKbE9WcmFESkpCL09lMFdnRlp1ZXErQlNT RG9yOGpsdU1DMjRsekRhS3VacVhoaFBuUnRsdUROc1BIRzJ4WFg4NlF5SnUK K0pjejJXMytiajUzVkpmVGZqU1BMb0VnUytRVWEyM2UxY1dEdEFpSVJFMFVH UlpHWlBGbWhkdXVsakVoVTVMWHp4NG5SdGh2QUhIRXYKKzdZUTUwdXpyMDdu VHBhTW9vQ295aW1vZGJUaHNFQTdIVVJVSlJaV1I1WXc0QVBCV2RBZWZyOWxP WE8rNUg1Qld3THFhQUR1clp6QXcKK1lPRHhTSGk5Q3ZrQmxTKy91ZXk0MThR dXVBdUk2ejNvc2M0SHJOUHA2OVBwN1kyVGt5UGo4NWw0UFdQWHlBVHkrWFRC OFVRQ0FRMUoKK2xwSTFrcGRuTGMzTlZWQVVLVmtqZnIveTJJSWRDN1pFRnN5 SDNYdmJiZTNidnI5cWEwK2d0bTZWYUF6VkExQmF1SlR5NGlyZXFGemgKK2VD OVVyY0QyT1JEUVVGVTVXU01QUzVndGtmTVhZSFgxREZ2VldyZDI5cGlxMVJp cTU2MVhsZ0VRNnVta01WVFByOEZEd282TXA2aVMKK3ByMGZwL2lmTjMwOXUv ZW14alV5WWVNaUFwbXJWbmx4RmNmK3JHZkdzOFdVelN3aGhFWEdEckdPSUM5 WHA2cld3Wm9jVmo5cDFhcFoKK3ZrY0NxSzJyRWkzWFdpaWJXY0t4eXljYzF6 LzFxbFd6ZkkvVWZqdUVwS1RyUW1Uazc1R3JscXBwNDR0RUNJUVFDTU1jZi9R ai9kZ1oKK0o2SmFhUWVnRlNERThDa1lCb3FTRDZTdldvOTBHTnA4dUZwSS9o RDlRNE1FUkVteWZoSm8rR205aUhVRVU5NXJpcXpuNHMyNUtmWUYKKzgySHRS MlhwelNOdVlIcnVIQzRPdHZMcVM0czRmYjZKMnJwVllpU1pXRWVRaGU5L2h6 N1VsYnhXcWxiQXdjMkJ0Rlhya2JZbzFWVWIKK3BZQW80ZlQ1SnBZc3FyQ1Y0 ZGk5T3d3TmhCaTZlNTJoL24rSURkNENodVgvVG96dWJwM2VYcDFJeEJqVGwr Mkp1RFdDN3EzZklpNUYKK2o3TmtVUVVuejV5aXZMaUtJK3dadFVZWUpxYXVJ d3pUK3NUSERqZ3RJbTZOb0RmRGw1bjIvRFJPbmpuRnBNaXNsQm9CRUhFRFV6 Y1EKK2htR1IwbHdrQXU2TW9NMGR4L21nWWlVLzF1M2p5S2UvMnk1VTFIeThP WHF5UmpUZk5NQ2xYZ3RjSEVHOXpyOGpucUpLenYyOE1jWHUKK1dxL2xOSUpX NUxWejRLajllcWNSVkZLY014bnJDUExpbTE4UUhiQmFGR0dZZVB6UGNYQjdr VHU5MXVnUlZDQUVxRXFBNXYwNzJMVHEKK1cvUm9GOElVSUFTcVZrREw0UjFz ZTJDUDJycFZZdERmaHZ5UVdUZzYwTW05N21zSTAwU1lBcEV2Z0tLMGV5M0hl eEhYdTRrTi9XdTEKK0RxWUFyMVdFZXJTTDZHQ0hWWnltaWRjM3VqZ1Q4OGln djQzWGxpemwwcFZXU2d1WGNvU0R0bjZFWVdKbXFGVGpJaUlFU1JLSmJBSFcK Kzh6QUpZWmdJYzNSdjFCaXE1OE9WYTVCbG1VdFhXcm5WYWxKZVhBV09SREpy RXNkTmhNUlJteWFtYm1DcXd3RWJCaUp1SkZVbVFUQ0IKKzh1SXFmdGkzQ3hq ZmhPak5MYlI5ZGsyMVZLM0FDbFFJaENwUVBkWUlxbmltNFBFWkZnSFRSTXVa T3VxOWtiOFYxbld5UHdtd1ZPdnYKKzQ1dFM3SzZwbHFlb2t1YjluOWphejla dHNMV1R3ZDhhWXgxQlNsN2ZSRFI4ZjdEeTVoYTZwMXF4amlCbEs3NG1IdTFP WGpFMVp5cG4KKzZ6WlErczRXWW9PM2tuT0Q1cHZHWDc5OGxqYUpCS0xoVHU3 MVhudkE2cVpxUmJzWkNsOVAxb0YzV0ZuMHlHMGlQWlpqRVRmSUNVeGMKK2Nk eUFzMnJGamZ1Tm5Ha2lEQ3ZnaEZRbW1ydE1KenEzNFV6RUhFbkNUQVpzSmxR clFVQk1URDRmdldwNXB1RDFHU25ObkhkeTRTZ1MKK25rbUZUbHM4Rkc2cWxt MEZPWTJnbnFKS25PeUwzOTM2UlArSG1FVVdXV1NSeFJQQmYzdzZOLzdhQlgv c0FBQUFBRWxGVGtTdVFtQ0MKKworIgorICAgICB4PSIwIgorICAgICB5PSIw IgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisgICAgIGlk PSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9saW1pdC5wbmcgYi93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9saW1pdC5wbmcK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MzZWZkNTlkNzA0MzYzNDllNTQx M2Y4YzVkMjY3MzIwMGNkNzRmMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg MTIzNwp6Y21WO2AxUzxROVApPGg7M0t8TGswMDBlMU5KTFRxMDAxJW8wMDEl dzB7e1IzRGRCajcwMDA0aVApdC1zMDAwMVcKenJwR3BqIUVlcChNN2A7QyZo TDU5P15NRi1oU2N6OCRuMHYjPn5HNUptZjcpcCZoM0tIP1dXJUhqQDBndyo2 KiszCnpeOTg1ak9+TDZLdUgjJDk+dGVfMklKZjBjelVOaUk9VUt0JFlzY3Vo VmBIZm83d35kJj9Rd0RHYUIkfnVhT0gxcgp6O2NqbC1aRWV8WFl9MEZOaE4p eXlqVHltQEh1VWt4QGEodG0+JGRhbiRNNU8xXlg8bSs/OFdacHYrZEB4P2Q3 clkKej4le0VodWs3S2o/QksyTj0pJDdMVkMmX2M+ZkBhNj5iMj9NbiY7ZT89 aThSLTxGTXR8bGpZVHQ+KSktVyV3XzFfCnpuZGFHKjxrWFNtKH4jPWpzXypF dD0tcnMrKnAlYmFrRSt2YUA4LWJvPGlEPWphTDF+M3ZFRnM8PGdufUJ0bSln VAp6PkRzOTc7a35ydWRBOD8jeGF4bzYmV3ojQWl8Tj4+eCRBKUEoMm41QmlS am0rPWhtakApdXJ2PHlVbDU3P0FeTk4Keih4Y3xscVVfd2ItXmhwRyMpanQ5 cX17QFUtTkF6OCg0cFNNaDF8ZV8tTlNfMnpKVFA7cFlQP3M+KU47RykxJjZt CnpxMiRlOzxJSkF3Knx5cmRlZEVpWDM3d0pYMDAwMDFiVyU9SjA2XnkwVyZp KkgzMjtiUmF7dkdVTkJ7cjtOQn5DMwp6WWQhen4wKnB5U0t+ellgP1VVX081 PlhWIVhgYEBFKVIzfU5mfE8qQiRtKXVgQnlTNEB4UUl6OUZQYWRiQ1d5I18K ejVReElSLWQodDA7OV5lcHA9TndPK31XS3V6ZDgzZyYkJU1lZ1peempCNnRs dmclSU1nU1MpQCpKZTVjIUwmVlV0Cno9aDkoZmN0aj19Qn1UYF8kNnBZRmgq Jk97aS1gJF5MaCtKI0g5MHZjQn1RSnFuVVdEPik2PiMlOzxoZG1sQnFqJQp6 bk5pK05HdU1kblpKJCZzbTBHMSV6bmgoJW90dkF9WGYqR1U9STUzNz5ZXnBK QWB2WDtiaC11cFQtMVl9cU5wV1UKenJkSkhCdXhkMSFFcjY+IUIwckRfKFhG a20+Q2tEbCtKTGcjP0tJRjFyO2BEciVrQjA2dUllSG11YVFObylrLTE2Cno+ IXJjcV4hYmNuY0tnPl56KlJ6c3QlVUA8LVZGbVZLM351VFg4LSE7UDI+flZf UkA5ezs5VkhIRjFBPmY0RlJzfAp6QkE/T0U3dk1HVSM4c1Zuaz1yRHgxXnVG cCghKX1Lcms3IUxoaFojV0Y/KyZXNVE7PmpGfkMpdzleMVFuVXJGQUQKem9k TyFXMilmTUpNUHhyN1BYTW0hYmxLaGVoUHFIenlGQ0UoaFFxbDdPd2k+dkx3 R1pwajZnSVZQbyk3QGIjS09oCnpeSTQkNXR+aWBOMjIzdXVLTVpWZ2U/Sk98 UjRSMTx4VC1nTz8xSmZjNWxiSCY5YCZkSEMhMmg4WF8zQykoRVQ+Swp6Q0Vr VG0kaTtDY2xSV3tVaG01b0V0WnliK2V6NVUwOU9PPDxeTj18ITZnWGtUPXlJ VllYS0B4T2wqUXBgdjZ6OHUKenA7UWB4bkF8O0M8UElUVUVTX2g5RTB4TD5W WmBESXZwKm1ke25iU2x4dXxsTE4+dmN+P0lzSSFMR0wwR2Y+PEoqCnpLN3ls c3pJRl5KN2FVaUdZTmRYOEM0OH03N3cyNlVeK3UhNzZoXylocDNkZGFVfkFg Umckdi15V3JTUH5NJXFoYAp6dk1BUjBFWU0mcDwjTUJiOGA5JX5ZcV9aTkYw UHUqPUdFVnQqbnxGYXtSR2E4MTdIUmoqUGozWTAzfiFxU2FmN3oKemJZKGhZ YSVFdzNXZEpmVEYpJUdMR0ElR01SNUNDK0cmNEZoRyVHTVFJeHNMZW5JIz9v MDAxUilNT2J1WFZSVTZXCnpaRXN8MFdfYldJRmZsTUtGZ1l6U0Y7cEAkSXk1 dm9GZzdiTkg5OWFiJTltQkYwMDAwME5rdlhYdTBtamYtK0dIQwoKbGl0ZXJh bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbGltaXQuc3ZnIGIvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbGltaXQuc3ZnCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NzJiODUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2ltZy9leF9saW1pdC5zdmcKQEAgLTAsMCArMSw2NSBAQAorPD94bWwgdmVy c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+ Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtz Y2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9w dXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6 Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0 cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAg IHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4 bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4 bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNp b249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBp ZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4K KyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6 YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwv ZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6 cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbElt YWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAg PC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8 aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0 LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4 QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQmp0SlJFRlUKK2FJSHRsMXRzRkZV WXgzL2JuVXN2SUcxcGF3M1ZKeE1URUFSdFRJZ1BOVEdLU2F0QkVtMjRhSXp3 ckdLOFJEVGVvaEpGUVgyVEFDR0MKK05rV0RSRnNUZkhLZlNBaVVpeFFmd0tq WUttMHBWSHJaM1pucGZEN01mV2RMcHhSNDBQMi83T3gvenB6ei81OXp2dTk4 QjBvb29ZUVMKK1Npamg2cEZLMHVpbHJ3NUo1cHdSNDF0dTA3amUvSlkxeXhO cFZKSTB5cHd6V1A3Z1lucEhUSjliVnFPUitmRWtEenk4aERPWEEvN3UKK1dv MERYU2RZMlhZWHY0OVpLQ2xRVThJZDh6UjJmM3VjcHg5YlN2KzRoWjUyMnQ4 K1YrV1RmY2Q0L29sbG5KK3dVTW9jM2JkV0tXenUKKzZFa2lMN2tSZ040Ums4 eGdMc2FmK3NlZ1p6aVlUVDN0Q0RrN2FuSjZKRDdML2VNV3ZTTUdhaGtvb2Jr K1AySHg2NmpUWGttbkV4dncKK2tOaklvbW8xOG45WmpVWUd1SE9lQm9DZVNx SEtKSXZtcVp6Qm1Xa2xsWXFzeUNGZ1FaVXpaSGhGQUJvckhUNjhJak5CYlA4 ZFhMOWUKK1JycTZadFRKalVSMVd4c3JkdTZNNlk3Wkh1bnFZc1hhdGJNYWJG TEVmN1pFVUZJcExKZXpCV3lpNzZkN0JqRGMvNmUvK2Fib21ERWoKKzFXMXRI UHp5eTZ2UmYwTlEzZFlHTzNmRytKaVJvdytsT0xLd2pPYW1WamExNzBnQlpM YmRLL2M4OHhtV2VTbjRVSzNoNks1bkNmTWkKK2dxTFUwTFA3T2U1KytsTXNZ emhvcjlUUzg4WHpMSHR5RzVaeEVVRkFCRVdiei9HOUw3QjAzVmJNN0JDSXk1 ZlhjNkxqUlZvMkhrNEIKK3ZOKzVRWTcwZGRQY2xJSzRqN2lSSTMzZHJGeStn Z09IdWlPOFpWN0N6UDhkNjhEanhiWWRRbmUyZ0dVTVkyVC84dHVKNXZFWHlV LzAKK09ZSUJzWjFmTXp0RWZyelAyWHY0cjZmVk5hVVJBRVZUaTlGRklTS0Jp U0lLUEtIQmF4dEVBdDVyYjl0Z0MrS3VpTmlUTTlKVmxsangKK1ZDaWN1aEFm Rml2aW1CVzd3RVRvZTkvRVZIMWVBY1ZYUk5maW5Gb1RHVENkcm5iNTJrQ01D SXBTQzBCYXFVVXJ4emVnYVBNQlVNdnIKK0FnTWlLSHFkMDE2YmoxWVJySUtx MXlmU2RXVWpCVXVvTFdqaDZLNW5ZKzIwQlMzMDdINnVLSDlzejhhaS9QRzlM eFRsVDNhK1hKU0gKK3cxUHFpbWoySHJ5c0FKQlduUTlXZlh5TE5EZTFZdlJu bkN4a1hRcG1VcHZ2WktlblBzRXloM0VuSGtXcjVkaWVqU3hkdHhVcmY4RmYK K0xFV3Q1VVRIaTl5MStpT3MzSkREaTZDVTEzR3k4MldXUFA0QlJuWUlyeU5W citmbi9hOWVVWmVYVlNOR2p2UjFzNjZ0bmJTcWtsWVYKK05xeFpUMWs2emZZ OTI3bXY3RllzODZLZnRXUXlDRzR6UDR5UmM3TlRLQmJNM0FXTWlmNWd6N3Zi eHNvTmtSdnI4M25kYlc5a2g4aVAKK25ndmlaNDVNcXlzTVA5aWJtMXJaMjlW SldsVW9VOUtrRllYdGU3YlQzTlRxaTR5WUNBZWttN25FdHVPOGlKOVN3UXQy MituSEZuOGwKK0VkczNJYmJ0Qi95MHVncU5iR3Jma1dwdWFtWFh2dDJrRllY UHYvaWN3dVh6VEVoSWdCQk9tUkw0OE1TNEtkVVhLWjRCejdqYlVaZ0wKK3pW TVNYVkFRN0p2YWQ2VGU3OXdneFJvclNpMlVTeVFXd05uN29nZGJUVkZkWHE5 elZ3US9Gc0RaKzJJVGlRVUF0YUxCTWV5MjF5cUMKK3JIVWxYUjcrMjlYdi9h dFhBN092VkNOYytQU2ZCYzd1MzErVUwxcjkvdFRSY1UwR3ZSNllxdnBOZExI UGJMdFhscTdiaXBtNzRCRHUKK09YSTE1OExpVlpzeEpnYUNXS2hzNE5TQjEx ajA2THNZNHdOKy8xcFZBNzNmditGWHY5TWg4WDB5ZGk2NFc4WE1EcEVmKzlQ UFVQNjUKK01ERkE3dktmL3ZkUzVmRDU4UUZ5bC84SVZibk9yekUrUUhiazl5 RE56N0RlU240eERsZTVvVFFyOW1Ua3JKQ0NVSkRDMlBCU3NuZTIKK0ZCU1FW MU13d2d5TlJHWXhQS0FkTWxsd0xqaFU2TENMbkNrU1dRSFBoSVQ3dTlaR0ZM M09FZUNXSVY3VnF1cjFrWkpseW5PaHNnRUEKK3JhTEJtUkJYdEZibDh1NTd6 NEErcDNGR1JoSUYwcUY5TDRuUm40bngyb0lXcmplLy9Ja3QxeTdZamY0TVM5 by94TXdPQXM3dTBTcnEKK09mbjFLeXhldFJrek8raHZDN1c4bmxNSFh1UE9s ZStSRDJlaHlwdnAvZTUxRmozeURzYjRnTDh6dGNvR1RuZS95Y0xXdDhtUG5m ZXIKK0FYMXVJNy84OEZZU2VjbU5BSmpaUWZLamZiRllNTE9EWkMrZmM2a2dG dkxqQStSRy9naUMxK1BIM094RU5CYnlvMzh6Y2ZHM1lNQVoKK3hueGlJMkpI aFJJSjNuQTJDMTl2ZzV0Z1dGbmhQZDV0UGlza3Y3TlBVV1lIMWE3NHljQjVR U1NsQnVrNlNBd3lPVGw3Qnk0U3I0aXEKKzE4TWNpY1FDT0xFU2JEY25GZ0Mw eXZxSWFDOHI2WE1hUXlrWE5EYzc2WE1iSTl0SnYrbC9tclZLS0tHRUVrb29v UVRnWDZZblZ0QWgKK1ltSmZBQUFBQUVsRlRrU3VRbUNDCisiCisgICAgIHg9 IjAiCisgICAgIHk9IjAiCisgICAgIHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0 PSI1MCIKKyAgICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X2xv Y2tfcm93cy5wbmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2ltZy9leF9sb2NrX3Jvd3MucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu LjQxYzExNDhiYjE4NWM4Nzg5OGIzZmRkYWE3NmJlMzZhMTU3MDMzMzYKR0lU IGJpbmFyeSBwYXRjaApsaXRlcmFsIDE1MjAKemNtVjxNMXJQZChQKTxoOzNL fExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tSM0RkQmo3MDAwNzhQKXQtczFw cktMCnpZaW48OVpFPGRIYiNpaklXS28yM1QpMVVYeE14d2dYO0ZLNGMpRHMp eEAlRTNoezN2VVFHUkBVeF5Zb31ldHhgagp6UUc8WWh5bWU4OWZgWXd4UUhY fHl6STspTmg9eyp7UUgrWDszOH5gMGY+RGkoakU7PHF6PVRuYmoqZkRjcF4l U3sKeno9JT04aCo2U35sOVE4QCFIK2hZbTMrZEVRSShhSW02biM0bXpTNUFu OGNEJSNGJFlzd2RJPGdvfH5TWWIqOUloCnpwYHBUX1FPMkg4b307NmxxQD41 QVE5LT11JWM1QXhyJX1uTVFBKXQrJUJ4WT1zN31oUVFPQj1TJSYkP1d2OVpq dQp6UW1DYERVQnY0QnRwVGRGd1dfd1pXNSgqdXdwREEjPXhFNjcmYm5Cd3kx TEd+UytCZ2pacC1ZanpQQCRNP0FwNzIKenc4RnlNeUB9KCFiS0pnd3xHaEFL KGVKanojTjVHeGd3Z0taIS1Jcz1AWlE5UC1vfVFFKWI4S01odV9HRWs9NT90 CnokJSowMmlrSTIoPElBNG4mV3oqQ3A1KUQqOz9SeGMmWXomJEAjRTV1PDxP enoofiMhVHEyfCR8PGtYU28oeFQrbQp6bElHSys8PF50dClUSE90ckxOJWY9 R20wISpRViYjcns+ejA+RGoyfis/Vk92c3B7RmI+RCNMNytQQ1E1bmQ7ckQK ej9BKkJOO0Z7fit0biVIYT9BXk5TLT52ZkFyfGpPa154bW9MO0h+UThvYj16 Uj9CVEJNO0pmUE5vJFRWVD9jdSFpCno7aX5OOHU9TH10P2Q3cmI8Z2Y0S3pV fTYrPyZoPWE8LXFwa3ZoZTE+YFFAP2k9KEcwY3YtYW4tQDlETXE9ZDx3WAp6 IXVhVTZAYShxcz5ibSZxeGJmQDZ7cHo7KD83SCZwI3JmXk5gUj4yQD8jMSkp JHA3IVpgU0hOe0B4bEE/IX5nTlYKenxNQWxPXnYoYkMpY15GK3xNdGlLX1Iw VkQrVys/M3xNPDxTeVV7OEQwMDA0V1FjaEM8SzwzekgwMDAwOWE3YkJtCnow MDBYVTAwMFhVMFJXbnU3eXRrUkU9ZmN8UjdsNnxsaiZDeVE1ZVJ4ZUgrX04l V1N1cyo8IW09KmBCdThCOGlISQp6Q35tbGNwb2p3bTFnTU5faE4wNEFHXkhr eU1wO19meldpQzt4cHgjaWotSmtgYkx4WmRoaTdLYW5jc1FlPWVoMzwKejNZ d3taUHpNT01yY14kSjVERWw+UjNhLU9GKUBlOHhnciE2NlVBQkMqJWRAWlVT WilhZileMSlMX2BSUDFnTUZgCnpyUCRiNUEoMEM0WSQ3aT9TeSlLP0w2X1kt cXFhbmI8TSsqSTx8Jm1VY0FaYlZuUmV+U083c0NuMV9sTzMjPzw1Uwp6NDFw bnJWU0s8eCkzZ18wQXx+WlIlKTBRJXhWU3xLOFIrYjZfaSpaSVk7NWNVak5O TU8yREgocmI4eUpuaXlQUi0Keih0WD1HcSNZc2M3X2w+ZXYwQU0oPXJaY1lr ZkBYeGo0dDBsbj8qZUI9eDN5VGJ+e0E2dCskT2RhTyFHbVN+MFRlCnoyNHtU RSFDPlNDJXxHdHE1cHZQeDF6dHlNUXg4SX0/XnZfP15xQ1hLO3QkT1ZvKTtZ eWJQfStZZmkhKXh2ZEdvPAp6cW8yTmZ7UEYkc0BMKyVjUkBmenpFaWx4X0Zo anVDLUEoJnwqWGVOZGZGNnBYK15FYXRjY2E1PjRHI0E5SzNVSHEKek5sOGhX MFdQeyY3dThMR1FZalFSZ3EoWVdrV20oUzcmZVlEYn5fSCU9bWRfTT5QaVl3 M1BtWUtQUUNVYzQ/X0oyCnozWUpFfXdwT1pDNnNSakxtMEoqVXtGTldNemhk MFdXRVhDbSNvfElwezBsI0ZIe2BieEpOJXFRTWlGdm5HMz9AXwp6eVBSSDVk cz5efFMtOShMSGFCcFkmODgwMlckKTh4RkYkPCFgUiM0KnoyQGN4NVcofExi Um1aPiV0WnpIZFc3dFcKei1uTWFWU20+JXtBeGpwe3A5Pk1FUDZyblFFMlVC Pz5WUW95bXojbTlBWVl+amR7KyFiK1FjYWkpKj4kfEc2OTIzCnpDTHtSfkk2 dzg2UWBVdEd4LWMwIUshPV9yVFg+UDkwZn1XeVBMSUN9TWIpe3YpNHwkZChD Z2JraSZqKEJ6Jnt3Qwp6QU1YSEc9cHZUezhtVUMwPTExXmkxUntEX3UyYylF Qm9ncnkyI3ohbUEjPGhERHhqOCMjWSVwfVpMeWVMNlRHeCYKekcqJEpXVWFl SHR8RnkoaUNJZFZMdFpnS3paMj04eHdIa0kmbVkzSl40fjc+NUQ9OUBUI0hA PlFrd3tkPWp+TWRWCnojbFdnWCFUT09CZW5ieVhMQ2RLfCFYaXFzU1gyKG1y YmdPR0V1MEB+cG9gailsOUprSzU9KT0lUj9nSl9TaWI7fQpXdWljeXltWCVR ZTAwMDA8TU5VTW5MU1RZR3JBYjJvCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2ltZy9leF9sb2NrX3Jvd3Muc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfbG9ja19yb3dzLnN2ZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODg5YmNjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhf bG9ja19yb3dzLnN2ZwpAQCAtMCwwICsxLDcwIEBACis8P3htbCB2ZXJzaW9u PSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwh LS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBl Lm9yZy8pIC0tPgorCis8c3ZnCisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwu b3JnL2RjL2VsZW1lbnRzLzEuMS8iCisgICB4bWxuczpjYz0iaHR0cDovL2Ny ZWF0aXZlY29tbW9ucy5vcmcvbnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8v d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1s bnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5z PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5r PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0i MS4xIgorICAgd2lkdGg9IjUwIgorICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJz dmcyIj4KKyAgPG1ldGFkYXRhCisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAg IDxyZGY6UkRGPgorICAgICAgPGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91 dD0iIj4KKyAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpm b3JtYXQ+CisgICAgICAgIDxkYzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNv dXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2Ui IC8+CisgICAgICA8L2NjOldvcms+CisgICAgPC9yZGY6UkRGPgorICA8L21l dGFkYXRhPgorICA8ZGVmcworICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFn ZQorICAgICB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZC T1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFB QkhOQ1NWUUlDQWdJZkFoa2lBQUFCMTFKUkVGVQorYUlIdG1WdHNYRWNaeDMr N2U4N1o5ZHE1K0xaeGE0T0VhWVZvV3R0QmVlQUJpaUFVQ1JKYWxZQXFWVkZS WHhHS1NCUUZvMFJRcWhTaQorQ0pxU2g4QUxSRVJSYUJSRkVVRXBFZ1cxYmlv VVVGUmZhaE5WcUk3akpyNXNiQ2UrN08xY1puaVlzMmYzN0RscjErMENWdVJQ V3AyZAorLzVuNTV2dlB6UGVmYisySXppN3VCNHYrdndPb2xhMFRXV3UyVG1T dDJYMURSS3VGa3grY1BTVDd4czBBL3FWUEd2eTM4VmVlZlNrQworTlNMU04y N3krUjFiZVhmZTlyRHRqUnA5cjQvd3hOZTc2TDlyMHF4RkFQak1Kb05MbHdk NWNtYzN0ekkyUmt6MS8reEduVk1YQjNqKworNlI1dTVRVjFTQUE2a2pGT1ho amdlN3Q3bUNrNDZNb05uNmpYT2ZycU85NThOU0VDOE82OHpkWFo0S3IxM3pW NVk3cmd0Yi90UG04cworbXZUZnRRTDlSNWNzUmhZZGozalJaZ29PTnhhVi81 aW1BZjZ4TlNQeTJDYS9xKzJOR24zQXRrWUR3TGNqN3dHZjJtQ2dSNk8rSGJr SworZERib0dGck10eU1BTGZFWVlQaDJaRVVpSjM2elN3ckh3WEVjaWsvSHRq blUrM1lrclA4WE5vN3g5dC84V0orTHYvNW4xWjV4OGZkYworL05KbGYvK3JM bjdxWXJqL2t4ZkM4WDczZTZTeTF2clZyM2ZLcG80T0dqWnRJaHFOSW9TZ2tN OHpQejNON2ZmZjU4VVhyZ1hJL1BWNAorV243dStSTTQ5cHlIeGJRbTNqbTFs K1Z3dXpCYmhtK20vL1ErdGoxM0hMdFExbDl2Wk9ETWZucjJ2SXlWbi9Gd3pX aGk4T3dCdnJvdgorRlV6MlYwNStRejd3OE1OWWhRSTNoNGZKTFMwaGhDQ21h VFMydGRIKzBFTWM3TTNMWTBlSEEyUWNldzR6UDZrYVVxSWJjbG5jTHN4aQor NW01NzQ0MkVjUEU1elB3RVVxaTJVYWVlVm40R00zdEx1WEVrSkIzZi9ENGlU ZTN0V0tiSnJldlgrZUdCTjMzQi91aHdqK3pvN0tTdAordlIwWXJ1UlJNaWxY aHdOU1NLUW9id3ZmdS9MeDBnbjM0MTJJdnp6eE5abW9yK2ZPMkZpQUJNRFBq d3hFSnNiR1NOVFg4LzI5blFGdgorMHBHaHdWYkRrY0lsNEg4blhVWlNTS1Rq bEw5QU9oSXBpeCsvTzI5SGJOc21FbzJTV1ZnSVpReVFXVm9pRW92aE9FN2du Ulp2OXJWagorMnVabDhaamVoSkZ3WTBRUzB4dFZmNlBadHd1YTBhVHdSSXNp SXhXdVYvaU42T3ppSDMvWklLLzkrOVBNelNkeGJKdXZQRGFJamtEWQorSUcw UU5sZ1dYT2p2UUFwQktqSFA0KzBaZHV5M0lnQkRyMFpsZW5JcVFLNno2NHVN RGwwSjRBOTI3V1ppS0NoREh3Vi9aTWVWOG1TWAorZkhmUEUwU0pFbzBsaWZJ VU9CSFE2d0FKam9scHpiTjlWd1ljZFNuOTgvZS85UnltSjZkNHZDdDRHYjQx ZElWdHp4M0hzZWE4SE5EaQorVGZTZjNrZlBucGV4VGFWYVVrajBSQXNEWi9i VC9ld3ZzUE16M25IVWpHWUd6eDJrKzVsam1MbTA1MXVQdHpCMHZoZEk0UkdS dHFNQworQm13elg0ckVXVlFQT3dOQXpNcXBOaEZrTUc3RXZVSHZlM1J6dCtw cnpWSElUZ1Q2MnVZc1ptNUNIU01wdk1EdC9BeUZ6RzJrVkxrVgorVHlyY3pL VVY3Z3BCWmRKSFBTTFYxQ0FtQXBpUVRpaVJNS3RVbzBBeUZ6dklVbDRVU2Fq dndqZmVEU0F3andZZ3JDcktza3gwMGw2NQorV3lBQUNLcVVVeUd2RWhCQ2tm RlA2UkdRUWdUaVZVZkxBaWx0d0YrL1ZEWGhJSVAxbm5lY3lpMm1OM3FYV2pF WFFOM01sQVdrR1VxRgorOUhnelVwUlVVWStyL2taZGk3ZEw0S3BZSlJGaG9a eCtXSE9rR3VOYTZvRTIzaG9LVjYyQk0vc0QrSU5kdXhrOGV5QWNQM2N3RkZl SgorSGNSQnFhSzNJMkZFd3ZJRFFDQ2c3R2lsSjZkS3RaQzdhbHFpaGNHekI2 cmkzYzhjd3lyTWVpdXNKMW9ZUEhlUXJ1OGN4Y3lWVk10SQordGpKMHZwZEh2 L1V6ck93ZGQwYUpYdGZLOE1WRCtGUkxtQ3FCSTlsN2FMRVkwWGhDU1c4MEFj SkdFelptZGdITHpDUGNiUmNWZDJLeAorRnFvODgxWHh3aXlGcFErOFhDZ210 Wm1ib2JBNFhzcXJZdi9zSGZJTDQ1NFFDTWUveU9vZU1lSGFIMzRISnQ0bDZI MGNoZUdvanhDQQorSGFJTlFuakIra3FJS3JnVVRvbUVFQ1YxazdLS09KVFVy RklJUENKZjNtdUYvczVZbFZYSVpqVTVMVjhCbjV4Sy80NlY3b2tpV1QvQgor VU5XcWhXbEdNM0ZaREZ5Z3hWdVd4ZlY0aTlxRm9ncTV0Wk9XYUNFdUpLQUtT cjJ1RlFDalBsVmFFTUJJYnZITkgvaGg5VkhzNzZjYgorWkhaMk5JQlhxN1ZX aTYraTF2cDRscDBkOWRWQ1VpamRIenJmVzdVR3E0WS8rdlJMbUptMGx3ZEdN c1hJSHcrejlja2ptSmtwOTZSSgoralBvdGpQenB4L2hVcXhabTV0TGtGejlR RGVIUGhiQWFyQnB1WnRMazVtKzZIVW9YcHJrMFJXN2hwcGY4VlgrUGZGeGJx WVQ0MEg2SworNDRwbGlpd2x2YWRnVHZCK3F4bVI2cks1ZWorK1drdFc3SUJU TEhmQzdwRWFtSkZzTFUwcUpIcXkxWHNYVm9OVnc0M2tsckxxVnFMWAorcFZ3 ODVmcFdCT0lOYmI1eDY2cFZidG5aVWJjV1NudEh5cWhQTVh6eFVGVjg2MU5I TURQVHlvR1VHUFZ0akZ3NnpOWnZ2a2hoYWRyegorYlNSVC9PdnlUM2hrNTA4 cExFMlY3cEdHTnE2LzlnSTFWeTBybXlZM1ArN2Q1TVV6WGcwM005UGs3bzJW SExoNFlXbWEzTnlORXV3ZQorcGNMaUpObTVzY3J1bnRWUXRTcnFvTEo4Q2NO OTcwTUNXM2xDZjdObS8rZ3BYKzF5L2ErR0k4T1ZyVnlOaENPQ3FsWEZhcWhh S1Y5UgorYU5TM0xZOFhhNmZ5OFpTcFVWa3VBTVEzdFBsMkliN3hmNmhhdGZ6 NzFVcXFWUk1pYThIdW0zK0dyaE5aYTdaT1pLM1pPcEcxWnY4QgorejYzOHkx N3dQdlFBQUFBQVNVVk9SSzVDWUlJPQorIgorICAgICB4PSIwIgorICAgICB5 PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisgICAg IGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9tYXRlcmlhbGl6ZS5w bmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9t YXRlcmlhbGl6ZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNiZDBi YjkwZGQyZWYxY2MxYmFmN2Y5MzI4MTdkMWI2YmRmNDYzYgpHSVQgYmluYXJ5 IHBhdGNoCmxpdGVyYWwgMTIyMQp6Y21WOyQxVW1iUFApPGg7M0t8TGswMDBl MU5KTFRxMDAxJW8wMDEldzB7e1IzRGRCajcwMDA0aVApdC1zMDAwMV4KenlV Y15FJGFTWDJIaSpIViZFQWExLUlLfVBzP3ktSClabkdoLW1USyN6UyFiJCU8 VihIPX1vYHJRXk0rbiliTnpwCnpAT3NZZGh0dXdALX03c3sqPms/eTVVYioz I3BxbmE+NXxwJnBSS0hhbzEkYC1wfiRhOzteNTJSLW93RjxIdVVodwp6QGEo dFYrcWQxP3cmMn51PiprOzg8ZXU7OHdkJilZLVB5SjI7aFhSMXYqNnNwXjZr YVV5YCNzZmI+R3s7O29admEKej1DYmtYI041fWsrfHskKitROEBCbSomfSY/ QmxUQSp0T2YjdkZZSE49LS0qXztIfT0relUwLUI7TT5UQ3Nib0AoCno4U3Yp N3RKR31XKjFoMWAkRkpMUnYqQ0J9PSkmc1Z0TGZhVD8mN2BMKFhaTGh1RyFB NXFRemdPJVZlPEpiR1BTdwp6eGEpdTgoVTBRSmpPcDJeK1MwSngpVnNSdWYj Si1HPSt+IyUlJmdxZ3k1UCEqPWhtaioqdjBKS3k0JXZhK3RJa0AKeilUSExx cXUwciktXmhwRiNmOUMkZzY3ZW8qdnpaZyVkNkpNc01eb0I8aiRibnpKVDc8 IXxVMCQrUm5HeSY5fiZ1CnpwNXg0KDxJQTRhI2lyVzJlY1FjJSY9Z2MlMDAw MDFiVyU9SjA2XnkwVyZpKkgzMjtiUmF7dkdVTkJ7cjtOQn5DMwp6WWQhen4w KD9uQ0t+ellgP2I2cCo4Yks1WFVfd3cjakdBSTFyVlh0MEF8P3lVTj5QZzc4 YmdzN0xrcXBQQ3x5QVEKel5+fWhjO3x5QH16JlNhMkBJS3NeKj5DUnQ/azxu X1EyKGVOQGxrT2RKOSNXWCNyNjlLe0RzOXU7UyZHSikxfkVTCnplMmZUSVJA YWB0NVdJWX56VyFRKGs7T0x+OCR0KyQzKEV2cTZeVFRmZnxhJG1vOV9nM1BJ PjxVNzF1SEhAaXFuNQp6PztpbE1MP1JKJDlWNjcxUjRVISNJen1XaW5Ne0pa VHROYDJRbUtAcHUyTjRXYWBgTnhRZlghb3QjJF57WG1yfisKejtqJDxjYFdh YyY+Z15xamQ7K01yaiotdDREeXxiIzZiZCorUHQlNXBEUWZpPXdQUTNJY1pu PThnJnhwKkNLRSR1CnooZGJ8YjxObShjZilqPC1ZTll7ZkdUQkk/KSpUIWdB dSpmbjFoSEU4WHV6MGtIVX4pIzRrNTlhJX0jPWRYX1VnaQp6STJeNyFhXnla aldTbkJ4Wm50fj54LXNgTEdQNV5rVT5MPilUckE2OzBDQGp4ZUwwMU8rTz0z TFVuITUqPit8QzsKeiNASjhfSGdGYlgwbmgjSXtRVVUlYHt+NkdIOytyPDRU WnhJbDA+NXtWOSRjVipxPHBFS2hZR3MpOUxoNXpIbUlBCnp6PTxPbzJ0WDF7 Q1IyQ3UtQUV1MzNpK3I9SmV8KHFXU2stIU9Rb3tKI3lubWhPeU4mdEdQJHxg dUBqYiFXa0VLZAp6Rkp5Xk4+NGApVmVreFppbUdDS0NpaFF8VEUpV0Uhc0FR O093TnxVK0Ikb1ZqbkZvYihgS20jWE03bU5mUXVTSmAKeioyR0ViQClGKSh4 Vm9Ba25NJD08Zn4zX1YydWpmZz9NOT1+Q0owUFgmcnpMYnYpUCRAVzckRmgt cnckYWRsT1VZCnpiJEVhMHg8QTBEYTRFWE87amwtTGRKQ29LLWB2fmBhTUZP SjN3bCNYdm8jdUJRLWk0bEswSzktTSkyViZXU3BZaQp6PnJHX29eaWhoPVVA KHxfVi1OTWUpbytqdChlUHU1QUs/SDEwM34hcVNhZjd6YlkoaFlhJUV3M1dk SmZURiklR0wKekdBJUdNUjVDQytHJjRGaEclR01RSXhzTGVuSSM/bzAwMVIp TU9idVhWUlU2V1pFc3wwV19iV0lGZmxNS0ZnWXpTCmpGO3BAJEl5NXZvRmc3 Yk5IOTlhYiU5bUJGMDAwMDBOa3ZYWHUwbWpmVkozdCoKCmxpdGVyYWwgMApI Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3Rh dGljL2V4cGxhaW4vaW1nL2V4X21hdGVyaWFsaXplLnN2ZyBiL3dlYi9wZ2Fk bWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X21hdGVyaWFsaXplLnN2 ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjg0NWRi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9pbWcvZXhfbWF0ZXJpYWxpemUuc3ZnCkBAIC0wLDAgKzEsNjUg QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFu ZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0 dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5z OmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHht bG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4 bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5 bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIw MDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn IgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxp bmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWln aHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9 Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yawor ICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0Pmlt YWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAg ICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNt aXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8 L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJk ZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1h Z2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFB eUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUJqNUpSRUZV CithSUh0bUYxb0hGVVlocC9NMzI1MjA5U2tiVkpOa1JSRXJGVnJOUmRXaEVo L3JGalFvbUpSc1ZEVTRwV2c2SVhpUlJFUlZGUVFoQ0pDCitzYUtsWXFXS0Zj VWZEQ2dWU2F4YXRSZ1VZMDNTdExacDAwMDMyZG1aYzd3NDg3T2JuWm5ON2dh ODJSZkM1THh6OXZ2T08rZDg3MzQ3CiswRVFUVFRUUnhQK0FsaWp5N2M4SDVj aVVVOEgzTGphSTR4L1kxQmNaS3dsUHZudFlEaHkzSy9qK1N5M2krSmZ1V3hl Wng0Z2lSNlljCitlbFoyTVdsTEFGSWFkTGZxL0Q0OHdab3JscE1yQ2t4ZFEw ZlNZZWw4Kzh0NHJSb0FHRGh1YytQR3F6ZzY1WkRSSkphdWNWMm54WWNmCisv OFQycldzWXp6c3NNalVBTG04emVXSC9EN0d4SW9VQVROcVN2eTQ0cExYeUIz QzZJSmkwSlNuTkpXdTBBRzVkSW53Y25YSVltaXdFCis0dzVkQVBESHRNdWZP WWZGUmd0cFRaTFZramM4VmtpbjFSTGM5bmZrSExBMHBaSFN5bmVrRVZ5OVdP WHdkMlRsWW91ZmdjdmFkREthCitESGFrSnhPNzFIZ2hLMXBHR2ZsaE9Cam5n Tk5BYjJlR29jUERGZk43T3pOMWliaXBmWVJ2dmdoekFQemo4WHNQUnMvL1Bp WldwSkJWCisyakUyYkxvVklXWURUdFBTakIvNU5KYXZCM2NVWHVmWlIxN0Rj YzZHQ3pJNkdOb1R6NzlTaXhBQUlXWVI3blFpTDZVRVhkWWx3b2ZqCituS1Zv VHlUeVVraWtLUkxqSkIrOEdFaloyT0xublVkSVAySFZ1WFVKbVcvd2h1SGxr RUtBckhOSE5DMGRPZGEwZEhpY3BFVFRXeHRaCitLb2JSRVRrMmpBNms1UzFl Q25Tek16bE9KTm5lRzFuQVNYdzlzSHI2R2RyemFFMDhNYjRWS2NRNVA4SWxh ejEzOHJaWDAxc1pQL0twCis0cDE4Y0xJMHJaVVRQMzlXbHhCN2JJRHJkeWgz a3E1NittWnFDVU43SG1YdDlsZHhDbWVDdWJyUnlZL3ZQQjRiSzlHMVhDY1gx b0ozCitkWXQ1eFh1RktNM0dYY3VlR1ZkMUFFRXRPSVV6RlBKamluSmRyRXk5 cmlXbDl4Y09BL2dpcWhUZ2ZDQmQ0Uld6UkVvWk9sVnczMnVCCiszT1JXU0V2 TzRsMUtWUGovQnlKRTQySjhFYVVRcmdoRUNLZDZQeGZ2V25wcjJkUFJOT1ZP dXU2MUk1NEFUYS9lbmp5Ly95RTVPSHFJCit2aFZiZUhyYm0yWGRuMjVjaEdt NUpXUGxUbVpxYWJnTEtUQ3NKYlVMU1hLbnFNS3U1bHFEbzRlNGQvTmQ3UHZz QU0vdmYwajZZcXllCitmbzdzZmF4aXZ0WFRIMW5ZZGJuV3hkZHN4blh6QWFl MXBKbjQ1WE9XWDdVSnQzZ2g0SFVqdzhTdnF2UHpuM3hrb3BURmpydTNzK2Y5 Cit2WUVZZTJ5QWErOS9oV0xoZERqUDdPU25mVSt3WnR1TDJEUC9BdW80bTlZ U2poNTRLakoyckJBQTE4M2oybE1sTTlWUmNvc1hjSXZuCisxYkdURWtxK053 ZEhEN0gxaGx2UUxSTUFxMVhkTk5NcGROUEFzRXgyYnQvSkczdmZDRDVUTEp6 R3pvOENxaGJTV1hXYzdKbC9LVXlQCitoc1dlYmJEWDh1dWt0RjRDRVJEYUp0 QzNZZ3NIdjR2ZWtZZnZleERkTk5uOTFtNzZWbXpoQTk1VU4xeTNySmlGOTMw aXBVUzZiaEIvCitycHZOWDRnUVpRc3VWeWNqRzdxNWhlemp6cGN2bHFVaW91 WkpKeFFBZ0dmTHdZT3MwdHNsdUZZRzNRZy9yQnZLblRRdGpXNjFCd0owCitN NXVZQU5ST3hZa3dyQ1ZZcmdnV2FucnVaTFl1VSsyN3o2ZVdKdWFJZklLRFg3 NHRuZk1qRmJ6UjNrc2MzN2ZoZ1pyZm9oeCs3MGxwCitqdzFVOEZaUFAzSDh1 bnRlbXY5YkZPZjhDTXRYYjhSMWxHdEpJZENORENlUGZVWDNxdlU0dHVkYVVt Q2tGbkh5MkZlMWFnQlVyN1ZtCisyNHNVY3VFUEtDdmJ4ZEVEVDdINjl1ZXda MDRGTzI5bHV2bjFvMmRpWThXN2xwUEhtVDBYMWtKS1hSMzdBczdNMmJpUDFZ eENib0xaCiszSEYxakVSNHhPeVpVOHhPL1kzMGphQktCeEVySkN3MDFXOEZ0 VmJTWDZua2pUV05mZ3dwUk5oM0FiaHVLQUlRYnIydUplZFk3QndCCitDd1hW S0lxZ2paL3JrZ0ZmQmJGQ2RETmJ0Z3U2b2R4Sk43TElkSmpNc05wcVdIWWx6 TlJTWkp2cWZoRUNLOU90K1BReXhLSXdUeXJiCitsUmdudHRlS0ttQ2p2WmRU dzE5SDh2WEE2dW1QTEdDcnA1L2ZQdGtWeWRmY2EzV3ZXbzlUVUsvTnBKQVlW aHVuaHIrbTYvS2JjUXJlCitheUlKUnJvdFV0eDhZSThOS0hlYVBnR29Pa2hs dS9qdGsxMWNlZHN1Q3RNVDZsUklTTGN2anhTWEtBVEFLZVFvNXM5RjhOTVVG OUMxCis3T2tUNU0vOFZjSFA1aWFZbWF6azQ1RGdXbk1LV3M2NUxoQjhOd3Bh RU45VWFzeVQvQXNSUDdaWWNBRmw4WDEzZEVXMTExZXhpTjBSCit3Mm9yMndV anJkekp2d2J6MG8yNVZpcmJWZkxpUWRVQ2hGY2ZjOGNWNjQwa0U5eHBvVjBy enAxcWRhMG1tbWlpaVNhYWFBVC9BVG53CitXTHhaS2RocEFBQUFBRWxGVGtT dVFtQ0MKKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9 IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4K Kzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9pbWcvZXhfbWVyZ2UucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfbWVyZ2UucG5nCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjNmZDgyOTlmZGNiNzI2MDRkMGM5NzgxNmQzOGVlMjVlYzUx Njk5ZmYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMjcKemNtVi10MWVw N1lQKTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tSM0RkQmo3MDAw NGlQKXQtczAwMDF6CnptQzxIdihhcH5DeXVJd2QhMHBrfF4zJkF3JEg/ITsk bmVVX0AhUSs9KjRPcG47ckZKZj1CY2FhIU5Uc3YjcVlKWQp6PiQkcUAhXkgy ISNfKSF6V0t4WThwflBOd3JwR3BqIUVlcChMQT5abiEwQ0lAP31YRnZXNSgp ZSRuMCoqPzNkWmAKenB4ZzA7KGU4fVk/dmQ1KnVIZj90c3A0SjQ+TjIoRWI8 T04rJExPUVNWUkR3QyFIK2ljQFd9QSZ3KHNlKl5YPG0mCno9Q2JZT3ZHTUR+ PmcxajI7Rns7JG0qP0EtP0JsU2Uld184MW9hbyt9PUdtMyg7Oy1vNG5DOTco PD0yeiE7SHs/Ngp6WFlBbXZAYVYkRnMmJVc/WjBwfng+ZkVhRDwtcF84a0tA cGU+RHNBYmxgbWVIQ0Jld0w8a2dhSm9rZzA7VTNqaU8KenAwJFUlP1NiVWVr bTFkWWk+cXZpeWlKfFpWfHVWYXl6cXFZPGlGfElyfCNtdHpzSSskLWZfNj1m QUhxTz0rfiNgCnopfWAmPXlXen09O0srI0kkQXsrQnF+NjdhPUZfOSMkJSk+ P2gyNnUwPUZ5XzstTVokfHFVX3diPUZ5PyQmIU93dQp6eDdAI2crcjU5fSZZ PDFGZzUlN2RJPztvXzAwMDAxYlclPUowNl55MFcmaSpIMzI7YlJhe3ZHVU5C e3I7TkJ+QzMKellkIXp+MHY8XzNLfnpZYD9iR1g1KHJfM0RhR0RufkV6UWMr Zi09aHQ/ZWY0Rl9aVDF1d0YlUihMYl49V1dmS04wCnpGcUAkSz47MS1vYjY5 N2AtXyRwfkBPa21QYDwmPFp7cURAK3hFI2s3IVdoJVc1bl5uN1ZxJWhUVVkp dSZPLXd0VAp6R3VIXyQ4TlY/Kko0Zjd7cFQ5TG1PeTBnVEhTQG9hdnU4TytW OzdoT2FeYjlteWh+bikrQHAqIVo1Kk5ReVdIKnYKeilXZ0xgT09MNTElVEhJ SFFDUTtnY3N5PXViIzJZe29MWEw4ZTZmTmpfTzg0ZkErUCVISCpGak51Z35a NmZ8c1VnCnpLbG05WTVDa21vZytkYDM9eHtqOTAyN0h1VzB2SWdLT31BdG1T ckZpTyhjPndOSVpAUiE/TExXIzFpWjJqM3dESAp6V2ZgT2hwY0tKbUhqfjRX SCgtb3VUYW1ZO1NOdEA/XyNxZ0pDM0JHRElEUWtiZ2tlKD1sd3YpTlFnSGN2 TDlpbFEKejh7NiszISshdm5SMEl7OU9zOSgrQFAmZGsqP0lyckJRaiprRnNS cmxEbUdnej8oJkZ+JWEtS1I9UHpIa05zPXN5CnokYyZgZWdGUWowTkxKKDxH VChvY059PyF8SFhCMWBYQTR+c2AmVis9NEVHWkBjfG5qc2w0V0p6PmRMUzx2 N2FUPQp6UGElfWMpZTZXcFJqcj53Mjkwc01gR1BeSlJUJmh1KFAqQVIySCVD eDhec0QkTztlIVdffDxDVCR1TmIyUVhEalkKenctMiR6V0BEeCtsMkROKSpz c0B7MlhPZEQqTl5aSXQ3dXdubV9xTSN5MnA0VFljKjdDdigtQSQ1JFNlJmMl ckIoCnpEekBEXj5GOTlXd003T2diUiklNHVoK3c4SVkob2NWPnkyVFduclpB Q21hREIwMDAwYmJWWFFuV01Pbj1JJTlIVwp6VlJVNXhHQjdiUEVpcDFKRmZt anpGZ2kzZEl5NXZaRmZ9P2JGZ1RlZDlzbUZVQzNIbnRiWXgrNFdqYndkV05C dTMKdDA1VUshRmZBfVNFaWZAdUdCWXxmRyYoUmdEPTstV0ZmaHVPUmpkRjIw MDJvdlBESExrVjFuJk9QeVlZXwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9p bWcvZXhfbWVyZ2Uuc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9pbWcvZXhfbWVyZ2Uuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmViNDRiZGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9tZXJnZS5zdmcK QEAgLTAsMCArMSw2MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu Zz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0 aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKwor PHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50 cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMu b3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRo PSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRh ZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAg ICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAg IDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAg ICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9w dXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9j YzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRl ZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6 aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T VWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZB aGtpQUFBQlhsSlJFRlUKK2FJSHRtRytJRkdVY3h6ODdzek8zOThlOTdqeFhM aTFJRXFuVXN4RGlJQkJmK0VLa0RBWERpQWcwTWlXUlNzRUt3a0FOL3lIQytT STAKK1FhUTZRUXZoa1BKRkxRUktYTWQ1L2dIRDBMTzk1UDU0NTNydTN1N3N6 ank5ZUdabWIyNW5UM2E5MjBydisyWjJ2L1BzTTcvdjgzdCsKKzMrYzNDMU9Z d2hRZUN3VDh5RU10RjhYbHEvbjgvT2VoV0g3enBpYmZaMHcwZ243azVhdncz cnBuR0JveVVGVVpSMzJkUnN0WE4vamcKKy9UbmN2NThGQXFoS2dMcTZJSHNQ WG1mcmxtZEpwUzBBVkZXaHVrcGg1NTQveXFHaHNCQ0FvU0dEdnY2Y0VFV1Ix M3Z4TEhmaldmbmoKK1lBQTFLUGxrMHVUZXNJbWlCRkFVRTlBbU9YUXZsTEkr YlJMeHlBZ3B1TFhxNm5RQWQyczlVU3VIaG11REtDbzROUktlcGdKUVZhV2kK KzJHT2RHaWtuSGhuWGVyeXhxM1c5V0xXL1VleHFYUy8rN1ZnY2xMU1IyMk50 ckh4NUdlMnh0b21PcDJRVUxQYUp4dFp2em92b0xTT1AKK1gvSzBUckg4M2pl YjgrcXViRUtpdHd5YWx5MmdhOGlnMGo1RVg2elRPWGUyaTlkV05IRmoyRUJU RkhRVm5ndHJIUHUrazQyckZ4RkwKK21vUlUwQUx3VkxYR2w5OTErTTVmTmlF QVhVTUdGKzdrci9LMXVNR1ZlQWFBMmdxVkNudkR4NUltMTRhejZBcUVBdGE0 YzVkVnlFTDcKK2JQSmtCSmhYcTZNcnVCbVpVNk1SQldaWHlUTnFkRVlLb1dR aGlxb1dOZjZWOEUxK1BTYy9KMnp1bk0yZkdlTVpGMnorOENuL2VYN3oKK21i OXNHVm1aYm1ISGhrT1kyVUdYVTRQMWRCeVRmRFk5a0FzcVdFL0g4Uloydkh1 UWpNMExJUWpxMCtrODBjSUJuL25MdXJYTTdDQkcKKzZyYjdYZFBrdnMrbUJ6 Qkcvblo1b1VzK2t4NGduZXdCSVk4cllSVSt0a29Xb21vUHVRWWlQNml4Z1Fv aFFJZ2M3L01iQjJYTkNPQXYKK3dMUTh3WXBSR1pDOGZiVUtPMWZwUW9MRk53 VnFzQjVOendVVEROWURvRlUwQUxnQ2d2cDB5WWNhcEhCYlREQTBvM0E0UlVk VEl2UloKK1MrZzR0dG1mUDc3RmwrODg4YUV2ajQ5dmxTeEUwNHA3bFRWNm9y ejA5a0d5MlVHRUtiT2lWVFRRY1h3TGk5NDZRQ1psdTVidFRoZS8KKy9aaW10 ZnZJalBSTDJqVFJLaU4wbmR6bU8zOVpheVNUSHBDdVpkZUJzNVV5cVFHTVpD eFhKM1l0WkViNlNRM2Zzamt4cm11VjFQM1cKK2hpSmtNaGxxcW11SVh2akpN L3NEVzN4SHdCZzNjajRMUzdoK0lFeFQxc2M0QWg1YXlIMGp5Wk9SUnY2ODg3 dEhUSHVzalEzdmJLQTkKKzFzWllNVUlJaEdYbEFuY2l0bGZiY1NaaG1wN25X YWFGWlU1Q3J6VXJQSS9CZTkzTW5UT1g2emQvNUpmT3IxbTF2OUVUOU1aMW16 aDgKK3RJVmRyZXZGSjI4Y0NZQjBvOUZaY053cEdHcWd3ckZjMDBTejNVa0x6 ZkJzTnkzVVVEQ21rdDZuZno1L1ZyVEgyakRydXBuUkVDRWMKK0RqTnRXaGhG a1FrZTNZY2RQdHJDNlk5dUI4NmYzQ3FNbm1qZVhQcXNKUlRMTjYvWk96SHZJ MHVibHdjY01aZTZyeEZQOVJGUDlibjMKK042N2I1SXBZUEhzRnB6bUMwUk9s YWUwK3Nxa0JRTmFCVmpHZGk2M2JXTGhtRDVtUlBuZjF0VkFEbDA1dFo4SHEz UmdKT2E4UUZucGwKK2hNcy9mT29iVThtdXRiUjV1VzgyblMzbWlIQzJGVUEy MVU4cTBTTy9qS29GSTlGTGF2Z3Z5UXZMZFMwajBVY3EzdTA1NlF0aHd1MTMK Kzhld1Z2aUxBcm0zTGtvSDVCU1dzM0Roa0ZseURHSDNEQnhNdXhBbitORWZ5 N2duVDlJandyTEN3RUtiTk80SXN4K1ZzcnB3WkdROWEKK1pRVEFVd3ZPVlpp V0swQzN4K21WRVprRklVQ0FYaDBwT0hmWi9nWDhUN3BXS1RCNm9peFl2VnYy VkphRnNGZjQwcW50ekg5OUorbEUKK3J4d29CSHJWVEs2YytZd1hYdjBDSTlI cmxBNTZkWVNyYlovN3psL2VYaXZaeDBqYzdwMkVjTGRTT3RGTEt0NmRWd3Zw NFY1Rzd0NlEKK3c2MWNiK2FIc2dweDQzQ2FSayt2WlMrN1QzT1k2OE1tNDhX cUJBaGh1Y0U0UFJlUWN5TkxlSUwxaUgwQXlpcEVyNHg0c3FCWHpaUjgKK2Rj UVRzT05PRlRVelBjSkM0Y2FDY3o4eXJqV0ZLVXhoQ3Y4di9BT2p6Z1BqUTkz WVhRQUFBQUJKUlU1RXJrSmdnZz09CisiCisgICAgIHg9IjAiCisgICAgIHk9 IjAiCisgICAgIHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIKKyAgICAg aWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X21lcmdlX2FudGlfam9p bi5wbmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9l eF9tZXJnZV9hbnRpX2pvaW4ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu LjdhOWFhNTFmY2U5ZDc3NWYxNjlmNzBkMTE1NzYxZTk4MTc1NDFjNDgKR0lU IGJpbmFyeSBwYXRjaApsaXRlcmFsIDE1OTkKemNtVi1GMkVoND1QKTxoOzNL fExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tSM0RkQmo3MDAwOTNQKXQtczAw MDFgCnpzTmBtQShhZz45eXVSJGR6d04pbD9hPE5rKTcxMEYkblZJPkBYTzJi KzFtQm8tMVhBYV5WSFB6KXo8WGs7ckcwfgp6PzUzI1pzSCozeHRtbmJQPyMw Rkx3NipIQ3g5aHBPPzlJO2QoYjRrNSNQN3clQFc7c1QqVnB4I3ltKFRMOEtK fnAKemlNaVcwaHswSCMlV3V1QE1aVzF3ITBBKU0+Vj8kc2wtVGZrJmdfSEg/ VGdnenQ+NSFhITBCUGU+dnFsVHJyej5FCnp5eSp3MTt0O0ZpOG17QUEjcGBq KT5gdVBzVEVYWEojcHNnTj8tSHh4RVZKWkR5eWw3MT94TXpEZFktOWJpbGNP awp6KXVZRUAhSCtpZEB5WVApeEFnR0heWUY7Oz5iQ0Zjd2VSVileWHxzTCFT MlMjQDd+X19xeyg5ST1BWX4zcDZ+MG4KekA5TVNiOyt5SD1vOVc9MT8mcV9z dG13MH0+YiQrfSlZUzgoJVZnXjBvI0B9MD0tISNgPUNZPkVYN0tFYD5mQGQy Cno7KypnM3YqX0tKPWlIYT08Z2xwRVghR3NIXjZiVSE9Q2JZT3ZGK29xQCNA Mj0oclZraWlNNSUydEpRNHQ/I0o9Iwp6I08maio/QmNITTtIfmlJIU19enZ6 bD8qbVZuNEo/NlMhcVMkKDRxMVgxSn1fWnxMNWI/QmNLRypPVFNkbEh9QnAK ejxqYWAxVT5uSXo4ck0tRztaIUc9UjhzWm07YilzUXF0Und3bT9pNCo8TEJG IT1Hdjl5KH4jclJrSSQ3fTsjNFVBCnp8TnEqaWloSE9+biN4Xnh1MEZjYXFx KiNXPUd2QyMqX0d3a2w8VktFPEk8NGgoVD9LS2psTzZ3ISpEfk96PTRPbAp6 T3F8WVBkYXl2Yz90OzdUZ1k0bjFAOC1iaiteWHJAc19FTFB2YGlHfEA4NXtN UE0qPFp0S008QT53bWlKZnhQZzkKendPMURFLUteQH10TUJCJD8mSDFiKntB NSZyfDgkRihVeGNILW1LISFqcF44QDtMQ35OJGNXI15odjM0ST5mTmcxCnom V3ojQmpOaXpJLV5QYUMjZjllNnFxbF5CdXdGajBOKXlEOGd5R0RLPWhkYSYj ZklMKmgyNnUxPUZ5XykpfjQ7Pgp6eVhAWSY9Rnk/KytxbXVFeXluIVQ9Rl9D Py1NWn1EeGFIOEg8PEZ0eiZZPGhzeDk4TlAtbyU5NXpKU31rZjhAPWQKei1O SisyIUdoJEBweGVCRCtQaSteJSUwcjlmIXgxPStQWno/JWJ3KVVwWCVBUnNH T2MkMDAwMDFiVyU9SjA2XnkwCnpXJmkqSDBiKXg+TTRia15eMDVFXzAxMHFO UyN0bVkwN3c3OzA3dzh2JCFrNlUwMEw9QUxfdChZJDc1Z14xJm1BfQp6Zkk8 P3whbzx3TiVFciNiIU82d1YhXkYkU0ZDZlQ3UD5ZYlRoXlFFb3hQK3ZYRz9S PzFvVj56ZChMJWFrJE90aEMKemZURUhqc2Fsa2psXz03cHE2entLUVZxZjtx KHhPLUxzTHN6Ull6QSgtI31IfSg4JDxDbTdvPz1HampffFJWITs3CnpUUlQt I2RrMDQrIWRpJjQjVGlNOTMpdVktKGlJJDhackhUQUJXZHlRXnohb1pfVkRy Yl5BR1N+NGgpaEcjK0Q/TQp6TFhmcTFnQCVUT2RxaE09TWFPc3UjbTI9YVZB WWF7cTlyVVdEWjt9KUl5b2cza0NycktFJEstYW5mQE1HJD1OeCUKemMobWpw WXc/TmpeVXdEdkNAZDsyIVErPXdCclJuZ0FPSW9EYVZCcjIzUz9VPHZ0bS1L Slc4ci1ZVX1ENzhrP0cxCnpUQ3IocUwpSEAwb31FK2QoYjN0fS1QN0NHS2NU O0c7dmBIaGxjITliI3NKRiQ5O3JGZ1hMTllmY0Zta015S2x+JQp6eHBVfEEm Qk4zKGY1RX48S3NgIX1MMyV1TG1uPmFZPiM9O3IlMmxpVD1ZYUl8dWZmIV5j SFIwN1E8YXBJSGZ7cHkKekBoSXVvVHdDWHtXJFUpPk8ldnZWXmkwQCtzYiVO ZFVBeTx9LU00WW17ezJlR0EkRmpERT1VaEhUWSE0elBYXmlvCnopQiZgbVp1 IUFPaGRxdVFKJEMjPUFJS3xNe1E/V1B7YjBZR29WRHVJYzh9OSUmWW5BdUpI KCY+OGUkaHRVQSVQSwp6PE1geihTRmhEeXpqM3FpUngxTW07SVp3fT9LOChj PyVjaDF7e2lrYWhOfFZyPjA9S2NjfDUtTTtLQF9tWCQlRHIKem0mUTxTZDNO WGRpPGNnK1VjWSghaiEwV1AtZTNLMnxCMSgma0RvcSRDZXw8ND90bDZFK1Qr YCY/Pn5NTHRMNEdoCnpVJSVnYWVFJEM5JnRHRC1KYm0tXy0jZF4wS21ZI3lQ ckRFczE9cy1xQ2dULVIhfD1xPzAwMDBiYlZYUW5XTU9uPQp6SSU5SFdWUlU1 eEdCN2JQRWlwMUpGZm1qekZnaTNkSXk1dlpGZn0/YkZnVGVkOXNtRlVDM0hu dGJZeCs0V2pid2QKeFdOQnUzMDVVSyFGZkF9U0VpZkB1R0JZfGZHJihSZ0Q9 Oy1XRmZodU9SamRGMjAwMm92UERITGtWMW41dnJGe1NaCgpsaXRlcmFsIDAK SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0 YXRpYy9leHBsYWluL2ltZy9leF9tZXJnZV9hbnRpX2pvaW4uc3ZnIGIvd2Vi L3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbWVyZ2VfYW50 aV9qb2luLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5hYzM5NWM2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbWVyZ2VfYW50aV9qb2luLnN2ZwpA QCAtMCwwICsxLDY2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n PSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRo IElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8 c3ZnCisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRz LzEuMS8iCisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5v cmcvbnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5 LzAyLzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8v d3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9 IjUwIgorICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFk YXRhCisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAg ICAgPGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAg PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAg IDxkYzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1 cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2Nj Oldvcms+CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVm cworICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpo cmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNV aEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFo a2lBQUFCbXBKUkVGVQorYUlIdG1HMXNXK1VWeDMvMzNiNTJuRGh4MHpna295 K3dGZFkycFpvMitOQWhJYnJzeThUV2dzYUVSS1ZPb3BTWGFZd0oyRFJwMHFS dAorN2FaSU1BWVRTRkNGZ1JpTEV1MEZCQkZ0MVFwcFE1Vm9jRGFhMGRBWG11 TG14YW56NHRpeHIzMmZmYmoyZFJJN2tXeTFua2J6bDY3aworKzcvSDk1eS96 M1BPY3g3REtsYXhpbXNDMGxMaXRUOWRGTWZmbXl3eHZIMUhFNVh5OTkzYlZ2 TCtxd1YxS1hIOHZVa2UyTHVPcVdrTAorV1pLUVpBZzJhRHovNGprZTNiK0JS Q0tMSkVrb3NrU2dYcVhybVU5NDRyRWJTS1pzMTk3dlUvamxiMDdYU2tONUlR QlRVeGJqRXhsaworV1VLV1FaYWNIM1ptT2t0OHlrS1dKUlJGUWxZY2ZtNHV4 OHhzcnNTK2xwQnI3dkVxNFhNanBPelNhbWpRUU1KZDgvWDFqbG1nWGtWVwor Y0d2RTcxY0E4UGtVSkZseTdVMno5ci9QNTZaclhidDQ0ZkJUWWxkWFdMeHcr Q254djQ1bElTcGV6UDJSYnU3NjJrNzZJOTFYSTU2cQorVWJiWXJ6UU85ZytM M29Gb0NiLzdsbGJLOFJ0Q0ptZGp5YkwyVDNiZVdMYnVhaUtrZHlES2JUdTNj R3Jhd3BEQmtDVzJOK3IwdmhuaAorL205M0VFMW04U29TSGtWaWcwL2o0QnNu dVczbkZzN09Xb1IwbVRXR3hMYWd6dE4vSGxqV1IwMkVBRVRpRnYrTXBmRXFZ Q29TWm40cQorT0RPYjVjeHNCcjhpWWFvU1JuNHFpTVF0QnVOcFdqMHliVjZa Sm4zbEtxaVprSTZnaGlialptUlR2Y2JId01ZNkZhK0NtNUhyVE5XMQorcjFO eE05THVXem5VcW9SSWNtWGJ3NTNOb3h4K2R6RTNrdWRmK1V1cC9XYjVBcW1Y R3dqbjc2ZUFZOERYMTRVNHNZeVA2b1JJbFRXNworenVrdWZyci9XYkxXNWFK ak5jZ0hoN3I0eVlPL0k1dTVERUlBQWxWcjVHVDNzL2oydmtzaWtVUFhKUXhE SWRpZ2NxQnJlRmtmTmNrSQorUU5hNmpKVVpkVzZFUUFobkc4cG1Kc25NUjBI a2VkdmhwNllzNHZFc0hvK00xMnRqNkN2N3JGSklsYk5VUG5naGhQc1pJY0RP Q3hORgorbTBwUlF5RkxnbDBnUkN3UUkyeTdtcENxRXlKWElVUlJHOUgwdkJB RXF0cFk1QTNoWmtiVm13Qm5BbGRWMmEwUjAxUldmSDkxR1ZFcQorRTlLNmRU Y25ELzJnTEQvd3g4ZEsrSVQ1VFY1NytYd0pmL3VPSmw1OHJyeVA2akpTb1pE b1lDL2I5enhETmhQTE55ZUJvalh5NGFzLworWXR0OVhWanBXREVqUm9pQlF6 L2tlK3Mxa3FjT0k4YitqZHE2aGVDMmIvRDYwZTNMK3FoeWFhMmM1bkt3MGpF eXFjOUFPTVd1RzA0dAorV1BNeDBuTVhpd1UvTWNIODZYRWFKLzlBaStyQjlJ Wkl4aTR3ODg3ditaSnhLM09qbndwZnkvVWxMYXppeGI0bTBFWXlrOEx2OHpN KworUGJLb3hhdzQ0dWRicTdCdDV5b1V1MjA3SXZMOHhJbC8wRGdwQ0JzQmZJ ck9GM3IrdzZhK000U05BTnZUNy9QWjBUZkt4bFd4a0ZEZAorZGFUU0tWcWJ3 M3g0L3RnaU1mMlJidmJ0MlVkL3BKdWxZcHhBaFh1UjcwNUNnSjJ6WFNIeGZ3 MFNVRDN1OTBidXVRbUE5cDRoQXFxSAorc1JQOVYwYklqUzIzTURrVjU0WjFH emwyN2lWKy9Qb2Q3T29LaTExZFlRRk9hOTYvOTZFU01hcmVoTzRKbzN2Q0dK NHdxaEZ5ZUtNSgordzJ4Rk45c3d6RGFTSXlPWWlrWjd6MUNKR0ZQUm1QNGtV amF1aXJmb1MvRnpvai95Q3FPNUQyZ09OVk5YVjBkZFhRQlpra0dXa0NUbgor QW5qK3BlZm9lL3lTTkh6a29JZ085cGE4cTNYcmJwYnlpZmZQc3lIaloxUGZt VVVpQU9aeUdXTFhyMmZIMDBkSzRxNjQyTVBCOVpJagorQm9hSEJvak5ScGlZ dWVnK2YrajdEN3NpT2p2MjBNY0Jvb085ZE56N1c2ejVXSDRFRVdoR2lNR2VK OWx5OTYreGt1TUlHMEF3Wmh4bgorNXUyL00zTFBUYlQzRE5IZU0rU0ttY25P cy9hcm5jQ1JrcmlxNmxyaDRQcXltU3dzcjRLSWZYY2VjTzJzMUFUemlSRm41 eFlnZlBtdQorTlRkT2F2WUM1Snl1VmIvNVpxSW4zb1RKR2VaMmJjUlVOSkk1 aTVuc1BDZU5XN24vanU4Q1Qxd1pJY3VoczJOUFdSRUFRdGlJbkowZgorU1Zo UTdNTGg4KzNYQ0RiaStXSXpsKzI3dUhUNktITHNJNVNXemRSdjNjbkhwNzVD dWRaN3hZVVVndS9qUU1relllTXNLeUVjVVlVQgorMGhhSW5GZzBjOGxlRFcz ckl5UTJQWWpISTJONEZSclc2aVNIenk3cnUyWW5STTNUQkxtY3U3TnJualVP NzEzakxMZEM3WmpOUU9XegorVmszK0NheWthNEV6YS8xMWNIY0p2OUsvbHpY SlNIU3dsODNmK1JXWnVURjNsTmZOWmo3NjI4LzQ4cmQrUVRveDVvNzN1bjh0 cDk3NgorT1Evc2ZmenFueENyUVNZeFNtcjYwd1hGbmdNZ1BUdEdLbjZ1V0RP aWhpZkVhaUFLeDFnaGltSUsvQUxPbmNFcVJNMkVrSit2M0ZPaQordmVDb1d4 QldlRllGYXRlMXpPWmkrOFdwQlFEZHY3WW9EakFDTGNBMTNMVldzWXBWck9M L0MvOEZHaTBqUTM4RGphOEFBQUFBU1VWTworUks1Q1lJST0KKyIKKyAgICAg eD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjUwIgorICAgICBoZWln aHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhf bWVyZ2VfYXBwZW5kLnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4 cGxhaW4vaW1nL2V4X21lcmdlX2FwcGVuZC5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uMTJmYzU1ZDc2ZjUwNDE0MDkzNWQ1ZmE0MjJmOWE1MDc1NDMx YmJjMwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTgwCnpjbVY7XzExdFFB UCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAwMSV3MHt7UjNEZEJqNzAwMDVK UCl0LXMwMDAwMAp6MDAzcmQoTmN7V0hpKkZvc054Vy07JClUM2EtJWdHdUgo VXZIZz44emRZLTl4dTBGTXlldE5NJWdzPz8/dl9wb3IKek5rRnttTVpXMmZ3 cm96bT0xam9wcktzZW1zcG5JfD5SUTMpamxvbHd5TEZrb2MmZT1EaU1pV2Qj cGA2bj0mckJuCnpwflBPSSQ2JUpzVTIpNm9xez9HJiZGLWhvV19yJS0rckVG PnlAfFpOP0EqVkIrYHhnb3p3TiVpP2NLcUdnVkY4WAp6IWheclQ/Y1QoTSFv dSFfKWJRVExnfkcke2lgNEdsJEEqJkNANVJSTnkzd1A+I18rRCVhZ15CYjtt bkhTJnlDQj4KekAjTXsoPGokWVcmR0ZeVnB5U2J3PDxGcXcodlF5MV4wZWM1 PGtPSmwoVl50ams+PTgpPGtnYlYoZW1jaHIwM002Cnp3JiM1MSpPVFlmckxF dWQpNzEwUyliIX1ycnMmdEY9R3Y5JSpyKFJrXnR0UFE+RGoyfis/Vk92c3B7 RmIqeEJeRAp6P3Q8eXVzX05YVD0tLSpeK3FtaUFuIU5DWT4peCNDO2hYSDt5 NmZNcT9CMlRTOysqV0B0P2MyaD5nMWkrPDsoMmkKenVrR1F5P0JsUU88Rk1g SHU7QWVMPyY3YGU8Z3hES3pVfTMpPyZoLVo8LWhPZCEwK2dAQDlESmc9KXYm bCF0ZCZ+CnpAOVZibD5jakJ0dygjdD9eNmJVKT9aKSUoJE1vXloxVnE9MjAw MDAxYlclPUowNl55MFcmaSpIMzI7YlJhe3ZHZgp6Njk1MVU2OUU5NG9FUUtB MGtLSSRLfnpZYD9VUGtnISQxXjt2KUtVVUxVRVUxI29nV0FvdVYhNz95a2lo e3hDXyUKejA4UDh1enpvOSs9aSRFV2R+QCNFdiYlNjVgak5zcFFTI0o9YVBk Qz1MSFMlfFZwaD1ycnhFZFhhQ0RCflYqUD82CnpPU29UaWFndEtWUShIKjNL MFQqIWtlelBuOXkoJlIqfFJCdUQ1e2pMJDtjfW9Xd25KUUJqMHgraEUhKFpH NHxiMgp6NTZKfHVxVTZhaSprSkhAWE5kTjtFO0Btc0FTb3llZUxkbEkySy1I ZyFPPlZmaXliNlJMZmstPEpTcHd0MVBPdUgKeiRBe1kmY3NlYFd5I309IzZC TyNAIWkmaG1IZD91YXYqRXQzV3VRRk5HTTVVeXpgKSVHbnp6N3lVcXx5UzRQ a2hGCnp0RlJoZUV1eDc3KmxjVTg5O2RxS1RpciNNWFVvYUs0UDRBa2pfZCpE P312dG5ndnlRQ0szTHBLPkJhVjI7NHk1IQp6RmNwXj4zZ1JsSWtmKEhDbz1Y JSZROEpHYG10dVU/dm5XYyZHWGsrPXw1PHo+KStLLWJPMVIoTVR0MF9tYkFR ak8KemJ1WXd7VkdBeypOaVk9YFdWYjYyUXB2RH1zKnhGdHghR3dBKT0wOGN1 Uk5gZ0lhRyFFcCkpZnpzYUR9YVN7WTc5CnpPdlpJc1hzV0I3UVhyKDJpU3ta aDZHZEtgajFYNVFpb0VpX3t6UHhoem4hSCU0dz4lJjAwMDA8TU5VTW5MU1RZ UApDZ0VneEYKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X21lcmdl X2FwcGVuZC5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2ltZy9leF9tZXJnZV9hcHBlbmQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjk5MmVlMDIKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9tZXJnZV9h cHBlbmQuc3ZnCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZlcnNpb249IjEu MCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBD cmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3Jn LykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcv ZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRp dmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cu dzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpz dmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0 dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEi CisgICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIi PgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJk ZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIi PgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1h dD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNl PSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4K KyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRh dGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisg ICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncw S0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5D U1ZRSUNBZ0lmQWhraUFBQUJhRkpSRUZVCithSUh0bDF0c0ZGVVl4Mzl6MlMx YkNyM1MwRklDVW9ud3dDNUlFQTBYSlMyMmJ4aldlRU5zNUNvdnFCQnBZNHdt UGlDRVZCSlJzWGh0CitSUW1FSWhoaXFOUVFJQmFFV0xJRmdTSTMwMG90YldI YlFvSHV6aHdmdHQydzNaa3BMZE1TemY2VHpVNitPWFBPOXovbi8xME94QkJE CitEREg4bHlDWnZWaGY4YWNvUDNFbHl1NmRrb21adlRCdnZPbDhBdzNWN0VY NWlTczhNWGNTcDFzRHhNa1FKMHM4bXVLa2ZLK1BWNTd4CitjS1VqaUV1UkdL SklqQnZxWVAzMjZzSDBPd3FtUkFCODF3TWNhYjZEUzRGNFJTSmVDVzM0aGZZ Z0Y5bzdTVkFrNGxXSk9PbUJIVVFZCitsa1E4eVE0Y011RVRtWkRvb0JiSUhx YmlVZ2lmeUtoNHkya0dCYVlldUljbGNtVC95UWhiWFplOWJMZlBjUHl4UGk1 dVp4eWFFcEZQCitTM3k2YURLdGJVRmtHUlJaSmpsWlpkUG1pNVN0bkVwSGg0 NGlnNkxJSkNRb3JOMXdybzgwN0kxRFMwMzQvUUdhbWdPOCtId0d1MzVvCitS RkZDOXZaMmpmYjJJS29pb2FneXN0eG5EbUhZRlljUFhOeDJ4ZUVESldKbkhG b1NTVXB5SU1rU0J3NjJvTWd5dzRlSGhnOGJwcUFvCitVamhHNHVPVmlPOUtL b3RFaGE4VWdOa1R2ZVI3Q3Bnd2FscVVOdXlNUTFNaVQ4NUtaY3RYbHczdEgz NTB3WGo4SjZIbkNsOHA4NmJQCitCYUN1dVpaOXZsTE8vbjFjR0pHeEt3NU5p Unc4M01LeVJXTU5kMnZWeW16TDNjcnpGTERudDFMR3BtZmhlV2hpbU14QXdw S24zeDhnCitaMDRxVFUyZHpKNlZURnRiRUFqdGx0OGZvTFUxU0d0YmtJNE9M ZUs3NWJucnBGMnJHNlJITW5Md1hUckQ2TFFNRHAwcEh6Z1c5RUxrCitmckU4 ZDUxMCtXbzlrbUsrVEZLU2cvUjBKd2NPdHBDVzVveUl3NlFrQjRtSktvbkQx YWc0N0lsQnlWcXlZdXpFUEhjNU53L3RDenNoCitnR3ZBUEhjK2pUL3RpeGpi MG1YZllySkdyMW5ybHdNdHlESWNPbno5bnJOV1R5Z21SQkk2OWpGMTBTYUNn V3VBUU9pZ09wS3AvdVoxCitwaXpjU09CT00rZ0NJUVNxTXdYZnRyZE0xeGlR ckhVMzVycGY1bExqS1I0ZVBZNlN5Z0t4UEhkZFJPWUtCbHJvdk4xQWV0WmlH di82CitIUFJRdkFYdU5IUG5aajFDMHhHNklNNmxSVTkrTDBRV3ZKQmwyQk1Z T1d0bHowNTNVMWxieGVPVEgrUFlxU3BLS29zaXlBZ0I2Q0wwCitySWVjRGo5 clhUOWRSOWQxU3lJREd1d0FUM3NXU3RrcHN6aDI2bmRtVHB0QlJjODBySWNj QlJDYWpxNTFPYXpwaUtDRzBEU0Vwb1AyCitnSW44N1B0V1hHcXJZdWEwR1ZS Vkh5WFBVeER4WGxWVGNEaEgwbEsvQjBkY0Jxb2pCUURGbVlyVGxZblROWW80 VnlicWtEVExkVXlsCitaZGRkNGNMVkdrYWtqcUNxK2loamhrN25ibG5kaU0r bnV1eU5xTGx1eE9kVHMzMk5vUjJUYm12QTcrejdhN2F5NUtYRmZQSDlsNnhk CitmU0NDNko0YUw4c1dyWTdxSHI3YmZKRlZLOWVZZEEvdjk0MEkySGRYVUZU ejlPejNCOGpOU1dQSHpnYWVlemFEWDZ1dUF6YjJXbURmCitYVUV5cVNOMnd0 U0QzUFIvcU53ZmFhdnJzcGZ0Tmg3ZlU3MGxsVVdpN3ZaeDVQdTVRdDRqVElu a3RSYno5Z3FqcWx0TTBSS2pxbHZNCisycnNJVlBoS3FidDluS2RtenVIYytW cG1UL1N5aTQrajFyR3JlN0RVUkgrcmJvV3ZsTmRlWFlFc3k1dzdYMHZuMVVU eVBRWFFnNGhkCiszVU92UlBwYmRmTThCWHoyOVdiQStvYVkxVENmRGU4VkU3 amQzRlVZQldwY0tqVTdsckt1OEFNNmIxNE5yU1VFVGxjNmYveTQxTlJYCis2 eWp0cmVwMmsrdFJkZSt1RlNFNVJVdXFHNEZiVGFTTm1VOWR6VVpHdTkrazhk eDJBRHB2Tm5MTGZ4bWhpOUNHSmZhejE0SlExUlZPCituWmI2UGFGWWlLaTZX b2lFcnZkYWRhMFFQbVZOai9ydmxxN1FkZEJFLzRoa3VyMkdWVGZUN1RXc3Vw bHVMMlpWMXdwQzB5TC91eFhRCitmUks2UUFnZElheDdMVk1pVjJyS21iekFT TCtGVFBJYTZmZWRQcE1BVU9QU2FEeTdEU0VFRGFlMjRuQ05BTURoR2hGcUdJ VUFJWEFtCitqT3dmRWJCUHYyYklkSHM1dWJQSTBINTY3N3VHOWo3M1dtQ2Zm czB3UHFmUXBMY3hrNmk1ZEsySjJLVGZ3WUIxMXJKSnY0TUJ5NnhsCitsMzVq aUNHR0dHTDQzK0pmUzQxOS95ekwzT1VBQUFBQVNVVk9SSzVDWUlJPQorIgor ICAgICB4PSIwIgorICAgICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAg IGhlaWdodD0iNTAiCisgICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2lt Zy9leF9tZXJnZV9zZW1pX2pvaW4ucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfbWVyZ2Vfc2VtaV9qb2luLnBuZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi42Y2U0ODM5ZTAyZmQzZjE3YjVmZDhlMzU4 ZmYyMDQwNDZjMzhkMjZmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMzQ0 CnpjbVkrQ1N4ezM0Nz09VHFFbjsxWWIpa3pSd3ZPNXM4eFRTMT1wZHBFQlFT X3M2ezspKFI/I0JKU2o0SnEzUkpCWAp6UURrWVBoIV9AQVIwSXJ4a2RURUM1 PWNUNHZXRn59RUh9QVg/b0J8JE9ydCphO3J3VUwlPXc9RlE8YSRUPDZ7NU0K ens4MT4+OyNoMTxsR2o3dSVGb3coSCUlOW9wLXx7TWlFIyhfYztqUWRFPDEt ZSM8N3pJITlsV3hPdERQeDlEKyRGCnphfDlZOysxUEJtTTJnN2UydyZpd29Q Pm9VY3pXN1I4VVMxSTBLUj51eT5vXl93YkpRT19lKWJ4dWxXQGI8WnZCNAp6 b0AxQj4oSFM9OGgpcGE7PlBVcjJ3KnZwNjlqfCZOMyRMVns+ayFscnQ3JnBl RjJAPV9XSzN0NkZMMXpDcksxO2MKekg3bnVBRCE1R3pRO2x3eCotWml2aW9y IVV4PHRAaTZ2LUlTcTUxQkc0b2Q+NjFsRVROeEorUUg1Wloydj47dyhjCnpy JDspfiZTeDZ1aHtAZnxORy15KDw9P31wbmVgS2x7XnVfWk03cnFfR281bGY5 SmFHO1ZESD9sJlcqX1F6XnFFYAp6KHJEY1BGbCk4R1plZUFaZnJwND1UJWtt U0xaP0ltRTBpdnlhcWNsWXZ6MyNMQU9FRnxlX0EkQkNGblhROVY3RHYKel83 MzQwOGB1TXhkej11e2pZI0wqK05hYE5sa1JWbXckWjRydypvSTxJflRUZFV9 KChja2VxRFRgaVBmKHRvQ2JACnpUPz82ZGpNRUpVUm8jckQ3U3dqUlZKVTNt SUg1NzhtNXRjTm0rKj04cXNJeWZKQmhxVXVmU3IrQFdQO2NGZUFHVQp6T3gx d3VyKjVhalgmSDV4U3FMTyo4WS16RSN4LSkmaUBLdFlLVWh6K21pOXdzYn42 b0I2VUBwXk5KcE1VclYqPnEKelpDQX1lcz4qPWA5NTFzJm5iJjgmTig0KHR3 c0lSVldSJGxYckZldCppQUJ9I2NCbyo+Qm4lM2lXYFBTKjdeUTckCnpfOCtR fDNNS3Mtei14eFZOa350Rnc4S15uKW5TLTBoKzk+Uj4mb0dCMSpLRiEtc0Nq JUFxfnwhT3xoem45NWRzPAp6V1EmNFlDTGIhMTRQNGM2YTFKQlNzLXs+fUxs ITAzNHNnd35LMFVXZEpCQmsmXiZsM1Iwfm9qS3h2KktQVyNncDgKeiViPEpe OFpNPUhOOWp8TGx5Q3FRMXgjZ28hQF9nZXF2eVNqZVckJndvU29oUjVGNH1X QWVNT3xaU3toV1peb0BICnpqdDx+Y1g9QnQ7MkE0KSooSyo5M0h1TCtuQlFj M0x7XzNqNHVmRSQ/LWNsMkdfaHg0IWlKSGNYQ1o+K35oND5kWQp6U0ZkWUp1 Qm99Vms+QXx4azNNWiQrdkYzcEBZSF9jQnd4ZmtCb3N0byFqZEF3TCQrPT95 YTcrQUA8Kms2Zyg5dyEKenZSQEdebWVCOFl0PDs+IStzKVQzYW93b2M7OCVG RHRheGQ3QEV8dFg8TUJuS0pAZT9ZKG8qen12ZmFfYylQWk5HCnpzLWk+eiVL YCVmKXZHPlR2MHtaVEBYT18mdWV5Q2BBS0k4NDVHJF5aQSpOUX0+MjhAVmlU WSs2alh4QjB8SWhlKwp6QUdRYkE5aEYzLTxtY3p4cj5aTTd3VnFQeUkmemJ5 bmpiMl52Z3UhWlhHWEUhaGlzfnM1e3Q7IThMaHhkZDIrSCQKemBhXk0xUDJ7 ZDM1MFFBTz0jQSVmIS1seFZAKVdqaSh9NUBQaG0oQChMemQmMnhqKVQ9K3Qx R2ZGWFFVVHNOVTMtCnozQ0Z0JlNeVFVtKl8lQGRGYDFQPE5jVmw7dnB5ITJe bSZIOVU2fHQkNW1Mek1VO1Vicj1GfEhIU1IzRWFkcXg1RAp6VVNAS1NfMjwx PTtOS0x+YX1wWXl8SCFqc1AyfSZvamt8JjszYiRZSSZ7emtxSlE7Nz9AZis/ KUBUJCE/VnUxdTIKejYqfFIpPD94fnBtSVk+UD9EPV54UHNfKzZvNWg0ciZm WlluWUtYe0grV0llO01OZX5SdWRuUykjPH57OzI4SGB+CnpwOzd5MGVWNipf KiU5OD91UEBraHEjIWZCQVM/MWpld05venBfbVglYTdidHtDZ2ZsIUNOZ1lH V0xWZ0BuNX5mKgp0JShsQXFZeUpuRSZDTldPZWVwZWorNVFmQSttNko5elh3 S1o0fFJHMFJQM0lGNygjU2Y+MzxvcERTLWUwCgpsaXRlcmFsIDAKSGNtVj9k MDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL2ltZy9leF9tZXJnZV9zZW1pX2pvaW4uc3ZnIGIvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbWVyZ2Vfc2VtaV9qb2lu LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWY4 NjBhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfbWVyZ2Vfc2VtaV9qb2luLnN2ZwpAQCAtMCww ICsxLDYwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYt OCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElua3Nj YXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3ZnCisg ICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8i CisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMj IgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy LXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y MDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x OTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjUwIgor ICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRhCisg ICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAgPGNj OldvcmsKKyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRjOmZv cm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxkYzp0 eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3Jn L2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldvcms+ CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVmcworICAg ICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpocmVmPSJk YXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FB QURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFC VUJKUkVGVQorYUlIdGwxMW9WRWNZaHArWk9XZXptOTFOc2pIcWJyUWxXMk9w Z3FiQmkySlVDcUtrdlNyb1JRdTlFQ3hVdElpVVNwRVdpamNGRlFJdAorcFZJ TFNsTW9MWVdFWGhRbFZHbEVvVkN3TVVIVXFtMXFLL24vZFdNMiszUE85T0lr bThhekNldzIyYVl4THh6WWVjK2NtWGxudm5uMworKzJBWnkxakdFd0dSamZ6 cW13ZjY4cFZCRi8vaWpoWGt5ci8rMnRxc2M4dzNqR3prNVN1RHZMbS9pcEhS RkZJSWhJUlFtY25wenpzNQorZlBBWnhzYlNDQ0ZRVWxCU2F0RHc4VDNlZmJ1 YThiaWQ2Ui93S3o0OGRhY1FHbVlYQWpBeWtxS3ZQNG1VQWlsQkNtZGpINDZt R1I1SgorSWFWQUtZRlVEdi9va2NYRG1PWHFYeWpJZ3M2MmdGZ3lRbVlOcmJJ eUV3U1ptQzh0ZGJxV2xCcElSZWFPQkFJS0FMOWZJYVRJOUM4dQorTHV3ZUxS blhlckp4NXVJeHZhY2hvczljUEtiLzY3Vk1JYTlBYm1sdjVKVVhkdFBTM2pq ZjY4a2JzMTcyK2NiSmxydTZxYTNMeGRldAorSzJkak9PamlOMGFDM095T1pl VzNWNjl3M2J1Q0NXbHE2MkxyN2szOEhrdFI0WkdzTEJJOEgvTHcwYmR0MUc5 YlIvK0VqUkpnQ0lqNAorRkRmdjlGTHozR3BpS1J0VENnd0JJWS9pNm8zdXJP TVhUQWhBKzNDS2p1RUVsVjdKV3A5a2hjZUo3SjY0ellQeE5JWUVVd2hNNld6 NAorY05KbUtHSGhrUUpUZ3Bvald5aW9rSnFRU2RBZ2N5SlArWjNwd3o2SkVr Ym1SQ3FLSkFOQXlDTXhCSmtUS1RGbnY5SjVDeEV5dDcrSAorWGF0NnVQaUQ4 N3Qza21zRnRnZC9ZOFA5WDlud1dQOFNGZVhQbjcwenVFR2dxcXc0Ni9qNUN4 RzVHVjc5YUFQdkhmeUVkR3BvZW5Legorbkd2blBpTlMyNHh0eFRPOFZENW9P OC9LMmgwa2t6WktDUXdsOEhvbFYzOGF5alo4NFU0RUlKMGFJcFhzY2ZHMkZj ZTJ4bHo4eElURgorUk56R01BU0dLVkZxOWpuelRvaUVYRno1NXBJUmtuZG95 VHlFR0daNTFyWlV2cGxqVDdhOVhwVXA0QXdsTU0wRnNGK2hjaE5TdVhrdgor MTg0ZGR2SGwwVHE2Mjg2NytLUzVubzYyRVJkZjliVFB4Y0cvT1pFY2hYUjFO TEZsLzVScmFiUUd3d2p4eXhkSGVQYWxvNU91NWVTZworVXZyb3ZuNkJMYlZi Rjk2MXBGUTVmNU5PRFpHYzZBS3QwWmFOOWxpQTQxcFdPdVlJc1RWYU9ZSVcz TFZXbHF4bFBCbkhYK3luYi9TdgorR2FuOFhDbSt0aDBCZHRyQ3RwekhlYUVk Y2JaR2E0M1dkczVyeWt0SVJYQU44VVNjTmFzcnVmNUg2d3d4TGUyTkhOaDNn SmIyUmx4aQorYkF0dFdlaTBoVTVaOEE4aDJyYkJ0dEdXRFhidVpVNWVRdGFI YXhrY0dhYTZhaDJ0bldjNSt2Vk85alJFOUo2R2lBYkhtZy91UCtRUworSTFV SXd3eGptbUZNVHhobE9LNGxwQmVwQWtnWlFLa0FVazY3VnJGZjRTdFcrTHh5 VHRmS3E1N3VIdTdVTGUxZjBtTmRZMVhGS29MQgorSU1GZ0NWSklrQUlobkFm ZzlObFBhWDZuVzl5OWRGSjNkVFM1eGlxUDFoRmN2ZEhGSjgzMTNPNTlQQU56 WEd2enB0TDVxVWNpb2FodworeE1EZFcyME14TnJwZi9nZzgvN1FHMjlsUk5U WDdLT1pFM1IxTkZIejZpa1M0MzJUSWFReHZSWGMrTzU5cW5jZXdVbzlja0pN Z3pLSworNmJ0OXFUQ3VGUWxGczU3bVZIaE5pVGl3NjBTbVgyS3NsL2pvZmVl ZVdEYmVRQW9BSy9tSVZHTEVjU3l0TTI2V2kydk5lejFTWDdNdgorcXdqQUVa QktPOVpyT3cvZ3VKUmxveWZkQzUzN1paOTNJVk9MYithRTY1MDlhYjE2MHAw eVF1eHA2M1hDYXhFSW1RdG1VUVU2a0VacgorRzYzQjR3OER6cDNBWTZQUm9F R1pBYUJBdVZhdXFOeThsNXZmZitEaXk2TjE5Ti81MGNVWExOZktGVjBkVFd4 NCtUaUoySFJoVlJRTQorYyt2Q2NhTGJEbUVscHdzcjVRa3djSysxTUs2VkR4 S3hIdUxEblM3ZVNvNlJpcnQzdnlBVjRtTERraEZTME5BcUNvYXp0cFVuTUlP ZgorYWk5YTE3cDE0YmlMTDQvV01YQ3YxY1huNmxyTFdNWXlsdkgvd3Q5WGxr bVpvTlVMT2dBQUFBQkpSVTVFcmtKZ2dnPT0KKyIKKyAgICAgeD0iMCIKKyAg ICAgeT0iMCIKKyAgICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgor ICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbmVzdGVkLnBu ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X25l c3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVjNDczMTZkNWQ0 MTYzZDk3Yjk1Y2RhOTliMmUzYTIwNDkzNDFjNQpHSVQgYmluYXJ5IHBhdGNo CmxpdGVyYWwgMTEwOAp6Y21WLWExZ3JhclApPGg7M0t8TGswMDBlMU5KTFRx MDAxJW8wMDEldzB7e1IzRGRCajcwMDA0aVApdC1zMDAwMk4KeiFxQXFQKFNM KXtiOWQyWll0Zj5tPGg4Znp5VDB0aCNQN2h0P1pDbkEhTlRzcyF8dWV6QDVS Uk4jPmVsKyRuVkk+CnpAV3smVyVGRlN+JTw7XzReM0JmaiZkJX05JiteZEZe M3YxdSlZUzlVKSU0ZmJee2NNdHVDZUgrc14tN0k/WVg8Xwp6djlzeHRtRVV4 RSl8aXsmIU5UcFBzTDtkMig3ZTl2KzFkNUl6d0Yxd3gydlVXb3M+bkRpIVk2 VjhOPFNLKSFDOFgKej1BN3A5cnt3WFc8TTUjNEBTZnVDcDVwREQ7cTA4QD8z PmB+bzhSYn0tc2hPJD0kX2YhbUNAM1R6cjFrTCpvKTI2CnplYlU7OCtUeFNj K0tSfV5jRm9VJSZDYzwmdXcwbXFFVX5PdiZkLUYkJGFCeG5pSVNEa3dYbGND Iz02PHhqTlJneQp6K1RXN2UtalVoZWtMdlRjJGpSQGlxR1p8SmtGQm9nKnhR ZjJ6d091QmpKTFMheFZoYHMqb0Bgd3RtRXNXKnlNb0wKeipOZn0mejNLMHwp el55TT1hSlJjaVBoREwtc1A2bSlRRmRqRTc7cVUlKn1uVHM4IUw9aU85cngh b0Y/RyRiezA+CnpoUyVEVHl0WnJIO2d7RmVqQEgpbkwhSyg2MDAwMDFiVyU9 SjA2XnkwVyZpKkgzMjtiUmF7dkdVTkJ7cjtOQn5DMwp6WWQhen4wdC1uKkt+ ellgP2JZajMrQ1VIaGEwRV5TbTBDLSFmYFVURDJiRntjQTg5Uk1NZH1rJiM0 NV84WGBANkQKek1EY0N3enBtbXEhekZob14wblBCbmNVMjhfSUI9V1NFS25L NTdESTY9QEIjWkkmQmohbmhoO1JRKV5wV3lVfWNaCnopQTY/Um95R0ZMPnFC PnMpb1FpYmRWQmxxLURVQDd3OVdra3tSUzU0Ymg9Q3FaNEo+RzIwamtEU15J Smk0WkY7YAp6OGxyYk8yMWlDJiNnMnspblJAZyEzJmBubEdzU34oVFJ4IyQ7 XylFTzN4VnRrR1dQV0E8Iy08YCFwQyNvRHpUR0AKem0tN2U0Q25sIV5MSFBW LWBmRCY0NDI1VUQlfDsjI2c+ZTQ0PT1YVXtnY3FXVk9BJF5AbVkxdSlkPn1m djYydGN1CnppPzZQJl5EMkArRERuNygzMU1YO2lJPCgraDtSTT82P3FQcjZr PHVgVmx1WTUjVXd5ai1EWiZ+R0QhaXdtWXAzRQp6TnZUTiE/ZTExaDhYISN+ ODZgPWVfSDVTcGwhcHxNJHRlbDRkOXZBYGViaWU5SVo+U2p7clpnPFN3cz0y N2x1LWMKekN7YWxvX1Z4JHtCcX5ZNmVtPWppSFh6OX4wdGRsLUs2SSEkOElU TH5FTzJ5MHMwSW99ZGlmOXZsVE49X1Z2ejdMCnppSW1GPkdKWl9CezNtNlpQ SkV9OHhjWjVtYE9rZSshcHw8USN1WDN3PG19P3xpbD9gVyRrSk5uZFRUcUMk PSEmTwp6QitHP2pzcDd4OXhhQW00RFk3MjtnTmY0TF5RJjclUStpZUZ0RTBp KjtpUjU2ZXV3cXN4YHVAbDh4ez9XcXlgM0cKejFMTClVQV54dyVKI0MkbEct Y1JxRUMydWlDM0hudGJZeCs0V2piU1dXbnB3PjA1VUshRmZCMU1FaWZAdUdC NyRjCnpHZGVVaEQ9Oy1XRmZjZm9CXzAzKDAzfiFxU2FmN3piWShoaVopOW1e Yz5wcG5GKSVHS0lWfl9UUjVDTDxHJkRMZQphSFkrZVNJeHNOR21zUDkpMDAw MDxNTlVNbkxTVFkpIWMxQGcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1n L2V4X25lc3RlZC5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBs YWluL2ltZy9leF9uZXN0ZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjlmZjFkYjQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9uZXN0ZWQuc3Zn CkBAIC0wLDAgKzEsNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp bmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdp dGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisK KzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVu dHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25z Lm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6 Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cu dzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0 aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8bWV0 YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+Cisg ICAgICA8Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAg ICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAg ICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8v cHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwv Y2M6V29yaz4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxk ZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5r OmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFO U1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNBZ0lm QWhraUFBQUJnTkpSRUZVCithSUh0bVc5c0UyVWN4ei9YZGwxN3ZSNk1Tc2Vr bXd5SXdBWVJneThRLzcwak1kTkUzeWdteUF0aWlBSC94UGpHZCtwYkV6VlJT ZFNvCitpYWd4Sk1iRUY0c0pHcU9DWTIvUXpneVFSQWRzSlhQZHVrRjc2L1d1 dlh0ODBWMFp0RGQ2N1RZVDNmZE43KzU1bm50K245N3Y5M3YrCit3WXBXdEtM L2hhU0ZDbi82T1NuT25wZVlTSU9tUVU1YkxyTnVWRlFCUllIMk9QUnVFenow NE00cXUxMUJIQWhGaVJGYkV5VFk2aU1VCis5R05aTmlBaHpiV1VKSkNrbSsr dlAwY0MzMXpoL0xvU0FpUUozendMZlA3eWphL3lMZ21mVDBMWFMrUjFtL0VK bmNuSnlab3dBVGNRCitCMEpSQW1SekpWcE5IMmJRSmlMNzYvZ1BGMC9Yc2tW MDNjSXMycXlOdFFKck9YdCtzcXFlSzhoRUd1N29DcExObFpERGZpNlA1aGxO Cis2V1N6eGFXMHUwcXEyc0xtalJHMmJWRW9HRFlkN1dHR3oxYlhjd1hSTkFn RUpBSUJ1RHlhNTdiWU5lNitDeDY0djlvL2wxSW5UeVhGCitXTXJrL0FYWWVx ZUNMUHZSYXNTcXorMEZPUTJDTFQ3YVZnY1pUZWwwSnBZZkFzcDlkaWJnejVG WlpEbEFSUGJYVERxdUlBQ1dMUURJCitab3YvQ29TakIrN2ZLV1d6UmFLS3F3 TzV1NVlqYVFIelQvL3lyVWhkNmljN2M0R0NucWFRVHpka3FLT1FIQ2NVanFP MmJTR3hvWTk3Cis3M3U0cW5mYnJ0MzJsaUJ1Y2lEV2RZYm91ZWNSNUdpRTFt Z0UyellSUWdEWGV4UTJJTVRjYzFHK3I1VFpDQ0h3U1VFTVRhZVFMekNkCitI aU4xcVovVHYzd3Jhc0VzS29nRHNTcmVUc0djd3RMeUZFczZZVFhxR1FKQXkw NWhHRG1LQlFNMXRnYVlKbldwdjI1N0ZnUnBXOTNpCitXcGFkdVVEUFBZOVFN S2RvYVZHNWZHNklLeU5KWm5PWnVqdWZyMGcwUmtmWERqbzM5V0lZTTZ5T2RU RHl4L2QxdDNjRjJkNERIM3g4CitxWEo5czY1bWhtbTcvU0NXRlNYNTR3LzQ2 R1huN2dQczNyTzNvYVF3T1BDcHlLVFBNUGJYNzJ6ZHRZdUFQOHJWekhEZDdW MUJYamh5CisxeTBOc20wVGdDc2p5YVlnQUhidjJTc05EcHdReWNFdjJMcHJG NVpsZUdxL1lQcXRWN081VEZNUWpuYnYyU3ZONWpKSXd0MmwzZFFVCitpQk9v U3lGaFc1N3F1N3JXTzBlSHhQQzU4dlgybnRxdTF1cHY5MmhlZlJMQ1piQllR RFZCSElpREI3b0ErT1RZS084Y0hSTHpZUkxkCitmWHoyMXNIS05YelVpTTN1 OHZpeHEwQWNpUDM3T3JseXBSeHdUei9WeFdkZjNnano1SUdQNW4yaHhZZnc2 clZWTVRKOERwNTdkaU5tCis4ZnJuTllzMkx4N2VoT05xU3kwaFFJZ21ZMlI3 RDd6My9nZ0Fqejk2TzVJRXg3OUtWY3FXUTE0aG9BYUk0enFIamd5Smx1RDFK ZXlICitSMjhNOXVQSG5oR3BpK1VwUktLNzd5WlhXd1I1alBlRzBxOERzZS81 ZDluMy9MdWtMdlp6L05nemk1ZUx2U2N0N3lBT3hCT0gzeUNYCitIeWFYSCth SncyOHNPb3pYTWNvelNPcGlQd2RlK2h4TEZDclBTbGFlL1M5OGl1TnF6VW9J Z2ZDWWZ6MVA0eFBkZlJ4N2V6OEFqeDE2CitCWUN2UDNpdFVyWVlxVmcwa0g4 OWd6aEIvZWJySGNJbmhTb3U4UEtyNDlLaWpTZENnUENXT3hwZVdKWDdFKzVy ejJiZWE1Y1hZVjdVCisxS1JSRXVYL0lSS05NVGh3b3VsQUh4dzRJV1JsVGRr d3Y3ZU53SVpCUW5JY1kxWm4rdTl4T3JwMmtFbWZhUXBtY09DRXlLVFBzRzU5 CitEelBUVXhRTE5pRTVYbmY3aGwwckZJNWo2Q1lseTZCelV5OWpmLzFPY3ZB TDNueTlveUdZMzA2L3hMcjFQWFFrTm1PYUdxWlJKQlJlCitCaEMxYlF2VDZU SFUyQm9NWTRiMTNadnAzcmFEa0t6TWJUYllsY2xmWlZkbExweWNCRkhKVGtK Q0wrVFFaM1ZNVXlNWVZMZzJQWTdhCit0Z1g0cmk1N0duYXR4SVkrcGlaS1pE UFRoRnJqaEpYYmtKVzJoaUFBSXVFMjFPaGF3bkk3V2piTHpJeEVZa05mM2ZZ MC9FWHV2ZTloCit5ZG5iR3ZuaisyWGJvSFBUTFVFV0dwZThkRlNmeHVkK3Z3 UGVxMkdMS0orNTFOQ0NydVdmTzNGUjFSWk9ua291M1FMOUZqcDVLaWxVCit0 YndoNFhPeDJCVWtxcFFYVkROWFRib1NZY1pTL0NzdzVXTUYyTHd4d2tUYVlE WnZFVldxNjdtNmxxSkFxU1FvbGVDT0xwbkxvL0RyCitrTTZoSTBQTEN2Tk4v NDBIUGZtOGhlSUZwRDBPbVdrVFJRbVExeTBTaVRDYk5rYm1qdDZXN3d3eHA1 WFFkWXVDWWRNYTlERStvZE5lCitZM2h4ZGEzZWJRSk55NkJwSmRSb2dHZzBn QnIxdm5IV3JGYXBMYXhTQTBUa0FKTVpvM0lZZXJQK004ZlRLMXJSaXY0bitn Zld0TWQrCitwR000QkFBQUFBQkpSVTVFcmtKZ2dnPT0KKyIKKyAgICAgeD0i MCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9 IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbmVz dGVkX2xvb3BfYW50aV9qb2luLnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3Rh dGljL2V4cGxhaW4vaW1nL2V4X25lc3RlZF9sb29wX2FudGlfam9pbi5wbmcK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFjMDc2MzMzNzYxN2Y5ZmZlOGNm MTNiYTBmNDdmNGNiYzIyOGM1ZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg MTc0MQp6Y21WOzsxflUxSFApPGg7M0t8TGswMDBlMU5KTFRxMDAxJW8wMDEl dzB7e1IzRGRCajcwMDA5M1ApdC1zMDAwMiQKej4tbnAkPThLTnBkNDFQcll0 Zj5tPGhRdSR5fSNfbSNfeisjQDVJSUwkSD8hPCQ/KGR7QFhPNWMlKzIhNyZo cFJECnpeM2w9cSk2P19TKjdWS0lAeCNSS3RGN2oqdmdvTCk9REU0K3pRNjZi eCRNOGQ/VE5ZREhpKkhzeDlZT0E+NWBWOwp6YmE+VHVkRGZWbDtsUlB8eFZy MWEjcU12LT9uUz1vT3UqPz0hcz48OEBSWm9fZGR9PkYoZH49Vz95Y1lSeTFl VkcKenVJSXdVP2Q8TE9LKW1TKHNOeFctO3VAfndVQiZCaCVqezBSPTMycSRX WDAlYCkkaFE7PyFDWTViOW1LdGRlK0l4CnpAWSZoKio0RmdiKlkmQk9kY2x1 MnBea1RTaWBEUCQtQHYrb3NHbUBxa1RzMmc4VDllVkBhKHREJkdFKl5ANkZF Zwp6LXJufVkhZ2tmJGwtfW8+PUpjbExecl9YXms7MWBzPiprLWx6M2kqMz0o RHV5eXVJenopYnJFWGlfWD02KTcqeVIKekB9MSlGbiN8TEIoYmtFPHo7dztk QHleZmomRERJPStLc2ZaVCUoKm4lRiVoIylzM2E3PG1CXzUoYW9kZjs+KXdJ CnpUaUAhSDtfOUwxXnJNLU5FJUVUPDtPVXYkeUB8RCVlJnpGYDxuZl4yPSRQ ZDRxMjErez4tNHdYPENYQzJ3IWVsawp6d31nUE9VT3V4KzZTWlBMI0VedD1Y MUtoeWMtIUhWLXM7cXN5TEd6SnF3RDNLPmcxajApdHxSdThfNyk/KkhJJGoK elI0MTJJUXVYTkohbyUqWnVqJDNiQDdtdnpmdiFTeHI4aytwYzw8fUJAOTRB Qm9OVkckREY2VGUrTk8lVXpVPGxFCnprZithUWNCP3pKUn5FeD9MKWhHcHUt JFowalQhVXAjX3J+Xz9kN3JUOzsrfSpqazRmJmRhKiZ+Kl9Hd2lsSH04bgp6 emkyU3o+WiNZKmpFdWxpPEk8MWYmV3o1SVVEZSl2KVpCWEI8ZWIqbWl0RkMy Oz9SeFomNVBqNWlRdlBNPkY+SkkKeitJWiZhd2JqKiRAOGlEYypyKF4hclI/ Nml6bD8qcFdrQVc1aFM9WVYqVzhISSlRaTs5aHZtP3I8aiRZIyp8eWwqCnpq bm1TRytgZlJAeW5mb2RlJmZyWSsxLTx2alYjKV9lYUZVaHUmR3dCciZZem1h TH48JiZDNz93ejs0T0xleFIyLQp6JGk7Zlh6SEgwTGd6REl+eXRpITcmd3RP KGU4MFBCJEhSRW0pc0QpPmZZc0lYQ2k3OUIwMDAwMWJXJT1KMDZeeTAKelcm aSpIMGIpeD5NNjFhR1hEOSN3MDEwcU5TI3RtWTA3dzc7MDd3OHYkIWs2VTAw UT8oTF90KFkkNzVnXkBxbSR1CnpuU35WdnVyTTwqO0A4MigmY1ZzVyZCPz5k JDFmbCNCckdCLUNONjxqNC09Y0RsJXpEVzc5SlR7SVNENFgwKGtgeAp6ZlJi UGxXPEBDX1dmZiQxc2o4YEtYZm5nS0N9P1R4PTt8cng4eUZmSER9WTU8T2lZ IXslI3JPaUgmY0BuV0k8QEwKenUoWXphUUx3ZU1jV3tKZ1ZSZHFMRi1MVyl4 dlFIeUQ7YEB8b3Q7QDMmO1lCNENxbTUyOHc3bTdadVcoMGtwV0JsCnpgM0Qz QjFxSnh+cD08RkQ0aGFiZl82fklsM3kpdyQqNWM8TTg1SkU5OHk2NEtnUV9K WUF0NTJlSjI1RmFCXjU9Qgp6ZWBII0VNckt4YVBPZCo7RXFWRE1NbkdJYVZO cjJXUER5RDFLYG12aHRZdHRkRDdMKClxT3ppQHgrYUxBVSFXa1UKekhuWG10 cH13eFYwYk5UWUlLLU8zQXkkVD5yTVY+dE03MmZ9WiVaM1FPTFRoPihTR1Va MEJkUlEjSHl2TXlRakNXCnpmNUpxRjRxaThxbz1ISkxsUiNRSkMmUlQmbkt9 KXNXJWBWbnZ1NGtrSjdATzFgNSt3JjdBezxiQEsoXnwjYyhaQwp6bW4+WmRf UkkzK0RefHs0d1FCWTFSa1BPc0J9TFhRVHFxfEJjU2d8U2IjTmB5bWFnQmgz PnNuXj1kMSRoblg/SigKejZJbChVenpiVHA4UjNeQDhANmwoK09sbz9qLTdw VFNBK0QtP0wkZzFGdSFjeGd8S0RBP21hK1R5bSMhfnhCdE1MCnopZ1YwfVRW UHJ5MXN5eUgoaTYxbjVXKzhxX2tqSmZiS2pBcCQ3WH1QMGA/MTMlY1AqMTww bm82XiNtT3tnJU0oPgp6Jnp3RFg5dVo8dEVrUElCUGg0RGxEVHBFSClNYm8j eHBNV3x3ZD50Q2B1bEYpbiNoMTtPVkk1KkFtMFJDekRxY2IKekxBPyhOVTUy MiRfYl9hXmUqZ1oxaGdmb0QoN0ghcEVzcX4jWHUxRjc+OWdscGElSXFxTG9i MWV8SygjMGhqfkFFCnpfVWFXakVyRiU0LXZHMU4ranM4KyhYfjgoZzxWVSlo bVc3JGV0IUdxPm88Jnl7UWRkIT1pam1UI3M5fmJ1a1V7VAp6YHUqcEpLZH5Y Xj1sfG98YEA0VnR7bEZ9Z2FNXjtWPSk+WHtFQ3VYO3s5M1JUPE53fDlYfjl9 cSRSSmV+bjBfSHgKekMxSGpiIUhOJFBrV3N5b1FIaFVhMDA4PDJpLSVHYVl8 UWB3MDN+IXFTYWY3emJZKGhZYSVFdzNXZEpmVEYpJUdMCnpHQSVHTVI1Q0Mr RyY0RmhHJUdNUUl4c0xlbkkjP28wMDFSKU1PYnVYVlJVNldaRXN8MFdfYldJ RmZsTUtGZ1l6UwpqRjtwQCRJeTV2b0ZnN2JOSDk5YWIlOW1CRjAwMDAwTmt2 WFh1MG1qZl9gJGBQCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9u ZXN0ZWRfbG9vcF9hbnRpX2pvaW4uc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfbmVzdGVkX2xvb3BfYW50aV9qb2luLnN2 ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODNlMzcz Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9pbWcvZXhfbmVzdGVkX2xvb3BfYW50aV9qb2luLnN2ZwpAQCAt MCwwICsxLDc4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV VEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElu a3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3Zn CisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu MS8iCisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcv bnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy LzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9y Zy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjUw IgorICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRh CisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAg PGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRj OmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxk Yzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwu b3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldv cms+CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVmcwor ICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpocmVm PSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVV Z0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lB QUFDU1JKUkVGVQorYUlIdG1XMXNXOVVaeDMvMytsN2JzZVBZc2ZPZXBtOVJv UzF0M0hSaHZIWmhDT2dtTkxhMWlzcHJLbldJZ1ZBM1RXaGF0UzlRYlJKbAor V2lVMjFna3FxSlJzREZpWGlmRzZUZ0dWVmxOTFNRbk91Z1JvUTlPa1NaUFVk aEk3Y1dMZjYzdjJ3YlVUMTBucnhJVVBvMy9KOGozUAordWVlZTg3dlBPYzg1 NXg2NHFxdTZxcStGcEptSjRmTlI4Y0hoQUQwOUVZSWpHb0ZnYkVFUDliak51 QXRWbGk2MVViL0JRMG14UmJwOAorcWR5VXFpQUpNVGxwVU93eFk3YklXQzBt REFNa0tmR1RaWkFrS2ZVdlNSS3lCSklNc2dTeUxDR2JKS1ltNDBRbTR3d09U WUhFVndLagorSkMrU0VBNkh3bGhJeDJLVjBXTUNtMTI1VlBrTWhVSWFrNU1H c1ppZ3lHUEJINGp5d2VGQVZtV2ZPWEJTdExRUFpOZzMxMVl3bC8wWAorRzFk SWFTQTlQUkZXcnlvZ0hOYXgyVXowOUVibzdZMFFDdXZ6QW5FV3FGUXZ0N1B5 bW55bW9nYmxaVmFPZkJqTXFteEwrd0EzM2JtVworempFTml3d1dXV0s5MjB6 TFd6NGFmK0JsSUtLVFo1S3dtaVNXMjFXZWVlM2pWTmtVU0hCRVExVWxGRVdp cHpmQ3Vwb0M3dDlTUVpGbgorZmwzQ0g0aUt6cTV4T3J2R3VYWkZQclk4aGVD SWxuVjUzNGpHRVgrVVBCUFlUQkkyVTZMNjdyQk9kemhHdmtuQ3BraFlwUFJt cFVBQword1JobTFVUmhvY3lSWThFRlFRQVVlU3lTUHhBVmI3NHpSSzNYaWQx dW1sZlE4QmFxcURJcGo2eDBxbndHVkRzVThreWtQRkpwUysveQorYWFtNElR QUloL1VGUWN5RWVlUnhuM0RrS3hoRzl1V2VLRHRBMmFHZnMra2kreUx6dC9u M2M2NDAyMG5nVzB1TE9IWWhuVEdTNTJyOQorU1BDMDhMVTFNOWpmVG5pc245 RFlXUUFxRjk5QVdXVXQzcnBHQ3QzTGNvcE1aU090ZkdQYmMramE5SmhTVkRm czI4NTEyMzdKK0hnYworczFuQ1lqRlI2RkxZdGZ2azlIM1pWSkNFa0swVHJM MzFEdkx5elZnZCtVaVlDUFlQRWhnOGk2K3RtWkhnYVpFcmpLNEYwV0tER2Zi UgorVVkyUkVSMnJWU1l2ejhCaVRxOUd6dWJoU1lqQzBtS2lNVDhURTM3aXhp U2FQc1prYkFobmNSR1NPWXl2clRrWGhweVVCdUp5S3JoYworbVU0YTdHL0hV MXBKVEIvRHJEbzRjNktUZzM5dHB1UGdJVlNUazZnMmlydTRuTUgrOXErczRS Y3IxZXI2RFI1ZWVLa25kYjEzei9STgorL2IwZlV0OXdIM0ZoNTVQM0RsSlZ0 WkhhOVN2eG4vK1Uzcy8reVpwYmJzWkVQdjI5SCtiZUlOVTlhOXJsVWxFVU9U VkdiRGJUN0NBUAorM0xzbzFlbG1RaVFsaUNHRVJQOXBIeHR1ZXhxbnEwb2FH KzBUUncvOWhqVzMzSXdocG5LR3FLalp6UEY5MnpQczQ3YnY4UEsrbmd6Nwor ekJlZTlmcERDSUVrVEl5SC9EaGRWUktBMDFVbDdkNVpMakJNR0NMM3BkUkFS OHVzVWV2NHZ1MDhzdTJKM0tOV0VtVHVQQmxoekc4cAorTTVjV0dyVlNJQysv ZWxZa0YzZjFHenhwWFEzQUlwZk1XYmt3ZEREbUJzMU5BbU5TUXp2eUI5VFAz NGZBZjRtV3JtRzA1azVzV2wzcQorTGdXbUliWTFMa0dTNEtXbU03ejg2bG1S aFBIV2JhVjU5emFTMTdBcnZTNURZR1E1aFg4eGZFSWM4RFZSWFZMRFhkNkg1 dTZQUWlDRQorWUhKb2lLblBoM0VIOWxLZ1dMSGxGUkVaNlNQMDNoKzUxbklq RTRObmhMMXNpYVFrSVI2OHQ0citnU2dBVys5ZlROTmZlbE13ZDl5OQorYTBh RnV6THFOQXdEa2FWSER2aWFHQTRmNTlUd0lWNW8zU0YrZk1ldU5CaEZkVTkz NDNpY29TTUhjQWNFNVpZQ0FLcjJkd0hRMTdDSworOWRHajlMLy9XcUxjQjRj RGJIOTBPVVBubzZtSHhUU0RuejVlemUvMmRHZlZPR0VJUkpZZXFTNnA0ZFR3 SWVwV3I2UDkxT0UwbU5taQorMXZqUkhwWXIrYWwwWDhNcXF2WjNVYlcvaTRs TjFRd2RPNUFBcWQvZzRibm52d0JnMHoyVklBbGUyWjlZUjEwOG44d05ZbHd5 R016VQorWGQ2SHBCZGFkNGoyVTRlNWVmMU5OTC9lbE1vYjZHaGhmZU96YUZF L1FnaEUzT0JJNjhQWThsU3E5bmZSMTdBcURjWm1VaGs5K1FrQQorOGdQM0xw TDI3dkZLQUtwWndxd21KdnU5ZTd4U2NveTB2cjFEN041WkxuYnZMQmV0Yisv SWFMRVEyWHZrWDc0L2llNlJ3OXg2L1MwYworTzNHY2pkNnRhZm14cWZOTWhm dVlHanZEMU5nWjhxdXFpTVFUKzVsa3QwckNST0lhcmhYckVpQ1hxN2oxN1Iz QzE5YkVsc2VlWmN0agoreitKcmErSmlHR0VZV1VldDd1RU9Tb3BMT2VyN2lD WDJHN2g0aklpNGdZakhNZlE0aHFialhMMldrRDZWOHNaTW1KQStSZWszTjE0 ZQorSkFuUjhOZ3V4c2IvdzJqSXh3OS85S3RNR0VNZ1JIWWUyZWpkaWwycjVy YWwyeklnQUlRZUp4N1RNRFFkUTQvanJyMmVvRWZpWERURQorcDV1cTZXMVl5 VVE4eHJsb2lJOHROMUo1K3hiZ01oT2lyNjJKQjMvU3hIamtGTUl3TUF3RFhZ dHczNk12OHNyekQwOVhMcktQV3N0TAorMWx4eUNhQ29ic3hXRFJGUHZCaTFx QmpyTlNWRXpKdndkN1ppREoxQXJWaEw0YnE3K015M0hudlprdlNQRDdQSlc3 ZVZQLzgrMFlmdgorYnZ3WkFvTTNtNTlPNVNWRHNUQUVRbVMxSTdpa0ttbzIw L0czSFJuMmlPZDcvS1BqSHNpN0I1WmVNSFpDL2UwZTJKdElYaElrT1gvcwor M2xrdVpLd0lLZkdXbm5qeW5EUnpQaEZDQnBIN0VtV2dvNFhydnY5cm9xRnpp ZWNhQmhaN0taM3ZQSFVGMTFxR2dURGljK1JsLzVYaworY29xR3pqRVpQSDBo cElPSUo3cnNGZGtoSm1SQ3hBWDJmQTlqbzMwQ1lHeTBUOWp6UFFCSXNucEZR SVJoWU1RdmpMa3M1eWJJRXFUQQordVlqWVZJelI0Q0JsaTFiVDAzMlEvdDZQ UkUvM1FVb3JWaEVhSFVhUHhpbHdMbG93UUZJaVBqK0FwTExxV2c1bkpiRklE RDBXbzd4cQorSlY5OC9nYnR4NTdINmFxZ2ZQRUtZdEVRbXFiamNGWUNIODI3 RVRObGNaVE5tczU2aDNncGxWWFdNdUx2SjcrZ2dPaFVrSkxLU3BhdAorWEkw UWNVWURmcXhXRjJNamc1UlYxZ0t2THhpaW9tWXpYZTgrbFdHL1lqdEViMTBq dnJabXhrUG5jUmFXb2FvS2ltcENsa3pZN1FxaAorTVQrS3FSaHZYU1B3NUlK QkJqcGFXUFhkcDRpR3B6ZFdGa2NaWGU5ZW9haFY2RjRtSmI5dGRYZTFmV2tm NkFDaTRVRW1SMDVuMkxQZQorSVNZMTF6Q2J1NUd2WC9obGVrS0l4TG5LVjZH MHFHV1NFN1U2SEFyK1FIVEJlMWQvSUNxY3prUTRsbk9mOExOU3lpTWV0NW1Z RmljVQorMGxteTJFWm4xemorUUZRczlGaWhlcG1kb2VFb0xxZUt4MjNPdW56 T1VjdGRxS0pwQWwwWExGMXM0NU9PRUcrOE5jZ2pqL3ZtNVpsbgorZnR1ZGR0 QVRtZFJ4RjJZM1dlWVN0Vkp2ZS8vZkIwVHk2QzA2WldDeHl0Z3NKbXgyWlY1 bmlPTVRldXJveldLUjhBZWlJRUhEcG9vdgorZGJTa2VuRDlCZzk1ZVRMaHNJ NnpRS0hBb1pEdm1OLzVJVUJCZ1lxelFNRnVsMU1ROVJzOFY3VFJzK24vNW5q NnFxN3FxcjRtK2gvdgorekZ5MUF5ck0rd0FBQUFCSlJVNUVya0pnZ2c9PQor IgorICAgICB4PSIwIgorICAgICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisg ICAgIGhlaWdodD0iNTAiCisgICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+ CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2ltZy9leF9uZXN0ZWRfbG9vcF9zZW1pX2pvaW4ucG5nIGIvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbmVzdGVkX2xvb3Bfc2Vt aV9qb2luLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGU4YTE3ZDQw OTM0M2VhOTM3ZTQzZWJiNzZlOGViY2UzY2JlZTQ5CkdJVCBiaW5hcnkgcGF0 Y2gKbGl0ZXJhbCAxNjc5CnpjbVY7QTI1fFhfUCk8aDszS3xMazAwMGUxTkpM VHEwMDElbzAwMSV3MHt7UjNEZEJqNzAwMDkzUCl0LXMwMDAyJAp6Pi1ucCQ9 OEtOcGQ0MVByWXRmPm08aFF1JHl9I19tI196KyNANUlJTCRIPyE8JD8oZHtA WE81YyUrMiE3JmhwUkQKel4zbD1xKTY/X1MqN1ZLSUB4I1JLdEY3aip2Z29M KT1ERTQqelE2NmJ4JEQyYz8xe1BDSGkqRyt0SjlqcDtLYmJSCnp3WVRjQndD UiRULSprQUBiJFFtOW84aUYwP1lPJEAjS3JEISZGKVJXPjAhcH1jRnBYai10 eEVSX05MJFR1O1RUKQp6PUpuRjxfYDFDN3RnaCQ2I08+X3VgTTwjSkspbVNe dEt1eFA8VmR7Y2lQUD8lLVNtam5AUml4fHF1dWh2PkdyX0UKej8hQ1k1Yjlt S3RkZStJeEBZJmgqKjRGZ2IqWSZCT2RjbHUyb3xBVTZ3ZGtuMzxuUWpeemBC OGBwSFEyU0hJMEU4CnpeenE1Pz82PjlTX319MzY7XlgoYD1KQFhKYG9oOT8p IVVUYj1iaCZDcnN3cGopWXk+MSFGQjhBcFdXV3wpeiRPYQp6KzRTQXNfVVk7 USk3Z3Y4KXF2QzdoVTQ7YDtfI1p4KHxYYT9pTlV+aCZDYz04JisqbVRrPEhi NylZXkAtdXcwe0AKektnIVgwKTc2Y29zTzA0SG9ZQnByPD5KZTt1VXBeaWw7 WjI1PUpjYlBrMWdAPTxLTzkoO09VdiR5QHwtSGdWTkxTCno8QDJLQ0B1MSk2 bkJNMUA8bnAyMjwoQkw4eDgzOEZAYShwe3dScWQlbGl1cG9tJURZayhXQzMt cDZjWUNAOURJewp6IXx0dUc+Qll0RytUVzZhdTBuSUFIPGBTNkA5VmJqPmIz OWF2LTlvN3l1UiQmLUhAbHhYTGhTUXhWaH11Kz5meGAKemJXKThPPyZoLVg8 KzFHSXVraCE9KlY+Sjs7QzZia0xGVTwmPDxedHIofiM9aXNec2diPExSaV4q bz0oOFFzbVc8Cno8STwxZiZXITJVcntVP0spIXV5Nis8TTtSb1l2UWg+KXgj NSgyZTJFaXtRJE09aG1nXkA0Q3wzYztATX4penlqYgp6PEckdzlyMG18aCp4 IW9SKz0kZkZpUFkxRj1GeV8lKDRwa2NwWD1HUyp4UVpNKHVVbD1mWk0hJitQ aShAJWJ3WlkKemxiRFN4bXlJamIpUWo0P2UlaVd5JEhzSzlzYUNKMlJtSCte KDlNWD0lWkowalpwcEBlcHFEJHkjZF5XTFlzPClsCno+ZSNsdXdge197WlAz cXUmKDNfbXlKKk01YylZZjIqNDIqNiMoPnE7XndgKy0rPGUofTAwMDAxYlcl PUowNl55MAp6VyZpKkgzMjtiUmF7dkdVTkJ7cjtOQn5DM1lkIXp+MD4oKjFL fnpZYFZfK0JzajctY2R0U0VxbW5UWmo8NG1OZlUKelBBK2F2OSRyM3YwWU0+ UTVtN081M0F9b2sqZChQU3JJRUdwJGpIaGBGdUBoYkR9YUVhNShwQFJNVk04 alJNcGd4CnotS0MrYXJMRHNaKlBAYFNyKkJ9V1V9UzchWU5pQWhWS0tLKnYk UjZDKlVEMVVUOTVeeSNtM2dvLWEqMDkkPVNzZgp6cUpgRFgtTk9waXR5WjMx LW1HfFJWUmQoQldrM1YwS0U0UHNLWXRKaTJuMnkzczFfTnBiWnwmJFNhXjc3 TkhEcTwKenxBQCVRJE8hK2E9JFAySkt4OGUhQUBLPWBOeSNheEFVJnZCQkdi fitCS159ZEdQQU4jdzFtWHg8bVRsVTZjIWJTCno1WXwjczNYJT5qRTNjQG1z d31GbTJfPmtkbVgpO0BOUUVjWVJufEF1SCNSa2c2Wjh1ZGd0ejNrd2xURHx3 cylYdwp6PT4mJlo3ZFhWYVFNQn4qaEomY1NlJlRKSjBNWEp2RmBRXz5PcXZB TkdJMjZpRW1NJVIpVXh0PWYlSHJiNTEkSXMKekdJPChZJWsmdkRwO342bW9g Y1gqJVF8PTd5IWx7ekFudSNDMElwQG0hYk9ZMGVwI3x+Kj5aJG1TVmRPTW5g YlF3CnpjU2lWdm0yZlJIN3ArPm83JkY5eEszU3Y5aWUkXm13RnRpflVjR0tU KDNhJkpIZzRMQ0M1XiVTdlVVcj9tZXBJZwp6MGQ0VyR4UDhhWVU2XlRYWVdW SXdBVSl3Kl85RmJVWnlWU3pvQXdfI2NuQ3d3KWJQVmNqdmZRKjNFejdoQmc5 VWUKekphemdFaEwtVE42T1chLWE2WChOe1ArY29jKTU3ISUlI2cxZWdYUkEl MmtrVyFZXkRTb1dgS3VobERPZV9fZ2E4Cnp3cF9rKF5WViVGQXJgKiE0cF9f R3lCSnotLW47K2NBKG1WanslRyVHVkImdnJfYkc7IVRoRT85JEVHRSQ9RVh+ Mwp6N0pLI2pPJkdlQ2h0SUtWMzRRelN7aV9lSks3UlUpayYoWVZlRTlHUzdR Y2ppe3JLKG1fYThyaHtTRn5FI0RZVjwKemV0ekB4Jik/c2VnJVUxWEBEelBt e0RQJWB7ZkEhKndxcEY+ZXwlYzdSdShjeWw/QTM+MnYkaiRBeDV5YCF2dGho Cnp1VmhyPkJOell4YEtPSnAod0J9YTAwMDBiYlZYUW5XTU9uPUklOUhXVlJV NXhHQjdiUEVpcDFKRmZtanpGZ2kzZAp6SXk1dlpGZn0/YkZnVGVkOXNtRlVD M0hudGJZeCs0V2pid2RXTkJ1MzA1VUshRmZBfVNFaWZAdUdCWXxmRyYoUmcK WkQ9Oy1XRmZodU9SamRGMjAwMm92UERITGtWMWcrRShHJm14CgpsaXRlcmFs IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNj L3N0YXRpYy9leHBsYWluL2ltZy9leF9uZXN0ZWRfbG9vcF9zZW1pX2pvaW4u c3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhf bmVzdGVkX2xvb3Bfc2VtaV9qb2luLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi40OGVjMWE1Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfbmVzdGVk X2xvb3Bfc2VtaV9qb2luLnN2ZwpAQCAtMCwwICsxLDc0IEBACis8P3htbCB2 ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8i Pz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlu a3NjYXBlLm9yZy8pIC0tPgorCis8c3ZnCisgICB4bWxuczpkYz0iaHR0cDov L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCisgICB4bWxuczpjYz0iaHR0 cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgorICAgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgor ICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAg IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5z OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAgdmVy c2lvbj0iMS4xIgorICAgd2lkdGg9IjUwIgorICAgaGVpZ2h0PSI1MCIKKyAg IGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRhCisgICAgIGlkPSJtZXRhZGF0YTgi PgorICAgIDxyZGY6UkRGPgorICAgICAgPGNjOldvcmsKKyAgICAgICAgIHJk ZjphYm91dD0iIj4KKyAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1s PC9kYzpmb3JtYXQ+CisgICAgICAgIDxkYzp0eXBlCisgICAgICAgICAgIHJk ZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxs SW1hZ2UiIC8+CisgICAgICA8L2NjOldvcms+CisgICAgPC9yZGY6UkRGPgor ICA8L21ldGFkYXRhPgorICA8ZGVmcworICAgICBpZD0iZGVmczYiIC8+Cisg IDxpbWFnZQorICAgICB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNl NjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0 aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFDRkpKUkVGVQorYUlIdG1XMXNX OVVaeDMvM3pYYnMyRTdzSm5XU0ptMEpqRGFEaEVJUm9qUUtIeGpWaExacGRJ eVhRU3QxRTZ1R3VtbENTUDFHdTAxcQorbVZhTkRWVUNOSkFTeHFoZ25TbzJ4 anAxVWw4bThaWXFPR1B0WHBvMlRaczBTV01udGh1LzNldHo5c0cxRThkSmFp Y3BIMGIvMHBWOQorbitOenp2UDNjNTcvZWU0OWNBTTNjQU5mQ0NnekRhT1hV L0xZaVJEOS9YSEM0eWFoY0hwQkEvdDlObnpWQnF0V09lbG85MU5iWXkrYQor YXlsUk1IaU9SQ0locVBIYnNObFZISFlOSVVCUnNwZXFncUlvK1U5RlVWQVZV RlJRRlZCVkJWVlRTQ1l5eEJNWmhrZVNvSERkeWVqVAorYjNJazNHNmRTTlRD N2xDeDBnS255eWhyMEdqVUpKRVFwTk9DWlg0Ylk2RTB4MDZFU3VyN3d1SC95 b005UTBYMkRjMCtXZ0x1SW50TAorblp1Tk4vdVZBaUw5L1hGYTFucUl4U3lj VG8zK2dUZ0RBM0dpTWFzc0lsNlBRZk5OTHRaOHFaSmtTbEFYY1BEQlIrR1Mr aDdzR2VMZQorcjl6TzJaakpNcHRLalYzaGptb2JMNzdkdzZiN21obFBDWnlh Z2xPSGdFUGp3MzhPQXpNaUVoNDNNUXdGWFZmb0g0aHpSNnVISng2dAorWjVt L3ZDVXhGa3JKVTZldmNPcjBGVzY5cFJKbmhVNTQzQ3k1ZjNEY3BIYzhSYjFE WlVXRml0K21BakNjRUl3a0xkeTZna2RYY0dwVAorYnFuVEJ3aUYwOWdNamVw cUcrY0g0clNzclN5YkJNQXl2MTFwV1Z0SjM3bEpuRTRObDBzclN6VGFxZzN1 cTdGenQ5OU9hN1dOUmxmMgorL3c1VXFEUTVkUm9xZEpaWGFIaU1LZmYxbVlO a2hBUWdGck1XUkdJNm1hZWZDVXAzcFk0UXBmZDdObkNZd1BIbml1emJYZmRq OXR4SworNWRYN0pOQVBlR3haQ2tWRVlCWk52b3J4OERrWjdPNWllTENIV0dT UWFPUWlBQTFOOXhCb1dFZmIraTFVKzFZdlNwa0M0MGU0YTl0TAorV09aVVR1 bUdEMTdmd2MzcmZrSTZMZEEwQlYxVGNEaFUvdjVCZUc0aTg1RlFIWlBjdnZF Qktpb3JjTGdyVU5BSVhieEVlR1NRWUhjWAorNCtGemNyRmtMRE9NbVI0dXNp ZVRHWklKZ2E0cjZJYUtObGVPekljY2llcmxOYVRTWTB4T2pwQVJDVXdyUXRJ Y3hWdXpETVVXSTlqZAordFJnT0MwWVJrU3F2VGxWVmNhQ0dCM3Z3QnhwSVd4 RnNocHZ6bjUzaTZOdGQ5QjQ5anFGNVNaa1QrR3JxR0I3cytWd2NuNGtDanp2 YQorL2J6eVduLysrNnY3cDlvR0J6Nmk0NUhIeVVnWG4vN3RLSTJObTFoMzV4 ckdMditMZ1gvL2hkczIzb3VHbThHQmp4YnZsT0diOWQ3aAorMEZCVkpaOGpo akcxdEFxSWZPZXhGZm1XNlNSeWtLU1JVbUh3WEpEMisvZmdyV3BVSWhNWDVJ ZkhmODV0R3pZZ1NDNmFSSDNyWms2KwordnFQSWJsL3hOVTcyVEJUWlZ6VlZG Qk81RnFTVUtGTGpTblFNYjFXakF1Q3RhbFQyN2E2VFNBMGg1WUtjbjQ2aDNv T3pxdGJKMTNkdworMTZQUExWNjFja1RtYmdOWnpvWXhEeGFpV2dWRTNqeHdV ZWFLdTQ1MmY4RlNBN0NydFhOT0xvVUFzZmlJekRINk5YK1JKNUlqc1czTAor U2hRRlh1czh6NXNITHNvY21iYjFXK25hdDQzY2Q5aGJPSktRaUJJamNuYjBN M2s0MkVsemJTc1B0ajAxOTU0akpWSktaT2JhNCtyVAorU1R6NVdDT0RReWtB dGo3UlJPZnZCdkprSG5obzc3UUo5eFlOSklSQWxoaVJ3OEZPUm1Nbk9UTjZu RmVPN0pUZmYyQnZBUm5kOEdXWAorc1pRZ0JMcGVvbW9kT3hGaXgvYWJHTG1j eWpla1RjR1BubW5tVi92N1NuSk9DbGx5ampUWHRuSm05RGpyVys2ZzU4eUpB aktMVXEyTworZGo4dnZYd1dnSWUvM2dDSzVLMTNzblhVelAxa2JpSmlYakdZ amdmYm5sSmVPYkpUOXB3NXdZWTc3NlhyVUdlK2JhajNJSGR1ZVJFegorTlpa ZlZycmhJM2pndVhsVlM0WHMvdkhxL2pZRndMQXAySzZXeDYvdWIxTnlPWExr dloxeTMrNDZ1VzkzblR6eTNzNGlqNlVzUFNKLworRGI0aCs4WlBzUEh1Ky9q NHM1TnNhdHRhMEo1T1hpWVp1MEF5TWtBeWNwNzA1QWlRVmEzNFpJWkVQRU1p S1RETktUZEtxcldPdkxkVAorQnJzN2VmUUhML0x0N2I4azJOM0pURExscUZi ZmFDKzFOY3Y1TVBnSksxMzNNRE5IWkVZZ0xDdDdtUmJTeWx4enpHc1N5Wkg0 MXZZOQorUkdML0lCTHI1WnZmL1dreEdTR1JzclNJYkdyYmlzdHM1djVWMjRw SUFFZ3JnekN6SklTVktVa05yN2toQnJzN2VmS0huVnlKbjBFSworZ1JBQ3k0 enorUGJmOE5iTDM1dWFYSmF1V2pmVjNqWnZtYThiUHV3T002K0VocU1HS0tQ V21nMXQ2N2Z5MjE5bjEvQkRXMzZNUlBESAorcmozNXRwd1VTeUZaZ2dxRit0 Yk45UDUrWjVGOTBiVldidi9ZdDd0T3FqaVFTamJNeno1L1NabStuMGdKbExp MDVzTlE3MEcrL0kyZgora1k0TjV3WEU3bHJPcVQvdldzSmFTd2lrbUQzeDVy SXZCS25vSlJMaGMzbEpsNWxzcUpma0NURUxEWm1SdUNyOVJDWXVTSURJeEFY cAorck16dXZJcGEzb3U4dVNDRlFHU3U1bHlKeTdWa0loN3ZDdExKTkJQaFlR SXJXdWp2TzhyZ3dDZXl2KzhvZ2ZvV29oT2pXS2tNSHUrSworaGZxZmg4eGNM VS9LUU1sTHkrMXRJQjFQWTZYVDFEV3U0ZXgvM3FYbjQ1ZnhWdFZUMTNRTHFX UUUwN1J3ZXh1QVQ4cjF2UUIyZDJEVworKzBXcFZnNkJoblZNakEzaThuaElw Y2FwYldoZzlab1dwTXd3RVJyRDRhZ2lFcjVFb0dFZGNHakJKT3BiTjNQNi9W MUY5aVY3UW14YgordjRWZ2R4ZVQwY3Q0cWdNWWhvNXVhS2lLaHN1bEU1MjRq SzdYMHJaK0MvRDhnb2tNOVI1azdWZDNrWXBOUFZqWjNRRk92NzlFcWxYdAor VzYzazNtMzFuZTYrYmkvb0FGS3hZUkxqNTRyc0pUOGg1akJYbXMzdDVLR3JW M0VrcE15ZXExeHZGS21XcG1abmRidDF4a0twQmUvVgorWTZHVTlIcXpjdng1 RUNtSWlOOW5JMjFtaUVZdFZqWTVPWFg2Q21PaGxGem9zVUx6YWhjam95bXF2 QVorbjYzay9vdFdMVisxZ1dsSworTEV1eXFzbkpwNzFSM3YzVE1FOC9FeXdy TWkvOG9xL2dvQ2Vlc1BCVmw3WlpMbFMxQ3Y3cGQvNHdKSE5IYjZta3dPNVFj ZHBWbkM2agorckRQRUs1TlcvdWpOYmxjWUM2VkJnVWNlcnI5dWk2d2dSenJh L1ZSVXFNUmlGbDZQanNldFUra3V2K3p3ZUF5OEhoMlhTOHVUNkdqMworTDVu VHMrSC81bmo2Qm03Z0JyNGcrQjhQNHhBSjFmSlJ2d0FBQUFCSlJVNUVya0pn Z2c9PQorIgorICAgICB4PSIwIgorICAgICB5PSIwIgorICAgICB3aWR0aD0i NTAiCisgICAgIGhlaWdodD0iNTAiCisgICAgIGlkPSJpbWFnZTEwIiAvPgor PC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL2ltZy9leF9yZWN1cnNpdmVfdW5pb24ucG5nIGIvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfcmVjdXJzaXZlX3VuaW9u LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Njk1MmVhNDU0ZTM3MDNk Y2IwODI1MWJkMjI3MzE5M2FhY2FlYjI4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0 ZXJhbCAxMjI0CnpjbVY7KDFVTEpNUCk8aDszS3xMazAwMGUxTkpMVHEwMDEl bzAwMSV3MHt7UjNEZEJqNzAwMDU/UCl0LXMwMDAxcQp6eCFYMn4hRWVwKE1a VzF3ITBBKU0+Vj8kc2wtVGZrJmdfSEg/VGdnenQ+NSFOeXkqdzE7dDtGaTht e0FBI3BgaikKej5gdVBzVEVYWEojcHNnTj9fYHpHLXM7cXN5TEd6SnFoQFEt JSsydz16d04pbD9aVShGKTcxMFcrNFJvT14zbD1xCnopWVNDZztQLSo5TFVO QHhuWT8oc3ozaXV7PWM9c2R1Q005RSNfITlfQHhIKDkhb3UjdyNfLW5HXm1D OypyX1gxMAp6c3ljUzdKRndrIVFqSG1SdDMweWNjNnpadWpLRVRRdXxjSiU8 ZEMqKCp5WVFpIzlvQjNNUktEeHFRX3ZRJTQ0VV4KeldgPyMmY0IodEIrSHJX VUtENlVgd1Y4Z3drMmEwTFF9cHI0QGEodG4/NiZYZncpNX1EXjZiVSE8KzFK S3U8WVdtCnpAYVZ5fD1Yfm5xbyRCTTk+RVdDMj0oRmI5bUYzcnk8a2didi1t Sk9uZkE4ekk+ZilUfS08al5fdmgzcnA8a1hTbAp6KHZSdWZzKFBOT3k2JUdT PjlwektuJntxez1pSGE8PEZNQER0Pm57PzxJI0BkJnlESFhzQz18VHl6cXFj P1opbG8KenZHQ31eQDgtYmorXlhyP3NwOzZLP2N1eloldzV+UGlTZz5nQDgh U2w7PVNuQ3J7fnFCPUczSUAtTVp9SXVIQEJgCno7P1IhaCpRVmRjaFRnQDYt TkorQShWXj8jdD5lKjs7bXdRWilUR3xUZ3h0Vl48PDZrdSZXeiNBaXJ+cUs9 RiszeAp6IUdoZXNmIW5AKzxqdFAkPEckP1B5NmZBeDw8RnF4JlkkWXB3cGNj KzFwb2o1MGQhSk1Rdmc4YiprJTkjMDEwcU4KelMjdG1ZMDd3NzswN3c4diQh azZVMDBJaDBMX3QoWSQ3NWdeMT5eeG5DSj15PCNBI3QtVz9eTXhYWDQ9Rzte dHVACnpRVlRDMXprbmM8a2ckbFQ3X25NTnc/IVE2M24pcCppeFFHakt2RyZw UiEmfClUMlY8Xk1PQilSPCZ0WFo4YkI/WQp6VEd+M2codDcjXmhET0wqdXpG Ri0qdSshPXJ4eHM5KUcjeCp6QC1KZDdve3cldFRrfT8xLXIxTWpWO2hHY0c0 Z0sKekJeZmo8RWJKWT9UQ2lHPEV5T0d3OWk2fj5hSlpLTig+TShhWFBfUkV2 O2YxeiswZz1iYllhIVBWQnJHTmc2YyZ5CnpFJEdIc3hNSkRAQGlxKSM3LSEq VGZuaGwkcTJMNlA/ajlLRjIkRTI2MHgxdHFGTnx+cVBBSXM2aExeVm1ucU1G Wgp6MSF1O1BeNzAwejNManEoZlJmT0pmLX1pVmBobGM8e1IwQW5mXyswbSFA P3RjKEx4TChWXn5DalQ8c2VlNiYofW4Kejh5WGola20hciVhdHZFNmxFN00k USh7dW5lQURBSUdQQlVOV1BeUEhDQmEmOXoqPShpQChUKW1pOzdFMSVoMHU7 CnpJdk47VzxyUUVwbTEkTGwpeEleZ2JAZEdoRWY3RFVJJEZiYHlyTDE1bEFG TGAxdGsmRDN7Q344ajwoMUY+SHleegp6LXskYjUjMWBNeXcpVCFyZ2V7TyVm YSsqP3VKckJkJmdgbDQ/ZHxLSUZjSFp3OzhjTCEoRzAkbUNZTWZXXlBNX3YK eiF0QHpQd3QhT3NjMUpWIyozTyhZeVdNeHIrPEVnQ0FoYllJMGRffC1fJTV2 UG93fj8oQHNnenJtU0tiI2MxUG98Cno5Rkw+JTBfPXspdUxZfjRAZEE4fjl0 SEZWMDdGPlk5Yl9OQGM+bithQzNIbnRiWXgrNFdqYlNXV25wdz4wNVVLIQp6 RmZCMU1FaWZAdUdCNyRjR2RlVWhEPTstV0ZmY2ZvQl8wMygwM34hcVNhZjd6 YlkoaGlaKTltXmM+cHBuRiklR0sKbUlWfl9UUjVDTDxHJkRMZUhZK2VTSXhz Tkdtc1A5KTAwMDA8TU5VTW5MU1RZdHJIeDdlCgpsaXRlcmFsIDAKSGNtVj9k MDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL2ltZy9leF9yZWN1cnNpdmVfdW5pb24uc3ZnIGIvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfcmVjdXJzaXZlX3VuaW9u LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTNl MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfcmVjdXJzaXZlX3VuaW9uLnN2ZwpAQCAtMCww ICsxLDYzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYt OCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElua3Nj YXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3ZnCisg ICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8i CisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMj IgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy LXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y MDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x OTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjUwIgor ICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRhCisg ICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAgPGNj OldvcmsKKyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRjOmZv cm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxkYzp0 eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3Jn L2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldvcms+ CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVmcworICAg ICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpocmVmPSJk YXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FB QURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFC ZDFKUkVGVQorYUlIdG1GMXNGRlVVeDMvenNidDJLV3kvZHRXS0VTZ3FWZGtG bS9vQkJTVUNKZkZCWTErTVdqZWlzZnFDUnFNMHh2amdBMkpNTlJFVgorMSs4 V284Rllnd1lUQ2xVakdzVlcyMHl0UkVvTEpsWFV0UUtsdExUZHpsd2ZaanUw N3M1dVdXY3htdjBubTJ6TzNKbHovK2Y4ejczbgorWHNnaGh4eHkrQzlCU3ZY dzZaYURvcm56U0lLOVpta3BkdmFOMVJlbi9HYTJvS1o2Mk54NWhHdlhMR2Iv WUF5UERCNVo0c29pTjgwNworTmU2OE9jU1JrUW55RklsekZJa0ZzMXc4dmIz amJNMDdBU21KQUdqSFludzlNRWFlQWw1RndxdVlBZThibXFCdmFKeDhSY0ty U25paworZnlVUkZ0SVNDUlc2Y01sWUdWbmtjM0VBS0p1dGtxZGdaZVFDYjlw UFpSVXB2UWRuKy9oNnovZlRiUDF4ZTlNT0xlbjR0aGs2ZHJyKworVklCRDBX N1JvalZTRmdpeU5sUnJEWmIzUzd5MGZnbURKeWFRWlZCa21jSkNsUzFiRDlH MG9ZS1JFUU5GQmtXUnljOVgyUFJNend4cAorT0Y5L0trQ0wxa2gwNkRzT1Jq OG4wbG92NmxadnRzZ2NQeDdqajRFWWlnS3FJcU1vcG4xb1NHZG9hQUpWa1ZC VUdWbWVNUWNMVHRhZgorREZBV0NITGkxRENWbHkybDcraGVJcTMxNHN5bmRl WUlGYnBZR2ZCUTVmZHdiWW1IUlQ0WFlOYmZGUVZ1eWd2Y1hPcHp6NmorVklD MQorb1ZvcDBsb3ZPbnUvWUZuRk1wcDJOR2FYQWM3WG53cXdXOXNtUHVtSlVG VzVuSDFhRzlXaE1CK3dHWUNDQWhlU0xGazFNbWVPR1ozWgorc3hVVVJiSnF4 T3RWem9pSTAvV25BdlJGdS9EN0ErelQycmxvMWpWTTFzaDFLNHA1NVkyZkVs NjZia1V4eno3Zmw5VCt5b3NRYWEwWAorTFpxWjFaWGxOYXdMaFZsMFFXV0Mw SjJzUHhXZ09oU21SV3NrT0cvNnF2WDVGMzl5Ny9wNVNhUDIwSVl5MjZpMWFJ M2NkUFVhQVBvSAorRHJCTGErVEhYOXBGTWpKT1FRVllFTGpDMWtFbVVhc09o Zm53bTBibUJlWVNtbDl1a2NrbXNySWRUMG96MGhvVzJ1RlBDTTB2NThOdgor bWhQR09WbC9XZTByNmxadmxtNXBPRjhzV1hoNXdyTk02ODhPYVlrNEVUVlpT WHlXYWYzWmRTRXBpVGdWTlNVSkVjaXMvdXk2a0pSRQorYnI5MWJ0SkZ3QzdG eWV4cmduZHcrUGR1Rmw2NGdFaHJlRnI3a3duS0FrRjZvM3Vwdkd3cG5RZjNX bVF5NkpETzNQSHhreWU0WnNsVgorSEQ3eDFUOXVmOWFHYXFWTHpsMUZaMjgz eXlxV01ibGZaWjNJMmxDdFZGYTBncmJ1NzZpcVhHNDVCclArQWdFM2ZyK2Jr aEwzdFBvcgorS0hEaDg2bjQ1cWpUNm0rM3RrMGNPdllsVlpYTGFlditsdXBR R0RnTFovYmQyamJ4YWQrclZGVXU1NnVPZlZ3MDYycnFWbStXUG80OAorSWZK SGRpVjg0NlIzSFhiMkcrdWVsTGJ1ZVVRTXUvbzRPbmpNK2hhY2hUTjdYN1FM ZjdGL0dnbUEvSkZkVkt6ZndrVHNLQ0FRQnFpdQorUWpyZWVvQ2x0YzhSR3hz QVF5Q0VRSFVYb2IzN0NHRGZoV1Q5ekw2bjYyM3V1ZTF1WG52bmRUWTkvTm0w UVJPeFB4a2YvUldFUUJnQworREIyQTJOZ0FZOE0vSTNRRFlRZzhlYnIxamww WGNsYk83SXFhZlBrVkFpdnF3akFuRFpqLzlmalBNREFNSTkwMFV4TlpIZmlO MWozVAorYmYxeGU5T081T09UblJra20zMEV3N0FJQ01QQTBPTVQxZzNFaEg2 YW5QNFBpVlFQTnZEWS9jbDAzRUQ5UGNsMDNNQ21LZTlIV3V0RgorLzJnN3Nr MGZycXBGQ0hlY2lCQ29yaUlBRkhjeDdqdzlMamNEOVp5U21SR3gyL1loTXgx UG5rZjZSOXU1dm1vVlBiMEhXRmxld3dlOAorWUkwcERkYlEwZlJnd29SS2d6 VjBiWDgwcVowVVo4UzBsdytaNkxoRmErUyt1KzVIbG1WNmVnOHdIdld4TGhT R0tVU09kRFd6NVBZRworWXFNRGNZa0pWRTh4WGU5dFpISE5VNHdQUjAwZlF1 RE9DL0REUjQvYmtyQ0kyRzM3UUVZNnJnNkZlZm5OclVEcUUyTHMxQitNbnV3 LworblZXdm1kWHg0ZDg1ZGZ3bjA2ZHVJSHo2MzE5TlRpVFY1VU1tT3A2YVVW Tk9wek14RmNJUWlJbkpRSm5aQmFaazJnd2VldnF1SnVYbAorZzlNNlRpQ2k2 K2JQTUJCNmZOS1RCQ2VKQ0FNaFpyaHEyVjArT0szakJPZWVFanhlM2F3LzNj Q1Y1d2ZBbGVjM0NRb0JRdURPUDI5bQorUk95MmZYQld4MU5SR3F6aCsvZnJr OXIzNzN3aXFUM3RxcFhxOHNGSkhVL0Z4VGRzdFBGcE45blVrazNib2ppcDQy d2lMUkVuZFp4TgorcENUaXRJNXp5Q0dISEhMNDMrRXZmZ0kvMGV6VWdTNEFB QUFBU1VWT1JLNUNZSUk9CisiCisgICAgIHg9IjAiCisgICAgIHk9IjAiCisg ICAgIHdpZHRoPSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIKKyAgICAgaWQ9Imlt YWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21p c2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3JlZGlzdHJpYnV0ZV9tb3Rpb24u cG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhf cmVkaXN0cmlidXRlX21vdGlvbi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uMDZiNzI4MjY4NjIwOTg5NjY0MTJhOWVkOTMyMGVkNDUxNGZlM2U1YQpH SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjE4CnpjbWVBU0BOPyhvbEh5YHVW QnEhaWEwdnBeTWoqQHhCcEEkR3cjb28wcmpqN1BVPFFWPSQhOUc8eWQtYVQ3 WTQ/PQp6VUJYTCVKa0ExLSRZTFB2MG1nMTh2K2FOa0sySTBONVEpcGwyQDxU JG9EMislNkJybmUmYzV2bGx1PDJsalZNVjsKekVKP0xXRT1tUGIzYFBjcTJE Kmt1eCgwP0pNZ34/VSMjU2FLKzZKYXAxX2w7MFJwbjRMPG1SVmpyZDJ7VDcr OFdlCmJmSyohPG1fYW4wbmpYM2FzRFopTCl6NCp9USRpQn1hVjljSQoKbGl0 ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v bWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfcmVkaXN0cmlidXRlX21vdGlv bi5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9l eF9yZWRpc3RyaWJ1dGVfbW90aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42ZDE4YTczCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfcmVkaXN0 cmlidXRlX21vdGlvbi5zdmcKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVy c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+ Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtz Y2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9w dXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6 Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0 cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAg IHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4 bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4 bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNp b249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBp ZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4K KyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6 YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwv ZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6 cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbElt YWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAg PC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8 aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0 LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4 QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUNCSlJFRlUKK2FJSHR3UUVCQUFB QWdpRC9yMjVJUUFFQUFBQUFBQUFBQU1DakFTZENBQUZrampFK0FBQUFBRWxG VGtTdVFtQ0MKKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lk dGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIg Lz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfcmVzdWx0LnBuZyBiL3dlYi9wZ2FkbWluL21p c2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3Jlc3VsdC5wbmcKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMC4uYmZkN2I1OTA0ZjliMzA0NzA5YWM2YWFiMzdlMjRk Y2MwNmQyMzNjNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTMyMAp6Y21W K0AxPXNxQ1ApPGg7M0t8TGswMDBlMU5KTFRxMDAxJW8wMDEldzB7e1IzRGRC ajcwMDA0aVApdC1zMDAwMkwKeiQ8VVUjKDY3U0tlWGh+NCFfYkFYKE9zcTBa bkB4KHdiOC1LJn1ncE9qbXFlZCVJSVhPKnZRUyRZUDg7bCliTWU+Cno8YnUh YVZYNEArIz9ZUjsmfV5zQ2Y1NzlCJkZFbUopfUdZdWZ4aDgldEk/PnkmfFJx NFlSY195ejJzJWM+fnB4Xwp6U2ZTSUEoZD5vODx5eFpDbSh1SzZxU0oxez0y NX13amtWRXJ5eUsxMz9xI2pvaj9MK34jP1lWSUBMSHdTVGNGV2AKeiNeIVVo LUlkdHlram0kOHlXJTt5PVV2MzxjRG1xbyZGeWB7PGROMHhXVGVxdiFSUnUj PTVAO0lacC1YI3UtY04tCno/UDA5aUspbVJCen5wKyQ+VndlamlwSiQqejJ6 Z2E8VUczUFJsKD9nJmdfKWM/cTsmeFZaaTRjdWpEbmo9VmlDeAp6VEVwcGgj cHJkIz12PSh6RVZib0R5WEpxJD16eiVSV1g5YD0oZHxDRDwhczY4UT1RUnEk PzJ4USZ9NlhPYUpKcmoKenghLWxmPVNqWmxkJlRFU3oyfDwtPnkqeXdSLXd+ TyEwTEktPlNAMmBZcSNLS3p2ZS1ePXhlZ3ZiKytEViRtP2pqCno8Qlo3V2cz YXJDeVd5cVVASzNrbkVvK0x3MDAwMDFiVyU9SjA2XnkwVyZpKkgzMjtiUmF7 dkdVTkJ7cjtOQn5DMwp6WWQhen4wXmRuUUt+ellgP04jWWgrQ1VUIUElc0xN c2FHaC1MTV9PWmwhOCNhcGR3S0xtQlJ5eTdGd2tVUno9MDUKel57RE4/LWYj cVZMdipISkl7bzBBVlRRTjZ6eFVxblVCUiR0YFMrczJhVFRQaDJAUiRaZUBf VWhyNj9eZVgjPSF3CnpraWR1K2RZcE0yQHA2Yjc5dkt+TFlwbWd3KElrNCZr REd6ejVyb0QxZFYoQiZXNWU0QmA9cTF3bHkjMX4rXmpNTAp6Y3NMI1oqODVK flI1VyY8JitUdTYtQlR7N0F8WHxQO3txeF4qeTYkdj99emt+WCp4N0xMbiFn I1hYb2FGbDB0X2cKekFJUDQ2PEFSeDFmSjdIIzk/PCNrKjl1RUliJnV0O2Nn NXVJQ20mRERRTWk9NTxvcyRCSGFFR3BQUmFsKlgtSzZyCnphbEJtdW0zQXFj Z3JBVj44PUVFLWlyNTw3al4qK25EYXppJkBYMmghMkltendrQnBkYzFPaiQ7 S05XSyYmKnZ7Swp6SGNfRnAyVD42X1hMKDw2TUc9U3YwREM1IzAtI21BdkMr TnEqOXZea0lLMmw4dmRGTSVFdDhrbnZ4bkpvMWM2fGMKeiY0Y31LdktIV31W eTBIQEx+aTNzTSp6OHdQNn4xfG18Ozc4OU8hcmtDLXdSWDNJVCh7PV4xKiZv SHVmZDU8aFRNCno+Vng8JEV7eTFyTkZ7d3F7MXBWaEQjcDZDMlJuNW9oJTdM MG9sZUIxTnw0RnBgak1RPSNwdyl6OTkwQFF1QTVkbwp6JXpZUHYkaTJaUSZ6 TCUlJHo2QnRSKH0tQU9afDFac2lJVjMjYVhfYUtLcEk/UnR3ajxTJCRid0Be ezYjVEY7MUsKenJ7M1JWWDlrcEFEJVlfME13TEEqNnZBLWlWa2ZXM2llRzdA dzs+fnBVQzFXa3sxRXBXbkAoaTwkRT15KzY+TmtLCnomcXBBeVNhNC11SHZI Xlh6VDAzT0g+PGF7b3tlaEF5TWo4dyRoLVd0dFEmTlpwVjk2a1Y0TXk/TDBB QmJNR01EcQp6KiR5U2NZWSk9JikxZkhgdjxXb1UtN1ZKMlU3fTlKJmA4SSR6 OHlZbWBnS25aSylMV0ZRcER3K3dRb2BUJCVtPWQKenpRaiVBNGlhOHM8VjUw a0RwRkl9ZyQlODgtTE45e1VtPDx+Rj9LJVRwI248VnYkXn5xYUl1UFIqI0xf SDBBN1ZECnozbk9rcT03fHJ8di1+Jm0yUDkyPEpPQXNuNiN4SkxDM0hudGJZ eCs0V2piU1dXbnB3PjA1VUshRmZCMU1FaWZAdQp6R0I3JGNHZGVVaEQ9Oy1X RmZjZm9CXzAzKDAzfiFxU2FmN3piWShoaVopOW1eYz5wcG5GKSVHS0lWfl9U UjVDTDwKZUcmRExlSFkrZVNJeHNOR21zUDkpMDAwMDxNTlVNbkxTVFh0T3J0 Pm4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3Jlc3VsdC5zdmcg Yi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9yZXN1 bHQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUx OTU0YTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0 YXRpYy9leHBsYWluL2ltZy9leF9yZXN1bHQuc3ZnCkBAIC0wLDAgKzEsNzQg QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFu ZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0 dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5z OmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHht bG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4 bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5 bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIw MDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn IgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxp bmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWln aHQ9IjUwIgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9 Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yawor ICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0Pmlt YWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAg ICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNt aXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8 L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJk ZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1h Z2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFB eUNBWUFBQUFlUDRpeEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUNGRkpSRUZV CithSUh0bVUxc0c4Y1Z4Myt6dTl6bDk0ZElTdGFIMDlpdDIxZ29Za0p5SE1k TjNCUnhBQU81cE8wbDV4eHpDNUJyVDBYTzZTbTM2dGJBCitRSXJHQVJyRVNG WElqUXRIVGlObDFUcXgweVNXRTltaVpVb2l4WThsZDdtNzB3TXRKVEpGaXBS UTVLTC9pUVJuM3N4djNuc3piNFp3CitvQU1kNkVBSCtnRWs5bXRnNXBvcGJ4 UmJuNCtuNEZkUDVucTIrYzZIcHB4ZkZVeG1KUzgra3hNWHI1aHlydkRkOTM3 bXNTK1ExOTlkCitrRGVyR3FsTUJJRGlhbzJKcE11ckw1em9hdmNmSDV0eXZp RDR3ZzV4YkN4TzZjNEt2Ly9OQ2ZHN3Z5ekk5TmdRMTIrWG1JZzNtTWpDCis2 Y25lZ0pUOVFOeFZZeHcvTVFxQUd0QTROajdFdjZzRzcxODFaYWQrVTlPbWZQ dHJRU2t5d1BFZnhmblBWK3RNWmx2Tko3T1M2N2RMCituQm5QVXRCVC9QbVc0 TUxsenJiMkRYTGhzaWx2MW5VWVRIQnZwY3BRWXdPQUpSc0dFa0VXeTUwaFBy aXJjbXg4RkYxVldMcTF3dmtSCitaeXVNWG53bUo4NE1OSmllWCtid1lKUWYv MnlVZDc5Vm1acmVIV1pQSUo4VUJLbmhCUG02aDdOaEVkUkE4eVdQUlJYS05Z ZmhjSHVmCitpMWRhRUtkK1Bvam5lbHhmWE9mY3FPU2xaN2VIenN2bmN1TGNp TWZmNXBjSkJqWE81b2FaWGxhNWVLVTdUTjhnTTlkTXVleG9MS0VCCitVSzQz bWNoSUR0bnJ6SCt5eEhpd3pxL1BicC9jN0Z3cmljZVBwV2tZQnA5L1hlVDVF WS96WjNhTy81ZlA1Y1NwdE0vMS82N2g2eXFuCitIc3N3VnhETXpuV0cwZm9G bVY4VlpBZGpmTnp3K0VsRXdXKzYyM2FxUCszUTU2TjdBanVhb0dFWUJOZXJI REZzWGo3WFBZbGZmZUdFCitlTzN0QmVuV0lvaUlnWlpNOHRHOVVzZjJmWHZr UmhHS3VvN3RTMUtleDNDa2UvdExWMDA1WDlLUXlUQzJMeW1zV295bmVzcGZU bVlsCitYeTJWY1NXa3NsRVdOZ0pjNnJDUjlBVnk0YklwdldDSWI1dGdLQUlh RGtkajNTYzFWeEFjSGsxd3o1RkVwWTlydFlkZUo3MzBiRTdVCitxM1UwejJm RGcvRkhFOHdWZHU3YUU4alV0Q2xmZjNkQi9qTXZVRklSbGl3WFZVQ2w0Z0R3 NWlWVDdoUy9NOWRNZWJPcVVZMEVhWGdTCitMSWNqc1Y1Ry9FNUhZbURYYkZ4 ZkVrNkUrTElXWU9aYSsxaTdna3hObTNMV2lyRWFTMU1iSHVSVFIyQjdZUHVn UlhSdWlpUTNSWkkvCitYRmZia25GK3RlV052T1VTVUFSMncyVTQwbHRZYlNw bFNPcU4xc0t0T3o1SERrWFlyQ1Q2QXZtOEtCaElSOUFNamFicjQvaXRpU1JW CitTU2lzazBvRUdVZ0VHUXY3YmFmd2pTSTB3em9seHllc0t0UXNoNVRlRndm RFlWZ3QyK2lLb05MMEdjeEVtRjl0RDY5ZFFVNW1KZTd5CitDbko1QmZmdU9z bUFncUhDSTRwRXYxK2d0clJDZFdtRms5bnRLLzMrVlZONkFZT2lLN0I5U1ZD RlFySDMvTmdDaWNCYTJTYWdDbHdwCitjVlFGVjJrUHIxMjMzODBENjYwWlU1 WTJRZ0FNNkNvUjErWm9UUExLK1owbmxyY2dFZE81Mi9RQUNHbDdxNFpPVCti RWIvKzRJSTBICitvOVJkeVZnNnhPS0QvTnhVejliemxpQWMwaWcxZlF3RnJM cEwwdWpjdnVHQ3FpaTRLSzBkcnU1d0pMNG5GbElHZUs2UEpnU09Md2tFCitG QnJ1OWpZOWd5eVdvV0lZMUQxSlRGT3dhdmFPcGNpbWJsVUV3WmhCM2ZWUUZZ Rytqem83YVlCcnQyYnUrcEowTXNTdHluYURQWUhNCit6cG55dnFOUVFNWDJJ S3RLd3RMZDllN2hTUEQ4L25hcFRoS3FRRk9nS1NXZTlOdCs3d25rVmhuaWlS QWx4OE5RSWVMN1hiM3hRNmluCitXcXRrZzJHMDhpTVJVQWc0RHNQaDNWZGFG UUoxenplZWJuYmJqZmJta1lyQUNlclVQVWs4b0ZDcDdGeXFmMThwSFpTbWkz Z3dxTFBQCitDSk5leTBCQUNGelhJNlJ1LzcwbmtNVXk1SVdHN1VFcW9GRGUy UDA4U0JrUzEzRUpxZ0xiRjZDcjVHdDdnMmk0clJ4eGZkQVV3VWExCitQU0oy QlhublExTnU1Z2RBeG5kNzJrYVRCdFFhTGlGRjR2a2V0bEJvZUhzRHlWdWdC d080VXFJcmdtckRhOXY2ZHdYSld4Q082RmllCitKS2tMd3E3YlU2SWZqY05h c1U0aTBCcWk2VW5DUVczSGdxK2JadWRNYVFRVTdBZTlvcHFnVUdxMHpXRlhr TG9uOEZRVngyK2RIN1ZhCitiNGwrZWpJbk1ycFB3dk1JYXdwTkh5S2hBQ1c3 SHd6STF5QWROMmg2RWswSXNGMmlvdG0yOWZma2thYXFVSElrYVVPbHVsSG5h SThuCis5RVJXMHRpd0dOQVZMTThuSHRYSlczMkNXSkNKR3ppK0pLNnJySlhx TzE3TWRnVlpMTU9LR3NCUUlZdEhSbSt2Y2p0cFBBWDNDalZHCitEVUhUbDJp NlJ0N3E3NGpQVzRKSU9JQW5JUlVRZkhHbnpFUzJ2VjFYa1Bldm1qSWMwU2s1 SGlGVkVLN2JQVjlUb1JWZVQyWjhSTWtpCitxQXFhc1JCZlZwU3Vqd2dQNjFZ WjlJaEJTQldzclZSNElyM3pRbllGeVZzUUN1dllQaHdPYVJUWGF4eFA5Y3dC d0ZPSEpOL21LeHpXCitCZFdteitoUWpQbENiMzNmbWpIbG9VeVVwaENFRmZq aVRwbW5EdTI4QnQxQmFnSWwyTG9KalFtUEVYMzMrdXBoblo3TWliTkRIdXQz CitTa1FEQ29sczYyTFVpMWZtVndXUERFY0lhb0p2dmlueDlLRFhNYXkzZ1Z5 NGJNclgzbDZRbXk5N2l4VW9oM1F5dW9LN1ZtMjdQUFdxCitWODdueEdHMWps aXJJRlNGd2FFa2Y3L1RmVDNlZUc5QnlsQ1VlQ3hJcVdBeDRGVTczbjIyZ1Z5 OFlzcjM3aG1Ja1NGbXJSaFQwNmEwCitOWjI2TDNoVWVLUmx2ZTFWc0I4OU55 WkoxRGRRS2cxR0Q4ZFp0QTNlZUc5aHg1V1ptamJsd2thQWlaK21XVnUzWUgy VnA0ZTdMK0lXCit5TnlEWjlCLzFjR0xCRmtzQzZKRENkSUJRWFZsWTgvZTJO VHB5WnlZekVwWVgrWHVVcGxmNUE3eFdjMW9lOWQ5ODVJcFA3eXZjL2J4CitJ VzZ2MUxCWENreG1KYjg4MVgwUnQwQ0NLdUMyNnZ4VngyYzVrU0VhTitEK0Jo TXhaMS9lMk5UNU16bngzSmdrNjVTNGR2MCtrNDlsCit1T0hFdDJEZW1qSGwx MjZNNTArTzhObnRFc0Z5eXhPZG5sYS9yNjB5ZmpJcm1mcXl5T05qS1FpcjBI QzRlN1BFRXozODM5R1BOcE4xCithdHFVSDN4cWMzUWt2blZ0TGRrUUQydjhk WGFKWndhOXJqbnhzTFkxdkhTMTlkaGNkRnJQTUJNWjJmY3UxWTltNTB3NVgy RHJENTJICit2LysveGozUWdRNTBvQU1kNkdIOUQvZFZ3b2xHTjZueUFBQUFB RWxGVGtTdVFtQ0MKKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAg d2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2Ux MCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfc2Nhbi5wbmcgYi93ZWIvcGdhZG1pbi9t aXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9zY2FuLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi4zOTZkZmI0ZmVhYmRkODVlMDgxYmY4MzM2MzA0MTI5 MDU4NjMzYzVjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMzIwCnpjbVkr Q1g7NCFLNm9yI0U0M1UoJk9pWDdHMFRtdGQ1RFhZbWdSJkZAYWNXWnhpdiZ3 d0w+M2hnckJvcX5sckBpdAp6TEpeZHVBWldxNWZ3JlprQz1oYFg3Nz5JM1cm c25qRkp2ZEkoeHxeV2JJJjwqQDcoWCN6MDRxVHBza0lhNEdhZGUKekp3IVQ0 djgyYUdBLX1YWlIqOyR2Z1RYVWA0dT1wZUV3aEV8bmE0X2NKPiZPTVBIZENe R04/JSMoZ2VMeWdtbyZpCnpOM19nO3dKfmhmPjBWVipwUT5hK1NJKkkwOThf bHd0ODRrWHlPYThZKFYxJndubndiSSl0PkBWeUw+fiNecyNRYAp6LWV6JTdu PjRnVE5AWW5JIXxNMVJTclNgKmVPeURvZDlSS29pb0ckK0QpaUpUQW9WbkRX fTJvfktuNFkqbkZjaT8Keig0ZDVqTj1QZExidDJIRGchQ2VDUnRYNi1XK30l LV9PU3AzN2ZeQTU4N2BwVjB0UFdTdH13fHRmUllRU0VmWEd+Cno8cEQtOUkz X241RVZ2am5FMUB8aCNDXiNlbF5iV3A7RTJxaTt7a2RlVkJpNX1GKnEjTTgr cEstNyZLWDIwP3NSOwp6MXI7PFgoR1FDQ15BZDFUI1RYRmxPbmt1MTJqPStM MXFzK00oI2BVTE1HNHE5dCkxcyUqJW50cE9EYWFzd0R1cE4Kelc9UjRyc35G dF4mRWgwPlglZjNFMG5IWVFrTnFHNFUlajdNcDJVN29GKj5HWlREWW5ZbGhf cHJJNFU9Xk97KGsxCno8Ukg4KHo7WGs0M1dYZEReT2ExKlRBRWQ3Tnp8ViRO JjJMSy1nc3txPzJEO0cybUx9d0o/YXV9RnZrfVNDRWwtWgp6biFRfj03SUU9 JHl9ZSh5R2gqa0RYZEl+flV7alZLKEYqWXh1cW54fj4xJl9sPVkmc1dURWBO cXlpKi0rZUE5TWQKekszekk2WXVyRUQtVmxneEQyVmdRcTRUKW88e1VjNTJk Qk00X25zNHFUQDxEdnQjKlMjJjZkZiQ/el9KQV43TmQmCnpzYz58M1Q9Qklm QTNwcXxtZkBZZ3Uje184VWIoYnpiPlh8bndnKiFAVUJiTWtnb1ZwWnIqVGY9 JCR5TVFTN2NIdgp6Smx8eUk5dUclXz88O3VmaGwobnotYjNzOXlSbmdtNyFl QkIqKkBjK2lPVj4qKldVZ3R4aXI0cUghUTU4c0JZXlgKeit0XmxxQ3JxaU91 TjZqIUZDbV5aLVB3fUE0Y0VkeXYjYWNZISlqRkp4S2g7ZCNfKGR1cTE8ISN1 fF9pblVoUmI3CnpadVdzND9SbVBNM0xiNDhDXzcyVk5DdigtMFl+K3AzdX5N Jnkjei1odnE8T1BPI35IUEx8SGVULUpCbkRhfC1RPwp6JTxXdjRuVUh1N3Nj eiFGP25yJGB0OCgrMW9CS1d8UGU1fCF6Pm1iUzI9PUVOOCR1bkN6dSk9fE5w WEpTKzhrKHkKenNmLW8wSHM9dnooamVkUzdoMV4pTms2RWdqI0l9aiN8ZkdS aV5Ec3paYWE2PTB0PFN+T2dDJDU7UHhYWmY5MXNFCnpPV1UoNk56VEVEPGRv Vj85UXMze1goO1BAKTlNa0F1SHhRa2hIcFYoRDhmb1BuIVd5JkFQPHBEc0xK eVAlM29oJgp6X2NBWXM/YCF2fElZeSF3PDJyQC07QC0tMj8wM3wwVz54aXIk T1B9fEg1b05kbSktTXZRISFybSg5YykhI3I9X00KekJIZWF8KX18ZT4hJSEy N2BsWUR1Uz4pSDRPJHZHcT9ia1l8ViVPX3lEQklFS0ZSLVAlb3pYVj1edXxe ODMzb3lPCnphWlVMNDVRM0I2ayY9fUI8ISQqVzsqa2NWWHlMaUMzeStBUmdh a2F6Pmp+IVU3K1VVKiglQ2V5LURIQis3RkhxSAp6UGp8fVMtKm5kclJUb2h8 UjxYOEk5ci1mLUxjRU57eD8/aTJPWjQtYihKcU5hU3BTeHZjMjJ0YDZOKlJ6 PlUpfk8KejNYaUl6KUJ7MFYpXl5vd15lXi17YnhWZGhgZDdxTihuSDtxMyZq KXUlYjtsaz9jR01Ic1AqbFg8PiRBaTVXYGNWCnprRWdeQ1A5KD16MF9LNXAk R04oRHhaPlBISmE3ZDNFJj85IWc0PDJOO3I1bnFiQCg1VW09dHt+SHRqUWor eEgzaApheEp8JSRlZ150VkxteWZJKmRaZU1WOGdleHRwNVEweVJqJCQKCmxp dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3NjYW4uc3ZnIGIvd2ViL3Bn YWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfc2Nhbi5zdmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZmYWE0ZQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vaW1nL2V4X3NjYW4uc3ZnCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZl cnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/ PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5r c2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8v cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisg ICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6 eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJz aW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAg aWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+ CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRm OmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8 L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRm OnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJ bWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+Cisg IDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAg PGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2 NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRp eEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUJacEpSRUZVCithSUh0bUY5b0hF VWN4Nyt6dDdjbnRzWkFvTWdSRllyMVZrTE8vdEZxVWNsREZmdFNhRHp3RDBs ZUt2Z282RXRCbjFYNkpPVEJ4ejZZCitDMFZraVNBS2lqNGN0azE3YWY3MEpN MmRyWUhXY2tneHREUzF1VDk3Tno3TXpPN2M3TTdlOVM3QmwvdEJzamZmbVoz NS9XN205OW5mCitMZEMzdnZXdGIzMzdINHgwZStQcG42NVJaN2tjMERNSGt0 aHAvZFNiK3dKK214MTdycGl6WE1hUk4wWlJ1RnVIeWFmZFAyakIrYm1BCitv OGZTV0x0WGg4WDEwVUVMemc5WGtEbitQSzV2dW9nVElFNkFmUU54ZlAzZEN0 NS9hejl1M25lUmlMSHhlM2VibVA1MkJSKy9mUURsCitCeTVNZzAzMDVDNFRY NXhkQ3ZXbjYwQUFvSEMzam5PM0sxNDd4aDFmdTFmSHdqOVZUNDl6UjY1dnV2 ajlUaFdxM2J6dll2VnVEWEVECitNSW52VlBtQml6ODNhOHhSUXJ6NXR6MlE5 R0NjTDhMYW80OWJ5QUY0Ym9EcFlrZnNnVGl1QVhqbU1iYWN2Q1B6QUo3YXpY U3hJNktkCitmSlJkeFk2SWRwaDFuU09mblBtRy9uTDdpWUQrK3A2L3NkUDY1 eWZmQ2ZnZEdjaHM3aGJOclc0QUFNWkdoakF4TnV5TnozMTVtTzZmCitHSWRi TFhuanpVUUtLN056RURxUjlPWFpPUnljR0lkYkxYb3Jtd2tiUzlrNUhKcjBk UUlnbHJDeG1KM0RDNVBqYUlqeFlPTVhzbk1ZCisreWovY01tZVc5M0FwKzg5 Q3dENDdPd2ZnWDYzV2tKdGF5R2dONm9sMUQyZGdvRHk4VVhVSy81NDRZMWJM Y0xkQ3VvTnJvczI2U1ZICitIdFNiN1lab2pMWTRwVFpJaUJ6bUorSC9pS1pm V050QUtLWHRobmdMaGptbk5uUUJoQVZEMExvTFBRVVNaV1lpMVRLNW1VZ0J1 SXA0CitJdVVkSjVFTHdCcmlDYnZGNlJqWDJWV2VoK2xtd2dZaDBuaUw2ZHNh U0RLZHdjcXNvNmhYa1V4bnNCVFExNUJNWjdDWURkY3ZhL1M4CitSZ2Z5QVgv YUJxTExrSExCd1FHUFR1emJOeE0ybG1ZZEhPUVU4cWxsWXpIcjRCQ25rTHdq bDdNT1hoUjA0dDkrekxLUnp6bzRQRG1PCitaczJubVdIWnVCUUlyc05Bb25M RXJaWlEzNUsrSFNKMG4wTHlVV29xRkJMV3FCWFJxSVNNcnhYUmtLa1Y0V2Y3 SFlrSVJPeUVpa1YxCis0VTRUWEhXVWFNYUZXVS9KRG9SVEpXcHhJbjBROStv Y0RtZzdWV3VaajlqZXVRWjgyc1E0bllURlpBckJEMEJReUxCc3p4R1JDMEtY CitBekI2b1ZaRGM3S1M2UXlXTkZUUjBXbmhJZWwwY1R1cEJVMGc1WUpQSVc4 eVRpRzVSaEsxMDRKQ0lZRHR5S1dzZzVlNExuYlJzR3hjCit6RG80TXFYcUtW eVk2WkphVFYwa1lMVlFQWVFxalNxakRjQ09rVGhLelpwU08vRXJyUlhSRkxv eW5tNHRnSUtCSmFyRzZBQy8wZjFhCitNaEY5WHlmMytQMVVhWWRiVDg4UlhY MGx5Z3B0RWFqZUYwSXc4WmxxNWxHdDZ5YzdBSzlHQ2xETFVxaGwrYm9oT1Vr U1BwM2tlUXdyCit4ZlhXV281d3ZhdEFkUHZSVFkwVUxDK1lQaDlJWUthZjEr aGRVVXQzdE1vRlZpT3B0VkNlVTZnaDBTYkdLZlR5NURobzNhZVdZZG1ZCitu MkYwZ2pRUHNWSTRQK1BnbGFrVG9EWC9seWF4VWpqWExiV2lrbDJsa0NucFRV a1h4NG5XbVM0YzlxYXVGVUY1elVhbDhhaVZnRXErCitvenpwNmNtdWxoWnFu M2NOL1hGRU8wcnFNSmlFV1FkUDltais2dW9pSFU3Rk15SEtTVFZBdFQvTWV0 b1JtVTZCR2tsYTJkZFRyY0Z5CitDckdyRklDZ2s1WHlqeGtBOUVLdFprU3Rw YU9RcmtZS2xoZlJkQW9tZGkrMWxzYktCVVlocnhZaUFMRnNYT1FVb2dxRkxr Z1VFbVp3CitDcjA2ZFlJbE5qZGlwZkRiaklQWEZCMWNEN1BRUU9RWGMxWFhm eVIrOE5VVktyK29FM1FTdWVEUlNhRlF6Tk5Mbms2SVRLMFNhQ1VmCit6QU5P TFMvQTBCQWlBc210YnVERHpGN2MvcmVHT3hVWEFQRHVzV0hzMldWaDJsbjNK NVpLQzNtaGRxV0ZYSTUwNG1RblpvU0pZeU5ECittSGJXdlpmSEFIdVJQTzJz WTJ4a0tPaVk5S2M2RmlnWVErcXdNUEtwOTdhejBCMlpHQnNtczdsYk5QdmpY emg1L0drQXdKbnZid1RlCisveG9LdFloVUk4bU1NQ1E2dFFRbzBhbkZhYTVU UmFjUjFJb01PdW9sOXJWZlQ5TnlJWmg0eVhRR082M3ZPM3FxMTVQWXQ3NzFy Vzk5Cis2MXVML1FjRXM0TTQ5NFFLbmdBQUFBQkpSVTVFcmtKZ2dnPT0KKyIK KyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjUwIgorICAg ICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9p bWcvZXhfc2Vlay5wbmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBs YWluL2ltZy9leF9zZWVrLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x MzBmYmQ4ZjUzZmY1YzJjNzU3YzgxNzNlYjYyYTFiNjA0NTU1ZjM0CkdJVCBi aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMzI2CnpjbVYrfTE9MEc2UCk8aDszS3xM azAwMGUxTkpMVHEwMDElbzAwMSV3MHt7UjNEZEJqNzAwMDRpUCl0LXMwMDAx Vwp6cnBHcGohRVZhek03YDtEJmhDNTk/b1l0elJsQDBwKWJNNz0/M1VUX2cz O30hLXR2eXI/dm1FO3VpXjZycntOb30Kejw2RmgrViNuKF54OC1aYz15SH4h aE4peXlqVHltQEh1VWh3QGEodG0+JGRhbiRNNU8xXjZrYSQ9Q2txWSNPJmor CnpwflBQNjwofSV9b2JUJGo+RU4zMD0oRmhGbmRqVj4/ZDdyTipwJSR4dD9j NWo8a2didztqWmk3dD9sTnJAYVYkdAp6PUReM1FiQDFsRT5mRWFEPEckbjRr SylqYz5EajJ7KH4jb01qTiMwUz0tOCsyO2s7ZyNCKkRuSyNGfGowJXclK0AK eklHKGtLdUd3KyU+V0EmKVZEOTV4XlhQLWA7OTJ3TWZiaWZ9QFpWSlE9NiNS QVE/Y0gzMDAwMnorQThTVERDeVdHCno+ZWVGYilFc0BYTCN4em12KkxIXiln U0VCODFtZ3dhR2diQWxgcis9ZGcjfXQ9aFVSXitffm5fcVR0RGktXllnRAp6 I0QoVjVxfXtgVytgeGswJGNXcyhmYUsxZ3NvSEx5KFBYXnZnITBgXl5WPn1L PDk3N2dOUTxqJXB3KHlZJj1sXl4KejVidz9vXlYmLUElP3JRQngxIWYrekJ4 dVYwMDAwMWJXJT1KMDZeeTBXJmkqSDMyO2JSYXt2R1VOQntyO05CfkMzCnpZ ZCF6fjBfOTBXS356WWA/YjZ2KCtFNWUrVT5rNiZUZWExaTFCaWhOJFI8Kigk UmNYMU1LRlJHSyRKeFZmKyRLVwp6aHl9RiU+JUYtd2lCOTUtR280TiF5YnQj Ji0jeilBYjkjRFMmJVp4ITI8fU1VVnVYOyU8Pz4jbHVZWGAqa1FqVWAKemxN Tjk9ZVoje2UjS2BFXypnSGEkJGo4VVc8d1hDKSNLZTJ6IXtwP29qT2F5dG0+ OFghbDhxNjZzbWUkRSZ5c2loCnp0NyZxWUMha08mbD92YHdEUFRzZVI/b3NM TU50fmlYdGkxbXc3KCloa3BpTmVvMTBVRFFtNTFETDJXUD89N0JQcgp6T2xI dHBFRWVsP00xX2MmQlNzMStsZ1hybzEmaFZAM3tpbXxsWDteTjV3cG87KFpa dDVYMHdZRWc7SiVPO1p1Q1oKekRIYV55dS1mZlFxVH55M05BZWMwcVN2Y1lt M2ZMblJtXjc4Q0MjR00+VlJkWik0M3g0Vjw/NHpQaHNoJWFKdC1YCnprMnEy NVQ4JVpmOEBtV3JvNllNNHJgeD9NTWJJb2RqY3Zgcz9zZDVrU0Byb08kU2g4 dyE2X1ZxNmV9TGorQiMxKgp6eklPTks4fTV3Yy02NU0+LTtwOHhvUHE1P0Fo NnhOZ1RXb3hwPW8qdGMwLX0/VWJvNi1XTlUqWU4maH1GNU1aS0EKejAwUGx5 R3l1VV5FRkp7PDtOWENVUCRIMkNeVy1xSGRGMSErQ3pCKjFRNmBFPkVDfDdQ SldlQiROYClZdE5UKU1BCnpBJipaYDYoc203dX4+X3NfdnVzJHkmcH5zJHIw YHRuR3xMVEsyNVFnJHopRVNrUWE1I0ZQd3xSWVBCIUpRaE9GXwp6Kj56YVk8 I0t0KnZuLW5qUTZnTHFrRlFZM0xoaF9zSk99b29SQVJlaVVyNmo7Rko2eVR2 Pnc/KTtXN3VnVikyM24KendwNisqT0F3ZEs/TF9iVWR+MS1zSlVoJDVkR1B8 MUQqO0lnaUJ5Vnd4bUBtTUlyO0o4OVh0TWNoPEVINyZ4TT1DCnpGNkBUR3R5 eHF+O2p+KDwtb1E8KlI9ZXBgeHNDaWY8YVg/dUdlOSNiQ2Upc0ZyZTNkQ3B4 UzZRQDFTO25lXyFqNgp6LT94IzY8VFhCTSRMSksoVTVgcT0tbClQfHYpUWFZ Q2RsOSZZZ0d2YDJfXzdnYmlJeTlxayMkY0BuaDAlVHF7Y18Kek1XdlBFdTlN PFhtaUJvYCQ2bjk+Y200bmYwcnd2emIxTDJkMDAxUilNT2J1WFZSVTZXVnsm Qy1iWSVjQ0ZmbE1LCnpGKX1TTUY7cEB6SXk1c25HJkN6UEg5OWFiSUdINkww MDAwYmJWWFFuV01Pbj1JJkUpY1g9WnI8R0I3YlBFaWdHUAprRmZtanpHZGVV aEl4c2RYRmZ9P2JGdl4henROO0syMDcqcW9NNk48JGZfa1F7ZkIqbWgKCmxp dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3NlZWsuc3ZnIGIvd2ViL3Bn YWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfc2Vlay5zdmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI1MTBjMQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vaW1nL2V4X3NlZWsuc3ZnCkBAIC0wLDAgKzEsNzEgQEAKKzw/eG1sIHZl cnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/ PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5r c2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8v cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisg ICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6 eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJz aW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAg aWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+ CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRm OmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8 L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRm OnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJ bWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+Cisg IDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAg PGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2 NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRp eEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUI2NUpSRUZVCithSUh0V1Yxc0hO VVYvbmJuYjlkTFl2d1RVLzlBa0NCMjQyd1RKN0VNU0VocHExTFVCbFNDRWdK TkZSSUY4UUJTYUNKQUtCSlBsUUtpCitMYVJJOEZBUjJZM3FPaVpSRXBTWWlo OVJXNDFLY0czSGRwMlZERmdKam4vQ3hrN3NyTDA3T3pzemw0YzdjMmZ1enF3 ZGswVjkyZk15CitNOStjZSsvNTV0eHo1cHRkb0dBRksxakJDdlovc01DdFR2 RFNQejRuWGFPYUI5OTBsNHdmR3YvamJ4OWc4WXRMamp6THVrWTEzUC96CitO WWdsREladEtKSFErZkgvOE5ERFA4SFFyQVk1U05kYlg2cmcxSmtCUFBiSU9s eWEweEVLVXY4ZkYwdG9PZG1QWFZzYU1KNDBvQVFKCitBT0RlWlJJT3ZYOGV2 MzlpUGE0a2RZaldQSGRHUkx6VzFzZkZjY3RFQUNDV01OQVZWejM0MEt5R25t c1pkaTBMTlBLdkV4bkVacnhQCisrZEs4Z2VFYkRuSGJyaVIxakNTb3Z5RDRo NXdYSXZYTEJBQWhkcjJoUkVJbmdHaXhEQUFzc0RYRkVyNENmZEppSU1CbDVC eUF1eU1DCitwSURNWlFRQWZsUkV3M1JuSk85RUhseCtDV2MvNDdGT0MvL2tJ eDcveHNKUG5lSHhjeGJlY3RKLy9rUHYrK1Bkcm1zdWh3ZmJueUU5CitZeDFv ck5tTUE5dmZ1NmxHMFBWV0U5bTQrMjNvK25XR2lXSUplcHYzd28wVFFpQkpw ZWh0M29zTnUvNENYWnRtL29KWWd2Tkg5bUg5Cit6cmVncDY5eGVIL3JmalRz ZUJPWjlCVERKYVVjL2EzN3NXbGZ0Myt4OTR4MTREZjNQWVFQdnVpNEdRN01k UDA2TXVsSlgxeExqVHNBCitvVnRHMTZhaHBTWVlMSWNzUEgwTm1qb0JZcG9V RDlOakpqMEZiWDdNbWNkd0dvdHR3U1ZGdkVRalZ1QXV3T3RqRWhEVGZXMXk5 N0xICittWWJMMldWNUtYWlBjTVFiUUphREV5UUh1MGpvQnFBNC9tNENmdFBt aFlnb2xsZ0xFTzVhbEVxNVZRVUxGNlJTeUZhVEl5QU1GNlV5CitoNkJNNkhn QW9sS09FQ0ZzS2xFcHl6OFJ1WG9UZXB2Myt1SjlMUy80NHVlUDdQUEYrMXYz KytJRGJTLzY0bkQxclZzbW9vMTNZZVB1Cit0NUd4dXhBaEVPVXk5TFc4UUx0 VGVvclZnS2lVc3U2VVVXa1hJaVpoWGFoaHg1dklwT0lzaTJKb0JRYmFYc1M2 N1c5QVM4YlptcEpTCitqc0hqcjNCeDVHVnJaYlJwMXJXSWF5L3I2U21ra3hO ZWYzVUtXbXFDMW9FYlQ4V2h6am5kU2JHMmtwYU1JNTBjWjQyQStCUjhmcnFX Cis5UVRaQXZaMVZqZXlpNW1ZaENkaDh1TnNqTGphTE90bVBrMEN5R1BYY2or bFJkdXBaekJ4RHFicGJkc0FZUHAzT3R2eVFrUVFTeUNICitDRmNMREE4N1da Q1VjbnBmS2dYQ0psY0xBQ0FwWlZ3V2JIOUpLUWVKV1BNUUFqRlVmbk5FYml1 S29PdmN4MlRUL2I5a0VpQ1hmQkVpCitWYjVkU0loVStYWWhJVkxsMjRXRVNC VUcybC8yeGJNTDI4WVhKQ0tHWkZUY1hvNlI2VjZPVE05WUIzNzN5SlA0KzVt ak9OaitETEhKCitHUE1UYU5peEJYcDYySmxEcVVOLzY4bEY4UURvMDVla1d2 UzFuY2FHcHg2RnJzWmNzZFJUL01sZncwaGJPREVoS3F2UjI4NHJVdCtNCitW RmRXSXpiNUFUcEhEK1B4UDFkeUcvUHBMVHZ3dDVPdEhCazlQWXl5TzFzdytX VTlLbXRqbUw2OEN6YXVwYm85OHh2cEdETEovd0lBCitBc1FBSWhUWDFSZ3l5 Uy84L2VmKzR4ZnF3a1N1M1poQmRXVTExcStLUWc2RklFajB1MENRQkFSRkFi dTM3VVR6c1NQY0dKdkU1SmYxCit2Z3NGaU1reXdBalk1NGJPTzF2M21MOVZm QUZDL1lLbVZ6VDZFcm53VlF4MzNSN0ZvUG8xWmxYblJiUjcyMDRBUVBPeEky aXMyWXdUCitlSS9kczBuUWpEUnhCQmF5UUhaUU5nbGljTzNQSnBITFBFVGtF QlZCaC9aOHduMlAyRnZNSnVFdWVGR3BZOXRwK25JVFJLVU9RQXlpCitVc2Rs UVpKcUFReERrbW9SQ0RtQmlhRjZBQ084djFVTHdDaEVaVFdYQlVGWkRjRDFl ZUJISkpjMTFtejJKVUc3VS9hblhTd0hQZ3doCitVb1crdHROWitBakZqMzZZ aFk5Q2lGUjVDaHNZWDd4cjJmV1FiWGJ3N3UwRTBLNjE3cWsvUVZldkFxQ3ZC a2twdzBEN3kxaTcvUTFrCitmRFRTMnEydlEwdkc2WXVQRUVoRkZSZzZjUURS eHc5Q1MxeHgvRU1yY09IMHExano2QitnelgvTGNEbHlCeTZjZm5WaEl0L0hk UFVxCisxSGtyMVM1cGtVbkdvYzVkdG5EQ1htcGFNZzQxY2Rtam1iVEVGYWlK VVJERGV0TVhXL2o4dDBqZEdQWFZXRG1KQ0pLd1pDSzJ0S0RuCitXVExDdEhX WGd4UFRaRUVSUW5oNVk1TWd4TkZnY09zNDAvY3JNWDlhaXdsRmZuR09BTWs2 eitwb3pvZGxMazIyaEl3RXhhVm5SRlRLCitvUGhvSkxtb3dnbU1FRWhoUzFN VlZYQlprQ3l0SllkWGNGbVFJM2V3b3pzTG9lV1ZDeE1wRGxVZ3FhYVdyTFVH bDZpUmhrNGM4TVd6CitDM2d4ZkVFaTg2a2tWbGF2OU5WYXorMTVIdThlZnNl anRUd2FTYWxEMzlFUHFVWlNoMXc0MVVnYnR6OE1NMlhqQmdRbGlwNWpuNkp4 CisyeTlncGdZZC8xQTl1bzkzb21uclQyRzRjQ0c4RnQzSE8zTVRxVjVlaDlu cms3am5ubnN4TXZJcE9zOTd0WllmR1YyTm9lVHVOc1F2CityRVRGbW04d2Mr a0pHcUk2QkgzdUxCdHJ2OVRNMUJEMHhMODlUOWxNRFNJemQ5WlJBOWJSU0Ez Nit1Y2swbGl6R1QxakhiaU9TYXhhCitWWXVtaGthRWx5L3pETExKdU0wbWNY V29ac0dpcE9hU0pVUkh3SFFDZDB1YUFCYWJKd2VSbnozd3E4Qy9QdjhuNlJu clFOL0lNR2JWCitPS2UxbnR2elBBRGczY1B2Y0ZvckFJT1JXQkVkdzh4RjZt OW5JSmd0Q2kwQ3Vjd3RLTDhYRVp1TW42Tzl4V3dTWE1FcjlaaTV1QlVBCitN SE1SVENNRncxSFEzK01OeTQ5cUpFR0pJbkNia3dXcXRlSVF3MUV1QzBKNExZ Qk82d2dQN3JhYi9zY3FWOWM2KzlmSGlESHYvYVZFCitpRlRoaDhZZmZQYlVM Zi9qVnJDQ0ZheGdCU3NZQUh3SEthOG5vWExJTkJBQUFBQUFTVVZPUks1Q1lJ ST0KKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjUw IgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwv c3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9pbWcvZXhfc2V0b3AucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9pbWcvZXhfc2V0b3AucG5nCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAuLmYzYTliMTk4M2I1YjQ3Yzk2YWU5MTBlNzNhYjQyNjBhZTljMjhi NzMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExNDMKemNtVi0tMWM+e0lQ KTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tSM0RkQmo3MDAwNGlQ KXQtczAwMDJFCnp4ekxgVigxP3JDYzYhbGpaXyYtY3Q7dz5CIy13TSVuTkdy ekpkPjV0ZX1tYllvI0M7dz5iPGAwJGpJPSkhdFMpUwp6PllrJEZmcloofXMm PnF5U0p9TE08azZieS1LZyM2dipYUWBxTkxFTHNwcUBBP1lPej94NDclQnU8 Nzgpal9sPkQKej4qSiY4O2hXNk0lYW9Wand6dW9Cdmd4dzM+YmtxXnpRT0tv bmJUO0N3JUY2RT0tIXk7Kz9WUnpyUkxQNSpTQzFCCnp1anFRRSpKUTJOV3N8 Pz0rTHF8c255cyRyczt1YVFzb0drcSk/ZFd3WDIkN3VuNzhLSG1GQyEjPD0y enQpe0BxPgp6YilVMjJOdFZofXoyLUh5PTFSVGhiOyMmYm96MTRPcnt2WD08 a1hTbyl8ak5IPGZ5OVdUZVJMT3YqYkZzPCNvNSoKelV5aS14KH4jclJrS013 RUFoNl90JkZiVU9qPGRBdDdfSDt0Jld6I0FpPmpeV1ZWVGIhdTtoZnA7IT12 aDttZUJPCnojKmVrTz5XdDBsSyEoRUwlOEJMQXBnTWBlNTNBI2wpOW0yTWh+ TFBHLV5ZakUjZjlSX24lPX5QLW9sUkUhaF9xcgp6Z3h0Vl87SyE1R3V5NH1E cFdlbGFDcVRxUTAwMDAxYlclPUowNl55MFcmaSpIMzI7YlJhe3ZHVU5Ce3I7 TkJ+QzMKellkIXp+MHhuNUpLfnpZYD9iS15pK0NVVHJWRDdod1RwOXV+M0sm NGVmUTE1NURwam00Zn5jKWsmYEx7JS1uMT4pCno4Vm0lbXsmaEQla3xtZkty ISh5KiZOcFV3PURmUShkbFpVRVAza3xFUWwte3R3SG1jYklyeSM5ODttQkMo VipBSwp6MGM2VE5aTHdOeV9EM2lKa2p7WlFVSEhybFBCPH5neT1XR2x2JCNF OHVnN0F1VEliUE9KeDJPYGV0I2VrQGNWRVEKeih+cDQjV08yem05YkMzQWNf PXFQcTQzSU1BTlQpMkJvY3s2cDJYc2cxcW5nU1I0XzVtbFRjX2luUzlFRlhm JjAyCnpoQzNhU1JFeU1GZFFCd0gqRWNmQk8lNEUmZGE/RUwpZlMhfCQpLWZA aThNc0ViTlFYWj8ld3tPMXQocz1JZEVhewp6OVV5Tyk0YEM4TSs5e1NZJDBy ZDF5Z05OVENffllkUT1UK1R3c1ZFfCNadnltLWFZX0JRSz9qN1AjY3hgO35Z I0AKeipOYlB4UWVwUmFHYk1tKHdkUlY4ciVgYE9qRjhWcVVwU0thYGZacXIx R1JKRiFYT2FNX3cpJEs8PEkpJCQ0e3xFCno/WXYlVjd6THRyQUhzeVhFZDFp ZyNfdm45TWc1QVZWPHRKYDdEKnBlYD1IcnVMUFFkYiRgJHh2ZTVOWV51NCVe agp6ZmFDTC0wSnZfRVpObWREUyF+Zl9TcHBndmBBPUNOd3JCeS1WJkk5OTNg fmUwbV56PHsxeDBxP1MoWTJpPHslUiUKenk1LSk7U2pyNFBFd3QhJVM+e0lh RmVPalMyQTxkbmV7MkF7V2hOX21WcSp7NDU/PVgzKDhFayFfTSYkKV9LK3Ao CnpCRWhZVFBKPHdDIUE7JXZuOWU9eHFROF8tYjh2Smkjb0o3eSFMK2s3T0cp dDt0OFlAMWBYX1k8ZEVuaVpwIVY3YQp6MDAwMGJiVlhRbldNT249SSU5SFdW UlU1eEdCN2JQRWlwMUpGZm1qekZnaTNkSXk1dlpGZn0/YkZnVGVkOXNtRlUK ekMzSG50Yll4KzRXamJ3ZFdOQnUzMDVVSyFGZkF9U0VpZkB1R0JZfGZHJihS Z0Q9Oy1XRmZodU9SamRGMjAwMm92CkpQREhMa1Yxal5xTmBMP1cKCmxpdGVy YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21p c2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3NldG9wLnN2ZyBiL3dlYi9wZ2Fk bWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3NldG9wLnN2ZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzMxYmVhCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFp bi9pbWcvZXhfc2V0b3Auc3ZnCkBAIC0wLDAgKzEsNjYgQEAKKzw/eG1sIHZl cnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/ PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5r c2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8v cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisg ICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6 eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJz aW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAg aWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+ CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRm OmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8 L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRm OnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJ bWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+Cisg IDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAg PGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2 NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRp eEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUJtZEpSRUZVCithSUh0bUUxdkc4 Y1p4Mzh6eTExeVJZcVVhSWtTNlJkWml1UUNMUW9vclJNakxZb2VlckJQdlJT NUZma0FQUlVvK2ltS2ZJa2d0OElvCiswRXN0OUFYMW9RMmMySzFhMTBFUktY SWtSNlFrU3hUZmQ4bmRtZW1CTDZKRTZvVkZEZlRBUDdCWWNuWm45dm5OZjU3 WjJZR3h4aHByCityTEhHR211c3NkNlV4S2dWSHEydG0zd0JEbDRMaXNkUXE3 ZkxFM0ZJVDBObTFwREx3b1A3cTBQYmZ2YjRvUW5MVzZqS0pxcGV3RFNMCis3 VUNpYWF4NEZpdTVUQ1MxeEhkLytKT1JZcnZ5elkvVzFzM0dwdUN3R09ONkxz WmN4aVVSdDRoUFdBQTBXNXBxTmVUZ3lPZlZLNC8wCitsTS9Lc3VrQlBYdjgw TFQybjJBM3Q1bk0zaUUrZXhNbmtjUnk0d0FvcjA2emRFVGplSTlxNFF1QzZB TE8zTDByQTEzcHBvOCtYamN2Cit0MTN1TENmSnpEcG9EVXBwak9rMElzQzJK WkdJSU9wSUFQSjdUWjYvS0xHNDRQR041Tyt4eWsrWldibEg0dVpOQUl6MkFk Q2RNNENVCitNWVNNb1gxRjQzV2V3NDBucU5SZDd2MzRsNWZHZWVFTlR6Lzd6 SHp5cVlPUVNaWnVKeEFDV29IQkdJTVVBaWxCeXBPejZKUjFnUnBOCit6Vy8r dlV0UWVjWFBIOVNZU1F1TTlrOEZEMkNVT3ZtdERVSUtwSmtrOURUbFZ5OG9W VFgyNHZ2Y2ZlZWRjK09WRjRGODhxbERORGJGCituZVZKV29HbTRTbVVNcGQx RHNwQW82bjV3OWY3ZURNUndxVkZQdnp6TENvc25ZSXdTdlVnakRZWTNXNWJo NXBRbFpGUmoydDNWa21uCitvd1F2ZjMzaE04OEYrZWpqZFNOa2t0dTM0bFNy SWEyV2djc1pldnJyM2lGZjJZWmdMbzNNcGpHNWVUNzgzWTBCZ0M1RUQwWnAw QnFqCitGQ3J3Q1lORHBoZS9SU3B1ZVBMYlg1MGJ3VkNRUjJ2dG5MaDlLMDYx RnFMMDFRRUF0aXQxL25KVW9ubHRpcytyaXE4OXhmVDFhYjYwCitNL3p4NzRs VEFQMFFtUFpoZW1mUW9TSnNsa2plV01FcVArWFo0NGREWVlhQ2JHd0szbHFL b3pVRXdRZzJkUFMzZkluMHJSbDJXbEFMCitOYVhBVU5hQ3BWeUt0YTNNU2VD Y2NhRjNkQUE3LzFYb0lXM045TUxidFBhZkRIM21BTWlqdFhWeldJd3hrNDdp TjBlMEF0aXBOOWhVCitIc2R1ak5kOTlZODhSU0tUcEphYTRrLy9USjBDT092 Q0tXZDArMUN0Qm03Nk9uWnplNmdyQXlENUFselB4UWdDYzZYRVBxdU5TbzNw CittUVF2R3hxL3I3NEgxQUxOVWk3Rit0NVV1N0FUN0RBWDJwQ201NUlPRlZw NXhHY1dDY3RiQTg4ZEFEbDRMWmlhc21rRm83c0JVS2o1CitpSWtZZFRWNHJh d0ZxWVREWnNWdEovd3dnSTRMQThQTUdFd1lFRXZOb1NxYmw0TVVqeUh1UmxC REFybUs5bFNBNzhab25lTm1iQ0pLCitNWlFYRGlPajI1M1l6YVB1ZFcwYU9P NDBxbDY0SEtSV0I4ZXgwSHIwWVdXTW9WeHQ0Z0hlRUVPYkdpS09SY3NTVjNl aFY5Wit2d2piCis2cTNQK2hVWk9kb0xKTVRWMTNuZFh1OTNvRjErZGdvV2RL eTdzTDBCUnhKeGFMVVVVbzY4TU1ZWVEyb3lDb0E3WkdLUFNnaGJDa2NOCitI MFlERU5xQTZWN1hJQ1NoNXlHaTZZRzJCeHhKVDBQZEM3RXNPWEtlQ0NHWXQy eGFubzlqT1VQenhHODBTVWYwdVhsdzJvVSs1d3dJCitiRUt2aGhYUERyUTcw RytaV1VPcEZPRFlGeTdEemxVMkVjTTBmT0xXNExXVU5KUnJMWmFUM3ZrUVox MHdZRlFiM0xLaitOVUNWbkw1CitjcEJjRm5ielByWXRzS3pSaDlkS01zSHhZ WTNGQ1Vtc3I3NExKR3pKVnI3TTZud0pIYXFCWkQ1NTIzZmVJK2JFRVNFbFJ0 czBpanRFCitVa3VYZ3p5NHZ5cG0wajZIeFNheDZPaXVMQ1RqTEZzdTA1N1Bi Ri85YTY1RjdhQkNvbHppZTdtZGs0QzdBT1praWRJRjZKOEVaTVNsCitXVGtn aUM0TS9kZ2FHdW5Lc3VITHJUcFNnbTJQNW9wUmh1L2twaWp1SEhMTGdVUkVN bVVMVXRLd2xTOXpmK21nMDl2RGgxRy9DKzF5CitBOWhnYk1yNTV6aHo5NFkr ZHlqSWcvdXJZbkhCNDZ1ZE9wT0pDTmFJeGl3azQzei8yaFRSb3hMZm5MUzQ0 Vm9jN3g3elZuREFlL003CitJT1RwWVRURWhlNHNKcVRBZHROVTl6ZFJxYnZu ZnZxZUcrSUhQMTBWUmxmYU1KTVJIRWVNdEZYeGcrd010d09CdlY5RUY0b0Uy M2wrCis5dlkvNkl5bEhrUi9NdmNEQUFqcFlMdHoxQTQycUxXaUYzN3lYdGpY NzczYm91bVgrR0t6aW1OTEpsenJTaE9BSlNEcVNINlV6ZUFlCitoa1MyWHZL TGQzZXdJcE1kTndhVHVRdlJCaEJZemlTV0hhZTgrNEp5WFdBdnZuL2hNOS9Z NXNOdXdlZGZuNWRQYlQ2a2N0OW1JbjBECityZXVvb0lsV0lVWTFPOEZMRURa U3VzaElsR2JsZ0hMKytmOW04NkZmM2UyZ1lpbEdkajVHWmpiR1pDTHlYMjBI eFdjV2ljWXpSTndFCitWc1FCUUlVdFFxK0dYeTNRS082OG1lMmdzMEQvanh0 MFk0MDExbGhqalRYV1dHTzlPZjBIbmpKMlJpWERXWklBQUFBQVNVVk9SSzVD CitZSUk9CisiCisgICAgIHg9IjAiCisgICAgIHk9IjAiCisgICAgIHdpZHRo PSI1MCIKKyAgICAgaGVpZ2h0PSI1MCIKKyAgICAgaWQ9ImltYWdlMTAiIC8+ Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X3NvcnQucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfc29ydC5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uMWQ0NmZkMzRiZWVlMDk4Zjk5NzUyOWJmMGI3NzE0YzUyMjMy YTJkZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE1Nwp6Y21ZK0NlPmw/ IzlMS2tHRDBKR2IhPHxiT1ErTWVgUElCc0BYMTMxdWJtKngkbXZYYWFiOyp5 QUNiNUpePHlVQ1UKej0/RzZmbmZ6IXU8aX0qaGtZeTd4VzN8blhqaU9SX0B3 c3BIU0FUcHlAOHx0X0tDalI3Y3xPbDRlSUwhb1oxcCMqCnpRN0R1ZGctckJB KWNIZGc4ejZifUw+dzF8TFo5MmA4e20hRFF7fG5tWGA9QW4qKiM1RHpPN1VL WlBVTXRYUDZJbAp6NWZXV3xwTj1jbFhVSnYrJF8xbUZzJiNeQWooNjJ3NFFn N21DUXpoaGgkbk84YkNMUFF6KyE8YDN1OXlDTEclYmIKej8xNVU0JCZrcSlt QlEjfjZCSVRBdU85THFMSXNTQilJa3BQXzZpe3JSSTEwJjJzP0xEd2RoN1o4 ZkpATkNKbTshCnpGZDR0M0lUZkQ/UStrLXRmS20rIzZ7eDJIbypqVmtVcURG JiY5T2xSJGV4MDk4MlNjNUI3PFFpZldpJmJqUDMhcgp6YUVzeDAkPzhjQmBu SyNpSVRUc3RWaWx5e2NeWCtlNWVyPmk8cSVnNGslaG82ZlJKMVc1JipZRTk5 JC0wUkU8V30KelgqdTx9YjA4SyZReG53SmdIVSkwe0JPWm81USVzWVlBU30t N2Y/UDBNVXptZGc/cUQqcUpxUzY7M3kkeDREdk0pCnpzZXFDeCRXPXFkMz5k WFRNP2JYcExSJH1yQnY4ZTMpWEJyOTl5OHg0cXBGKWgmO1RQMzRsSXNHT0It bXtURnolOAp6bXFKSlQoZm09S25qdDEpUi1HaSVxWXgjMzN7dXl6VGAxSEY0 K195TWZaVkFjbV5weSl2VFU4bSkxOCVgc0tuaGoKeio8dWtzWVVpMWVWT2ZK S1BzPl98QUh1VXp2Vz59Jj5YdEZuRCMxMj01alNELWx9TzJYeTZBRUFzdl93 fjwtYX49CnpSPGE5KmU5S0MrO0ZnR21MSCpDTWJCZ1QqMUZHcVJGRyhibGtJ azw1X3M9KGJ6cnJWME9OTFR7SnZ2TlhqJndSKQp6PjdYWkRJI0JvS2w5R0x8 X01Xcm9xO0NxVERRUlUzVSZjN0wqe2JeT1QjSTdhPTQqWnxfX2BXQjdmdCho PCNsbUwKendWVTxqdXVIVz0pRUpxbTduM2ZlQy0rIyVIQ3h3PXVEfG17eVlP eWxgRSh8S0woKTt2VmRIZ2NRWX1gamVBJEt6CnpkXkdVfGFURGZaTX5IYzlT eXtVP2dfSDBDbFk/Qyk0dkZ4XkI8OEh8JDM/OCVQK2Z6dVBkRUF0aG9SdGVH al5xdgp6cDJ5LSVDYjUjNkVFaShkezw7eDFAVWw5WGooXmBILUN3ZmVZPmQr ZUZ1ek52eTMoKGc4Iz9SbTQpK3VYUlp7MFMKemVrJkxqMiZ8dnFUWD5oOHo0 cCtZdTU9KldiKiVYLSVmWDs2WkNlQjk3RntWSmR2SGVZSUwhZ2VPKHF6WSNm ZH40CnpnUHxMJXUxZ1l6TlRtVlktI14qaXgqfVYjKXc3aDBJZkpofnY8Y2ct dUF0Z0JaU1FkSi0rV1N4XkQkVE9PQjRUVgp6Jm91Z0haPCpndEVINFNLNjBO bHNJbE1JdVdARHhOYWohKXU+dHA3PD4ySE4jZDNncUBxXjBKdWdATCFfKTMz dTMKelNENDBqPTwmPzt5ZW5sRG1SdTlLTUZqS1N5cjx1eFkwdk9DbXtEPig0 ZTl5NlZSdndDbWdLZnd4OXF3S0BialVSCnppczlxME9DSFZGLVhJb3ZGU2N8 UioyKCpMeDBqIXRNWE5eI1UkZSZmMmEkKWVrTT0kbyV7VVNyPmkkUCRDP1k2 bAp6ZilsfmYkPVErTTZ5UXY3Y2lIQ2Q7Xz9JR0N3QnREamMzMzlHdkxvfk1p fSQtQ3hFY3lCay1aeW8jNlRqPXF9aF8KUGZkRDlxSDtxYGlgKjhDQWJANXxG CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9zb3J0LnN2ZyBiL3dl Yi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3NvcnQuc3Zn Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiMTEwMDMK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL2ltZy9leF9zb3J0LnN2ZwpAQCAtMCwwICsxLDYxIEBACis8P3ht bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0i bm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3 Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3ZnCisgICB4bWxuczpkYz0iaHR0 cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCisgICB4bWxuczpjYz0i aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgorICAgeG1sbnM6cmRm PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMj IgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIK KyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHht bG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAg dmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjUwIgorICAgaGVpZ2h0PSI1MCIK KyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRhCisgICAgIGlkPSJtZXRhZGF0 YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAgPGNjOldvcmsKKyAgICAgICAg IHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcr eG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxkYzp0eXBlCisgICAgICAgICAg IHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0 aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldvcms+CisgICAgPC9yZGY6UkRG PgorICA8L21ldGFkYXRhPgorICA8ZGVmcworICAgICBpZD0iZGVmczYiIC8+ CisgIDxpbWFnZQorICAgICB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZzti YXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQVlBQUFB ZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFCVWxKUkVGVQorYUlIdG1G dHNGR1VVeDMvVHZYWGI3bElTYWx0b0pFVVRVd284YUI4a1FEUkJrWVNVRUZD SnhDQW9TUFJCUTR5SmFXS01NV21pQk43VQorVkpzWWpJbzFZb3g0YTRVSEFn YTVpQkdCaG9ad3MxYkt5bTczMHU1MTV2TmhkbmRtMjVuWjJlMFNZN0wvWkhL KzI1eHovdC9sZkdjRworcXFpaWlpcXErQThnR1RXKyt0a0pjZlJHeXJhU2gr NTJzMmZMY2tOZFZxaWtIYWRSNDlFYktaWS91cFR6RTJtOER2RFVTTlE1Skx3 TworaVhvSGVCM2dkVWpVT2lRVzFidDRlK0JzcVJ3cWJzZVFDTUQ1aVRUSEEw bjhMblVDV2p3MUFNeHpnODhwMGVDUXFITktlS1NTRitLTworMkRFbHNxVFJC VkIwcGhiVW1hcXdoVXJaTWV4ZDZiL0c4Wi9VY3RTR015djkxemhWa3Z1VnQy TklaTys1RS9ER0dvakhpMnYzZXVITgorQSt5ejRjaDBYSHg0RzU5MG5DQkNv T2hZUDAyOE5Mek50TC9HdENjZWg2a3BtSnBDV3JSb3BveEcxV2R5c2d3S0dp SUVDRE5lOEhSSgorM2ZseWlERnVjNE1nbzVaNlN0L2dzbHhZVjVTU1ZkaUJn b3hDSmw4dUJ2dEVwaE1BeUdSc3YyNFhPYWNWTXJyeWJJaDR2Zm1pdUhJRgor RkFWeCtiSmFIeG5SeHRYV2x1TnZIbjZhQ3VvWmtwd1JoOGlRTEdpdlk0NmxI c1BnTEZhdEVuUjIydmZtd2dXa1k4ZEt2bEM2LzVaRQorT21SL3ZHc3VIR29W OW0vMncxdVA4OGltN1NEZlVodEVXdXRVdEVpbUtHbHFhanM0ZkxBUGp0bDNL SWVsbnl1OHZCVVMyY2xYUkdHLworb3R0UnRiWHc3cWR3eUhqdUxhS1dmQXVw NlRWSS9JWjAxK3VRUEsvS3hPOUlMYjBRUDRWai9oNUkvRm82QXgwU1NaaU1R M1FTSnFlZworZllGRUpLYktjQXpDTVFoR0lGWWtPSm9UMGE4Q2dCekx0dWVt YjFxOVRDaENDM3l5UVFBMGFqTkM4YWhsUnFEQzBEdWNDNUN5QWtMTQorN0Rl Q09SSG5Bc1ROSGxYSjJHSmdDakYySDRnazRxOGxBSWcvRjRKcllWRW5ld2Qy aURPajM5SFZ0bzZlemYwRm05enRBc1dqMVM5ZAorRlFVeVI4QmJKRGdhbnB6 aGJ5UXhPbDdVdnp6YW1xRmp2WEUwQWRpNHQxVTg5ZGdtRGd3ZUxDQ3pkcWNR OXkrMmIrZnNSZmp4UStNMAorMkhCRmR0OEw3M1FQRWVBNk1QT1d6VDB5TWkz Y3crN2hKd0J0NWcwTmVkeHNmM3dySDMzNU1iMERPMFRQNW43cEI4Y0xzS2tI SWhGMQorMFBSTE4zZmhaakl3ZHk1YzJtY1NzeXkyVm9EcmpIT1pOT29YWEpv RU82VDM2QmN2a2laQkp0c3VvMzNoblJuOWpnMFByc0hoVmxOegorZDNZL3VH bzlPRnhPbkc0WHU1N1pSZC8rUHMxUUpBTGhNQURTaWhXSUkwZVFWcS9XNU9D Z3JRekNsSWlDWEVBaWh6aVJmRGxGbkF4YQorZE90cVc4Zlh2eGl2eU00dHox SGpjdEszdjQrdXRuVjhSYi9hSWN2R2p1cFh3d1lzaUdUeUJHVFNNL0tkRlBG c243WWkwdzl5RGh2MwordGdvOWlSbmo5TTZhRVNoQ3lKVElISnAxenNySXBE Z28zbEoxWmxkQkprVVQ3WllHUUYwcFV4SmVMelEyQWlCT25wd3Bjd1FhR2l4 dAorR001Z0pYTWdLMVF5cHpOc2JQaFppRzg3WWN6ZzBrN284aUZGd0h3UFBE a01zUldsLzRXb3BCM1RGR1VzQ1ZlVHNLVlp5c3RMY1hpMgorUmVKS1ZvN0U0 VnJDVElNOVZNcU9lYTZsUXlxWEMyVm5LWldWR1dFOHZsek14bzRwa1l4Tnhm SXN5VlRLanVrWithSURicVlLdnhGUworQm9wYjNiQnRwUHd6VWlrN2h1RTNM ZFNEWlJmcE1sZWxrbllNaWJ4eUdwNWVEeE82djJiSzlKOG5RazJ4Ry8wdzhE MzAydmNuajRFTAoreStqdVhrc29aUDVwSUdmekw1L1B4OURRRUJ0TXhwbWVr WWtvQklMYXMvSUJpZkhibWd3RTRaOFFURVRNTk5oREtCUmpYdWY3QklOQgor UXhrT2gybGU5Z0hScVBXL1NGTWkraFc0QTM5OUtvNmk0ZmYvUUFJc2NxMUd2 eFpKaElDanA5VktUdXJIelFiMTlmV01uM3Nld0ZMNgorZkQ1TFBZWkV6bDRz elpsU3grZlEzdDdPNE9CZ1NlUGhqL0tNVlZGRkZWVlVVWVVGL2dVUkI3RVBo U2loRGdBQUFBQkpSVTVFcmtKZworZ2c9PQorIgorICAgICB4PSIwIgorICAg ICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisg ICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF9zdWJwbGFuLnBu ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3N1 YnBsYW4ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxM2Q3Nzk0ZTkx ZmMwODQyNzAyYjBiMzRjMWE5YjYxNjA3ZGNmOTIKR0lUIGJpbmFyeSBwYXRj aApsaXRlcmFsIDEyODMKemNtVitlMV5vSm5QKTxoOzNLfExrMDAwZTFOSkxU cTAwMSVvMDAxJXcwe3tSM0RkQmo3MDAwNGlQKXQtczAwMDJPCnohX2J6UShT TCl7YmE+TmRZdGY+bTxoSG8jeX0jX2wjcVl3ej8jOVVQJGpJPT8lSjlwfkB5 KldpJihRTUcoZWwmTgp6XlZpcSl0Z2gmPHZGTkYqPUQ0fSp6UTY2aiFSQGxO PjVgVjtuNDk2Y3l6OGNAKEFuRGMkSGxqK3JFSHkpTVZFfigKemplIX1HbUM/ bjtiPUJDQit1QGJ2P3kySkpweUJHQShiMD4qeT5ZXzhacShPYCZDenwqKm9X NUhqbWdWKSZDUF9xCnp5bH1Dc1NuQmUpd1hsY0MjPTYrdWo7VyQjKnlEbE07 ZVk3dXhYUXxYKGJJKnp3cnF4fVdLeFk4Yio5SFFoezM0Twp6WGw9e3ZMJXIh dXp2eCVQPlY/JHNsLVRmayZnX1ROP3ljWVI1VWIqbikkZ2ooWUkyc0x0ay1W QWsyZHUyJD8pdjkKekA5REpqP1opbG92RnpjbEBhZStwOysqSChtZ0xvdj4p eCF2JGh1dlpCKEI8Vj0tLSorKFQ/aWVzLUNybmMmJENTCno+My0/anNoWWBN b3o3eXE/dDxeOyEwRmhoPyY3X055Rz9KTEwmdkloaT5xd0UkRzdPI3JzbVY1 PilnNUMjZjlDJQp6Z1c9NEorYHhoNSZZO2BBZjhAPWM0UFYxNDAwMDAxYlcl PUowNl55MFcmaSpIMzI7YlJhe3ZHVU5Ce3I7TkJ+QzMKellkIXp+MD1oez1L fnpZYCY2TWQ9K0NVaF9JVDhoYFFYemBlcVh3MmtMeTtuKWc0WEptZGJHOGF2 VEIzS3AodjwkCnopcH1lMV8zcC0/NVp1N25uTkZWJW8wKWY/LUBNMX1NeCop WCgoM2RLc30hVHhYO3B9cFIpZilHRzgkakJ3UmQhdwp6JWBaRFVFbXBJTXFj Z2dldUk/X0kwJV9+OSoqUDV6KFlKUUw+UXo/OF54MTdESnE9O3t4IXdVfjRj ZFZ8JVdJWn4KenUkXlh4NVFEdEszNWM4eWVvJilqRUxKTXdWcCozJnhJTnlY O2JCNFdgcmNyTXdiQnQ7eW5pSXspKy0xP0ZmYlkjCno8NWR3a2leQ0hiMzZz ajQ7Z0NEelAoeGc3VFJVT0VfO2AzPzUoZyRIIVZ4Yn1MMHFoZjxCWFZ6MHVh M3FPKiRoSAp6SEg1Vm9JTD08WDMpQihaaU90NT1XV2gpZnNKNzE8ZGhsS3Az PUxIbjVOcm1DZzVqeFlMMXZtbXpfPjZxP1JeTEMKeithR0J6M3k2JHtyN1U+ SlpsQU0+VU5qRWhYaD1URjhOZDJiUnVGekg7R1RJTzI/aiVNems4TiVmRWRX JEFWMjJ3CnpMQD9zPGc9UU9FT1YtfT08bUk+MC13Vy1EKzA2X01wKmBlJkJs UklhPDlHM2xwVkJqYWVTZkpySTdpPzc1Rj9WOwp6aGJhNkE+NWthXiFzNjFX KnlrX0glVUAkcEI2V19+TE9kUXtpcD8pQiYzfiZ4NT48JU9MQ0tPKCQ/eyNR UUM9VUIKejxSZW4mS3I1QE9ZYilyN0Q1bG9ZbFNyS2R0KXxvSUg2KDZpR0Zl bV5aIVcpPyZzOWRQYlZ6fE01czheaFZIKihfCnpvPmd3QW1ATXcoR19YViVn IyFvSHd6Zjd6bCs2P2h5TkQxODI9bTNne3J6R2QhY3JNQ3dHTSpkOHBVO1Z1 KVRZRAp6Z3okTUo2M09KfC10byF0ZXlMT3ttJjtKJCExe0BaPFB+UjBCcTQr K3JAdX41QFY4OHwpSCtDKF47OVoqZlI0YDIKeiZNJX4xcyU4YnRRWkthKjk3 c3R1OSRzRXZvaioqaD01aV8+OGs4Kip1RnVmPDw8LXNZPEdFQzsmVmpiQ3VT d3dRCno9Snk+MVE5OTdrQSp1MT1fVihfQWYrIXR6XlFjb30kTiEtfW5icjFF OV9VMm8wMDAwYmJWWFFuV01Pbj1JJTlIVwp6VlJVNXhHQjdiUEVpcDFKRmZt anpGZ2kzZEl5NXZaRmZ9P2JGZ1RlZDlzbUZVQzNIbnRiWXgrNFdqYndkV05C dTMKdDA1VUshRmZBfVNFaWZAdUdCWXxmRyYoUmdEPTstV0ZmaHVPUmpkRjIw MDJvdlBESExrVjFvQT5vb29PQQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9p bWcvZXhfc3VicGxhbi5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL2ltZy9leF9zdWJwbGFuLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42YWM4MmY5Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfc3VicGxh bi5zdmcKQEAgLTAsMCArMSw3NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl bmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0 ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAt LT4KKworPHN2ZworICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9l bGVtZW50cy8xLjEvIgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNv bW1vbnMub3JnL25zIyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5v cmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0i aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDov L3d3dy53My5vcmcvMTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAg IHdpZHRoPSI1MCIKKyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+Cisg IDxtZXRhZGF0YQorICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJE Rj4KKyAgICAgIDxjYzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+Cisg ICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0Pgor ICAgICAgICA8ZGM6dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0 dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAg ICAgPC9jYzpXb3JrPgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4K KyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAg eGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dv QUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJ Q0FnSWZBaGtpQUFBQ0U5SlJFRlUKK2FJSHRtWHRzVTljZHh6Kyt2cllUdnpM eWNCWVNRbEllMmRJd3FFQWJyNDA5VktRdTFjcllPanBHa2Fnb2d0Sk9yYnBX YXFYOTBXMmkKK21qWkdWWWlLS2pwV0txR0dhdDNvWnBDQzJnbFlBU0Zlb1dr R3FDeVBtWkNYQ1U0Yys5cSs5NTc5WWZzbXdRRjg3WFNxSnI0U3dqcXYKKysv MmNlMzYvYzg0TjNOTVhTeGF6SFk0ZHZ5RGEyaTMwOWNQb3FNVHdpSjYzQ2E5 SHd1WFNLZmRCUTczZ1c5OWNZTnFYcVE1cENMZTcKK2hOSVNPdzZIaE1OdVJS Y0NBTW1TSEU2eWdvUUZpd1NTbENvei9vZlVUeVRKZ2l4TFJLSWFveEdWL3Y0 NC9RTjlPY0hJWmhxbklUeHUKK21aRVJsVmhNb3JCQTRIUlp6UXd6UWFGUWdr aFVJeDdYS1MyeEFlVzB0ZmVaSHNjVVNGOC8xTXkwTXpLaVVsaG9wYk03UW5k M09LL2wKKzVmVkl6SjdsNVN0ejNTaUtqczluNTVOUHpZOWpDbVIwVkVLV0xW aXRFcDNkRVVxTFF5eVlSMDVyT3Exanh5K0l3TFVoTGwyQlpZdUwKK3NUc2ty dmVhSDhjVXlQQ0lUbm1aZzVKaU9IVjZJQVBpNU1lSFJhRFR6L0RRWmVLeFBp TGhnWXd4bk80eTdJNXl2TlBxcUtwcFpNbXkKK0JaWmp4eStJRC96RExGdGNq SzZaaHpBTjBsQVBUVzkyR0w4bmc1aGVVMGo5d29leEY4bzRQYVZvZWhRQW9h c0F4S014SWpjakRBMzIKK0VPajBjL0xqdzJMSnNnV1dUVnRiaFN4THVWR1lC Zm41MXZtM1hVS0JUai9sbFJKRnhXVW9zVUUwbkFEWUN4MUdtOUdoRUZIbEpt bzgKK2h1ZExKZWhpa0VDblAxZnZFMlFLNVBXbVZ0SFdudnpkVUQ4UmJIam9N dlVMSDBhSkRlS3dlN2phZG82ZXJ2WUp5OHZwTG1QNnpIcXEKK2FodFFsQkJG MDBycHVIVDBmd3VTaG5qaThabFlKSGpyN1M1ZWIyb1ZhWmlid1RiS3BqOFAx SEd5NVUvSThud2VXUElFaTVldU5HQlAKK25YaGJCUHZQRXVob3BlNkJyMk9W SGR3TXRrMEpTRmFMTWcyeDdxY3pDUFFvL0NlZ3NINXROVzN0eVRxQXF0cEcz dG14Z1hkMmJFQ0oKK3VHbGM5WkpsUEFUQTRxVXJMU1craGZSMEpWK3Jwc2Ft QkFLeWZDTnQ3ZkRNNXZ2b0h4eDdzS3JxUFBmMGJIYnMrZ3lBTmV2M2pETzkK KzU3WmpMVjY2MHJMOWxRcVJvOS9iS2l1UWhucll1ZnZmQUt6K3dYUUE5aDhJ R0hVQXpmczJpa0JITW5DcmFodHZBWnRjdWpwMVBGbUIKK3BPTmcwOVpXWWJO YnNLU09hRzgySmN2VEVJODk4eG9BNys1OGx1WjlHOFdkWUtZU0FyS01rVHNw RGZIbzFsY1pHYjNFOEVnN1A5N3kKK2F3SWRmcHIzYlp6eUpYUTc1UTBTNlBE eitITjdqUTBQa3B2ZXo1N2VTM3FwamRlcEV5M0M2UzVEejNVTHY0MU03U09U S1oydEFCclgKK3ZjRHdqVjU2dTQ3ejJhZS9vYXEya2ZHQmYrcEVpd2oybjJY NnpIcENOd1p3dTMwNDNXWEE5WHh0NUErU2pvTzNkajBvWXVIa0xGZlYKK05n RFEwM1dhOFJucS9NbGZNSDFtUFJYVmMxQWlJVlExaHQxUm5xOEZZQXBBMHZK T3F5TTRjSTJpTWc5S09FUkY5UnhxNnViaGNCWWEKK2dSME5SMUdVRUVva2hO WG1ZS2l2RisrME91Qkkzcy9QS1VZRW1URmNWZE5Jc0U4bE5EQ0MyKzNENVMz RjRTeWMwS2JBNVVuV2VYeEUKK1ExR0docEw5cGtLbTM0aFZzcURyeVF2UnNl TVhSUG9FdkdUWlE1YjBDYmpqVW91SlkveERxV044Y2s2bEhDK2Jwa0M4SG9s NFFtZDQKK1dLTzYyazNnV2lnRDV1NmpwQVA3Q0xBcmRiR0MyYk84OVBVcmVE dzJ2Qjd6QzhVVWlNdWxvNm9DVGRPcHFYYlMyUTNuTG9UWnRMVTEKKzUvM2lB Ly9ZVlRlZTBJbEdOVnd1ODFkblV5RGxQaGdNeHZHNFphSlJqUm1WaGN5ZDVU WStQdVR5RldWMFZDTVMxVkFVbllJQ2lkNisKK0dPVSsweHptZ3IyaFhoQU9C eGtKcTNnOE1sNnZqTnVkWCtJcktySlJWR1RENmJJeUdFd1luNFBNNnYvbUE5 MDlaYU50elJ2RjZ1MFYKK1lsdno1Mzk0bEFGZTJIOVNITzJPWjFTdXFMWnp1 L0xmclYxeTE5ZC9KdURuSjk5OWhBTWZIY3pLVEQ0K1pJQ2ozWEcrOGIzN2FS L1cKK2NFb0NweXp4dFdsMkR2NjlsZldyNXRNVFVmSFlrbmxocnR2R2I1dlBa V1hNclBMeFlhU2M5bUdOc3pjeTc5Q1hSMVE2d3lwT1djSlgKK0lPR1MxSXcy ZDVKa05iZTU1ZXJEQUtuM1dnSEhoSm5vQU9vOE1oNHJ4a3hVT3Fmc25EbXBj dlVoQXl6M2R2TFBENU1GSTZtS2psVDUKK3ZyOW1QbXk1dDVQVFdScVRiTm1E NStOREJuZ2sxc1N2dHV4RVRRUUJFSnFPcmFDTXMzOXM0cFVuWHlNZUhVaVZh OGdGcGJUdWIrSVAKK1dkdkxYdm40TUJhd21nZ1NqL1FRai9TUWlQV1NVSktk NHRFQjR0RnJSRU5kS09FQWlkSCtEQU9UcGRtanAxcUV5K2xDc2xweE9WMGMK K1BkVWk3dFErWHgrVFJxS3VhZWlKc1R1MUZrOEdsbEJWaEQ1eEo5L1d2Rkdr MCt5WmdOK0F1Qm84UzZXdkFsM1RxUFJWY0RWNDFvQTUKK0UvQ3phZDJUbkFu NHVkTWVZOGFIQVNJMFBkbFIweERxV0djOW5qQTZBd2g5N0xuaklkTFphZlgy Q3JIbi9GTmNVUTV4WDFVTm9XaVkKK09iVnp1S0ljWXMvNXAxaTlmZXpxdTNu RGxneVlYSHpBdUt3bHk4WG90bFJIRzFodDA1TGxCYVVJWFVmWUJPZzZ0b0pT by9PdEVHdS8KKy8yaHlkcXhXQm9jR0NRN2ZwTGNyd3Bkbk9wbFRPNGR2TC8v TzJBeW1rc0RtRFZ2WXZmZU5NVU01K0RCQTdKVXJPTGZ2V1c2VnZYSUYKK0Y1 dGZuTFFjVHJPb3FwRURIeDNrc1FkL2lHU1QyWC9vUGFQTmpLSjZxb3EreXFy N0d6a1Q4SE94NjEvNC8zSFlxTis4WVFzQXUvZSsKK3dhS3FSdDVuVDg0K0RK RDR0YVBNWC90N1ZHVVFTTDVldWFDVWk4MHZNdTlIcnhJUEovODRxV3NhdGtJ ZjdYLzdKUUF2cjlsajJkYTgKK1VieDc1Qy9HMjNqLytldXBvOHQxNEVOZ1Y0 YUI5UEpLUTd5OEp2a2xKbGNmQmdpQXFneWloQVBHR3JTbjFtY2kwazlrcU1N WStGYWwKK1lmWWZlcytZMmJ0cFVWVmpCa1MrUGd3UW9lbEdaejJoSVZMclZF dW9ZL1c2amtoa2ZpRk1tOGtHNG03dGMvVXhCcUxyRTFKZHh1QjYKKzZwL0kv eUoxSitYcVl5eHIyVXNvY0dzSVhhQnJHbFo3Q1FDMlFwOUJMNFNPbzZqeTgy TEl5NGVSdFQ3NTgwc1pnOW9yVjB3SXFQSGwKK1pIM2F5bDVmRkIvM2RFL2o5 RjkzUThzV1BUQXMzZ0FBQUFCSlJVNUVya0pnZ2c9PQorIgorICAgICB4PSIw IgorICAgICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0i NTAiCisgICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF90aWRf c2Nhbi5wbmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2lt Zy9leF90aWRfc2Nhbi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE2 MDYzYTFhZjAzMWM2MjY4MDI5MTFmZGNhNTk4OTgzYWZmN2Q1MgpHSVQgYmlu YXJ5IHBhdGNoCmxpdGVyYWwgMTA3NAp6Y21WLTIxa0wtMlApPGg7M0t8TGsw MDBlMU5KTFRxMDAxJW8wMDEldzB7e1IzRGRCajcwMDA0aVApdC1zMDAwMmQK ejtQSTJULUBNZjh7e0h7TCo2bz9RO2liYWw+aGJ5VF4hbk41XnZCcmwrM1dT SSNeI0slLU9BaFY8THZpXnQ9bn4+CnopfjNiZSVqRUlSPD8rNFA/UXgjZSkj TE43JD4pRWsrMGY/bCo2UUBkO3FieFZANSRydlluanJjIXtveCs/dDctIwp6 d2IxRlglOz0lUDxIZ3xhI29xNHRgdShIRDxhd21tPkV6cWgkRjloO2tpTWpL eHwoM1BreFJzdEpCKjVtZnF7WEMKemhsaEBpaitUfnxwckR8dnRnTzdleXZA emMrfXp5b0BiS1pgO2xhUFZ0RGxPPW9JfXAxUHVSNnctb2E/JCU0ekQ7CnpZ VkZvfjtMXko1PkUhMC09R29jVigkZG4lJGpIRkp6X2hmcXM7YTcpblZGLWJx bj98Vz4pd1UmPjM7WDtZNFBHIQp6XzJFWUstWjtzb1h5NCE4KjRFYjAoOXBg dCVFaVVTP2R8UjEpeGd4YmlPSFo/KTJtWVo9MzNDYW45azE1Iz5VM08KeiFe NjZ8eHs7QlE+Z3d2PCZhPTxReHhUKT54Vlg1dHgzfUtnKlVZa24lZSRieHl9 amgqPGVaJEc9Oy1MMW8xM3QoCnp1JURsd3VkbERBcktOPzFnX00rKDtee1Qo MDAwMDFiVyU9SjA2XnkwVyZpKkgzMjtiUmF7dkdVTkJ7cjtOQn5DMwp6WWQh en4wcUlGWkt+ellgP1VZJGwrRTVzVm0xcSFaMHMmZDA1RVhIJE9KencmZj45 SnZWLX48eHR6cHImbUopMyMKenReNH1kSjtDd0g1YTNRe2NyUD5PbmZKOzBA fTtNem58RzY1NlYlcnNWKE4jQDFEeWFDPmolPnlnNClfVlp0cGleCno0JFJ+ bmE9QVQ3PipJWjFBTEBzRlpoVXdjOXw7NXBpQmBZPkx8fiYzal5rcmFibGVq UDQyYCNGdjRrOU8kbUkkOwp6RiVOOyo+PVdUMlkmSXJyOUByaDZMQCl5SlRE MHIrVnBEJE9ZcXBgRzVxSD1Ud29ibzFmJjdxaDJ8TiopYFJNQ3QKejU+XjU9 K2RCYjNyclZ1Y2xnIVN8Rk1Me0RqNmBGeFNlJkYxR3tZdkI0OTtgUUUyLTdC Xm0tPDw1IXV9MHhvdHN8Cno8Wk89Mk9Qb0h5JVI3PFBeeWU/VGQ7NEdhR1kz a3RQJChBSmt8Pkd7UDA3M3RwLXw8K3QpcCs+QlJ8cmE8S3h9Ngp6cDlQXihg YzsofVJhSz8zZTRATll2aDNsaG1mN0Q4WSROckQ3MFhnaHthY3IxeGhecjs9 RXkwfWJOfVo0QURuNSMKemA3X1ozNXJMUW5AZlYhM1RAY3Uzc1lYUlpPdz8o cShVKz1sMXJZRyFMSXFUUzR3YjElKXZgKWMqRWpsTiNyaUZJCnpPUkxwVk1H JUNkQ2RTbjc/c0hNe0klXj03V1k2I054cyZKdjgwQUFlTjxRV2lfY3ZYIV9h JnlaNVl6ZWkhSE9BKAp6Pjg9PEVDKl5nO25sNXI5T0clY1k2QkhTNV5MTnFC K3NHNFVtaEc9JUJKJT9QMDAxUilNT2J1WFZSVTZXVnsmQy0KemJZJWNDRmZs TUtGKX1TTUY7cEB6SXk1c25HJkN6UEg5OWFiSUdINkwwMDAwYmJWWFFuV01P bj1JJkUpY1g9WnI8CnNHQjdiUEVpZ0dQRmZtanpHZGVVaEl4c2RYRmZ9P2JG dl4henROO0syMDcqcW9NNk48JGc4bXNvcXlQV18KCmxpdGVyYWwgMApIY21W P2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4X3RpZF9zY2FuLnN2ZyBiL3dlYi9wZ2FkbWluL21p c2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3RpZF9zY2FuLnN2ZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTFjMDQ4Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9p bWcvZXhfdGlkX3NjYW4uc3ZnCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZl cnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/ PgorPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5r c2NhcGUub3JnLykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8v cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisg ICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6 eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJz aW9uPSIxLjEiCisgICB3aWR0aD0iNTAiCisgICBoZWlnaHQ9IjUwIgorICAg aWQ9InN2ZzIiPgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+ CisgICAgPHJkZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRm OmFib3V0PSIiPgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8 L2RjOmZvcm1hdD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRm OnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJ bWFnZSIgLz4KKyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+Cisg IDwvbWV0YWRhdGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAg PGltYWdlCisgICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2 NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBWUFBQUFlUDRp eEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUJiUkpSRUZVCithSUh0bUV0dkc5 Y1poaC9PY0daNEdkNGtrcnJFSktWWUNWZzNqbEtuaGRzZ01Zd2kyM2hYdDBE UmRmOUJ1OHgvQ05CRnQwV0JBbDYwCitXUVF3ZWdHYU9raFFHYkRUeEtsa3g1 WXBrWklva2F4bVNBNkg1Rnk3Y01oSW9TcFlNaFYzd1FjNElBZ092dTk3ejNu UG5QTVJKa3lZCitNR0hDaE5NVEdIZkF6emFhL3EzVmZiNlRWL254aFRTQ0VC aDdqcU1Jamp2Z3JkVjlYbDJJYzMvYllHOS9tMXF6NzJjVHlwbUxFY1lWCitT RGNzLzhHMjRYLy94UVNmYjdTNCtsb2FPU2p3dXcrM3VQMVE4OGVWNTM5eDZw bXFOTHIrNDVySlZxUExScjJMYnRna1ZZbDRPTWgwCitRdUtsUWd3aEFIcmI0 WU5QcXJ4Um5PSW5iOHlmMmNvOGRXRFA4LzIxYllNSE93YVBkMDNhcHNOOE9r UW1McE5JeUV6SEplVGdrd1cyCitISStPN2VGNFBxRmdnR1JJNHIwL3J2T2JY Nzc2L0lUVW1uMy84MHFMUDMxY1pUNGRKcDhOTTVkU1NFOHB3MmRhaHNOVzNX U24wVWZyCisySmc5aDdjdlpWQVRNaEZKNFAxYlZWNWJpRCtmRmRFTnkvLzRr Y2FIbi8ySHBma281ekloWmpNaEFCelBaNzFzVU5ydDBtajJzV3lQCitxeGZU RkRKaDVsSWg3bXcwYVhac2lpL0crTmY5SnFvaTh2TXI1ODUwd3g4Wi9QWkR6 Zi9EUjlzVWN6R1djaXBxVk1SeFBYWjJlbnhaCis3YkRUNkhMMVlwb0x1Umd2 cEJUaUVlblFhL2JmbGJiLy91MWRybjV2bXIrczFIbjNweStmK1d0NEpQanRo OXFUYzZDZ2trd3A5TG91CitXM3NtWDJ5MGVXVWh4ZytYVWhReVlVS3llR3ho Zi91aTduOTBiNSszTGs3eDlpdVpNMy85amlUNDdWODMvWm1VUW1wYW9ielRZ YlhVCis1Z2N2Slhtek9NVzNjUjZjbHBIQ0htd2IvbnNmUEdaeE5zcGNTdUhL aFdseTZmRC9yWUJqNlZtdS8yMGNZdU5rYkRPOXQvWFFiMVR1CiswVzZVTVp2 Yk9HWWRyMXNIUUEzcS9MUHpEcDF1Zi9pOExNc29pa0lvRkNJU2lhQ3FLc2xr a2xRcVJTS1JJSjFPazB3bW43cStaeEt5Cit1Ym5wYnp6K2t0ckdwK1RkUHlO RlZTTHhHTEtxSW9ZRGhMOXlwQ2dtV2Z2N1B6ajMxcnRFWnk1Z3V3SzJiZFBy OWVqMys1aW1TYS9YCit3ekFNVE5ORTB6UTZuUTZaVElaY0xzZmk0aUtGUXVI WVdrOGxaR2RueDc5Nzl5NjFhb1dYcmQ4VG1VcVRuSjhqbHNzaFIvdklYaDNM CitiaEQwbStDMlFJelRhUzFSdXVlUi9kR3ZjVjBYeTdJQWhwK3U2K0s2THA3 bkRmTVlob0d1NjlScU5mTDVQSmN1WFdKKy91aEQ5Y1JDCitTcVdTZi9QbVRa YVhseWtXaTNoT0Y3UHhpUGJXQ3AzcXA5aWRDb25zRE5Gc0ZuVktJRFd0QStB RUVtemViZE5UM2tTZXY0TGpPSWZHCitRSWpqT0lmRXlMS01KRWxvbXNiNitq clhybDFqY1hGeHBPNFRDN2x4NDRaLy92eDVGaFlXY0YxMzVIZmZhbUxVN3RP dHI0NElTMlNtCitlUFRKQ3ZKM2Y0VW5wN0Z0RzlkMXNXMGJ6L09HSW56ZlB4 UmJGRVhDNFRDTzQ3Qy92OC8xNjlkSDZoNTdQeEtRRTRSblh5YzgrenF4Cis0 czl3TFpOdVk0MzkraXIxN1MyRXdpOUdSQnkwMVRkRlBDMG5GcExQNTFsWldh SFg2MUVzRmdFT0pSN002cUF3MnhNSUpJckkwYVZoCiswZjErZjhSS2crOERS RkZFRk1VUmExMitmSGs4UXNybE1zVmlrV3ExeXRyYUd2bDhudG5aV2JMWkxJ THdkWjkyc0xqQlBqaTRDb01KCitHT3dIU1pKUUZBVkJFQkJGRVVFUTZIUTZO Qm9OYXJVYWtpUlJLQlFvbDh2akVRS1FTQ1JZWGw2bVVxbFFyVmE1YytjT21x YVJTcVdJCit4V0xFNDNIQzRUQ0tvaEFNQmcrTmdjQ0RvZ1lpZTcwZXBtbGlH QWJ0cG9ZUWxJbkZZcVRUYWJMWjdIQ1BqRVhJTjYyVnkrVndYWmRXCitxMFd6 MlVUWGRWcXRGbnQ3ZThQendlNTM2ZHRQVm1hWU9CaEVFQVFrTVlBUWxJY1dV aFFGVlZXWm1aa2hFb2s4SDJ2RjQzSG01dWFlCis3STJ2WnR5eXJLRzFMTXNh c2RaZ1h3aUNNQndUYTUyRWliVW0xcHBZNjNnbTFqcGphejN6TlI0NDBscURK dWswMXBJa2lXZzBlcVMxCit4bmFOaDY4YnE5M2QzWkc3MXVBU09DNXJ0VnF0 czJtc0RySzV1ZW1YU2lVcWxRcjFldjFZYXcwNGliVm01bDQ0MjFiM0tIUmQ5 eHVOCitCczFtRTAzVDBIWDlrTDM2L2Y2d3JZWHgvL2t3WWNLRUNSTW1QQXYv QmZKWUJGcWpDdFNvQUFBQUFFbEZUa1N1UW1DQworIgorICAgICB4PSIwIgor ICAgICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAi CisgICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF91bmlxdWUu cG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhf dW5pcXVlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjcwNDgwYmU4 YTRmNDkzNjlkOWE5NzRjZTk0NjEyODRkMWE0NjU0CkdJVCBiaW5hcnkgcGF0 Y2gKbGl0ZXJhbCAxMjM4CnpjbVY7ezFTJEs4UCk8aDszS3xMazAwMGUxTkpM VHEwMDElbzAwMSV3MHt7UjNEZEJqNzAwMDRpUCl0LXMwMDAyWgp6I0tnVUtj Z0kzUHN+UUB+dSZ9byZEZGM1bCg5WGBzcyYmRFNIbnZxSyV0bDdkTj1tYXlC ITtQRVFqSG1ackNZUFgKenJ1NmEyQGEodG0+YjB+dUY1PHRScH5ZVD52UFNG V3A2Y1M5PkVXQih3dCUpU0VBOGE1YS0laXEtSSZMQVJQNWxiCnotRFBGKDwt ZXhQVyVCRjl2THorcHo/SklVcyY9WTc+RFpfMitffm8xbC04cW8pTGROUiZ5 QWs3aHB5VWpjJjxMPQp6KVJFeEhofkxNQz1GeV9SVHRtVj9LakYtWj0rfnlU PGEqdH5nNSU3ZHVPVDZPdnFJejFrSzRVfXhHXiFmTUwzUFkKelF8SHZBPGok YklKM0deNlgxVktzKDM1UytSYUx3MWdUX3V5bWRzdGFIOHJ0NEEtR35IJXd1 R19NQHpiOFdzO1RBCnpXXjIpaUwzNH5lWHdBOz95fSN8aCFSXkFyPyMwSU4k alJgXyU8LS08SHFeRHF5dUl0RXNwcVAhPWRRMm12OXMjNwp6eDloeH16cE59 Vyl6JFIwV18hUz0lQzkjKTtOYlZnI08lcXAqM3JAT3dUckV+eVg/TmQ/Vzw4 e3Z2WkVRdGt8elYKek58SDVMZ0dQWD1leTY5VDtEMVl0bEZFVFIwMDAwMWJX JT1KMDZeeTBXJmkqSDMyO2JSYXt2R1VOQntyO05CfkMzCnpZZCF6fjAqeSZU S356WWAmNk45RihvaCkzaHMrVSF4c15hRG0mdlVaYWV7JU16PnQ2ZDZOcE5n Vndnb1lGSWgoMwp6eTc7ZW13c1QtV1BvRDhaJipTP2VYUD4/QWB7bkZJNVFD KX4oLTktcW40VFB3OEsoXjc5Y187cVg7PnlSR2hya00Kem1nRFo7IXl4cGUj VlZLMEs7NVNhZzB0SkZhMTNwa2J+djApN2lEbnN3QV5JfEZjYCF0NkNTVkc/ RGYmfDVBMk1jCnoheXkzaGMtKCU8MXJhYkM0dz5Zd0pueTNYSGVVY0M0PUBO IVk9WTY3WHhpQTFiZmM4WklOMFNPJit8VWdLUlh2aAp6VUQmQzQ3RGoyWWZC fTVMJjttVihAUFomTHkyR3xlQm1fXkU8e3cyX0NDWGBzTX5GcTE8QjFgfUMm WGVhJSZJcTsKek9yYUF0biZ1UzVzU3UpPThBZjhVMjxjeVFDNl5KaDZpc0pZ Qn0kTCpJMmprayslT1VkMXtkPztMTW9MKUJlUEdrCnpFTDsrLVFCMElGblcw XmJOP3Y3PzhWcn1sQl5DJUskbn58a1ZsamJVI3khUlRtNyhORHpFVGlEcDx1 V3c0b1NzVgp6WUd0cENsOzlvOTt0YFF0Q3RZR0xtbiRoWklhX14oeVU3YjFe LTNYOER3VUxBeEdFcXAtOzByY1VhUDw4MSo3R3cKekJ5e0E8a3YlY0h4aXVP QW41fVc4K2IjMjBMeFF6IVdfQjlkNXxmJnt1VWRQcl91bSsod357dUdOJHEj PEtZYVhqCnpLcDc1P0J5QW87JGckYWNFRilTeGhMQSUpXiUpe35rSEs5SURG NGFQN2xoekUxezIkMV54S2x1PXRzSXklR0xQMAp6JVU5c0IoezJ+IXYySypq WnszNHxUe2BhWU5veD03ZjtAKG57Qz9JdTcobVhNKWVIM21kSkthQWs2byU9 cHZQYE4Kem4hQnd8Szc2SClqNkMtNVVGMllYKVhHMkFWMzVhZE82O3IrSmEo JFM0Q15zNEB+P2Q1cyY4Ymgje2hDKERfXkp4CnotZVhleEh9S2VIN3QhSnxY fV49TloxI2ZEOzt7ekV0QTU9SjxgI1BGfEl7Qk0jSlhMdEV+XnYoMDAxUilN T2J1WAp6VlJVNldWeyZDLWJZJWNDRmZsTUtGKX1TTUY7cEB6SXk1c25HJkN6 UEg5OWFiSUdINkwwMDAwYmJWWFFuV01Pbj0KekkmRSljWD1acjxHQjdiUEVp Z0dQRmZtanpHZGVVaEl4c2RYRmZ9P2JGdl4henROO0syMDcqcW9NNk48JGYo QUBuCkFAQmpiKwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfdW5p cXVlLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1n L2V4X3VuaXF1ZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOGU0M2JiYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3VuaXF1ZS5zdmcKQEAgLTAs MCArMSw2OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG LTgiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtz Y2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2Zwor ICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEv IgorICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25z IyIKKyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y Mi1yZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53 My5vcmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcv MTk5OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIK KyAgIGhlaWdodD0iNTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQor ICAgICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxj YzpXb3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpm b3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6 dHlwZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9y Zy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3Jr PgorICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAg ICAgaWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0i ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdB QUFESUFBQUF5Q0FZQUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFB Qno5SlJFRlUKK2FJSHRtSDFNVytjVnhuL1gxellCbDY4RWdzRTJTV2dXS1Ju a1EwVlp1dEtsaWRhcG05dTEyeVFpVGZ0bkNkTzBUWjJtZFJOcnB2YS8KK01W VnMwNVoxcWFhbHFWU3RtMmlrcEF0bGFhczFnWWFHa0VCcEFvUWxHWUVVQStI VEdBSVkrOTc3N2cvRFRReSsxeVNReFpyeVNGZVcKKzcvdWU5NXpIOTV4SDF3 OHNBYzMxOWVMRDhuTFJYRjh2bG5MT2NzQ3lsT0N4Nm1wU3pwL25XbWtwOTV2 TVhSTnBmT2NkRVRwK0hNL0QKKzZ3R1FVMUtXcmFpN2dkVm9vZUh0bjR0UWI1 MWg0TWhiNWF6MnJHR2cxOGVLTFNsTS8rZnYrbHBGVlpsbzh0VUFVT1RjVGJI Ynl6TTcKK3Z5MHRZOTBMWUVnazFGdkhJM3YvaUJJZVJXamFndldQcTE3RVdi U1cxdnJUYkRuNFM3bytmVTFmYS9MVjhPeU9Kd0h3amR5Z3lWZEQKK2RkM2Z4 TDBrWTBnRVFBbVBFcDdwUjZnUklrSkV4bUM4dlJjNUVJN2NzMWx3Zkc0bGZI b3JydGp0NVI5bmExaTcyczJXZ28zNGlKQzUKK2x6Q2RFYUZwQzBnSVJXVzR0 bzFzajRjYjE3dkpmR29qUWxHaTR2YnZPU1FkZmFGZnlySnY0Y0sxRHR5cm5M VGVPSG1QS0VRUWQ5aUYKK0VKRkxVUkdLQ29EL3ZRNHkxNnhocUtlSHJDY0tE V1AzN3pra2RRLzZscTlhRTVpMmxpMHBDeTJrWUxGYjBVS1JYMzMwWWd0U09Q S1UKKzFIUWJtWnVLa0cwclRaUFlrcEtXcVZ4akdCS3h1M2JTZlBqNUJmZkhQ eGdsYjkwR0JqczdzWGhtYUQvMmlyNGZ6dDFSOG5qS0dLdW0KK1Iwc3JZd3FH cVdwdCs4N3ZDTStNNlBlRW9uQ3E4bmt5dkM3YWEydlovUEpQU0hGblkwdk81 dUxiNVRIUEtYWjc2ZXE3em5wUEFSVlYKK1hyRi96eUhwOWh4enlxam4wRFQ5 NlF0RlFadHRhZG02a3ZicWx3eEptclpXZUdhRW1aczkrdmV4OHo0Y1dabE1U MDlqV1pXTUpUMUkKK2NLSkhuNTFZY0Q3ME1QK2U3R0RIMXUyY2EydW1vcW9z aXN5Y01nSUlWVU1MSzVGTFVTT2ZvVEJDMDBoS0NadVZHa2UxWnRWSVUxUTAK K1JXWGcvZlBrdU5jdzJ0UERxaTl0UUtocTVCTEdieWQ3dlM5S0dXSWo1OXFh ZVh4N2lhRU02NFhQSTZFR1EyZ2hCVFdzeEl4YkZKRzUKK0JBQmFXR0g0WkFj WkxoY2puMzJtcTlXY1BCdmhjTTJ2eGJqdENvOXZMK0ZNeTFtSzNkNm9kYUZw ZXZ0b1lRVjFKb3dhbkptOVFsRTEKK21NRzB0V1RiU3V3cklvY010M3hDYWs0 TzA5UFRKSy9QSVhYZGhsdUgyRllabm5IalppZlp6bXpPdEp6Rk1WWEE3VzBG SUV2cFdHVUYKK0lSUTBvU0tqb3NrcXdxYWhKV242VzBWeWh1dnVpTmhkTzZN R2VQeURVZkp5TnpEUTFZV1c1K2Z5ZTc5ZnNEK1dhalg1YXRqMzJIZDUKK3Zl b05qcjV3VXBvZjAvTFhuNW9XdUpnY3BrUkN2WFZzTG4yRjhQUVF5bVNRanl0 L2dmMXBOK01kSFd6NzFjOUl5a29ISXExbGQrU1kKK0swcVNMZVo5SXlrMWhy RzhtN1pXYU9JR3daczkrQnQ2U00zSlljcnZKM2w5RHFvMHd0VElpRmxvRkN4 VzB6VExBdE1NUWdpMHNJSy8KKzhSSnBIZzgzKy9wSWY4eTlZSjltTVBBVlZX VmlNdVhhOGxRYUIvRlZLeFJScTFTbms5R3VMbDJ0NWlRNWxxSlVWSldKYi80 MlYweW0KK1hPT0prbDFjN2J4Q2tYUDM4bGQvRzB5ZmlOVzJpb21MRGFTNlhF ejUvYVIrUGgrSHF5RHFDUWhOWTBWYWJsUmNrNitHSCt6OUlRQlgKK082OHdj Rm1ibGQyM2xwL0JYSzFHQzNiWFR0cXJYMkxzNkJEWnVVWDR1N3VoYUpLckox ODEzRDgzak1WdUw2OGRQZ2o4Ny80aG1xSzUKK3ZsNGN5Y3NUVGZ2S3hKRzh2 SVJ3UzR4Z09pUEs4REJKRGdlanZuN1N2VjRlS1NtNWY3OXFISmdTK2NKenow azVsWldRbjBlNjE3dGcKK1BaRjhyU1hody9KeTBiQjdkMEswM2YrL3IzWGdU eGRFMnlYandGTi9lSk12ZXp3TTlQcTRYdkIxK2h0a2ZTMmhmSzIyUy9EOWZX c1oKK0N5aFlMQ0JMRXJMVmdpeURMRXYwZk84MHp1S3R0TmFmNXFuZnZNeUJm OTZLVFRoZnkrOFBNVFNzSU10Z2xTM0lWZ21iVmNMZTEwWnkKK2NBS0FTVGta YVcwaDBLbkhKWnl2WllSZzQ3OTBYMnZGRjcrNllEMGhmYTFZQ0o0NW9mdGFE KzE2MW5CZnd2aGFtWmwySklzbGFrYW0KK08xcVExR2tBZ21sWjVHL2VoTU1o bXgxemYzMnR3azN3NTllN0Y5emZjS0dLWGV2V01kalp5ZVdVN1p3NDJLbnZ2 MVBFVThaWU5mMzQKK1IxdnV6TmVLcVZvV2piNWp4OG53ZW1tdnJXWFhnVmQ1 Smo4ZmgwT21vdkpLekhQTWZLMTR5bWl4Z0ZXV3NGb3Rwamtnem96NC9TRUcK K0IwTU1EWVVZSGdrejFsQ24rMXJxU2ljekRpZGpBWVhKU1hOZkt4Q2NaTWZX N1l6YnJsQlJWUmIxQmpBL3gvQklpTkhSTUg1L21FQkEKK0lSQlE0dWFJUzJR K3BzNjhyL3RhMXBKdkxDcG1zYjdXVW5GbnF0WDRydTVyMlIvOTJxSkM0dmxh eTRWRnFaWk5scGhvUElVODYydVIKK3Y1R3NndHlvL2pWQ1BGOHJsaklhemNo ZEVabXZXb1huamxEczhURFExVVdiNDBsT3pGTTBJOVV5ODdXTWxOR3NKaVBF VmExQVFFSFQKK05QekhQaUoxMjlNTXRMYnlsWU9sV0hOY2kxWVVJMS9MU0Vy dkJvdDcxMnF2SlczVzF5Si9Jd0hyYXF3QkJhc2NhWVY0dU8rKzFoeWsKKzFs TzZyMlhkOGExRkg1NVF2aGJoR1doOFYvZTFGcU5XQ2VkcnBhZmJtZm5rSStU WnRrb3Yya2FheHhsWFVSTEsxeXJjQkg5NW8xdFgKK0szOTNOdzJyUytsLzg3 cmgvams4OExXV2dBZSsxZ1BjSS93WHo5YjFQVDI0VG1jQUFBQUFTVVZPUks1 Q1lJST0KKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9 IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4K Kzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9pbWcvZXhfdW5rbm93bi5wbmcgYi93ZWIvcGdhZG1pbi9taXNj L3N0YXRpYy9leHBsYWluL2ltZy9leF91bmtub3duLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi5kNWQ1NGY1YzdiMjUzOTc4Yjk2OTkzZWEyNjA4Mjhh MTQ0Mzk1MDk1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMDg4CnpjbVYt RzFpJC08UCk8aDszS3xMazAwMGUxTkpMVHEwMDElbzAwMSV3MHt7UjNEZEJq NzAwMDRmUCl0LXMwMDAyNQp6IXFBcXUoMmxqeWJnUipZdkMqYyMoOCRmdXhX Pj5eb3pZe2crSCQkemFKfVBxI3ByZCE9WGt+RWVhN2N+IXNMMG4KejtCVHxz Uyl0UnglRnRTKilvI0EhVGdCXjJ6VVZAez1zPiZZS2YyfmF5WFF1fD11Vz1w UztGYUwjXzRVej5WP3FsCnpnVG14I3VHKml4Jn1ec0NabilyMCEwOWl3PHsr QC1BRnR5aXZFKFZVPFMoQDNHYDhoQnhhQn4oPHdkKlpPVEZlJAp6elVPUGw9 fjwlRlNFMThyIXt7Mlc7fXh2cVJsdygzIVJMOSo+eXBtdVRCNmZ2eXlHZ2c8 YEp2blUmSDg/KENjS2IKeis2fTdXVzVub3kmK0xpQTxZYzdMUj4wXjlzcDJ4 VjxWTCphWFU2RG8kP0JIWj9gRSp2RnRfR2wjX01weD0zZDM+CnpRTlpZZnpU dGhZKFA2I2kxKnFYJHB3Vn18OyhwSFNkQ0JVKCQ8UzU4PV5lMS02MEdCNHNA U2xAJn1wPlpVWiZQQAp6JWp8b3s+NVM5dWIrK0RqJTw1O1cqbWw2PWlwdUQx IXwxNU0mfHQ7c2RkfV4yeTVLPig9eEU2NllRV316JExNfkAKej13aXB+WFVP YnAlSXRqND9LVjN7e3tSMzAwZCFKTVF2ZzhiKmslOSMwMTBxTlMjdG1ZMDd3 NzswN3c4diQhazZVCnowMEhfKkxfdChZJEwtVm9TSkZAejJrPiNabSQmJjY2 SHlTeUhlZkpKZ3ckeihmUmRJMTg2bVAlT2VqT2MpR1UwLQp6PlRocCZjVFVH bldBX0xCanFpXjtfakM1Iz1Yb3dnXzQ1RVIwVyh5Q2ZXPUM1LWlHV0JkU0d5 OV89JUdsYVVxaS0KejcpOT19YWdUU3hIXzdAclVJK3czWHRjS3cheDFTdV4+ akttNkhoI3dvdHgrNkt5WDNxUz04ZTVYZmw9ak9WVWV4CnpDWSRTSihERig/ ZjFrWUlHcGpsTStRMz5PfE1GaypOP3pZVXh9O0R7bHtFNiZ3Pmhoa0h8NGlF eT1JRyp0cjh9Jgp6aVIkKUh4dSMkdTJpXmY0dmFfNHF5Q2MpPWZENkw8S0Nm VyVVYm5La1JLZ0Bhd3FzTEFSNSZQTmxGN3BWaS14PVQKekFAI0FfRzApK3I/ Z3UhYDhJc29XWmMkPnItZzVvIVlEZFJ1T3g4RWRJKXlhPWYoODRjcXRmYzAw SXRzKnpQYHt0Cnp2R20qLXRJNSl4dyl5YVleSkRVNUhCMUBEaVh5VXE2VkY5 eHBOaHU5aFVuVSlIaHNDeG1gVEswR29kWXY5QUo+Swp6cHdPOFYkMit6cHdA KFRGcClRVVIjY1A9cyZLRjFvNzUqQj5uPjtUQjtSVDZNdzsrYmVIeiVAQDIr QzRuQHEzeGUKenhYMShyQjBmeC1QTGZfPlFrOWVAU0w0NGtmUkhyWWp4e3gq UTBTO1pOR0s2I0E9bmQ1dj80VDNjUkMmQmd3KCk2CnombjQ/b1oqejRITnkr c0w/d0U0WkN1SFF1P1JmUn09ZGFgNlN5Rk5WP09NbmxPRnhnMEtTPXcyMCM+ WiteWik8PQp6QzNIbnRiWXgrNFdqYlNXV25wdz4wNVVLIUZmQjFNRWlmQHVH QjckY0dkZVVoRD07LVdGZmNmb0JfMDMoMDN+IXEKelNhZjd6YlkoaGlaKTlt XmM+cHBuRiklR0tJVn5fVFI1Q0w8RyZETGVIWStlU0l4c05HbXNQOSkwMDAw PE1OVU1uCkdMU1RZMW5KQGJRCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2lt Zy9leF91bmtub3duLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4 cGxhaW4vaW1nL2V4X3Vua25vd24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjA5MjY4YWYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF91bmtub3du LnN2ZwpAQCAtMCwwICsxLDYxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu Y29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRl ZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0t PgorCis8c3ZnCisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2Vs ZW1lbnRzLzEuMS8iCisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29t bW9ucy5vcmcvbnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8v d3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8v d3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAg d2lkdGg9IjUwIgorICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAg PG1ldGFkYXRhCisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRG PgorICAgICAgPGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAg ICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+Cisg ICAgICAgIDxkYzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0 cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAg ICA8L2NjOldvcms+CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgor ICA8ZGVmcworICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4 bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29B QUFBTlNVaEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlD QWdJZkFoa2lBQUFCWEZKUkVGVQorYUlIdG1GMXZGTmNaZ0ovek1UUDdoYjFy YkRDT0NZVUtDQWdsUkZRcFNUL1NTbEVVS1JkcDc5ckwvZ1Z1K3g5NkZlWFdG MUd2Y3hYSgorQ3E0UUNCRkFNWjBHT1VTNGlvbXB2WUcxdmV5dTkyTjJaczdw eFpvdngrc3l5MFFoMVQ0M3U2czljODU1NXJ6bm5mY01EQmt5Wk1oUAorQ1pG Mmg1OWM4bTI1QloxWXNOcDYrcitTQ3lYUFV2VGd5QWljUFhNNnRmRlQ2V2oy aW0vbks0SWJhMUFjelRLNng4Vm9oWmR4TU5haQorQkRnQ2lHS2lUa1FyaUxp LzBlWlUwWEN5WlBuamI1OWY2TGs2dUhqZHQ1Zkxnb1dHWm55cXlMcm5VZzFp T2dhTXRWaHIwVUtncENBagorTEhrdHlXdklLc0drcHpEMU5xdHJMYVpWbTE4 ZnNMejl4dUJDQTE4NE05ZGJCVmthWlNtVFpia1pVd3NOMWxvY0tYQWt1QUlj S1hDMworZlhlRUlLc2xZdzVNWlRXbTN1YXJPMVhlbllyNXl6dUR5Y2hCTHBx OTR0dlpGVVUwdlorTHNjdjhScGZWZGt6WDJHZnVJektHYXRldworMUlwbzVU emVQTFdmODZ1S21Ubi8yVHQ1Z29GRTVpdUMwa3RGTHRVTXk2MklkanpRMkFD RXNhWFNOWlNONEZldlRuSitWWEh4ZW5LWgoreENJZnpmcDJLYzd5WlNRcHR5 T2l3UjBlWVkybEhob3FWdkRhNFJLWHk4bWpLN0hJalRWQmZXeUV4VTFEeCt6 ZVZnbklhMEZCQ3h5NQorKytRaWEzblFOZXdaejdOUWsxeWRUN1lxT2tuam1U bmZmcjZaNTNiYnNMbExPRGtTOW1jVVA4dHJpbEdJSXdXaG85aUlvQkVhYkor OQorRkJwTE5UQ2NtQjdoUnFXYVpHckpSTDZwQzhMUkxQZHJNZEZXYXYyK2hP QmdUbk9Ta0h1TGEraWN3UUtWSmt3ZkxPRm1QZGE3QUR2TAorQk1hUWR4VFZS ckx3U2lnQzlURk5OUXo2dGlrNmdsZEV6SjRIRzd4MzFQTGVXNzEwZXZHNmJ6 KytYV1hpNkFIcTJENGFFQnJJNWwyVwordjBzeXN3Ujc1TUkxMzFxdHlVZ1k5 eVJGTGNrcWdkNTI0L1psRkkyMUJtY21Ia3NBdlAzR2FWSDB3RVl4Nm4vc2ww Rkl0Q0lBNC9VbQorN3hjY0FpRnBLa1ViUVJEYlI5bnJXRjVTV1E3NHcyK2Vm ckROelBuMnduMkh2YTVEMUF6Nzl1OHBRWHN6WUNyM0E0bjgvcGVueFlWcgor dnIxVkRhazJCZFV1cUFEaUFISmFVc2g3S0MwSk9wSXpFL0QzSjY3OWFOYTNu NjBvamh6Ynl6ZnRtTkQwRXNKMnBPeGx1SHVOTHEvbgora3VYMVZOYjQ2cnh2 eTAxb3h4REVQRlZtL08zVGY5bWJUWS9KUTJQY0NTek55Q0RwaVRoYlpZc1dv Q1VVWGNuTFduRHIxaW9mL3ZtMQorUkhOTEhGbzdzVk01Zm5YZXQvLzRqK0NP R2lWM01NdENNNlpqTEk0QXVVTzJjNVZrd2xOOCtYV0ZzeFBKbjdLcGlHeG45 a3BQWWowegoreW9OQ2pwWE5tTmlZM2tOeGgvdWNVWUpET2NWNnVjSHhYREJR NFppNnlNT3pTVzEwTDNlbHcwcWp0N0hkUGxNcmFNRlVWck5lYmxCbworMXpq M1FiS1Flc2hBUmVOdVBKUzRoY1BTWmtTM1R4bmpDQ2k1a3NNRnpmSmloWW13 eGw4SGxJQ1VSV2JtZlB1dHpiT0lacmtaRS9ZcAorUlJ3SmV6T0tROG95Lzg5 Vmp1Y0N6cjAvdUFTa0hGcnpGWUUzWGVCdW8zYzIyU21jSENHWXpDcjJCVjN1 MzF2bmc1Y3RmL3JkOHg5MQorVTF1UkM5ZDh1eEZydnJPQzVpNEZaZEdURklN dXNyck9PeStsSXdFcGlwUmJVQ2g0MUVKTDJHZGZ1QklPZUpKL0wxVy9WOEk4 TDZtSgorUEFnZ2s5RUVjZjlEU3M1UjZGYkFxYUpKVlFKK2dQUjd1T0F3NGhv MEZpMEZHbkNVd0JXV2ZSbE50TmFtNUtWd3JOeEdhaUluU25CNQorc1VsMnM4 ditiZXZzYkgxV2dXWW40dDJmcHpYcVkxSmQzcGs1MzdhajNkdGtOUU8vOHRt TjFEcWNtZlB0OWM0SWpwWlBuVkhVRTk4MQorRUVXR2syNDlkWm5VUW11aEto aVp5bkV6NkZYQmpnUXR3Sk04Mml1anJ1U0lqRm40dHBIV3NJOUlkYk0zUXNO S3k5RGNFdG4rcHJGagorRkpOZW1pTStKdlZhNjhkaUtQS2lNUlI1MFVnMWE0 MW5KR2M4aDhDd2RUYnZsZTE2SzJ2bHRXRE14bXltT2VnV3FZbjhZc0x5eGQx NworMU9xOTM1MCs3VG9qdmJaRGhnd1pNdVQvZ3Y4Q3p4UXVLNXg0TW9nQUFB QUFTVVZPUks1Q1lJST0KKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIKKyAg ICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0iaW1h Z2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfdXBkYXRlLnBuZyBiL3dlYi9wZ2Fk bWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4X3VwZGF0ZS5wbmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ1YzUzZjgzYTA1OTM3MDQ4NTViYjg0 ODg4NzFlOGU4YzliZTcwMQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTA5 MAp6Y21WLUkxaWt4LVApPGg7M0t8TGswMDBlMU5KTFRxMDAxJW8wMDEldzB7 e1IzRGRCajcwMDAzI1ApdC1zMDAwMTYKelRVJDFXITNuQTJhK2Faemw5SXVY SFpyeTRiKjlIYnl5KGxLU1czWEAqUWlkJXMmIXEmPml3KyZXNSgpaCRMTUl0 Cno+fjcyS2I8T1BCeU1FaWZmN2B1QDxHcGotekpUMW5mZDlRUGQoclJRIUdl VSo/JWwoS2d3eWNlI0R3MChoMkYtNwp6ak1WUG0kQXttQGg+X0xxO0tfO00l IS0lVUAjRCokOz85aVklJTBAVXA1b0FyPGokWDwrd3RTbGtMQSN6PGtPSm0K eihWXnppcVU2Kyg9RiswJSlzcDdacXZoNjw9RzNJOyl1cGNCXlhBITw9K355 YCpRZSYlbWcoNTE+RGoyfis/Vk92CnpzcHtGYj5EI0w3K1BDUTVuZDtyRD9B KkJOO0Z7fit0bkEmbz4pKTtILW4jN0l0P0p7UD9jY2xYO2pab0F5WHhlZgp6 P0JjS087a0BrUXU8aGxzQDhySmk9Q2JiUXYrdzE9QGFEa3A9KEYkWHdlYVl8 QGFlK3Y/NiZkaSNQYVJNXlg8bS0KekBXfE07cWpkbFAwMERHVFBFIUN0PUdi TmMwMDBTYU5MaDBMMDFGY1UwMUZjVjBHZ1pfMDAwNz1Oa2w8Wk5YUEF5Cnot QiNMQTVRUTxlTCNhaDs1dFM7VU1id0FfNTx2KXxmSXhzbTBZZ0N1RykybXZA QmFjbElwK1hETHpmcT4pbX1Jawp6YHpsfHVfbndLeEA7M2lxSn1+KyRSNU9I ZSpsZX45V19NK0ViKVZWKTsmN1pZckBNUTU3dEY9c0AkcS1ZNnRPS1kKekZX WjxFcV5yemx0SlVnWUhXMHFZOUltZkJqK3N+YiR+KXxOcF8oRF5JMmE1YkMp KEB2TWxqTWVaM3NoRVJyXjRtCnowazlqOSFUbykkTjQwbCpkOzAqSWwrVSs4 T3tFZUY1TXVuPlpsNlBIN154OU4obT4xU15Dfm5gaTMjIyFKbm0qOwp6aFYq THFWWFAwNWdwaFhySTtCRUE1c3owWGxGaXpjRzBkYEh8SS12ZGFmKVVpYGJ4 RmpyQ0IhWi1gSyZGYDJfbEcKelc4SGVMXnUzJDR1UUxYQV5udVpYcmoyME9a bVVEKypBPUE7VTBJZXBsTlpsMXUoUChkd3FyPXEpS2dyUUtASkNsCno7Pl5F K3BAPTMpcX1XcylsPSMpOTQwMTRkQ0tfdE8zPVRJemFJcT5id3Q1KjMlVFBR IVZ7PjRjWFkyd0B2cGk0SAp6NXAlZn43PyUjNGBjbU8jalpHTHRwKlV5QCYz ZDB8d15+Tks9b0NlPDFGY0xaLUdLUmZnaVFBUmw3OyU4UHI7JVQKem5VZj0q MDhlZmhVPG8xaEw7QFdLUThecUE3Q35mTEhVc0crcFo2KDNMQX15NFJaP3RA SnZtODMoKENvfDxfUGpICnp8RHZqPVhyVUQ4V0NJIWsmc1IqNWtBfXYhcFNO Zko2PElFSj15ciVVbDdlc3Rsfl49I1Z7Vk4yQ3BTUDhyOHdYcgp6PlQkYXti QSVqKjVmUXV4byl8PmpacjF7WVJCQS17MUNKKkhvWklDSm5Jb05DRjRMT0pR aSg8KkJgOSZCUTBkaGcKellvKEtEM3E8ZERLMzBKbmpeb2YqTFYtWlIrISMz d3FQeiNFYU9vKW1QTih6Uzk3KzIwIXlwPk4jbSo0RklVPUFmCnojSGRFeUl1 ZGZab0I9cHJqTklgdDxlI1c5TVp4ZCk3eWk9Tik9VTEleEF+dnU0YH1KUUFP dyRMeCZRekcwNypxbwpJTTZOPCRnNHpeQzFPTmE0CgpsaXRlcmFsIDAKSGNt Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRp Yy9leHBsYWluL2ltZy9leF91cGRhdGUuc3ZnIGIvd2ViL3BnYWRtaW4vbWlz Yy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhfdXBkYXRlLnN2ZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmVhMjlmCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcv ZXhfdXBkYXRlLnN2ZwpAQCAtMCwwICsxLDY3IEBACis8P3htbCB2ZXJzaW9u PSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwh LS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBl Lm9yZy8pIC0tPgorCis8c3ZnCisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwu b3JnL2RjL2VsZW1lbnRzLzEuMS8iCisgICB4bWxuczpjYz0iaHR0cDovL2Ny ZWF0aXZlY29tbW9ucy5vcmcvbnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8v d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1s bnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5z PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5r PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0i MS4xIgorICAgd2lkdGg9IjUwIgorICAgaGVpZ2h0PSI1MCIKKyAgIGlkPSJz dmcyIj4KKyAgPG1ldGFkYXRhCisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAg IDxyZGY6UkRGPgorICAgICAgPGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91 dD0iIj4KKyAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpm b3JtYXQ+CisgICAgICAgIDxkYzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNv dXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2Ui IC8+CisgICAgICA8L2NjOldvcms+CisgICAgPC9yZGY6UkRGPgorICA8L21l dGFkYXRhPgorICA8ZGVmcworICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFn ZQorICAgICB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZC T1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFB QkhOQ1NWUUlDQWdJZkFoa2lBQUFCck5KUkVGVQorYUlIdGwxdHNITlVkeG4v MnpzemE2eVMrclIwclFFV2pwb2pHdFIwTFdTRFIrZ0doTm9vYUNyUk5pNUFs WHZ1QU1BSWFDVlF1QW9RQworWWlNZWVJMFUwUlFhb2FpcFVsb2hoTFpVSXJn b3RwZTRLRlhsT0U1dzdNMnVFOGYyWG1aMzV2QXcxN096NHh2Ynk4TiswbXJu ZkhQTworZjg1M3p2bC84eCtvbzQ0NjZxampmNENHV2dSNStzU25Jam1yQi9q aGIybjhwL25YSDdtbkFVRFowc3dya0p6VnVmdSt2WHl4VkhhNQordTlvVmto OU9jZi8rUHNhdjYzUXExcHJkMGFweCtzd2tCdy8wYzJXMWpCYXgrdCs1UStY WXFRa2VlM0NBS3dXVFpnUUF0OFlpdlAzKworQkw5K2VJQk0wVUMxbC82MkZw WFgzajNuUHE4bVFnQytXQ3B6Tmh0Y3RmSHJPaDh2Rk4zMnorei9pOHM2NDlk TGdmN1RLeVdtbGcxWAordUlOTTBlRGlzaFUvb2lpQVBMWm1RcjdmS29lNnEx MGhDZXhyMXdDa0hia0FmSHU3aHRyWUtPM0lXV0QzTmhWTmlVZzdBaENQUmdC TgorMnBHYUM3bDN4d3gvLzBqbWtqYi80UWRXTzJQekYyeis5Qm01LzFtYlAz YXFldnkzMzYvT2o5blhOVW4yWkdKSURENzJGa1o1MGVVaQorU2dmbmpqM09X bnk1bVBYeGJZd2ZIMlhmU0lKeTBkZGZiV2ZpblNjWmVQUk5Tb1dNeXl0YUI1 TW5ubUo0ZEV4TzltUmlTRGpYMmkzRAorM1BPTDF6Y2wwaWd2b2hldVdnMGhV RFd4Smw4dVp0SHpYN25qdFNiVDVoZlJDM01JMDJwcnpkWi9xWkJCejEyeHdo Z0NZb2IwL0VhLworaU1HUm8vVC82ZzBBUHYzRDA0S3RRSVFNQytNQllRcUU2 VytiMGozL2VHRlVqOVBvWFBUKzlCVUFJcXJDbmZjZVlIZmZvTFJMNjBFWQor b3Vwa3czaUVhUXVRN3dsYmtUQUZ3akQ4TnhDR1FBam5KNGVUa2oxMzdSSUEw Nmx6N0JtNm04R1JveVI1UWpqbmNDMG8wVTZwSFZIYQorMXVRamFnZGFrejFI QkJHMTNlcXZkVXE3b0dnZEZ0OFV0OFFJaTFjcjRyb1RUQ2FHeEs2Ky9XU3lP WGJlMGtZa3F0SjZleStSaGpiTworSFgrQ3RjUjgrZTVCa2I0NkgrQjM5LzJB NmRRbkFYNVgzOFBNcFlJMnRCVit6MzIvYVpDRStNVzBmdmMyYnY3N0N1cjIy SWJFSkJORAorNG9kOXdaZmgzMUlhKzBZU0dLVkZOd2VVYUFmangwY1plUFJO eXJybFdzSVVxRTF4SnQ1NWt2NUgzcUJjeUxqSFVkRTZtWHp2R2ZvUAorSFVI UHA5M1lhalJPNnVUaG9Hc0JESStPTlNRVENQREVMTTJjcC9YMjNnMGRNL1BH cEh2ZDJOWVBnRkZhcEppYkMvUXQ2MW4wL0p4MQoraklUcFRyeGN5RkJjL1Fv aHJOeUt4aXhlejZjdDNqYUN5cVJ2cEFMRG8yTU5jNmtQV1ByWFpYWjg1MVpL eXptV1pzNWppQnVXbUUwWQorQUJCd28wQXlPeDJFbHhlT0NPdmFsTVlEWUFh bkVCQ3lucGorUTBlMklNYjBWckxTcFF3aE9ac1FnTjFmK0t4Sm1MWUFVMWl4 S213cgordEVRSk8yWnowOWZZYy8vakpCTnZCWTZaYzV6OGlLanQ3a3ZOeVFX dzNzejRKcVJvbGd1cDBVNkU2ZG11R3JYNmE4MXhkNWZBZGpFZgorMXJWVlov VjM5ZTFuTG1VVlRvTWpSekZLWlNaL2I1VUkvdyt1dFc3UmFPM01rSEJFQU14 UC9KV2VnUis1N2ZUVmVhOFdzbGROYVlvegorZWVLcFVMNy8wQkZLeGF5N3dt cFRuTW4zbnFIdjU2K2g1ejNYMG1KZHBFNGVwdmVoVnlubHJ0bFBGS2pOWFp3 LzlhdzdodzFWdjQ0WQorZ0R0K1BFcERBeHo3M2VkODl2a2VzT3RQcHhaeTNj U2VTQ2hmekZKY3Vlem1nWlBVZWo1RGNYbldTMnluZis0YWhadXpyaEdZaHM5 RgorTmlyRUwrYkNYeElBdGdnZlROT2RyRlJDaFBEQ05Ed1JwdW01bXhEVmF5 MDhOeE1pNkRXYitoNlJrM3RNdmxsaG0yRjI2bmNieVU2RgordkdQZWU4SVJL d3Zjc0d0dEZvcldTVlE0RXpkUm92RTFlVFVhdDNiQmNTRzdkbEthNGtSTkFW Z0ZwZHJjQllEVzB1MHRDS0RGZGtyUAorcjhtSDFUK08vMUxrc3RNQlBzeTFO c3ZYeExVMmdseDJXcXFGaEduNWZ1cmtZYXJYWUorRThyMFB2b0srbW5ielFJ dDFNL1hINTloNworOEdYMDFYbjdwQW0wbHAxTS9lbTM3dGlhSFMwOW42YXdm TmxxbUhJdVZLdkJ3bmg5TlUxKzZaTGR3WHRoNml2ejVHOWVjcE4vemUrUgor YndLM2hJQ3FKY1NHNHpqam5CSkZlRW52T2xpRjlVSU5oWVRiNXViajRLK3pS TVVPR0U2NXM4WDN5SHJRWWwzZVEwMkJHdXR5NzFXcgord2NKNExiYlRWOTBL MU9adW0rKzJZMXNDb3R0NnBIRjExL0lqbDUyMmE2RzBlNlMwbG03T24zbzJs Ti83d012b3F3dFdBQ0hRV25xWQorT3YwY2UzL3lFc1dWQlRlMkZ1dm1uMmVl NTNzSFhxUzRNdSs5UjdiMThPV2ZYM0Q3MWV4b2xYSnA4a3V6N3B2Y09lTmh2 TDY2UVA3RworakJmQTVvc3JDK1FYTDNxMGZaU0t5MWZKTGM1VWRxKzlFR0ZX MUVHK2ZLbkdTL2VyVEd6OUI4ck5xbCtJVzRGL3RmMytIOFlqcWp1YgorMzQx TXd3eTZWZ2hxNkZyZFVsR290ZlNzelR1MWszODhQamZ5NVFKQWRIdVB0QXZS SGY5RjE2cmxsK0I2cmxWSEhYWFVVVWNkM3dSZgorQTAvb3VKZU11T3pmQUFB QUFFbEZUa1N1UW1DQworIgorICAgICB4PSIwIgorICAgICB5PSIwIgorICAg ICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAiCisgICAgIGlkPSJpbWFn ZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNj L3N0YXRpYy9leHBsYWluL2ltZy9leF92YWx1ZXNfc2Nhbi5wbmcgYi93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF92YWx1ZXNfc2Nh bi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTViNWFiNDA3OWNiOGUy YzAxNWI0ZjVmMTBhM2RiZjhhYTY0MTBkMwpHSVQgYmluYXJ5IHBhdGNoCmxp dGVyYWwgOTEzCnpjbVY7QzE4KTNAUCk8aDszS3xMazAwMGUxTkpMVHEwMDEl bzAwMSV3MHt7UjNEZEJqNzAwMDRmUCl0LXNpTWlXMAp6aHsxMm8/bUBsak1a VzJFJmhMNTk/QCs/KFI+U0lwKTl7SmFATVh5Q1lSVCt4JUl1V2JAdE5CM2Qo UTJHKGUwJCYKekB1PVNOakAwZ3cqNiorM145ODVqTldiWUR1SCMkOT5vflhO UGA+OT96fkA9UD1aNFlrWXNjdHMkbXh+Vz98UG84CnpyTlFLOG1lSWtGSHUz Nio/Yy1xWDw2IWRZaHg2KShAOGUoWjxYYGphaHhGQCpAWj98ZDxYYHBjaHd8 aUtfVW5oPwp6QEF2MjBFOWx4UT0tTWprK2JabmFEKD40VkA3cFQjPHpMdDhf MzdGdz4pUl5yK2Jad2VEKThKWV55T2RIPkdicEQKelUtamkqX3Y/ckY+eGJM RGlQWSl6X1Redkc9PTFVMUQpUVZhXlZ9LTs8ekxhfl43UHkpX35sPnErJCM5 eVUtfDJZCnpgc3wwIT1KTCt2XjctYXBgfE82eTw/OzMxRCktJGdffXdZYD0z bVI/QCVHJitge3JORDxNOD8yRGFobVNgUnNATQp6PzFzblZAVyRmcntOYFcl PzFzaFJAQjd7PHtONUAzPTNuPlNEZi08aHtebm84O09fbjJEZ053K3p+QW48 K3dBX3sKekRnV2tRKWFtb1MtdERjez1gPmFwMHNzSTIwZCFKTVF2ZzhiKmsl OSMwMTBxTlMjdG1ZM2xqaFUzbGprVm53JUhfCnowMEZIQExfdChZJEwtYjBh KUxrKjI0RWs/bkZvbVJXX2dHVUt+WF56N2hGSVFxb1BQeVR1T1FOVX1nezsj WWp+dQp6aG0/SnElaHl3TXwxfjVNJi0kLWJmflA5UUFAQylZRCEjJjRCJGRo Sl42LUhSbEs+PFVEWmJAJClIaXxlNmgrYUkKejdsTCNlQWQ9NWp0QyYjTFQ4 KVhrNU07Qk0xZyMtZVZfNk96WEA9dWttbHVMVTBnd31lNndDNk1hQ356aE0z Qz8jCnpYcFU9cVZBMzNuQTBYaWloNEZZTzV+TiVQX2VTM3FNNnBNWk4oSUVz MWdPX1IlKXAhcHEkITRKIUJ+VzBkQXsqVAp6VV9odGk2UHxDUGFsKTEkMjxf Oz1iaTBAWTh3Z0dJPUk4aE9tO3xrJUZkVGwkPS04SEpXa3c4bkdgYkZxSUZ1 dj4KejVte0FMZyY+cDNienBrdSk9KkpSbE8pc1ctTX1jT1g9KChTJitpNmly ZkF4ZEFkNXhwel5xb1cxTEc2ZTdEYylECnpQKyk4dTZIKVJmYCVfQGZNMygj d2M7Qm9qJWptI3R3PzB1LXluKWtYYnVCdERYQS1wYmheYHl4eEhKcjcxMX0l Rwp6LTN+b3w7cihnKWRYMCYoYntzMkF6flNoKyN7O3BNUSlfRjNpOT9WaXV3 Qj4yUHdkVVdTazhXYkt8SkdTRU97cHwKbjhfVGpiQGIpd1FZayE/KntjKEso d1NKaW1TZEo2KDAwMDAwTmt2WFh1MG1qZmloJWt5CgpsaXRlcmFsIDAKSGNt Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRp Yy9leHBsYWluL2ltZy9leF92YWx1ZXNfc2Nhbi5zdmcgYi93ZWIvcGdhZG1p bi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF92YWx1ZXNfc2Nhbi5zdmcK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTMyODY3OQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4 cGxhaW4vaW1nL2V4X3ZhbHVlc19zY2FuLnN2ZwpAQCAtMCwwICsxLDUyIEBA Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRh bG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRw Oi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3ZnCisgICB4bWxuczpk Yz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCisgICB4bWxu czpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgorICAgeG1s bnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50 YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw L3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIK KyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5r IgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjUwIgorICAgaGVpZ2h0 PSI1MCIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRhCisgICAgIGlkPSJt ZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAgPGNjOldvcmsKKyAg ICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRjOmZvcm1hdD5pbWFn ZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxkYzp0eXBlCisgICAg ICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0 eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldvcms+CisgICAgPC9y ZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVmcworICAgICBpZD0iZGVm czYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpocmVmPSJkYXRhOmltYWdl L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlD QVlBQUFBZVA0aXhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBMXRKUkVGVQor YUlIdG1zOXIwMkFjeGo5dk91S3Y0OEJEbUFnT2JIQ1FremlId3E0aUNHdHpV V2d2L2dIK0E1NDllTjBmc0lzRFQ5bGxJSGdjdXFuYgorclREV0tSc01Sdy9D OE9UYVpXM2pJV3Viek9UTm16WGQ2dWdETFRSOTgvWjk4dVQ3Zlo2OFZMejkr SVBMQU8yaUY1QVZSa1NHRFNNaQordzRZUmtXSERwU0V5MXU4RXhiRWxyMVp4 L2psdVdEWkx6YUxvZDM1VjlFMmtWbkc0WHlyUU9xb0NJSURjRlpPTlJRZnVG ZnVkWGhsOQorRXdGb0hWVnAxVGNBRU1KL1JXR1E2a21KVEZ5OTVxMXNIZ0F3 T3pYT2ZxTWUrV1BpNUUwRVAwZWdWbkY0VUNyUWRxdmRZem5kNUZzRworNmtt SnJHd2U4UHJGWFFEZXZQL081T1QxeUhIaWhJVEtKVzI3VlpyMWpVVFNhZFZM dkxVT2o5dUppOHZwWm1oQk9kMEV0bUxIQjBuTAorMUpzK1VhOHpSdE5OdnNh b2wwakU4enpwOTRabHM3NTQrc3B0WVZnMk5LUFBTU0xSL1cyM1NydWpucVQy SUlOaVgyb1dSZVQ5SFVNaQorcDV0ZDh4S0F1SktzWHJEKzRwQkoxMUtGWWRs K1lZY1FyMTZ3QXliVllDS1I1QXBSUjFyMU5OMEVDTlJJbmpqMStxNlJRY0d3 Ykw2OAorVTFjdldaRUVJb015dWJUcVpSSlJwa3NGV29FMm1aTzB5VUVoazJK dkI5c2s4Wkg2d2lJS1FFdXhSRUxlRUxPa1dzWGhZYW1BZDl5TAorS0pwdSty VXd5SWdDZ0FLUmJtdFU2UGZlc2E5ZTU3eTQ2VE9QS0cwRkpwcHVobHhYVTRn b1BqeHBSSmtwRjhEdFBSNElQYzlxakhvSworN1ZmK3ZXSFpmbUdISURFNWZC WEV5UVdTS3VoVzhlcnIvanFRUDg3MjdTUHBUUzRmcWljaE1ia2U2V1NjcTdN YmxzMWFDcE9ETUltKworSWtxV3ZwNVdQVit0UUVmOFh5UEthcFlSSlluSHBZ b29NK1VDM3FrMnVaYUJ5YVdCZ3JNbjMxcmVxVGFaaXhsM29SRkZCYXB0c2xa eAorZUZTZXczTzN1OGMwUGMvbjg0Z283Yk5rTFFrOGQ3dXJuaERuR0ZGVW9P bjUwSUprVDNJZEJCOWhvMUNyT0R3dXowRkFQYUhuK1pRbQorb2dRMzVvNmFQ VXZjMlRuMFRtL1VwVzJUcXVFU0FIY2JyN0YrZG1kZjJUemdsWDJIWDM5Y2Zq ZjgxVHgvTXNITkd6cnp6bTVvbys0cworSmhlNkRSUFVVKzBBa1VSbXA4YVpk M1lwUGIzVkc2Z0o1cDNkenRhcDR2UmhHSmJ0RjNZSUtnRXpHWkZFOWh0MU1U czE3aTErK01uTAorWjdjQldGamVrKzcvcWlDdGVnVFU2M3hPSFZFNlpCYVc5 d0Q1SnZZZ1lGaTJYOWdoU05RYi9mTmh5REFpTW13WUVSazJqSWdNRy80Qwor bTZ1SzlKcmN4eGdBQUFBQVNVVk9SSzVDWUlJPQorIgorICAgICB4PSIwIgor ICAgICB5PSIwIgorICAgICB3aWR0aD0iNTAiCisgICAgIGhlaWdodD0iNTAi CisgICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leF93aW5kb3df YWdncmVnYXRlLnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vaW1nL2V4X3dpbmRvd19hZ2dyZWdhdGUucG5nCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjFmODU4YmUxY2VlM2Y1ZDhmMmI2N2Y1NWQ3MzBlNmQzZjQz ZTliNDIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIwMjEKemNtWStFWDtq bF43UkNjODNXfW84SUhOKlVxLVpzNExSQ2JJNHojOU5MQEVXTUFQKFJWdFdf SlI3UFZHTlJSa1FoCnpubjxaJis0bCY5b2cjdlBnYWlebzJubTQlTGRjJX5t VmQkKT5aSStiSXA/fGVJcnA2QmNmWSpueTs8UjVwRX1yWQp6dyNRJkY0KjI4 MjVmPUNUdnNUKyFgdElyTEtWbVI4bkQ3JilMbzgheWl+S183QFcyZWpvYHJ7 SVZYZ3c8c3xfM18KeiFrQl5qPFkyRUg9I2xBcldJKHF9fDM8RVZHWWotNl50 fiM1dU50NmhmUE85NXJ2di0tQU9pcklBVChlUjFoRjcrCno1UWdZZGtVa0J2 PFBjQWQzQEtveTlPX2o3e2QjfjJmQ0NtbTtPanwhdyo9XnMwPS1pfXA5fmFl UF9gd2VmRWNyMgp6cEF3YGlmd3ZsZjM0Kk82WlRxO2tVOTlWeiZ+WXVSUjRf e2s0WDdaZDNTXzlEZWxeJVFybEFRbmU2NHx9S3t5KGkKenQkfjxZPW9NZEdG SGtwJkdfTks0RilobH5CMTJrdVB6TWRASyEheWkkYmBVWm9+bXw0TWRobzZJ I2klRGpPcTxNCno5V3R6a0llTkhpU1Y8aktIO2lmS21YX3p1JU0wZFpyVmdz KUQobT1heT1qcmpWbSpIUl99M1JOM0pNRXYrYE80Zwp6Qm9ZWE8kakhkMz07 JXxZQjkwekMlRjtzPlR4STMzdlgteFVCfmFIbCgoWXRycUB8QCVVKTlxWTQw PURxLWB+SFMKenFwYWQ3JiEwYVpja2JOOWkoaEh5NzhhSjV4eEE1cGZQamdx REtUT2sxbUpSeHFKcGJ2OW9JczBPVDV1aEpSVXl8CnpxRkxHNUojWG5zKUJG JHNtdkkjM1R0IXQpTz49QTg7X0BIazVJUFBTTUchaGBvUyFycCojSn5NcU4q RUo+cCUjYwp6VXp8Y3NCT3Q9RFAoekIhVlp7dEc3YWtyaU1UfGxTNituaFQw MiU8R3g+MSNCJHQ7RzlWI19LUjwkXzR6JWFAKj4Kem8qb19eTEt0Tk1RMGI3 T1lmPik7am9ZX3hoWm1Pa0FUcCptSmJDKWA/S0NKd09kPVFzNFFON1FxN0RF bmg4MTt1CnpSZTVFbFZiTUhpSHM4S3xkamN8NkBsPjUlVHx4a3JEXis5KVdw UjAjSTt0ODNBPipSaSNsP2pTIVltTX48U0JVJgp6IVVpRDtZI2Y3OEs0Y2h6 O2pTc1kjOS1uPUZiOUZUMjszcGo0WFItUWZRbihgRnBMWiUkT3dXbzItUTVq ZnNZc2oKejFfUmFkYHMzUXhOditVOzNKbkdraXFnaDQlQGJPUShLdndgZCps Rjk0TXxOVil9Y0pxQCZ+TF5CZmBHRzFTeTBVCnpFUTgmWjwxcitRQU9FWDlW T342ZiFLflBkND9jU09jejs2dEtVT0FNZWUlSCRqTjFlMzJOJC0qcEhFOG9r MX5FKgp6RT5sZDsmZGV3YElYWElUIzl9d1I9UnxxKl5hPVRLKHlgR1U5JHNE P1c9KGZyVH04PURIbDZOWm9zc2UzSHIkU1gKeiVjQGN8NXUxSUozNFo/bU98 LVBzX1lSPVcmcnBaODRpMFRPSVhTdHhBKEB+NUtzWClnJk9oTnBkIUNubkNP UmNXCnorcHRUc24tSEB7Qm9xcUEkM0B+cF93UXB8PyM1O3A3Wj9BV19melJk PHJfTis4bmNVQEokcUpOb3U4bEkoTlZGPgp6NlgpdmNUSlNKVkF3bGRQcSNx ZHludiUpMVRDTVZaNEJ1KGpJe3JySW5tYzlnSk5eOUZCVFJQMHlgTyhQOTJq VzUKemRXVn1eYVp5byV3WUJ4dDxTWWp9eVdIJEs+LU4zZGVlQTNASXl1PXF4 dGZnNiU1fWdTUXlhS3BwJlNOI2ZIQX16CnpXTmApdWFsMjBCPzJkNHZiZUVP M21oM0V7djRAWF4/KkE+WXFwMEQtLWBtVUQrWEpkIVZKa3trY2FZbTx2UEpI Sgp6TjcleCp5MVJYNEJeTWwlaUkqO2RzPVgxdFJpKUooMlB+b2ZHbkNSNj5n IWlISD1efXcrS0ZITnpPeFV7LWkqYjQKelFKeksjWVB6eUJqOU9kISFpVXNU Qk8pbzluPnFRdT1WQmM/JFZCJXdTbkRRNjxDV0goVS1BVzVQZVJ+RFFfVnBW CnpXcEF1NGVAOWpiMyNsWFNpNj1ObWNAam5pPGI1Um5hTW13UHBfSk0pfDJA TzllU31AUEU8fkFJZCNSfUBae1BrKQp6NV5IYCNsVCEpWmA1eUxVMV5Jci1y NiV6O1Q5fH5FPForemtTd3J+dFVybzlAJClmenx3dUV5Ri0jO1NUMWc5SykK ej9uampWbVkyVWUjbTxVJmFJSyk+XzZGfEtyI30hTFptZHE0dClFJSZfK3xl Rjl4dSZUezxNNWtibSg9UytUNjctCnp6bmg+YWghd1lteHxFWTZVU2VJNi0w NSNvbDBXX2lyKkt0RC1iN3Apd3JIaFdSMGkhVkNkRXFPdnolJGwkO01OKgp6 NWVVdHRDa3cza01HciQqcnlyM0ljKk1JTkF9dEl3bXQrUWV3fmtBczRiQ01Z X0FTXm9BVDhtYSZxblVOR3xOaXgKem83Tmt0REkpdDVsISVDaz1xNWZUai0p I15hb3Y7WmAyMXsmY3JuVkBHV3p4OXVWVF9+e28lUGdvfHFMR3M7YXpCCnot UXNpeXBDbGQzVW96PjFSej5TeSNITVEoXzJMJHZITngyLVAjU3wtb0Fod1k3 TjtPcntBVmV8Smk4UyptdXJffQp6VXRhP1lhYHR8VURAX1ZKT3p1MnVgYE1T Q0wjdzwjN3BDNGVjSC04JWUqT0ZSdjhNSktvbSZtejc/cGtfQ2VUKD4KelU7 ajxrZ0I2O1g8JnAmRGMqbmBZQms4RDBMfUgoezwyQWUpc1pfM3Y9N2RUczcq UzRmQUxvdDFRYDN8Q0ZIMVVhCnpFdj5zcFprVVM7SXZoQjAqVlpmYyoya1Ik OCRxTVYmR0ZgOT1CYmBrWVE7SW5iUGNJPGdoS1VsSEMhYyQjTyhfcQp6RjN9 X1BpRTtmY3B0Tmd3OT0yKVJ4fkMwOG48YmYtM1NTNE0mJHMzM0NkQF9heDg3 PXkmJU4oR3BCdlhyZSMtYVMKemdfe2h3OWslOGhxVWZyXkdpK1h5T0ROZkZv QUtgNXlXKjdYI3B5MDlnS2FSYXJ9bkwpe1p6S2lheG1PZUwhd2c/CnomITs4 QEJ6JSkoRl5zUmJrMmxXODd3N0dCK1NmYjRaKG8zKS15VSFPMEJgUkRkRzQ8 TjJWQTxHTldBZGYtKz1lUQpjemtvbH0wcDFffDRHZDVzWWIqYzs5fSpUXmNQ dXtSZjdzeG9feTdPXgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhf d2luZG93X2FnZ3JlZ2F0ZS5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRp Yy9leHBsYWluL2ltZy9leF93aW5kb3dfYWdncmVnYXRlLnN2ZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTZmMjk2Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9p bWcvZXhfd2luZG93X2FnZ3JlZ2F0ZS5zdmcKQEAgLTAsMCArMSw3MSBAQAor PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxv bmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDov L3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9 Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6 Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5z OnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4 LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z dmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisg ICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIK KyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0i NTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0 YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAg ICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uv c3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAg ICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlw ZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRm OlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2 IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9w bmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZ QUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQjU5SlJFRlUKK2FJ SHRtVmxzSFZjWngzL2ZtYnMwdGhORG5QVEJMaVVvQ2tuRFM5UEVxZ1FVNXkx SlJXanpoQ0pBQ0JWS0tYU0pTdGtySVRhUlJnS3EKK2dnUzhnRUo0U0NWRUsy V3BTQ3ExUW9uU3FrbXFTblZwWHJLNXlFMXNhbDlmeDU0N00rZmo0Y3pNblh1 djcrSWxSVWorcEx2TXpKbnYKK2ZQOXZPMmYrQTh1eUxNdXlMUDlQSXMwdS9Q WDRpTDV5ZHZ5RHRLV3RERzN0NHd1N2JwdlQ1bHl6bTE0NU84NVh2L3pSbW5Q R0NBWXcKK0l1UThweSt3U21TVjBDcFdsQWhGclFLQ1JRRVFFeXNRaVgvVW5Z dVBqVGlkS3U2VSs0anpzb0NnR0JIKzhPemxwaUNiQWdFSVFnVlQKK1BmWndo eUlLR0hLZTRCbFFCVTlBa2dBYklVTHg2Z0t1RWdORElBYVppRlZGWW1DcW1y blRBYlJhTzM1ZVFDcldnbzNWaVJCWlJRUTgKK0k0QkZ4VkQwREhnMm5wTFVF Qk1mV1kwOVVHKzZFYXltUWNuQ3JSdXJ6Zk8vVXlCK2FER0pGaEdNZ0NkQzRo d1JKVFNXbkRnd0ZqQUsKK1dDR0t2ZThCS2xVVEU3TlVGYVJxcmhHaHRjOFhB U1N3VmRVaVNrNEVheUJTbDFwR0ZCT0I4WlNjR0t3b2NYbWtFWUZxU2tVWjNa RUkKK0psTkhpNVdXUUtJb0E4UTR6M280UUpGeFJSNEpXTStsa3VjcU13Yml4 T1cyWUFWeVNicWhTTndZakZiQkdKS0laUk5yQ1lBRVZ0UFUKK010Yk5KQ3BZ SUxLS05VcWtRbVRCR0NWbmhGeWRsNU51NUNYT2lldEg0NmdGV0R6U1VseXd0 QVNpcXRoc3FjVnBiY1Y1T2FtVlRXdTYKK1hjdWN4OFJaVDc4NVVVSVFkQkZw MWdaSWRVcUxJQnFEVTlkeEFEYjBkZkhtRytjNGMvbzAzVDA5R0dPWUtwVzRk djA2NCtQamxDWW4KK0NZSUE0M2w0cHRyTFoyWm1tWmg0bitNblRwSVhRNGhp eGMwcGphMXNrVUF5LzEzbUtwcUpoRlY0WjJ5YUxYZmV4ZWpvZTd6MjZoa0sK K2hRTGxxU2srK2FsUDB6L1FUeGhGVGxIR3RuZmVmcHUvSER4SXVWeXVtUzli TDBzTEpLTlRSVUZqRUhVT3V6UXh3NDVkdTNqdDFUTmMKK3VuaVJ5RnBPbmpq QnI1NTVobElRTnVqZE5qaklYVnUzOGZCRFgyZGs1Q285cTlkU0NrT3N1cHBj Q0JUVCtyS1NxcTNUYmxYVG5KNnUKK1JNd0dscy92M2N2bzZDaFhyMXpoL1Bs ei9QNTN2MlZWUHNmN3MwSE41M0pwaGpzK3Nabjc5dXpoM3lQdjBwT3Izd1BN cjk3YUFxbkMKK2FGK0dGeWRtK1BqR1RYemxnUWNvbDhzRVFjQ2hRNGQ0NmVS SjFxM3FxbG9YZDdHeDJZQWRPM2JTZjlzQU55SzN3a2kxZTg5YjJrU2sKK0Nn aGNpNndIbEUyL0MvK1o1blAzNytHenUzZW41dzdzL3lXbFVvbTFLd3JwT1FI S1FjamE5UnZJcmJtVkcySFVhUHc4Qzc0MWtFeG0KK2RaUzVDdGR2VlBqbUk0 OHlNREJBUHAvSDkzMSs5SVB2MDUzUGtUZTF4azBGSVRmQzZub3ZtZS81U2tj UmFiQzIva3dtTEpOK1NGZFAKK0R6Lyt5VThCQ0lLQXM2Ky96c0UvLzRtQjdo VnA2dFE3M0xYY1JoQ2R3bG9Ba1BaYjZrdVRNOXl4ZVROZmUvQkJBSHpmNThE VFR6UDgKKzFsdjBGTHlxZVhOWXViQjRkRkRzTGErM0dIQmxhcGE5WC93UzI3 ZHZ4L2Q5S3BVS2x5OWZwc3Z6R3NZdTFQaXNMQ2dpblVobzNlWm0KKzkzMzNV NmxVMlBmRUUreTY5MTZ1elZSdXluenpBekpIQkpvRnBiL25GcWFtcHZqZWQ1 NWt4ODZkUFBTTmgzbDNlclptekZKRUlwR2IKK0VwR1ZoUnkyNHZQZEo3L05S MjYvblovOS9CZE1WZ0pDdTdEdFJ5ZlNHUkJ0N01MTkNqNG53cTFkQlY0OGRw Unl1Y3dQbjNxS1lzOUsKK0p2ekdyUXBBYno3UCtwVmRGREp0N0tZdGlGbHBY QkRWTFpReHNIVWZXc0ViNTgveHIrRmhIbjNzY1RadTNNVG90RC9uaXIwcW4y UG0KKytpZ3ZIam5LeDNwV05KMnprOVYrWGtEcVFTUlJVWFdyL29iVjNZeU1Y T1hNNmRQY016VEV0c0ZCTHBabW11cGJYY3p6ejVkZnBuK2cKK240bEt1S2o5 VnN2ZGIySjh2VUtycE04alNZWnRYTlBOK05oMS9uSDhPS3Q2ZTdubk0wTllo WFdyNXZhMEViaHk5U3JQSFQ3TTgwZU8KK2NLRTAzVGhJR21takJRTnBKVmJk byt1R3ZpNUNmNWEvUFhlWWtaRVJCdSsrbXhlZS8zczZybGk4aGU3dUxncUZJ Z0NWaXMvdzhEREgKK2p4NmxXSFRua28xS1lucEszc3pCZ1MwQmtHUUtSVld3 cXZSMUYxaVJOK3pmZjREaDRXSEd4c1k0ZGVvVVFSQ2tkK1h6ZVhwN2V5a1cK K2kvaSt6MlQ4MU9qN1BuZHUyUUs0Wi9wSVhGZHhqNzFWWkl2bXRacGhTZmFT VnBYMUgrN2kyZC84bW1QSGp1SDdmcnFLaDZIclVybWMKK20ySjh2TW9qWjY5 dkd4eE1hODNEOFdIWmlDU0FUSnZkY0VzZzlkMUNjVVh0a1hRcDRjTDREYjcx MkQ0ZWVYeGZTcGxtNTVTNlAxTG4KK1gwVzVNajNyU0R5dHV5Y2UwUTVFV3lE TnBCb1JlRy9LWjN5NlFxRmd5Qm5CTTBJZXdYaVNrdE9lY2J0YkU1UFRYa3hV VzNHMFVnUXgKK1dlZTBDN2grYXF0RVJMMERsZ1FJTld5Sys2MVp0UTBZcStT Tm85eXNKcnlXWUZBaWhGeE1lb3VBcU1Zc3Z4c0RNYzhWTHc2ZFVFMnQKK2di UllpWlJhTUZFOXcyYUV3RnFNRWJ4TTNsaUVIRXFvTGpLSjhVck1HME1Ob1pj Uy9Jc0Mwa1pjemNSOGI1alY1cnllbHlyL3BYRXEKK09XcExNUEVxNmhuQmlL WjBxbEUzTGl1bWZZbDBYdXdOd2RHWVpZOHBWTmVWNHlVK1RpRU1lQXBxbklI R0tNWkt5dXlEQVNWK0JIWmcKK0lvTzdkNDdHc1dBZ2pYazFWenVpU3FvbEtW UkZoaldLQ1FYUEUvY2F4YmpndWY4V1VZTlZ3Uk5CakNJNmR6NjNpMHBMSUNh ak0za2wKK1p1YkcwaUJSL0g3QjRDSVNKY3hlVE1OS2ZDMVN4YWhyc1VhbDVw MkptN2V6a0RRRk1yUzFqNWVPWE90SXlRY2xRMXY3K09QLzJvaGwKK1daWmxX Wllsa2Y4Q1dwaEh6Y0VNWks0QUFBQUFTVVZPUks1Q1lJST0KKyIKKyAgICAg eD0iMCIKKyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjUwIgorICAgICBoZWln aHQ9IjUwIgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhf d29ya3RhYmxlX3NjYW4ucG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9pbWcvZXhfd29ya3RhYmxlX3NjYW4ucG5nCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAuLmI1MWUwYjNmNGM2MWJhMTY2YjY5YmQ3ZjMyY2IyM2Rj ODQyODQyOWUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE5NjUKemNtVjtl MlU3VG5QKTxoOzNLfExrMDAwZTFOSkxUcTAwMSVvMDAxJXcwe3tSM0RkQmo3 MDAwOTNQKXQtczAwMDFxCnp4IVgyfiFFZXAoTEF+aWt6VWcoJj98SVBnUU5y cH0hcz1KVT5Wd25waVBpOUMkbjB2Iz5+Nn5KbC1UaV4rVk9uTwp6P1NSbmpn VkY3ei1TTWQyQHtaSyprPTU+Iyo2KiszXjh9fmkyJm0jbnp2KWZFPUArZno5 azFoQyNwYDBuPm9jfEcKeklKZjBKeGFEIW4/MEMtWFBgPjk/en5APVA9WjRZ a1lzY3RzJG14flc/fHFCNHJOUUs4bWVKNWVXJVM5fUBWQ3RHCnp3IylPISpZ Mn4oP3l8QDYjTUpEdCNxNilkPzVATWAhT2AhKShDVndlPjhpaSh6UnV6QV92 QGQjPlljamtvVm4/bgp6eGJMKmQ9JFc8V242JjRZdipuYnA8ZFV4SXQtfDd0 c297Kkw9JX5FYz5oPFpJeGFwZD09OWFTS2sqd3A4dEtmPkkKeio2SC1gdzk0 cTJ3KFlVVD05UkpLbCg2NTRxfkQwNj1CMnJkS1QlVW5QZXd5VGx5cldEWkZW fDNJKEkleSNHPFp0CnpXTkwoS2JjQXR1TF8wbFFRQnxqYmopR2Ajej9gVVRK eEdDT1pmUlUjcGd+dHFNb0ghNjw/ezBLaUhWOC18TnBTQwp6dSlWIyNSOCY7 aCp3fHJWVlYwSmJaKk9uUCVGMVVeU0pkaEJxb2Jvb01AUTQ+Xk9ablVlMCtT UWV2M3N3S35ZRmMKeigmektNTHRuM2psVXoodGI2c1JsTHIyYiVxKXx5c2Vg MEZUPUpMK3deNWM9RFZtKEVHS1RnaSZAQFpPTXdVKGdCCnptOEZBamIpJFFT Jnk9Umo8Pys7PHVZRngrVz1+aENMMFZ7NlR5dER3ZHt8QEhlM3NkbXM+fGZA akJhPGhaaUFDPAp6YyhPdVYlSCMwSjxNN0kpdkE+M3VtVUBEV2EoVHomQFFH cTwjXlVjekozeihaQDVQYSEjZFZDcjtPPWx6VGUqanAKemlEYDEjZVYxYHNV fWpUVD83R1MxcHwkRl4jcDBmXjsrP1NKb1VpRCMhfDFaWC08WWY0bSNYSGx6 dml5SS1JYkBeCnpsJjlVM3JzUz09PGcyPmRrKSsjQHFTfXc1PEV5eTktfHAr VSRLIyl+PERSbk1vMzd4UnQ+QnJnPWQhQHdtWnsjQQp6c045bUkrSy17eWot YXtRP0JTZlMpXzlXRGNhWVV+a0pFQ0Qocn01O1pIQ1dtZ3dKYigmMWl3bVhN ZnBAcDQ5MnsKenpUV012KjZHLUxtRGhUZClPMyF+Wi1+eG5nM00tcSZTYD9x WEBTfn5xMmo1d2VCa1NqMDAwMDFiVyU9SjA2XnkwCnpXJmkqSDBiKXg+TTB1 Z3kpWClGYDAxMHFOUyN0bVkwN3c3OzA3dzh2JCFrNlUwMFktYUxfdChZJEwq QVBSOD5fSgp6I182VV9IY3g2YypnUlNCSGFyPWBBVGNVSihIdDtzYU8lN2lH JEZlOD9sO2BgdUhHanZISzlOKVAxSD0ydGs2blIKemdPVW18cXJkP3RMP2wy PkFta3x1WVQtRjJERExnaVRDVX00XkBzYjllYyF3NXtNTlU+e29Rcl57TGFe WlReOShmCnpJXyRtPjtsZlV4SjZ8TVJlOTVKa2JyQ01WOz54Uzg3T3VKV3k2 Yk5jWnRVOHZgJVF2UnEqSVJgSHtULU1kUnh6KQp6dytuYU5kRHE/ZDI+MEgx e3tzJlNVMz5MPD13YWE7c1hXNEc/eSYzNWBrUEd0XlpAflpmcT8tS1VeYmgz TCtfeFYKejsxQ0UyP0d4NCk5dTFGKGNub3hpc2I0PTZMam9mc0JoNnMkfDlJ M0I1Y0szeihWQGBpPjZuLVM1SSEoQWM4fiFYCnpKaChtYk93XkRkMiMkXig4 VlhAQyEtamBMTH5MQX41ZzlSfTRlNCkmWFFQSVU0MkRyZHBMOyRHMWBIY01G YWlkfQp6ejN9Ml9wVTlaODxIbzs0RUg2KFc2WE8jSW5LVV9gKDBYTWBCMXVY anVPfENLVUs2RFI4TGYjbnZ8QS1haG9UQFkKekM7aEx1UEBTcXJyY0dtciNm bysocyQpZV9NdmQ0fVJwPilSSCRAengrbl9SaUl6dilxXnIkR2dDOTR6VipK bnIpCnpONXEqblI4YnlwQEdAJV9MKkI1WFEmaUR8dldBfTdzU2IkXkNNc3oq K1RWUTNDaiNqZGE3aWl+dVQ0Y21uSWJtUwp6RzdRTF5JVUk/JU80MngwNjRP MEBkNl9BUyt6WXg9XnZLK340NEZzR3NCYiZiWU8lQyFPbmIrSkRuJTRAcjBT OVIKel5TTWdNTTYlI3IzclNrSUZxN3I3RDNmRl4mTDlnQ05rI15sV0tkYk1n ZkUjVE09Yjl4Q0dYRShtUFVVclB5VD9jCnokb2kxS0grb3NRa3xMNnVDNVBI YThtaH1fZW5fWEpHa3lHdGxmNzI1Xn5rREtmMnReR0JiSWNMWDJULTRxTl4y Zwp6eyE/WjNZVlBHemljRERNViN6VXRlbUp5JF9CbGdsdFQ3O0sqWWJeSlF6 WT5WNGVnUlRsQEdARG4+fmdOQ01DPyUKekJrUmB2dCtITlpDKXw5cSl7YSMr WX5hWTM2aUlXQDEyVzM9dSFrY2dtM3Z3R0ZObVZxYktJS0QyZVkmOEBWVCt2 CnpUI2slaExCOUdyZHQqKnMmYz44KVhjcGZsdiEyUnhGey1wOC17dDQkN2VL LUhufHt+fktOYzRMXmZNRntaYHJ5SAp6d3dMVkt4eXlqOy1wd30jdFVCeno1 WkZeJXkwLXV9bStkUng1Qm4+QURLM0pkJUYyQE11JmIpN1RCa3hVejVAcj8K ejxwLXNDZDA3WGM/OWlgPTMhJFE+d3N0RjIqOE50JDZSTTZKWTRFbTNPaD1E M0hYYmBfQGBKcnUkNGBfJmBRZklmCnozTWo1XlpteHVxYHVkWXFQfkZnUSVC eHEmWkVWYkNEd35kPEk4K1hXTypKKmV1JSlAS3Ree19SSnBGcSRNTmE3dgp6 JUZ1N2pwTCVLVVZxMj89S2RNYHgjcTBJOT1yYDdTamkxZk4mZSM4fCZIeGdR MmF2eGJVaXR0NDAzfiFxU2FmN3oKemJZKGhZYSVFdzNXZEpmVEYpJUdMR0El R01SNUNDK0cmNEZoRyVHTVFJeHNMZW5JIz9vMDAxUilNT2J1WFZSVTZXCnpa RXN8MFdfYldJRmZsTUtGZ1l6U0Y7cEAkSXk1dm9GZzdiTkg5OWFiJTltQkYw MDAwME5rdlhYdTBtamZvbXZjYwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9p bWcvZXhfd29ya3RhYmxlX3NjYW4uc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9z dGF0aWMvZXhwbGFpbi9pbWcvZXhfd29ya3RhYmxlX3NjYW4uc3ZnCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZjFmOWMKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2ltZy9leF93b3JrdGFibGVfc2Nhbi5zdmcKQEAgLTAsMCArMSw4MiBAQAor PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxv bmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDov L3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAgeG1sbnM6ZGM9 Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgeG1sbnM6 Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKKyAgIHhtbG5z OnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4 LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z dmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCisg ICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIK KyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSI1MCIKKyAgIGhlaWdodD0i NTAiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAgICBpZD0ibWV0 YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpXb3JrCisgICAg ICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uv c3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlwZQorICAgICAg ICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlw ZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgorICAgIDwvcmRm OlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAgaWQ9ImRlZnM2 IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9w bmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFESUFBQUF5Q0FZ QUFBQWVQNGl4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQ2lOSlJFRlUKK2FJ SHRtWDFRbk5VVnhuOExDeVNCSlRGQUFndkJraWhzRlJOaXdSaGZVMGFNK2JB bGFVeG9rZ25UQ2s2amFEV3RqYldkQk1lUjJwYjQKK01aV21iRk1yNDlqRm1D SXRHTFZxRXFab05tbzJJeUhOeDI2UlNBTzhoTUFTc3N2M3d0Nys4ZTYrc05r RmxOVHBQend6REh1ZmU5NXoKK3o3UG5udmRlRGpDTmFVeGpHdFA0UDBBejFR ZUwzMjhRbFhXeUg3OXhxWjZ2bTM5eTlZMStjV3UvZE9SWG9iSk9adms5dDND cTI0WFcKKzR6WnRUaWlWSDV6aTdqV0xzVHBjQkFQQkdraWRFMHJsTy9Wc3pG NUNvM01ZclFhMEdraU9ET0cxcXBNOGNGOGF6VDNEYUlNVSs2UUkKK0xTVVZK M244KzB1Uis0WUoxa0NRUmtOQ3VKYmY3UDhzWUR4VEZnSndxdHZGUjVjR0ZF Y2FEY0VlUWFldkRIRzhjNGpRSU04aVFjcUUKK3plR2l2bXVJa0NBSTBhRGFm OUhqd3RydElpUklFUmpzOFMvM0RkUG9IRkw5QjAyd2Y2NUp5T0k1SVo1RmxQ RXRzME9wQlZKbmh5ckMKK1VJSTFSSWJRQUtSRWhxRFZhTlNNTE5LRllBYVNJ a0xRb2xFemtoaWhoS1dmcGZ6MlpzUTdEb1FwMTBqaGMrK0k5MGNpL1BqVndU MTgKKzNYelJFOS94aTN0Q0llVzFMYUwyakIyQXpKdWoySmFab05xZlhQa2pj Y096T3hudWNxcjIycms2UHQvMVBEYzh1eE9YM1RIS1h4ZEIKK1krR0xMQ3A2 SEZmbkZZVVVndUM1T3I1NCtpV1NudDZoOEVLQUVHaWpJbWtxMnN2MXV4L0Ix ZEdORUFLQWtPalpYUGkxa2JUREwzKzEKK1lxODlZMmZYMW1RQW50My9iNy81 NFM0bnJvdVgxYkYzUVpmZGdhdnRNZ2loY0c2M3duZGVZVWkySzV3UWhIajVq bTRHV3pzUWJ1WDUKK01LK2ZqbTRHbXRzUkhqdmhIaGszMWtscnBNL2xuc3dr SUlSd2cyQlVESjdQM3FDOG5Nb0x6ek8rTnNMdFZzY1RZVkloUGd0T1pPY2UK K1krY1d2aUk4UHNTWThkaE1LZnlvQ08rYXdqMHlPaFlDOThnMVpHUThISEox OGtscEVjNitYdFl0dllNcmd3Tzg4OHBSVm1qbmt0M1YKK3dsdWZIdWJvMlpQ Y3UvUU9zR3I1WjcrVnZ1S2RBQ3lhSDgrOWFjdHBiUHlFZC92T3dBdS9VUDJ1 V1h3YjM0NjhuVGNIbS9tczVDbFcKK3A2WUQ4UDdwRXl4Wm1NeXlrZjZ2SHV6 MjBucHh0cjFIbkczdkVkdEw2MzFTODcxVmEwVnJhNnR3T0J4aXBiUkNGQmNY Q3lHRXFLcXEKK0VqOWVzVVljT1hKRUNDSEVwazJiUkZWVmxYQTRITUlMcTlV cTh2THlSRjVlbnJnYXBhV2xQcy9uNWVXSkhUdDJDQ0dFT0g3OHVIaHcKK3cr YUFXeVJvTWpGdXo4L1ZTQmtJeG1LeG9OUHBtQk0zSDUxT0I0QmVyNmR0VGhn R2d3Rlpsc25JeUdEOSt2VlVWMWNqU1JJNU9UbWsKK3BLUlFVRkNnK2pLWlRF aVNoQ3pMRkJRVTBERExOOWFDZ2dKa1dhYXdzSkRsM1lIam5GU0lHRnVzWTVB WU5BT2J6UWFBd1dBZ1BUMWQKKy9kd3pOSUJPcDFPRkFzaXl6TU1yTjNDbDA0 N1Q2Y1JnTUFSY1Q1WmxabWxHZDN4QlFRRXBLU21ZVENheWIxbEdXbkRrVklX b3RlcUQKK2xPQndMQllMb0dRaFBqNWVEVHdqSXdPZFRvZk5abE9GT0oxT3dz Tm1NRDlpTnJMc2V4bk16YzNGYkRZRHNIdjNiaGJHeEtsekdSa1oKK3lMTE1z UTlxdUNNeGVkdzRKeFV5SHFJMW9ZejBEaURMTXVucDZlajFlc3JMeTNFNm5h eGJ0dzRBaThXQzA2a2NtRHFkanQ3QkFkcDcKK3JxRFg2MzE4bVV3bVRDWVRl cjNlTDFNMU5UWG85WG8yM1o5TDljbGpVeGZpRmdMM09LL2dieGxTc1Znc0dB d0duRTRuNTA2ZndXcTEKK3F2WGhGUXBLMWtvUC81M1owVkhvZERxc1ZxdVBy NytWdjRFc3krVG01bkw2VXJPUFNKdk5SbTV1THQyNkVNekRsd21FS1JkN1ZI WW0KKzE5VjlybTRmcTlWS3dwQ0dFeWRPcVBXUjNBdXVEMDlTWFYzTit2WHJN WnZOVkZSVVlMUFpNQnFOUHY2VzlBZGpOQnJSNi9VVUZSWDUKK3pCVVhGd05L dlh3Y01Sd3d6c25Qa1hIT1EvdkJXbkovOVRTLzMvOHFraVN4NUJzM3NuSHJO ajU4NDAwa2s0blZxZWxzMkx3VmdFTTEKK1p2WSs5d0o5UWpuUUZzMlBaOVZO dDlMazdFS1NKTmFtUzZ6UDJVTFZaMGRWWDhITjdSUVdGbktQSVEwQVNaSllO RCtlNVQxYVRGTVIKKzRoNUh5ZjZoTmo3NitYWjFYTi9VUUgxVEF5dTBjL2xU L2hNY3FQMEhqNWYvZ2RTWUJheTk3VTZTUTFzNW5qQ0xqeHZQMHRqZWlyRzkK K2xjVUxGckk5YkFILzZ1cmlrZGYza3BYNFRjcXljdEVrUkZQMittdktsMkE5 cWE2eDhMb1lKS2NyWUR4ZjRvcml6emtjRHBHVGs0UDUKK1BiUGZuTWxrNGoz TEp5U3ZXc0V6dWZ1d1dDeVV2VkNDZHJpTERmYy93UE5aV2FxdHhXTGhqei9i eGJhODdUeWZsVVYrZmo1TkRqc04KK1p5OXcvWlo3K2UyWXN3WWdQeitmQys3 QVFxWjBqa1JHUm1yUytrT1FKSW44L0h4QWVidElrc1RwbHc5Z2JqaERsaWRn ZzhIQUY5MGQKK2ZnRlZWMWNycitsYmI1cHdmYVBSaUNSSlNKSkVvbVltaVVF enB5Wmt2R0xmR2hySDd4NSswb2U3ODZZMGJnMk9KREY1RVhxOVhqMVgKK3Nz Wmt3UXZ2K2RMYTJ1ckRoOFhPSlRoaWxwOTllR2dZdWpteng0MXo4b3dRdU42 anNqTzVXRmJody9YWnp0T1VORmM5NWZmczJZUFQKKzZlU3V1KzdDRlQwYVJG bFpHVmxaV1Q3bmpCZk93eC9UYTY1VHh3VUZCWmpOWmlyZnF1YTlUNDhTbFow Wk1NNHBYK1B0QjJ1SnpjK0IKK0kxVXFOeXRsSWVaenB6RVcvUktBaWdwRnFN RmdvS2x2OUpMazNZNWxaV1UrZHk0QTNjcmxoUGZZMWJIUmFNUmtNaEVlR3Nh YVpYZGkKK1AxZ2JNSjRwWDFFQVhIYmZHOXpJNEJCSjZVdlE2L1hxM3Q2elow L0E3UlVmSHgvUTU2NjN5emwyeXIvbDB6czB5SlVPZTRBbkZGeFQKK0Z5VVFI QTRISnBPSm1wb2FucFB1NDVtYVEzNVhrckt5TWtCNWE1bE1KalVyWHQ1bXMx RlRVd01vVzhzN1A5RmJhMUloSXhQOGhaZ1UKK0hVdDhmeENTSkhGYmJCSnJN eVFHRHgzajNMRTZmcHAwTzlFendubHE4VDBjUFZaSHhMa0x2RjEvanNMQ1F2 WDUxTGhFdnRzVnpOdXYKKy9NV0hYemgzSHZHT1lTU1Q3OUYzOTZKVUVvTUNo M3hOR1FtTm1jTkRhKy9qb1RGaitVZ2R0MmR2Wk9CaUp3aEJnaEQ4TUhZWkZ4 dGUKK1krT1dYUHJsUzRxeEVJVEZ4WEJwNyt1czJyU1ovcllPOWMvak1IME1u Y2EvOHVpamp5bjJ3bzBRTUROaEh2WjlsVk1UNGg0bklWSFoKK21iVHMrWE5B WG43eDFZRDh4UkwveTBWVWRpYVhTZy80Y0U0UDM3bnZxcmVpaCtmd3kzNStw cHdSKzhGYTRuZm1NOURXcVJCQ0VCWWIKK2hmemlxOFQrNUFjTXRIV29iNHF3 dUdqYVM4cVovOWcyK2x2YWxTWURncGx4TVZ3cVBjQzhoemZUMTNMUjY0YVor bmwwN3FzZzZzR04KK2lyMW5ZdWFDMksrV2tiR051Y0hoMGVOd2UybTlHTnVv RzJqcnBPOThpMmNkZ2R2VEZSbG82NkN2c1dXME0rS3BzLzZXZG5vL2J4N3QK K1QzblMzZGR5a1o2R0MzN3RvUDZXZHB5MkpvK1FpZHRDQVlYVW5ySHoyTWFG WE9vZDR2S0FjbTNlc2lhQmVlR2hsRlNlSHpXOHFyMGoKK2hHY2h0OXZUeXZH MmRieHRIdyt2dG9lOC9HanpUWmtiN1lNaEF2VEJBaURnT1pKNWN4UWxsZWZW TGpvb0hmV1N5dk5rM2h3MVJzZm8KK055N2NidDgrbFh1MHVhWUtGTDVOTnpV MjRWYWZDWFJ3ZlpuZVdzQ01iTXRNMEpUWHRnalR1ODNrWjE4UFFObkIvL2ox ZjBQblJ5bmIKK2FVd3RBTXpReHlqQ3h0U0NFd2lMaXg3enpTdTEwQXZNaUov bnlheWlka2I4UFBxOC9KanROSE5CTE9OMXRhYmN4RzUreVNRQ1hSZWkKK3Nq TURYaVArbC95Q0hibFQvaS9DTktZeGpXbE1ZeHFCOEYreFVWL3lGU0YyYVFB QUFBQkpSVTVFcmtKZ2dnPT0KKyIKKyAgICAgeD0iMCIKKyAgICAgeT0iMCIK KyAgICAgd2lkdGg9IjUwIgorICAgICBoZWlnaHQ9IjUwIgorICAgICBpZD0i aW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v bWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXhjbHVkZS5wbmcgYi93ZWIvcGdh ZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leGNsdWRlLnBuZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi5iZDYyZWVmNjQxMGQ5MzE1ODU3ZDJlNmQy NDY3NzBlOGI2NWI4ZjQ3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3MjUK emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdYbDQ3eXwt KUxSXjh8d2l9PHltVHZWd19RclkxCnpMQzM/ZF4qVURoRldMQTF8OWApd01g S1JFYnZYUTVBLT0oNiU5ZlI5WmhVXzZeNF5wd1MyOGxMV013Xj1IUzU+PQp6 X2lzTFpQMTxAJXdRYFFqaz1LJSpuTmdHMDlKcUFuWSt+Wm0oJGQkZHNaVDJe RX5LUX5lKT9Mc2Q2e0oxTGBrbyMKejhRWUheWHpoQVpTb3JWUHVQKy1tZHx0 QlQtYH5IRllpZj42bmtKUHVOdXFwP1lJT0Q1NkliXjhgclY2K2ReSzwwCnp6 a21QVXRYUSFwR0ZxWiFoR2czc3dlKmc0WEshd0lhejVxZV9IZkZTcndiUXVe QUNgMFN8S0BRazdVay0qfmhQTQp6RWhzcTw4Mkk9MT87Qkk2VWhWMW1fdmc+ U0BiSW0qamdrfDBORz8yT2Y5UiFUXkA3Q3ByJXpuRXdjNX5WbSVzbHkKelVF UTVOS0M1bCpjM3JxRng4UXsybnJuN0A5P0E0PHclPjUmJmNgM2Bae0ZPT29W OzlIZHhmczwhSk00T3g5PzZtCnplbldmQlckQTRYWT9oellVVUhePGBCdjU0 UFhoV0RxQEhfY3dlZ3gtYW82RjdBMDVDaldoQEV1M3ViVjVifFZlTQp6TiVE NGc7Yl4tendGPTFMRWJ4ZGQyR1NtMj5+PUVTNCMtJlY+RWFrN2FYQzVSMDdI KlkyR2JkeDQ1bD9YWitMaVEKeldNbVl+KVdzKH1jPXF0PVZ7cml5QXUmTnc7 cHEmVjkkdWNPUG48ZT1RZD5oeXYkJlpoQjtASzlRPEpTKk49dj9lCnpJbXBE Oz01fGJOKnxNfV8mJX54QkZsdUtATV9VSTZTNFhxRXQ4Wng3K2BXNEM/KUsl PXhBKDc/X2MmbSRWNHp7NAp6VnEmNldxaCFSVEF8TlgpRWsxdzNqNDUqXyY2 PnQxYm1Cd2BpKi0tNHFQRFdNJTduPz48dDJWez1Dak57VTFWKXcKelYzLWp0 VUhVYWl7eHMwKHN3Sil3QmBKdnxzYURCRnNYJlVzJGlVRTAqOHFyMkxrdW1m M0BvalRqa0ZFU3RQQml9CmhjYkspSVh2b2JeJHhOJW50enB+TUp9YU9HMjJX USVtdnY0Rk8jcTg5SnYjc1oKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1n L2V4Y2x1ZGUuc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFp bi9pbWcvZXhjbHVkZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uN2RjMTM3OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4Y2x1ZGUuc3ZnCkBAIC0w LDAgKzEsNDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU Ri04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5r c2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcK KyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x LyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9u cyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIv MjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iMTYi CisgICBoZWlnaHQ9IjE2IgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEK KyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAgICA8 Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6 Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRj OnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5v cmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29y az4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisg ICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9 ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn QUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFB QUFnaEpSRUZVCitPSTJ0azg5TGszRWN4MS9mYlkrcGUvYmp3VWZXVXB4RURl a2dDQjBpS0RvRVFVRmRGQktEcEVQK0FhRmxGeThaMU1HYkNCN3FvbGhHCitY VUp2aFRDTHlvZ093NG13MmNnd216TjYzQjczUEhQUHQxTnp5OXZxZGY2K1A5 OFhiejRmK0IvY1h6SGswUFNjckNYckFYaS9iWk9UCithazJmdXdDTWtpU3p2 c21WcWRkbEMxbkIzNkhMMDIva3RhV3NMQnRJd0VnczgwMDl5ZE9QSy9KaXE4 YmErRGhtUEE0dUYxOG1KK1dSCituaDRNZHgxRHNTU3h4UTlFSXRGOUF3RHJ4 eVpScDBDb3pzUHE4QjBPcGRPRVNpVkN4U0pLS3NYeTRDQS9kMHlXUHNYSjVm UHN5WW9PCitBQkNDczhkYjRPVUxRc0VnNGRGUnpQbDVaQzVIVTI4dnpzZ0k2 ZWZQeUdiMmtBM2U2aElCVkUyaldmTWgzeTFpcTE2MnBxYlErL3NCCisySjZk cFpoTVVraXU0YlNjUVFTQ0J3Y0kxWWRRRkFyNVBGdFdBYmRwbGg5WmxzVldO b3ZkMElqd0I4Ry9QNkRjd1k1U1Q5WjJjRHE3CitNTDFlV2djR1dKMllJREUy UnJpdmoxMU5RM1oyUVNBSVBuKzFnWlFPQklLOC9aNWo0TVpOdmw2L3lxdnVi bktwRkFEckN3c1l2d3dDCit3L2RRUG1jcGV0VnFBMmxidUxVbVVxSUJQZExH K1NjemVIUWR5M0d3Z2ZyMmRrNDllc3pLYmdtZjZzWFYyRmh0NEdRMkNCd09j NkdqCitqV09CZXZGbmtTcVhSd2doYnMvTVNRMGRXOUdxRGZTTkJLZFBIT1Z1 aDE5VUJpb0JlTkI3U2VnYkNacE5nMzhpZXV1aFBCZkwxSFI4CitCL2dOQXFq U3VUZ0g0QVFBQUFBQVNVVk9SSzVDWUlJPQorIgorICAgICB4PSIwIgorICAg ICB5PSIwIgorICAgICB3aWR0aD0iMTYiCisgICAgIGhlaWdodD0iMTYiCisg ICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHRlbnNpb24tc20u cG5nIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXh0 ZW5zaW9uLXNtLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzJkMmY0 NDIzMWMxZjg4ZTc4NzA5MTA2MGVmYzUxMjVkODBlZjY0CkdJVCBiaW5hcnkg cGF0Y2gKbGl0ZXJhbCA0MjMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4w d0IhNjM/d3lsYEdiS31RR2ljfkUwQkpEditjcDUkUXY2cXpyVms3CnpXMyY5 QHZ6QmlrYEc1SG98Sy0pdVRpY2MyLTFHa05HeVUweCVvbz8zZkJlZFBhazFn bkhscmBeOyh6fGl6T35LYgp6JWxtfDF6akkkK2JOfkgyfE1te21jTXBSOXsz KkoqUz5mM15gO1NpfWV8XnBRYD17akVURGRFJCNReXkpZHY+PCQKenxLQUdz d3lvY1F3bGJDa2Aye21MSmlDenc8WnU+dkw+Mj5TND17RStuUWFHVDxhb0xg aERjb1E/ZjJ3c1AhTTJvCno3bHtlRFErfihjfDlAQkU4NF4xS3gzNjFiWXxC dWBxUWItSjYyREJ4Wl88cDVCRWBwd25hfTZ3eHBhMSU+ZSFWegp6YWhkVT0q WCZFU0ZPcEpFKiY7ZSlgcWQzKkRwYVQ1dTlKRExTJTNQKChrKUA8WmJhTHpW K2ghT2Y0PT9gS0s5MnEKej0zZkVAbDReLS1MYGgwd052YyhIUTdWdlBGZnVT UyZeMHZESDgyYkBHTyNpK3dsWG8qSFpaal5GcXJwRlp4eEQkCm8tMjlaeHZg VUJ1MTUyPDVwbFRCPDEyYyQqUWAxQSYwNXZkcHk4NX1TYjRxOWUwMX1rMiEy a2ROCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHRlbnNpb24tc20u c3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXh0 ZW5zaW9uLXNtLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4zODcxZTYwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v bWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXh0ZW5zaW9uLXNtLnN2ZwpAQCAt MCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV VEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0gQ3JlYXRlZCB3aXRoIElu a3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgorCis8c3Zn CisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu MS8iCisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcv bnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy LzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9y Zy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4xIgorICAgd2lkdGg9IjE2 IgorICAgaGVpZ2h0PSIxNiIKKyAgIGlkPSJzdmcyIj4KKyAgPG1ldGFkYXRh CisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxyZGY6UkRGPgorICAgICAg PGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91dD0iIj4KKyAgICAgICAgPGRj OmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CisgICAgICAgIDxk Yzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwu b3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CisgICAgICA8L2NjOldv cms+CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFkYXRhPgorICA8ZGVmcwor ICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQorICAgICB4bGluazpocmVm PSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVV Z0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lB QUFBVTVKUkVGVQorT0kzRmtVMUxBbEVVaHA4cjBhZUlGZzJXQXdhbFJVUkZt eFpSYTF1M2F0ZTJQeEF0Vy9VN1doVzRyRVd1MjdVWWtIUmhXbUNnTStoUQor U2pSK29yZE5qRnJEUkVIMHd0a2M3bm5PZTk0TC95M2gxRFR2VDZWVlN0R29K QUVZRGF3enQzTWg2cFcwSEF1c0NGZEE1aW9zSjJabgorR1o5V0dQSDdBV2hX cTlUTU1wYXVvMjZlNDFXMmhDTWdlejB2SnhlWDhJWlVSN3R2eFFJdjl4bWl1 NDlmQVhyeVVIcUdzL2dYb3E0MworVngreTBONG11SFlpQUR3MlhiL0ZHMVFS ZUZ6TEcxUjVMU1pzNEZDUFBReENJSVFIVjRuQjJPelh2bEFNeXpDK2RXQVpC cjVRck1mcgorcCtVU0VUbTF0SXBQRFRzdWZ5MDg4Wnk1SXhMTDJYTURmbWMy empCVEd1VTdEYXRrMEcyMjZEWmI5bll6cFEwTWY4cUF2di9OazcvWgorbDBY emttNm53ZkxlQVFEdGVzMDlIeWZwMnBGTXh4VXBPOGN5SFZma3p3a2ZTc2NW cVd0SHZ3ZjhtZDRCdVZKMTJseTFoalVBQUFBQQorU1VWT1JLNUNZSUk9Cisi CisgICAgIHg9IjAiCisgICAgIHk9IjAiCisgICAgIHdpZHRoPSIxNiIKKyAg ICAgaGVpZ2h0PSIxNiIKKyAgICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4v aW1nL2V4dGVuc2lvbi5wbmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL2ltZy9leHRlbnNpb24ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAuLmUzYzUzMzM0Nzg4M2ZjMWRlYzczYmNiMjFiMzJmYzU0ZTNjMzE3MzIK R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDk5Ngp6Y21WPEEwfmBFX1ApPGg7 M0t8TGswMDBlMU5KTFRxMDAwbUcwMDBtTzB7e1IzQ0BsfEQwMDAwMWI1Y2hf MEl0cCkKej0+UHglYGNPPCVNUTJ6TGZfNkk2Jjl8emRkOTk+LUBhKjJtIUp1 bmg3Til8YlJmfC1ieHx6VmJvU0toYV93KGxHCno7bWMtTDRYVlZjUWpiKVIh SW9OPlVUbTZjZFRsUCspNDhhZVlfRigrIXF2aClmSXEkSSRha0BRTTFEZW1i MnAteQp6Wk5JcGclKlU/Wit8MGVVbVI/USlAI0B5THRBM3U5WEZodjhtZHYw dGJ+QyFPayk0eGNrYzNXc2E0PyphVUQ/cEgKekBhZlgtPDtzfGdQLTxIZWN4 V0xJVE1uK3t5ZSlEcXtRTEwmYDExTW8/RGc+QV5YJUV7O2xrK015NWB4azxK R0MpCnooVj9KXlBhMHFyOSVVUlVaWVhKfWFIYHxFWHNkNz1WO01rdktIYmNp c0Z6bllZOSplQHFzaV5rcTBwK2M7a34hIwp6IT81TVBxdjVsaS0+IzY/cD8x TkFhbGUzbikwTnVEa2difG5NUSR2RXd1cjspJlgoUCVrbExlKCpxd3NibjAo WmUKeiYlbHFCZysqM1MxWlk/ZG51dFRJbXJ7R05mcHlaMmV0a005WENOcVRD dHI5d2loVk9BVjtpTl91NkQoVEsjeGNmCnpUbmB2ITcoYk90dzRgYj1YQ1E+ TGh0PWBpdDx8KCNtdFNGP1c8UVFjbSQ7VD5tMUJaO0cwKlNVeDglV0d0NyY0 Qgp6VjNEK3RiOFJJd2dGM0x1dSNiTl43RzR2PT0qeVZScC1fQGtqbWVvU2Rv YUchelN6V3YhS2BVSFVLQyFNVnVaU2oKemFJQUpWZHBBeUY5dnh5Q2xoJmcr alk4R0dlJHU7a2xZdW91VEAqaVZEP3cpPlk7N0VzZWtWQz9EUlIxZ1pfdFFa Cnp5S3Y5OVpPeVl+ekB9ODRoQkt7X0pIbighbDZmTFZiVG5oRlpmTVNmViQ2 THVsMHFoR0MyKlo/TlA8VHZoQkx+cQp6VUJ8MGMjaXZjY3BnKVJvOThHI1dU KmBQPiRhNn0oVzsyPmFJO2x9V3ordHxmSWVsamxTY0ZTZnJlYVhXWiVmMiMK ek1aI3R+emc/a15PT0FVcGhJMSo0Y3IzVn1RbnM4JmlnWTFAWSNEQFk3SD9i JFQ4VUN0c2JuXzJTJWkyIXJrISloCnohPkVhTUNjdmFteVI/KFchS0s4JHFG PDMrOUJDYUFVSik4PDlYNkxtRXNzMURWLT5aVEwzZTI9OEVQOSloZmF1bQp6 THk+d1hFUnNFZHNERW8oM3ptRSRleGBqc3lJbUcmNz1MT09mb2x+VGNPKiVJ TkVtSiU3aX1CfFlSbjElMDAwNFcKelFjaEM8SzwzekgwMDAwMVZvT0l2MEVo KTBOQntyOzMyO2JSYXt2R2Y2OTUxVTY5RTk0b0VRS0EwMChxUU8rXlJXCnow fi14RzQhJkhCRjh9fWxSIUt4YlIyYjdeVT8zajJ4UztWdkxYYnR3VHp+PjBX PVFoVkEpeUhfRmtMe30xO2h1awp6cGFLQ1FLekA9N3Nge2k5N2kwQHZsMlRT OHcxQzc/UiZHN3k7KTFObTw8T1prQ3tBLWg8Nn1BPENqYkRhUDhxRGUKU1Jf NGU2MDAwMDxNTlVNbkxTVGFYLV5MMzcKCmxpdGVyYWwgMApIY21WP2QwMDAw MQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vaW1nL2V4dGVuc2lvbi5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRp Yy9leHBsYWluL2ltZy9leHRlbnNpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjZhYjU3YmYKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHRlbnNp b24uc3ZnCkBAIC0wLDAgKzEsNDEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg ZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVh dGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykg LS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMv ZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVj b21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMu b3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9 Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6 Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6 Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisg ICB3aWR0aD0iMTYiCisgICBoZWlnaHQ9IjE2IgorICAgaWQ9InN2ZzIiPgor ICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpS REY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgor ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4K KyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJo dHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAg ICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+ CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAg IHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dn b0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFCSE5DU1ZR SUNBZ0lmQWhraUFBQUFQSkpSRUZVCitPSTJsVTZFT3dqQVV2REsyTkNnK2lC OUFESTJaQmdVU1BDd0VnVjBRT014SVNFaW81Ui80REF5dWJDeWpvUmdHVzdz dWhEMzUrdTdlCiszYlVsZzM0YmRhcFJDLzByQWFPT1pOU1JmeEV3NnNqQUR4 SDRJY3BJakFRNzY2bHREZndRTyt0WjZEVk5CQzJiWXJzOGdvc1lYRVRnCitJ c0o4TmtMTHBtQTJwSnVrUkZPZ2VsWEJicEtTREdoVWNGaWRjRW11c2d0OHdQ d1JGV2J5SkZvR054Ry90My9CL04wckswMkJOK25CCitUVkxDcUNQSDA4WEho bW8xVTFFZ1VQM2xNK2dNUGJEMVZydEdZbnJLK1RBN1F3K1J1QU1BenB0OWRR WjVOZG1nQ1Z5cG9FeU5DZ1lxCitIcEtxeG5SVyt6ZStBTzlna3Rib3JOVTZB QUFBQUVsRlRrU3VRbUNDCisiCisgICAgIHg9IjAiCisgICAgIHk9IjAiCisg ICAgIHdpZHRoPSIxNiIKKyAgICAgaGVpZ2h0PSIxNiIKKyAgICAgaWQ9Imlt YWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21p c2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4dGVuc2lvbnMucG5nIGIvd2ViL3Bn YWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXh0ZW5zaW9ucy5wbmcK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVkN2NhOTdhMzNlZjU5NWY0NDhi ODYyMTE2OGQ1MzFmODZkNTFkNQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg MTAxNwp6Y21WPFYwfHh3d1ApPGg7M0t8TGswMDBlMU5KTFRxMDAwbUcwMDBt TzB7e1IzQ0BsfEQwMDAwMWI1Y2hfMEl0cCkKej0+UHglX2ZTayFNU154Wigj Xk4zcD9SJk9kK19ZdSRpYmolVF42Um9yQiNibW4hMV81eH0ySmlVSDl8bT1p JHB7CnpSdD43ZXNaeChya0hNQiZtfGtwfVlrRi1pK1M5cUhvTlRZQ2Z4Xnxv SzdjPkg+Qng3bmVNRWpqZk85dlpuUWd6Zwp6bmFzem8tYHZjLXd3N0tfMHJC ZUF3eVM9Z20xalBDSmVKSSRHaj1uJnZ5cSpYVn5+VlNlUSs/R2t6THUpdiso S0MKej8mWnB1aSVARD81X283SzVMKnRlPEdkfCRFJlRpVWB9cCR0X1UhZlc7 UGRSKz4qMiFhLU1aJTR2ZzZnTTtMKUw9CnprNTN3NDc5TTNCRFErbGZzQm8m fHhvRTMhOClGJGpkX0xYR241ZFVtSEVKY0UkKW1+Yih4SzMqdipFcUI9Zmtr Jgp6ek42dUBvIV9wSSpQKFg3Zz5rPXRmNzZ4UCRkSWo/U1ZlOXVnU0xwbj4m fStsc0YyI0RpUClXail8aDxNbGg0NDkKem00IXVDUHl9ZEw0VnM4VXRDdiFI djRNNWNqZWRQUEN9JHVqWjZ7eE5KQm9jWEJ4NCg7KXZrOE1oZF9APTVuSy0j CnpXZih0fE8wPVlFRj1ycnp2eG45MyteeUJMVCRmKkFvQFBJZU4wKyNrV1Ir dXJjUU1jSipTRi1zVCZybmZsVkZqdwp6a2FLTSVHPW47QCQqXy1xSVRsX00h c3lHRyY3bnx8UkVeMSpEfDt9JCk0dGZtaHJ6NkFJYklaQW5xcXt5aSpUJVYK ekhoVld0VjsmdTE4SSN0ZElFX05wemticlljOVZmTUx0UFg8Wll4MSZCNVo5 T20zfThWWjdGaVBlczlvLVREeCUxCnp3ezZYe1d4JUZYb3JXezVrfl9rck12 ezNWTXN6ZXx0IWArfWdKUjVtSGorWG5ZOSgtO1piKlZoQ3gkYzF1VSpIaAp6 Um1HPUd6QFJeaGF2VioxSlkzM25SPipUb3lrO3wrTUxNWmJLKV8rWG9qSEFI NW08eXZSO0ZUNSMmMWkrWURMMGsKekpISzZfazR1aHdHbHB8MWkrQykhcGk7 SitNflpZSWZAflJ0WjVENF8zMGpGI1I7Z3EqeTsrMktKKkomPSRpdHxLCnpi dGJeMVBySX59Iz0paDt6TUB9fFRed20wNT8mRCtZOF5KME1KPG0hNmtgPiZu TCY0SEM+ZCVTUD1gKjRkXyQzWAp6Q29HYVpmVCh8S1NfX3RaQjdVWlFLRCU4 T1hjJktMN0orTE84K1JtMGY9QyF7OVQjbUo3VURGRTAwMDAxYlclPUoKejA2 XnkwVyZpKkgwYil4Pkw7IzJkOVlfRUcwMTBxTlMjdG1ZM2xqaFUzbGprVm53 JUhfMDAwTWNObGlydStYRVhCCno2Q3AoUmJjcH19MEIlVntLfnh5aVU2OFIy eiN0MytuUyh0dCEzfmhZXnZHZzQyRkw9YEVFTk5tMHtNITYteTE7KQp6UXhG YXp2TF9jSypiPF9va0ZnMGQ4SGMjVj1FaGApaCt5Wm1wbGVobmxOWkVkdGdR QGhYMENOZUlXRXB4dyFveU4KbmRjfnRzcDlUbGlkT3pPQyYtKSp8S0gpM3BE Mm5ncjAwMDAwTmt2WFh1MG1qZjxLTlV6CgpsaXRlcmFsIDAKSGNtVj9kMDAw MDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBs YWluL2ltZy9leHRlbnNpb25zLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3Rh dGljL2V4cGxhaW4vaW1nL2V4dGVuc2lvbnMuc3ZnCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyYTgyMDYKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHRl bnNpb25zLnN2ZwpAQCAtMCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9uPSIx LjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhLS0g Q3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9y Zy8pIC0tPgorCis8c3ZnCisgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3Jn L2RjL2VsZW1lbnRzLzEuMS8iCisgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0 aXZlY29tbW9ucy5vcmcvbnMjIgorICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3 LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgorICAgeG1sbnM6 c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgIHhtbG5zOnhsaW5rPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAgdmVyc2lvbj0iMS4x IgorICAgd2lkdGg9IjE2IgorICAgaGVpZ2h0PSIxNiIKKyAgIGlkPSJzdmcy Ij4KKyAgPG1ldGFkYXRhCisgICAgIGlkPSJtZXRhZGF0YTgiPgorICAgIDxy ZGY6UkRGPgorICAgICAgPGNjOldvcmsKKyAgICAgICAgIHJkZjphYm91dD0i Ij4KKyAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3Jt YXQ+CisgICAgICAgIDxkYzp0eXBlCisgICAgICAgICAgIHJkZjpyZXNvdXJj ZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+ CisgICAgICA8L2NjOldvcms+CisgICAgPC9yZGY6UkRGPgorICA8L21ldGFk YXRhPgorICA8ZGVmcworICAgICBpZD0iZGVmczYiIC8+CisgIDxpbWFnZQor ICAgICB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3 MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBQkhO Q1NWUUlDQWdJZkFoa2lBQUFBVkZKUkVGVQorT0kyTmt6Rkx3MEFVeDMrUkZF by9RQVpkTy9vSnBKOUJPaGFrVUhBSkJTMDR0TVVxZ2hxS2d3NE9JVU8zTGhr S2dyUGZ3Y1d4cXdqRgorN1pvb2VCQ1gzSGxKcnNVM3ZUdnUvOTd2Lys3T3VS NGVZSXRvdGN3QWZLL3BXQS9rc2JOSkhBWXhZUkRyUXY4cThQRCtsdGtFMjRx NAorNXFKUnF6Ty9lMGJJRkNFVFJsZkhoRUVNUUgvU3lXeDIzTEpYSVZONnd6 YU5XcjF3TUF4aStwTk9aUzR1d05QOUN4L2ZuMWtJQ0psVQorU0lSTXVMMDV0 ZEs0QUd1WjBwOTBBTGk0ZkVTUkNKbHdjbjVrcGVrTjI5blozcjdqN1BZOFBh Q2NKQy93MTlsR295MG9sR2kxek5ZeQorVllnQURNYlRBbzBTbTVyQ0xYUkho enBYTkdFUWE3SDRTUXBXZksvcHVPWkM1U2FOS1JiNW5obHVaY2RDTXhoUHRR MHpLaGJLTk9xTgorbURObytWMmlhSzRINzJ6NlRHWVhsYmY4TG9uOEF1QjF0 c0QzbW83MU01VnBGRkZaREZ0bVlDc1V6UmFWcC93TFZWdm1xelVERGc0QQor QUFBQVNVVk9SSzVDWUlJPQorIgorICAgICB4PSIwIgorICAgICB5PSIwIgor ICAgICB3aWR0aD0iMTYiCisgICAgIGhlaWdodD0iMTYiCisgICAgIGlkPSJp bWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9t aXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHR0YWJsZS1zbS5wbmcgYi93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHR0YWJsZS1zbS5w bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNkNDNjYjhhYmFiNmVmMzhk YWYzNGZmNmQ3NTQ0MTUzYTExZGFjZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy YWwgNjEyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5bGBH WGw0N2BYI3tMUl43ZCNpYEdgJmkkS217XiMxTwp6cEhBSSpiP0A9PlhWMEhN ZC1tKztqYn4qJFVsYDFKKFEpPSleWFkkOCRBMEdAXz9mKShUaUItMG9+dTlE RWA0aF8KekAzczJPbSg4ZERkSTdtaC1mR056OEp4SiQoUnVDbD4kbVVTeUxi UW97WVFAO0olMFJuPjlUOSltS0E5ZSpCdi07CnohcTlrKnk3c31jXjYzdkFK T0lrT2Q4fD5AKnFAZihjbFlreVd5X1hETTBUcmJvXjxuQXNjVWRoUyMzc3Bg XjVGQAp6KlN+dThEbHZKTnk3cHhpXntxUjA5KUoxcjw/R2s0JiE0fC1XViVz TlcjIXk/WWFebzhzQT9XN0VMIXlPPEh4c2UKei19WDx+cy19Nj0oNzFkNHtE bmBTSzVjQVRzOyslVlU5PGJkaUw7JVo2SSl0VkokZHJ2JjZfdDU5PXZ3PCtF clRDCnpRd3tSaDR+Pn5HYyVKSl8wMHN3Uk5zd1BLZ1R1Mk1YK1JFVmZrJEw5 a29FdiR4MEJnK0sqamA1N3NuOFolZ0c0fQp6T2FAQWY5U3ArOCt9aElDP0Nr Mnw8fU1CRylCRUVjMHo0dklMez5HcV5RYjgzREpwU19QTTk9cDs/JjlFMFU8 JGMKelRxezxyVEE3YFptSEUyQmZ3a284N2hheTs5JCVsYzN6IyspNitJSzE3 SXJQb0VQJkI2K1BhJEVUfEhlcWRffXxUCnotUjtZI1p7Nk8lVU93YzJ5fjJn PSEpaDg5RGs5Skw/cmtYOFY2N3o0YEI5NihXMillfWk2MHZSZk5vUFFhZzhX Ugp6TmkwZFZOLWp6VFFWZDIwaDZjS1pNIUUpdUF3fnZQQ2RPN0tDZld3M1J0 NSRaR2dha0tIMDApfFdUc1VARyNGVGQKY0hHb3VHOEpJeWRvU0dpRzJCPzkt KTc4JnFvbGA7KzBMVlFIP0VuQSgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4v aW1nL2V4dHRhYmxlLXNtLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlj L2V4cGxhaW4vaW1nL2V4dHRhYmxlLXNtLnN2ZwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5lMTc2M2FkCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXh0dGFi bGUtc20uc3ZnCkBAIC0wLDAgKzEsNDUgQEAKKzw/eG1sIHZlcnNpb249IjEu MCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBD cmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3Jn LykgLS0+CisKKzxzdmcKKyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcv ZGMvZWxlbWVudHMvMS4xLyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRp dmVjb21tb25zLm9yZy9ucyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cu dzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpz dmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0 dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEi CisgICB3aWR0aD0iMTYiCisgICBoZWlnaHQ9IjE2IgorICAgaWQ9InN2ZzIi PgorICA8bWV0YWRhdGEKKyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJk ZjpSREY+CisgICAgICA8Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIi PgorICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1h dD4KKyAgICAgICAgPGRjOnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNl PSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4K KyAgICAgIDwvY2M6V29yaz4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRh dGE+CisgIDxkZWZzCisgICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisg ICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncw S0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFCSE5D U1ZRSUNBZ0lmQWhraUFBQUFicEpSRUZVCitPSTNGa2sxSUZHRVl4My9QN0d3 VG5xdHREMHZaU1NKV3c1U2RvSzUxRExSUGc0d01zeEFDc1VzUUloM3FGSlZH NWMxamRQQURncTFMCitLVVRXUWZQUXdUMXNHZmtSMFM3dHNMdXpNKzlNQjNW MC9EaDQ4b0dIOStWNStmLzR2dzkvMk9tU2xVdDEvN3kvSFdIMlZsd0E5TFhE CitEak5HbFRqRWQ5a2tqREo3RE1WdUhmQ1gyTmwvTVB4RDQrM1BWVTBJNFBt UVUxSG1TaHBqRlFQTFZoU1cyNm9vTE51ajZIaFVYQy9RCithQnZOYmZ5SnJC bkx1cmVRZ3k5OW8veWRkWG5XbDhRd0lvZ0lrY2pTT1RaZTRNbkFJQTBYR25t bm01czc2THdTSTUvUGNhWjVqdWN2Ciswb2dJU3NHMTZ4UDA5QzVTbTl4SHo5 blUxZzRTaWIxMGQxVXhNdnFab1pHVFRIMmRZSDVoUDhYaUg5cXUvcUttcGhw ZDF3RzFPVUJFCitNRTBUMDRUZSt4aytmanFNY21mcGYxckwwYnBEaUFnaTRT MW82d0g1dkV2VHVXbmVmOGh4cDJ1R1kvVWxPbS83UEhpWXhqQU1ORTNiCitH akEwL0kzemwzN2plelBjdTF2bTlLa1VqeCtkNFBMRkxHL1NCMmxNdlNTVCtS NENoSko0dzNxRjQ4UnBiVDBlMkkxR280Z0lsdVhUCitmbk9TNUpGcFhoOW9D WklZQXJTbllqZ2VsSjNWNEJSc0ZRVEtxbmlVSElYdCtnRmc1K3MvcVlPeHI1 VkI4L2dBQUFBQVNVVk9SSzVDCitZSUk9CisiCisgICAgIHg9IjAiCisgICAg IHk9IjAiCisgICAgIHdpZHRoPSIxNiIKKyAgICAgaGVpZ2h0PSIxNiIKKyAg ICAgaWQ9ImltYWdlMTAiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4dHRhYmxlLnBuZyBi L3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4dHRhYmxl LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDg0MDM1ZmVlYTYyZDUz ZDQ1NzQ4MTE3OGIxYmNiZTk2MjJmODU2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0 ZXJhbCA3OTMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3ls YEdYbDQ3OzZLM0xSXjdkI2lgR0dGWmBjJHtgYUVHCnpVdzdTamQtNDl1YDtW VkxlZklwPnZ1QyMrSzMjTH1kR2Z7PWRiM30ycGEwKV89M217M0tjJEMlPD9R PkJ4Wl8qYwp6cnFBQU1KfiU5WVhUSVEjP3duVUBHaFZpeWBKMjcoaHZUdyRX KChpdyZVX1l+KTFIeUZ7cUVobl93TD1oZkIqaTIKejJNLT1UZUU4X21xc05h UTh5WGlWPmlXJX16ZD4xVFZeR0wkQmpZTF57UyhXVTlvVnQrcHJYbm1TTkZa a20jPSpDCno8akx+byVrPlRGXm9APlB5Wi12c3Q1Knt6UExmbGNVfF9RVT5h fEIjdVU9SkY/YkoyY3ppaXBZXzNQS2FlKk9CJgp6bTglLXNFcWFFQilpa0c/ bT47PXc9bFBwQVp7RUlyYHx7PD56UDxeSERqUEprdVN9WT5fNUooekEzbDhl XnkkO1AKemNrZm9OVClCR24+TiNgZkRYUHFJYlVBRWVvM0VqQnM8Jl9KcmNJ bGtLWXpZPT8tNkNTd2NmdF9VJSE2aT8yQGdhCnpiQUgrSyREY29je2AmUm56 SWBXRClIajVMQUtrY2QpN0d0OWxUI1lpd043O1ItdW18Syt3djlMbURNKFRj eTBSbAp6QCNENV8rdXs9blJXLUpEYzMpQUx7OFVZfEh6VnVkcSlCcm9QZyRy aUAkbXdJTztkbW96KnJMRzd0Ry1CPl8hQHAKeiEmJUBGU3EhOC16fVczJXdq R2RoKzAoQF9NQjtMQ0xWXm47NC1aZHwmbCNPSElkNWQ8JSEjPlV2cXlvXnU4 ekBCCnpGO090a3UjblNwMURCbTlxaHNjUmhNcU10RSlIPnlmdTUxQnB9dyk2 JmNacWltYWJqUUBAVnlvUzErNGNNUjw5Nwp6ZCM/S1VvSVJ0ZmJDQWh2Uz1j cVJaRHJzMWB1eHIlRmZPUFE0PnZGOF94SU0lLV9YJDItQGtQSXtDYkNrZkM3 I1AKejJVOE9yOHptenhEPlhBUzR4SXklO2AxbFdjcnNfc3EqPkdXIzV6dSZJ Q0Z9Ul5WRz8rcn1ZYFFNWmBxWWtGIW1FCnpHRypHLUBDRnZHKXZOWThIK2VO KHpRbW9DYnhgWTd6I2V7dkZCWTBUZSZURTdmITxSc2FnOFdSTmkwZFZOLWp6 VAp6UVZkMjBoNmNLWk0hRSl1QXd+dlBDZE83S0NmV3czUnQ1JFpHZ2FrS0gw MCl8V1RzVUBHI0ZUZEhHb3VHOEpJeWQKVW9TR2lHMkI/OS0pNzgmcW9sYDsr MFF7PE8kXlpaVwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXh0dGFi bGUuc3ZnIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcv ZXh0dGFibGUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmQyZWZlMWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9t aXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHR0YWJsZS5zdmcKQEAgLTAsMCAr MSw0NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgi IHN0YW5kYWxvbmU9Im5vIj8+Cis8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2Fw ZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4KKworPHN2ZworICAg eG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgor ICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIK KyAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y ZGYtc3ludGF4LW5zIyIKKyAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5v cmcvMjAwMC9zdmciCisgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw MC9zdmciCisgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS94bGluayIKKyAgIHZlcnNpb249IjEuMSIKKyAgIHdpZHRoPSIxNiIKKyAg IGhlaWdodD0iMTYiCisgICBpZD0ic3ZnMiI+CisgIDxtZXRhZGF0YQorICAg ICBpZD0ibWV0YWRhdGE4Ij4KKyAgICA8cmRmOlJERj4KKyAgICAgIDxjYzpX b3JrCisgICAgICAgICByZGY6YWJvdXQ9IiI+CisgICAgICAgIDxkYzpmb3Jt YXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgorICAgICAgICA8ZGM6dHlw ZQorICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgorICAgICAgPC9jYzpXb3JrPgor ICAgIDwvcmRmOlJERj4KKyAgPC9tZXRhZGF0YT4KKyAgPGRlZnMKKyAgICAg aWQ9ImRlZnM2IiAvPgorICA8aW1hZ2UKKyAgICAgeGxpbms6aHJlZj0iZGF0 YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFC QUFBQUFRQ0FZQUFBQWY4LzloQUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQWs5 SlJFRlUKK09JMmRrbDFJazJFVXgzL24zZDdYR1dibXlMYTZVYlJBS1VncVNJ VEZjblFSUVpGS0gxSTNoVllXbENVU2lCQWlmVUJkSkVxcENWMVUKKzVrVkNO MTNVeFlLUlJCZUpYcGhkT0Nwc1VGcU56WFI3djdwWWpwWUxvajhjZU00RDUz OSs1enlQQUpUMFJHeitRK0ZtcnppWGtqUFYKK0hsVGJvTUNaeEtNdXNqYkhJ Tjlwb1RsQVNQbkhkWnZ4T1lXbkg0WFhuMU4xYVFQTGhwanBZRGFSdzRTdXNx QmJ6Q2N0NXBObUtuU0wKK2hZVEZEOE1pWWRqb3BnV0FrZ2xsWnptbEpEYllB cGhHeG4yYVlPenVWVlphVzJpOXNCRVJ5UnE2cmxOYmY0dDRjaHBPM3Nra0NH d3QKKzU5bnpKSzF0MDZtT2Z4U2Jwa2xkL1FDNmNZaXVTeTFwZ3JTQno3ZVpu dTRDM294RmFEb1ZablQwRlNLQ29paUVRaUgyN1IvRXRQY3kKK1BGUktJRkN4 M0VCRStQYjFFK2ZPZm1mcTNRVFhiaFFSaTBNMEdxVzk0d01XZnRvdWZtSHFi UWdSV2I0REVhR3FxZ29Sb2FZbVR0M0IKK0VRNDNPRmxjSEdkMVlUVkQ5MHZK ejNlZ0tFcUdRUVpCYm00dUxwZUxvcUkxTkI3UEl4YWJRMUYyY3F3aGl0dnRR dE0wTkUzN08wRXcKK0dFUlJGS0xSR04yOWVSUVh1OUVUL2ZUMk5hQWJMOWxR WnY3YWwyODVnYXFxK0h3K0NndTlYTG0raW9yeVVvWWZsalB5dUozMW5udjAK K0Q2NGpQbCtKMys5SFZkWHNJMHhPdnFmcDlDeVZsUjRhVDhSd09CUlVWYVhs L0I2cWR6emhjdWNNdC9zaTJVY0l2aGlqdmNOZ1E1bkMKKzBTTnppSkN4c05v RDJ6R01SL1QxQjdDc0pLeHdweG9ERkhmUDJGcnZFTHY4MitqcTNKUisvOTgv MGxJK01QQUFVVlJ1eW03Q3pkNlUKK2ZVbFB4TFlOQTNHbWdmNUo0V2F2L0FT ZnB0Qmd6TEpxYWdBQUFBQkpSVTVFcmtKZ2dnPT0KKyIKKyAgICAgeD0iMCIK KyAgICAgeT0iMCIKKyAgICAgd2lkdGg9IjE2IgorICAgICBoZWlnaHQ9IjE2 IgorICAgICBpZD0iaW1hZ2UxMCIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9pbWcvZXh0dGFibGVz LnBuZyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4 dHRhYmxlcy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVkZmJkNDU0 ZWQzMzcyN2JkMWRlZWI4N2M2MmY4NjcxZjZhNWEwMwpHSVQgYmluYXJ5IHBh dGNoCmxpdGVyYWwgNjYyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdC ITYzP3d5bGBHWGw0N15NUHlMUl43ZCNpYEdgJmkkS217XiMxTwp6cEhBSSpi P0A9PlhWMEhNZC1tKztqYn4qJFVsYDFKKFEpPSkoMXVUJnVmRHh8X2lwcCll XnRrUj1PNmYpeXpeVncKenJxNzxNS2lEcFBZZEcoPGBwbFIyPyVpdVh7bnJh OXZnRURkakYlY1NVKjVsZS16eypIam9xdihTRlMmTF55dTs5CnokQkNoNTRZ VilTWWBwczUhR29obUZQVHx2UH1BSUFVT3dzNkBxMT52WEFIRT9ePndVJmBT UnQlaFl5ITZUTlYqRAp6VH18dD52OzlVTD9XP0FtdDdnb1l3U044alNGY2A4 SVE3fWg9QWVmNUhCSFQoPVB6Nyl7cmRJKC1QZXRFJktxZisKelRDP0o/eDk+ X2R0QERrfEozZkI9YDFiQUYrfm5RYitTZVJTSD5fQig7XzFfO1JuOz84SEZn YEJFV1VRX3pKPWJnCnpyaSRIOW87LVE7PUZPdT1Qd1g5K1l3UFc8MktueFhh PklxamdNRXZEcH5GfWI8UUw0fkBhI3Eha2klS3Y1bV5rUgp6SjsyIVFXVlJp VXZEd3FiRit9Mlc/MEh3UUxrPEcyN3hoZFc4WG1CNHpZfmpUVmtzfWJgUVBr PzhaK09AaHR9bUUKenhEVVIrQFpEaXkkViRfd3UxaGFAZ0JKQXVYVW13JElR ZExOV0xtKzJ3djc/RlckbC1ydmEjcUckX2VlVXQ3bDs2CnpZZnNRUFEjM0l7 WFdqd0RQRzdDTEMpSjk3SSEhI2ooOFh0RyhBdWxnWFR6aT9DPHEraEk1JShv YFIlVG9kU0BJZwp6RnEhOSp7K1g1WWhFRGtGdih4VXM8IyZKU1kleTBxK0gy M2ZjbD8/aENaQjYyJUMwbDdWY194LWR1Z1d9ZWlHPD4KeillX2Y7bDlhQGZS SUI4b1IzT0QqV01GOFpZaU9pdlU+SVUjVX1hKSNXbiFYalV9fE14VUA9b3c0 bjskNWVvQUlxCmlCfTlYUEMwR01Vd1V2UHhNOG0xK3A9KkV8Nyg4QTVULUdA eUd5d29aSFpzdXcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vaW1nL2V4dHRh Ymxlcy5zdmcgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2lt Zy9leHR0YWJsZXMuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjRiZGZhZWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9taXNjL3N0YXRpYy9leHBsYWluL2ltZy9leHR0YWJsZXMuc3ZnCkBAIC0w LDAgKzEsNDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU Ri04IiBzdGFuZGFsb25lPSJubyI/PgorPCEtLSBDcmVhdGVkIHdpdGggSW5r c2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+CisKKzxzdmcK KyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x LyIKKyAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9u cyMiCisgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIv MjItcmRmLXN5bnRheC1ucyMiCisgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDAvc3ZnIgorICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDAvc3ZnIgorICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGxpbmsiCisgICB2ZXJzaW9uPSIxLjEiCisgICB3aWR0aD0iMTYi CisgICBoZWlnaHQ9IjE2IgorICAgaWQ9InN2ZzIiPgorICA8bWV0YWRhdGEK KyAgICAgaWQ9Im1ldGFkYXRhOCI+CisgICAgPHJkZjpSREY+CisgICAgICA8 Y2M6V29yaworICAgICAgICAgcmRmOmFib3V0PSIiPgorICAgICAgICA8ZGM6 Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KKyAgICAgICAgPGRj OnR5cGUKKyAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5v cmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KKyAgICAgIDwvY2M6V29y az4KKyAgICA8L3JkZjpSREY+CisgIDwvbWV0YWRhdGE+CisgIDxkZWZzCisg ICAgIGlkPSJkZWZzNiIgLz4KKyAgPGltYWdlCisgICAgIHhsaW5rOmhyZWY9 ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn QUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFB QUFnZEpSRUZVCitPSTJkazB0ckUxRVVnTDh6bVRocDJtdzBiVnBGTUZvWGFy ZVdCTXdmcU9KQ0xZTFFDaUswNHFORjNhcWI0cm9WSW0xeEpZb0xrYUoyCis1 U0tDYmtvVm82QXVSRTFOalVra2ZkZzhuSmswTXk1aVloNGJ5WUhMdVZ3TzMv a09uQ3YrY05MbVB5TjJ2a2NhMzFTQWMwRWZiaW5TCitzOFZncDZiajFVcTRW TUF1czJNYjhQaWJ3ck03S2Z2dDJXNXBBbGcyUk9JRzBVUytnVjliVzRiNXcw bTcxa1N0WEtLSmZFc21Lc0FCCisxeHF0bXFnQSsxM3JnTHNsRTdXMlQ2M0pX c25Kajk4S0wweU5uRkVpKy9ma3pCSTV3NkpRdERBM0xSUUFrYkppMmFSZXRX a1FHekN0Cis2bEJxTGFBU2tZbDVDaXNwcG0rSGNMczFSQVNIdzRHSWNQM3lU Nklmblp5NDZlRCs5NjMxQnBWODQrb3VUTE9MWTROTHpNek1JeUtrCitFcHNj SDBnVC9TQU1EMzNoWXNEYmJGREozZDN0akY4cThHUSt5ZHpUSUs4WDNwSE85 TkptZldWMGJCMmZyN05hcTQ0ZDdHQXVEWkNyCitBd1dEUVFJQm05SGhaZUta dllpMXpPeURQcmIzYkVORXFyWEtlTDlIeHZzOTBtaXk5RmxuOE9ndk1xdHRU RnhiWVhmdk9pZFBHVXpQCitSdEUwRFVWUjZqZGtjakZyQTB5OXluSGt6WHNp Q3p2b2NuOWk1SXBPS0JSQ1ZWV21iczN4OE5FZVBCMHA3dDA5eE9IbkxwcCts eitjCit0SDB6TVFZRzhweTVzSytxNjNRNkVSRUtCWjJoMHkvSnJIZ3BqUFEx QXlZWHM3YnVhS2RvZ1Y3OHR6aFpvMVJkcUp4cHNSRlBZSFg2CisrQU1ONS9l MG0vR3NTUUFBQUFCSlJVNUVya0pnZ2c9PQorIgorICAgICB4PSIwIgorICAg ICB5PSIwIgorICAgICB3aWR0aD0iMTYiCisgICAgIGhlaWdodD0iMTYiCisg ICAgIGlkPSJpbWFnZTEwIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2pzL3NuYXAuc3ZnLW1pbi5q cyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMvc25hcC5z dmctbWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjY1NjdkMTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNj L3N0YXRpYy9leHBsYWluL2pzL3NuYXAuc3ZnLW1pbi5qcwpAQCAtMCwwICsx LDIxIEBACisvLyBTbmFwLnN2ZyAwLjQuMQorLy8KKy8vIENvcHlyaWdodCAo YykgMjAxMyDigJMgMjAxNSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4g QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0 aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2Ui KTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv bXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWlu IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vIGh0dHA6Ly93d3cu YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVz cyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4g d3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisv LyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lO RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGlj ZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt aXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNl LgorLy8KKy8vIGJ1aWxkOiAyMDE1LTA0LTEzCisKKyFmdW5jdGlvbihhKXt2 YXIgYixjLGQ9IjAuNC4yIixlPSJoYXNPd25Qcm9wZXJ0eSIsZj0vW1wuXC9d LyxnPS9ccyosXHMqLyxoPSIqIixpPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEt Yn0saj17bjp7fX0saz1mdW5jdGlvbigpe2Zvcih2YXIgYT0wLGI9dGhpcy5s ZW5ndGg7Yj5hO2ErKylpZigidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXNbYV0p cmV0dXJuIHRoaXNbYV19LGw9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5s ZW5ndGg7LS1hOylpZigidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXNbYV0pcmV0 dXJuIHRoaXNbYV19LG09ZnVuY3Rpb24oYSxkKXthPVN0cmluZyhhKTt2YXIg ZSxmPWMsZz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMs MiksaD1tLmxpc3RlbmVycyhhKSxqPTAsbj1bXSxvPXt9LHA9W10scT1iO3Au Zmlyc3REZWZpbmVkPWsscC5sYXN0RGVmaW5lZD1sLGI9YSxjPTA7Zm9yKHZh ciByPTAscz1oLmxlbmd0aDtzPnI7cisrKSJ6SW5kZXgiaW4gaFtyXSYmKG4u cHVzaChoW3JdLnpJbmRleCksaFtyXS56SW5kZXg8MCYmKG9baFtyXS56SW5k ZXhdPWhbcl0pKTtmb3Iobi5zb3J0KGkpO25bal08MDspaWYoZT1vW25baisr XV0scC5wdXNoKGUuYXBwbHkoZCxnKSksYylyZXR1cm4gYz1mLHA7Zm9yKHI9 MDtzPnI7cisrKWlmKGU9aFtyXSwiekluZGV4ImluIGUpaWYoZS56SW5kZXg9 PW5bal0pe2lmKHAucHVzaChlLmFwcGx5KGQsZykpLGMpYnJlYWs7ZG8gaWYo aisrLGU9b1tuW2pdXSxlJiZwLnB1c2goZS5hcHBseShkLGcpKSxjKWJyZWFr O3doaWxlKGUpfWVsc2Ugb1tlLnpJbmRleF09ZTtlbHNlIGlmKHAucHVzaChl LmFwcGx5KGQsZykpLGMpYnJlYWs7cmV0dXJuIGM9ZixiPXEscH07bS5fZXZl bnRzPWosbS5saXN0ZW5lcnM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZyxp LGssbCxtPWEuc3BsaXQoZiksbj1qLG89W25dLHA9W107Zm9yKGU9MCxnPW0u bGVuZ3RoO2c+ZTtlKyspe2ZvcihsPVtdLGk9MCxrPW8ubGVuZ3RoO2s+aTtp KyspZm9yKG49b1tpXS5uLGM9W25bbVtlXV0sbltoXV0sZD0yO2QtLTspYj1j W2RdLGImJihsLnB1c2goYikscD1wLmNvbmNhdChiLmZ8fFtdKSk7bz1sfXJl dHVybiBwfSxtLm9uPWZ1bmN0aW9uKGEsYil7aWYoYT1TdHJpbmcoYSksImZ1 bmN0aW9uIiE9dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFy IGM9YS5zcGxpdChnKSxkPTAsZT1jLmxlbmd0aDtlPmQ7ZCsrKSFmdW5jdGlv bihhKXtmb3IodmFyIGMsZD1hLnNwbGl0KGYpLGU9aixnPTAsaD1kLmxlbmd0 aDtoPmc7ZysrKWU9ZS5uLGU9ZS5oYXNPd25Qcm9wZXJ0eShkW2ddKSYmZVtk W2ddXXx8KGVbZFtnXV09e246e319KTtmb3IoZS5mPWUuZnx8W10sZz0wLGg9 ZS5mLmxlbmd0aDtoPmc7ZysrKWlmKGUuZltnXT09Yil7Yz0hMDticmVha30h YyYmZS5mLnB1c2goYil9KGNbZF0pO3JldHVybiBmdW5jdGlvbihhKXsrYT09 K2EmJihiLnpJbmRleD0rYSl9fSxtLmY9ZnVuY3Rpb24oYSl7dmFyIGI9W10u c2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7bS5h cHBseShudWxsLFthLG51bGxdLmNvbmNhdChiKS5jb25jYXQoW10uc2xpY2Uu Y2FsbChhcmd1bWVudHMsMCkpKX19LG0uc3RvcD1mdW5jdGlvbigpe2M9MX0s bS5udD1mdW5jdGlvbihhKXtyZXR1cm4gYT9uZXcgUmVnRXhwKCIoPzpcXC58 XFwvfF4pIithKyIoPzpcXC58XFwvfCQpIikudGVzdChiKTpifSxtLm50cz1m dW5jdGlvbigpe3JldHVybiBiLnNwbGl0KGYpfSxtLm9mZj1tLnVuYmluZD1m dW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiB2b2lkKG0uX2V2ZW50cz1qPXtu Ont9fSk7dmFyIGM9YS5zcGxpdChnKTtpZihjLmxlbmd0aD4xKWZvcih2YXIg ZD0wLGk9Yy5sZW5ndGg7aT5kO2QrKyltLm9mZihjW2RdLGIpO2Vsc2V7Yz1h LnNwbGl0KGYpO3ZhciBrLGwsbixkLGksbyxwLHE9W2pdO2ZvcihkPTAsaT1j Lmxlbmd0aDtpPmQ7ZCsrKWZvcihvPTA7bzxxLmxlbmd0aDtvKz1uLmxlbmd0 aC0yKXtpZihuPVtvLDFdLGs9cVtvXS5uLGNbZF0hPWgpa1tjW2RdXSYmbi5w dXNoKGtbY1tkXV0pO2Vsc2UgZm9yKGwgaW4gaylrW2VdKGwpJiZuLnB1c2go a1tsXSk7cS5zcGxpY2UuYXBwbHkocSxuKX1mb3IoZD0wLGk9cS5sZW5ndGg7 aT5kO2QrKylmb3Ioaz1xW2RdO2subjspe2lmKGIpe2lmKGsuZil7Zm9yKG89 MCxwPWsuZi5sZW5ndGg7cD5vO28rKylpZihrLmZbb109PWIpe2suZi5zcGxp Y2UobywxKTticmVha30hay5mLmxlbmd0aCYmZGVsZXRlIGsuZn1mb3IobCBp biBrLm4paWYoay5uW2VdKGwpJiZrLm5bbF0uZil7dmFyIHI9ay5uW2xdLmY7 Zm9yKG89MCxwPXIubGVuZ3RoO3A+bztvKyspaWYocltvXT09Yil7ci5zcGxp Y2UobywxKTticmVha30hci5sZW5ndGgmJmRlbGV0ZSBrLm5bbF0uZn19ZWxz ZXtkZWxldGUgay5mO2ZvcihsIGluIGsubilrLm5bZV0obCkmJmsubltsXS5m JiZkZWxldGUgay5uW2xdLmZ9az1rLm59fX0sbS5vbmNlPWZ1bmN0aW9uKGEs Yil7dmFyIGM9ZnVuY3Rpb24oKXtyZXR1cm4gbS51bmJpbmQoYSxjKSxiLmFw cGx5KHRoaXMsYXJndW1lbnRzKX07cmV0dXJuIG0ub24oYSxjKX0sbS52ZXJz aW9uPWQsbS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJZb3UgYXJlIHJ1 bm5pbmcgRXZlICIrZH0sInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGUmJm1v ZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPW06ImZ1bmN0aW9uIj09dHlw ZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImV2ZSIsW10sZnVuY3Rp b24oKXtyZXR1cm4gbX0pOmEuZXZlPW19KHRoaXMpLGZ1bmN0aW9uKGEsYil7 aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClkZWZp bmUoWyJldmUiXSxmdW5jdGlvbihjKXtyZXR1cm4gYihhLGMpfSk7ZWxzZSBp ZigidW5kZWZpbmVkIiE9dHlwZW9mIGV4cG9ydHMpe3ZhciBjPXJlcXVpcmUo ImV2ZSIpO21vZHVsZS5leHBvcnRzPWIoYSxjKX1lbHNlIGIoYSxhLmV2ZSl9 KHdpbmRvd3x8dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGIp e3ZhciBjPXt9LGQ9YS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGEud2Via2l0 UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxhLm1velJlcXVlc3RBbmltYXRpb25G cmFtZXx8YS5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxhLm1zUmVxdWVzdEFu aW1hdGlvbkZyYW1lfHxmdW5jdGlvbihhKXtzZXRUaW1lb3V0KGEsMTYpfSxl PUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNl b2YgQXJyYXl8fCJbb2JqZWN0IEFycmF5XSI9PU9iamVjdC5wcm90b3R5cGUu dG9TdHJpbmcuY2FsbChhKX0sZj0wLGc9Ik0iKygrbmV3IERhdGUpLnRvU3Ry aW5nKDM2KSxoPWZ1bmN0aW9uKCl7cmV0dXJuIGcrKGYrKykudG9TdHJpbmco MzYpfSxpPURhdGUubm93fHxmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0s aj1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIGIu czt2YXIgYz1iLnMtYTtiLmIrPWIuZHVyKmMsYi5CKz1iLmR1cipjLGIucz1h fSxrPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7cmV0dXJuIG51bGw9PWE/Yi5z cGQ6dm9pZChiLnNwZD1hKX0sbD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3Jl dHVybiBudWxsPT1hP2IuZHVyOihiLnM9Yi5zKmEvYi5kdXIsdm9pZChiLmR1 cj1hKSl9LG09ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2RlbGV0ZSBjW2EuaWRd LGEudXBkYXRlKCksYigibWluYS5zdG9wLiIrYS5pZCxhKX0sbj1mdW5jdGlv bigpe3ZhciBhPXRoaXM7YS5wZGlmfHwoZGVsZXRlIGNbYS5pZF0sYS51cGRh dGUoKSxhLnBkaWY9YS5nZXQoKS1hLmIpfSxvPWZ1bmN0aW9uKCl7dmFyIGE9 dGhpczthLnBkaWYmJihhLmI9YS5nZXQoKS1hLnBkaWYsZGVsZXRlIGEucGRp ZixjW2EuaWRdPWEpfSxwPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzO2lmKGUo Yi5zdGFydCkpe2E9W107Zm9yKHZhciBjPTAsZD1iLnN0YXJ0Lmxlbmd0aDtk PmM7YysrKWFbY109K2Iuc3RhcnRbY10rKGIuZW5kW2NdLWIuc3RhcnRbY10p KmIuZWFzaW5nKGIucyl9ZWxzZSBhPStiLnN0YXJ0KyhiLmVuZC1iLnN0YXJ0 KSpiLmVhc2luZyhiLnMpO2Iuc2V0KGEpfSxxPWZ1bmN0aW9uKCl7dmFyIGE9 MDtmb3IodmFyIGUgaW4gYylpZihjLmhhc093blByb3BlcnR5KGUpKXt2YXIg Zj1jW2VdLGc9Zi5nZXQoKTthKyssZi5zPShnLWYuYikvKGYuZHVyL2Yuc3Bk KSxmLnM+PTEmJihkZWxldGUgY1tlXSxmLnM9MSxhLS0sZnVuY3Rpb24oYSl7 c2V0VGltZW91dChmdW5jdGlvbigpe2IoIm1pbmEuZmluaXNoLiIrYS5pZCxh KX0pfShmKSksZi51cGRhdGUoKX1hJiZkKHEpfSxyPWZ1bmN0aW9uKGEsYixl LGYsZyxpLHMpe3ZhciB0PXtpZDpoKCksc3RhcnQ6YSxlbmQ6YixiOmUsczow LGR1cjpmLWUsc3BkOjEsZ2V0Omcsc2V0OmksZWFzaW5nOnN8fHIubGluZWFy LHN0YXR1czpqLHNwZWVkOmssZHVyYXRpb246bCxzdG9wOm0scGF1c2U6bixy ZXN1bWU6byx1cGRhdGU6cH07Y1t0LmlkXT10O3ZhciB1LHY9MDtmb3IodSBp biBjKWlmKGMuaGFzT3duUHJvcGVydHkodSkmJih2KyssMj09dikpYnJlYWs7 cmV0dXJuIDE9PXYmJmQocSksdH07cmV0dXJuIHIudGltZT1pLHIuZ2V0QnlJ ZD1mdW5jdGlvbihhKXtyZXR1cm4gY1thXXx8bnVsbH0sci5saW5lYXI9ZnVu Y3Rpb24oYSl7cmV0dXJuIGF9LHIuZWFzZW91dD1mdW5jdGlvbihhKXtyZXR1 cm4gTWF0aC5wb3coYSwxLjcpfSxyLmVhc2Vpbj1mdW5jdGlvbihhKXtyZXR1 cm4gTWF0aC5wb3coYSwuNDgpfSxyLmVhc2Vpbm91dD1mdW5jdGlvbihhKXtp ZigxPT1hKXJldHVybiAxO2lmKDA9PWEpcmV0dXJuIDA7dmFyIGI9LjQ4LWEv MS4wNCxjPU1hdGguc3FydCguMTczNCtiKmIpLGQ9Yy1iLGU9TWF0aC5wb3co TWF0aC5hYnMoZCksMS8zKSooMD5kPy0xOjEpLGY9LWMtYixnPU1hdGgucG93 KE1hdGguYWJzKGYpLDEvMykqKDA+Zj8tMToxKSxoPWUrZysuNTtyZXR1cm4g MyooMS1oKSpoKmgraCpoKmh9LHIuYmFja2luPWZ1bmN0aW9uKGEpe2lmKDE9 PWEpcmV0dXJuIDE7dmFyIGI9MS43MDE1ODtyZXR1cm4gYSphKigoYisxKSph LWIpfSxyLmJhY2tvdXQ9ZnVuY3Rpb24oYSl7aWYoMD09YSlyZXR1cm4gMDth LT0xO3ZhciBiPTEuNzAxNTg7cmV0dXJuIGEqYSooKGIrMSkqYStiKSsxfSxy LmVsYXN0aWM9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PSEhYT9hOk1hdGgucG93 KDIsLTEwKmEpKk1hdGguc2luKDIqKGEtLjA3NSkqTWF0aC5QSS8uMykrMX0s ci5ib3VuY2U9ZnVuY3Rpb24oYSl7dmFyIGIsYz03LjU2MjUsZD0yLjc1O3Jl dHVybiAxL2Q+YT9iPWMqYSphOjIvZD5hPyhhLT0xLjUvZCxiPWMqYSphKy43 NSk6Mi41L2Q+YT8oYS09Mi4yNS9kLGI9YyphKmErLjkzNzUpOihhLT0yLjYy NS9kLGI9YyphKmErLjk4NDM3NSksYn0sYS5taW5hPXIscn0oInVuZGVmaW5l ZCI9PXR5cGVvZiBiP2Z1bmN0aW9uKCl7fTpiKSxkPWZ1bmN0aW9uKGEpe2Z1 bmN0aW9uIGMoYSxiKXtpZihhKXtpZihhLm5vZGVUeXBlKXJldHVybiB3KGEp O2lmKGUoYSwiYXJyYXkiKSYmYy5zZXQpcmV0dXJuIGMuc2V0LmFwcGx5KGMs YSk7aWYoYSBpbnN0YW5jZW9mIHMpcmV0dXJuIGE7aWYobnVsbD09YilyZXR1 cm4gYT15LmRvYy5xdWVyeVNlbGVjdG9yKFN0cmluZyhhKSksdyhhKX1yZXR1 cm4gYT1udWxsPT1hPyIxMDAlIjphLGI9bnVsbD09Yj8iMTAwJSI6YixuZXcg dihhLGIpfWZ1bmN0aW9uIGQoYSxiKXtpZihiKXtpZigiI3RleHQiPT1hJiYo YT15LmRvYy5jcmVhdGVUZXh0Tm9kZShiLnRleHR8fGJbIiN0ZXh0Il18fCIi KSksIiNjb21tZW50Ij09YSYmKGE9eS5kb2MuY3JlYXRlQ29tbWVudChiLnRl eHR8fGJbIiN0ZXh0Il18fCIiKSksInN0cmluZyI9PXR5cGVvZiBhJiYoYT1k KGEpKSwic3RyaW5nIj09dHlwZW9mIGIpcmV0dXJuIDE9PWEubm9kZVR5cGU/ InhsaW5rOiI9PWIuc3Vic3RyaW5nKDAsNik/YS5nZXRBdHRyaWJ1dGVOUyhU LGIuc3Vic3RyaW5nKDYpKToieG1sOiI9PWIuc3Vic3RyaW5nKDAsNCk/YS5n ZXRBdHRyaWJ1dGVOUyhVLGIuc3Vic3RyaW5nKDQpKTphLmdldEF0dHJpYnV0 ZShiKToidGV4dCI9PWI/YS5ub2RlVmFsdWU6bnVsbDtpZigxPT1hLm5vZGVU eXBlKXtmb3IodmFyIGMgaW4gYilpZihiW3pdKGMpKXt2YXIgZT1BKGJbY10p O2U/InhsaW5rOiI9PWMuc3Vic3RyaW5nKDAsNik/YS5zZXRBdHRyaWJ1dGVO UyhULGMuc3Vic3RyaW5nKDYpLGUpOiJ4bWw6Ij09Yy5zdWJzdHJpbmcoMCw0 KT9hLnNldEF0dHJpYnV0ZU5TKFUsYy5zdWJzdHJpbmcoNCksZSk6YS5zZXRB dHRyaWJ1dGUoYyxlKTphLnJlbW92ZUF0dHJpYnV0ZShjKX19ZWxzZSJ0ZXh0 ImluIGImJihhLm5vZGVWYWx1ZT1iLnRleHQpfWVsc2UgYT15LmRvYy5jcmVh dGVFbGVtZW50TlMoVSxhKTtyZXR1cm4gYX1mdW5jdGlvbiBlKGEsYil7cmV0 dXJuIGI9QS5wcm90b3R5cGUudG9Mb3dlckNhc2UuY2FsbChiKSwiZmluaXRl Ij09Yj9pc0Zpbml0ZShhKToiYXJyYXkiPT1iJiYoYSBpbnN0YW5jZW9mIEFy cmF5fHxBcnJheS5pc0FycmF5JiZBcnJheS5pc0FycmF5KGEpKT8hMDoibnVs bCI9PWImJm51bGw9PT1hfHxiPT10eXBlb2YgYSYmbnVsbCE9PWF8fCJvYmpl Y3QiPT1iJiZhPT09T2JqZWN0KGEpfHxKLmNhbGwoYSkuc2xpY2UoOCwtMSku dG9Mb3dlckNhc2UoKT09Yn1mdW5jdGlvbiBmKGEpe2lmKCJmdW5jdGlvbiI9 PXR5cGVvZiBhfHxPYmplY3QoYSkhPT1hKXJldHVybiBhO3ZhciBiPW5ldyBh LmNvbnN0cnVjdG9yO2Zvcih2YXIgYyBpbiBhKWFbel0oYykmJihiW2NdPWYo YVtjXSkpO3JldHVybiBifWZ1bmN0aW9uIGgoYSxiKXtmb3IodmFyIGM9MCxk PWEubGVuZ3RoO2Q+YztjKyspaWYoYVtjXT09PWIpcmV0dXJuIGEucHVzaChh LnNwbGljZShjLDEpWzBdKX1mdW5jdGlvbiBpKGEsYixjKXtmdW5jdGlvbiBk KCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRz LDApLGY9ZS5qb2luKCLikIAiKSxnPWQuY2FjaGU9ZC5jYWNoZXx8e30saT1k LmNvdW50PWQuY291bnR8fFtdO3JldHVybiBnW3pdKGYpPyhoKGksZiksYz9j KGdbZl0pOmdbZl0pOihpLmxlbmd0aD49MWUzJiZkZWxldGUgZ1tpLnNoaWZ0 KCldLGkucHVzaChmKSxnW2ZdPWEuYXBwbHkoYixlKSxjP2MoZ1tmXSk6Z1tm XSl9cmV0dXJuIGR9ZnVuY3Rpb24gaihhLGIsYyxkLGUsZil7aWYobnVsbD09 ZSl7dmFyIGc9YS1jLGg9Yi1kO3JldHVybiBnfHxoPygxODArMTgwKkQuYXRh bjIoLWgsLWcpL0grMzYwKSUzNjA6MH1yZXR1cm4gaihhLGIsZSxmKS1qKGMs ZCxlLGYpfWZ1bmN0aW9uIGsoYSl7cmV0dXJuIGElMzYwKkgvMTgwfWZ1bmN0 aW9uIGwoYSl7cmV0dXJuIDE4MCphL0glMzYwfWZ1bmN0aW9uIG0oYSl7dmFy IGI9W107cmV0dXJuIGE9YS5yZXBsYWNlKC8oPzpefFxzKShcdyspXCgoW14p XSspXCkvZyxmdW5jdGlvbihhLGMsZCl7cmV0dXJuIGQ9ZC5zcGxpdCgvXHMq LFxzKnxccysvKSwicm90YXRlIj09YyYmMT09ZC5sZW5ndGgmJmQucHVzaCgw LDApLCJzY2FsZSI9PWMmJihkLmxlbmd0aD4yP2Q9ZC5zbGljZSgwLDIpOjI9 PWQubGVuZ3RoJiZkLnB1c2goMCwwKSwxPT1kLmxlbmd0aCYmZC5wdXNoKGRb MF0sMCwwKSksYi5wdXNoKCJza2V3WCI9PWM/WyJtIiwxLDAsRC50YW4oayhk WzBdKSksMSwwLDBdOiJza2V3WSI9PWM/WyJtIiwxLEQudGFuKGsoZFswXSkp LDAsMSwwLDBdOltjLmNoYXJBdCgwKV0uY29uY2F0KGQpKSxhfSksYn1mdW5j dGlvbiBuKGEsYil7dmFyIGQ9YWIoYSksZT1uZXcgYy5NYXRyaXg7aWYoZClm b3IodmFyIGY9MCxnPWQubGVuZ3RoO2c+ZjtmKyspe3ZhciBoLGksaixrLGws bT1kW2ZdLG49bS5sZW5ndGgsbz1BKG1bMF0pLnRvTG93ZXJDYXNlKCkscD1t WzBdIT1vLHE9cD9lLmludmVydCgpOjA7InQiPT1vJiYyPT1uP2UudHJhbnNs YXRlKG1bMV0sMCk6InQiPT1vJiYzPT1uP3A/KGg9cS54KDAsMCksaT1xLnko MCwwKSxqPXEueChtWzFdLG1bMl0pLGs9cS55KG1bMV0sbVsyXSksZS50cmFu c2xhdGUoai1oLGstaSkpOmUudHJhbnNsYXRlKG1bMV0sbVsyXSk6InIiPT1v PzI9PW4/KGw9bHx8YixlLnJvdGF0ZShtWzFdLGwueCtsLndpZHRoLzIsbC55 K2wuaGVpZ2h0LzIpKTo0PT1uJiYocD8oaj1xLngobVsyXSxtWzNdKSxrPXEu eShtWzJdLG1bM10pLGUucm90YXRlKG1bMV0saixrKSk6ZS5yb3RhdGUobVsx XSxtWzJdLG1bM10pKToicyI9PW8/Mj09bnx8Mz09bj8obD1sfHxiLGUuc2Nh bGUobVsxXSxtW24tMV0sbC54K2wud2lkdGgvMixsLnkrbC5oZWlnaHQvMikp OjQ9PW4/cD8oaj1xLngobVsyXSxtWzNdKSxrPXEueShtWzJdLG1bM10pLGUu c2NhbGUobVsxXSxtWzFdLGosaykpOmUuc2NhbGUobVsxXSxtWzFdLG1bMl0s bVszXSk6NT09biYmKHA/KGo9cS54KG1bM10sbVs0XSksaz1xLnkobVszXSxt WzRdKSxlLnNjYWxlKG1bMV0sbVsyXSxqLGspKTplLnNjYWxlKG1bMV0sbVsy XSxtWzNdLG1bNF0pKToibSI9PW8mJjc9PW4mJmUuYWRkKG1bMV0sbVsyXSxt WzNdLG1bNF0sbVs1XSxtWzZdKX1yZXR1cm4gZX1mdW5jdGlvbiBvKGEpe3Zh ciBiPWEubm9kZS5vd25lclNWR0VsZW1lbnQmJncoYS5ub2RlLm93bmVyU1ZH RWxlbWVudCl8fGEubm9kZS5wYXJlbnROb2RlJiZ3KGEubm9kZS5wYXJlbnRO b2RlKXx8Yy5zZWxlY3QoInN2ZyIpfHxjKDAsMCksZD1iLnNlbGVjdCgiZGVm cyIpLGU9bnVsbD09ZD8hMTpkLm5vZGU7cmV0dXJuIGV8fChlPXUoImRlZnMi LGIubm9kZSkubm9kZSksZX1mdW5jdGlvbiBwKGEpe3JldHVybiBhLm5vZGUu b3duZXJTVkdFbGVtZW50JiZ3KGEubm9kZS5vd25lclNWR0VsZW1lbnQpfHxj LnNlbGVjdCgic3ZnIil9ZnVuY3Rpb24gcShhLGIsYyl7ZnVuY3Rpb24gZShh KXtpZihudWxsPT1hKXJldHVybiBJO2lmKGE9PSthKXJldHVybiBhO2Qoaix7 d2lkdGg6YX0pO3RyeXtyZXR1cm4gai5nZXRCQm94KCkud2lkdGh9Y2F0Y2go Yil7cmV0dXJuIDB9fWZ1bmN0aW9uIGYoYSl7aWYobnVsbD09YSlyZXR1cm4g STtpZihhPT0rYSlyZXR1cm4gYTtkKGose2hlaWdodDphfSk7dHJ5e3JldHVy biBqLmdldEJCb3goKS5oZWlnaHR9Y2F0Y2goYil7cmV0dXJuIDB9fWZ1bmN0 aW9uIGcoZCxlKXtudWxsPT1iP2lbZF09ZShhLmF0dHIoZCl8fDApOmQ9PWIm JihpPWUobnVsbD09Yz9hLmF0dHIoZCl8fDA6YykpfXZhciBoPXAoYSkubm9k ZSxpPXt9LGo9aC5xdWVyeVNlbGVjdG9yKCIuc3ZnLS0tbWdyIik7c3dpdGNo KGp8fChqPWQoInJlY3QiKSxkKGose3g6LTllOSx5Oi05ZTksd2lkdGg6MTAs aGVpZ2h0OjEwLCJjbGFzcyI6InN2Zy0tLW1nciIsZmlsbDoibm9uZSJ9KSxo LmFwcGVuZENoaWxkKGopKSxhLnR5cGUpe2Nhc2UicmVjdCI6ZygicngiLGUp LGcoInJ5IixmKTtjYXNlImltYWdlIjpnKCJ3aWR0aCIsZSksZygiaGVpZ2h0 IixmKTtjYXNlInRleHQiOmcoIngiLGUpLGcoInkiLGYpO2JyZWFrO2Nhc2Ui Y2lyY2xlIjpnKCJjeCIsZSksZygiY3kiLGYpLGcoInIiLGUpO2JyZWFrO2Nh c2UiZWxsaXBzZSI6ZygiY3giLGUpLGcoImN5IixmKSxnKCJyeCIsZSksZygi cnkiLGYpO2JyZWFrO2Nhc2UibGluZSI6ZygieDEiLGUpLGcoIngyIixlKSxn KCJ5MSIsZiksZygieTIiLGYpO2JyZWFrO2Nhc2UibWFya2VyIjpnKCJyZWZY IixlKSxnKCJtYXJrZXJXaWR0aCIsZSksZygicmVmWSIsZiksZygibWFya2Vy SGVpZ2h0IixmKTticmVhaztjYXNlInJhZGlhbEdyYWRpZW50IjpnKCJmeCIs ZSksZygiZnkiLGYpO2JyZWFrO2Nhc2UidHNwYW4iOmcoImR4IixlKSxnKCJk eSIsZik7YnJlYWs7ZGVmYXVsdDpnKGIsZSl9cmV0dXJuIGgucmVtb3ZlQ2hp bGQoaiksaX1mdW5jdGlvbiByKGEpe2UoYSwiYXJyYXkiKXx8KGE9QXJyYXku cHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKTtmb3IodmFyIGI9 MCxjPTAsZD10aGlzLm5vZGU7dGhpc1tiXTspZGVsZXRlIHRoaXNbYisrXTtm b3IoYj0wO2I8YS5sZW5ndGg7YisrKSJzZXQiPT1hW2JdLnR5cGU/YVtiXS5m b3JFYWNoKGZ1bmN0aW9uKGEpe2QuYXBwZW5kQ2hpbGQoYS5ub2RlKX0pOmQu YXBwZW5kQ2hpbGQoYVtiXS5ub2RlKTt2YXIgZj1kLmNoaWxkTm9kZXM7Zm9y KGI9MDtiPGYubGVuZ3RoO2IrKyl0aGlzW2MrK109dyhmW2JdKTtyZXR1cm4g dGhpc31mdW5jdGlvbiBzKGEpe2lmKGEuc25hcCBpbiBWKXJldHVybiBWW2Eu c25hcF07dmFyIGI7dHJ5e2I9YS5vd25lclNWR0VsZW1lbnR9Y2F0Y2goYyl7 fXRoaXMubm9kZT1hLGImJih0aGlzLnBhcGVyPW5ldyB2KGIpKSx0aGlzLnR5 cGU9YS50YWdOYW1lfHxhLm5vZGVOYW1lO3ZhciBkPXRoaXMuaWQ9Uyh0aGlz KTtpZih0aGlzLmFuaW1zPXt9LHRoaXMuXz17dHJhbnNmb3JtOltdfSxhLnNu YXA9ZCxWW2RdPXRoaXMsImciPT10aGlzLnR5cGUmJih0aGlzLmFkZD1yKSx0 aGlzLnR5cGUgaW57ZzoxLG1hc2s6MSxwYXR0ZXJuOjEsc3ltYm9sOjF9KWZv cih2YXIgZSBpbiB2LnByb3RvdHlwZSl2LnByb3RvdHlwZVt6XShlKSYmKHRo aXNbZV09di5wcm90b3R5cGVbZV0pfWZ1bmN0aW9uIHQoYSl7dGhpcy5ub2Rl PWF9ZnVuY3Rpb24gdShhLGIpe3ZhciBjPWQoYSk7Yi5hcHBlbmRDaGlsZChj KTt2YXIgZT13KGMpO3JldHVybiBlfWZ1bmN0aW9uIHYoYSxiKXt2YXIgYyxl LGYsZz12LnByb3RvdHlwZTtpZihhJiYic3ZnIj09YS50YWdOYW1lKXtpZihh LnNuYXAgaW4gVilyZXR1cm4gVlthLnNuYXBdO3ZhciBoPWEub3duZXJEb2N1 bWVudDtjPW5ldyBzKGEpLGU9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGVz YyIpWzBdLGY9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGVmcyIpWzBdLGV8 fChlPWQoImRlc2MiKSxlLmFwcGVuZENoaWxkKGguY3JlYXRlVGV4dE5vZGUo IkNyZWF0ZWQgd2l0aCBTbmFwIikpLGMubm9kZS5hcHBlbmRDaGlsZChlKSks Znx8KGY9ZCgiZGVmcyIpLGMubm9kZS5hcHBlbmRDaGlsZChmKSksYy5kZWZz PWY7Zm9yKHZhciBpIGluIGcpZ1t6XShpKSYmKGNbaV09Z1tpXSk7Yy5wYXBl cj1jLnJvb3Q9Y31lbHNlIGM9dSgic3ZnIix5LmRvYy5ib2R5KSxkKGMubm9k ZSx7aGVpZ2h0OmIsdmVyc2lvbjoxLjEsd2lkdGg6YSx4bWxuczpVfSk7cmV0 dXJuIGN9ZnVuY3Rpb24gdyhhKXtyZXR1cm4gYT9hIGluc3RhbmNlb2Ygc3x8 YSBpbnN0YW5jZW9mIHQ/YTphLnRhZ05hbWUmJiJzdmciPT1hLnRhZ05hbWUu dG9Mb3dlckNhc2UoKT9uZXcgdihhKTphLnRhZ05hbWUmJiJvYmplY3QiPT1h LnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmImltYWdlL3N2Zyt4bWwiPT1hLnR5 cGU/bmV3IHYoYS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h bWUoInN2ZyIpWzBdKTpuZXcgcyhhKTphfWZ1bmN0aW9uIHgoYSxiKXtmb3Io dmFyIGM9MCxkPWEubGVuZ3RoO2Q+YztjKyspe3ZhciBlPXt0eXBlOmFbY10u dHlwZSxhdHRyOmFbY10uYXR0cigpfSxmPWFbY10uY2hpbGRyZW4oKTtiLnB1 c2goZSksZi5sZW5ndGgmJngoZixlLmNoaWxkTm9kZXM9W10pfX1jLnZlcnNp b249IjAuNC4wIixjLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIlNuYXAg diIrdGhpcy52ZXJzaW9ufSxjLl89e307dmFyIHk9e3dpbjphLndpbmRvdyxk b2M6YS53aW5kb3cuZG9jdW1lbnR9O2MuXy5nbG9iPXk7e3ZhciB6PSJoYXNP d25Qcm9wZXJ0eSIsQT1TdHJpbmcsQj1wYXJzZUZsb2F0LEM9cGFyc2VJbnQs RD1NYXRoLEU9RC5tYXgsRj1ELm1pbixHPUQuYWJzLEg9KEQucG93LEQuUEkp LEk9KEQucm91bmQsIiIpLEo9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxL PS9eXHMqKCgjW2EtZlxkXXs2fSl8KCNbYS1mXGRdezN9KXxyZ2JhP1woXHMq KFtcZFwuXSslP1xzKixccypbXGRcLl0rJT9ccyosXHMqW1xkXC5dKyU/KD86 XHMqLFxzKltcZFwuXSslPyk/KVxzKlwpfGhzYmE/XChccyooW1xkXC5dKyg/ OmRlZ3xceGIwfCUpP1xzKixccypbXGRcLl0rJT9ccyosXHMqW1xkXC5dKyg/ OiU/XHMqLFxzKltcZFwuXSspPyU/KVxzKlwpfGhzbGE/XChccyooW1xkXC5d Kyg/OmRlZ3xceGIwfCUpP1xzKixccypbXGRcLl0rJT9ccyosXHMqW1xkXC5d Kyg/OiU/XHMqLFxzKltcZFwuXSspPyU/KVxzKlwpKVxzKiQvaSxMPShjLl8u c2VwYXJhdG9yPS9bLFxzXSsvLC9bXHNdKixbXHNdKi8pLE09e2hzOjEscmc6 MX0sTj0vKFthLXpdKVtccyxdKigoLT9cZCpcLj9cZCooPzplW1wtK10/XGQr KT9bXHNdKiw/W1xzXSopKykvZ2ksTz0vKFtyc3RtXSlbXHMsXSooKC0/XGQq XC4/XGQqKD86ZVtcLStdP1xkKyk/W1xzXSosP1tcc10qKSspL2dpLFA9Lygt P1xkKlwuP1xkKig/OmVbXC0rXT9cXGQrKT8pW1xzXSosP1tcc10qL2dpLFE9 MCxSPSJTIisoK25ldyBEYXRlKS50b1N0cmluZygzNiksUz1mdW5jdGlvbihh KXtyZXR1cm4oYSYmYS50eXBlP2EudHlwZTpJKStSKyhRKyspLnRvU3RyaW5n KDM2KX0sVD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsVT0iaHR0 cDovL3d3dy53My5vcmcvMjAwMC9zdmciLFY9e307Yy51cmw9ZnVuY3Rpb24o YSl7cmV0dXJuInVybCgnIyIrYSsiJykifX1jLl8uJD1kLGMuXy5pZD1TLGMu Zm9ybWF0PWZ1bmN0aW9uKCl7dmFyIGE9L1x7KFteXH1dKylcfS9nLGI9Lyg/ Oig/Ol58XC4pKC4rPykoPz1cW3xcLnwkfFwoKXxcWygnfCIpKC4rPylcMlxd KShcKFwpKT8vZyxjPWZ1bmN0aW9uKGEsYyxkKXt2YXIgZT1kO3JldHVybiBj LnJlcGxhY2UoYixmdW5jdGlvbihhLGIsYyxkLGYpe2I9Ynx8ZCxlJiYoYiBp biBlJiYoZT1lW2JdKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmZiYmKGU9ZSgp KSl9KSxlPShudWxsPT1lfHxlPT1kP2E6ZSkrIiJ9O3JldHVybiBmdW5jdGlv bihiLGQpe3JldHVybiBBKGIpLnJlcGxhY2UoYSxmdW5jdGlvbihhLGIpe3Jl dHVybiBjKGEsYixkKX0pfX0oKSxjLl8uY2xvbmU9ZixjLl8uY2FjaGVyPWks Yy5yYWQ9ayxjLmRlZz1sLGMuc2luPWZ1bmN0aW9uKGEpe3JldHVybiBELnNp bihjLnJhZChhKSl9LGMudGFuPWZ1bmN0aW9uKGEpe3JldHVybiBELnRhbihj LnJhZChhKSl9LGMuY29zPWZ1bmN0aW9uKGEpe3JldHVybiBELmNvcyhjLnJh ZChhKSl9LGMuYXNpbj1mdW5jdGlvbihhKXtyZXR1cm4gYy5kZWcoRC5hc2lu KGEpKX0sYy5hY29zPWZ1bmN0aW9uKGEpe3JldHVybiBjLmRlZyhELmFjb3Mo YSkpfSxjLmF0YW49ZnVuY3Rpb24oYSl7cmV0dXJuIGMuZGVnKEQuYXRhbihh KSl9LGMuYXRhbjI9ZnVuY3Rpb24oYSl7cmV0dXJuIGMuZGVnKEQuYXRhbjIo YSkpfSxjLmFuZ2xlPWosYy5sZW49ZnVuY3Rpb24oYSxiLGQsZSl7cmV0dXJu IE1hdGguc3FydChjLmxlbjIoYSxiLGQsZSkpfSxjLmxlbjI9ZnVuY3Rpb24o YSxiLGMsZCl7cmV0dXJuKGEtYykqKGEtYykrKGItZCkqKGItZCl9LGMuY2xv c2VzdFBvaW50PWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe3ZhciBk PWEueC1iLGU9YS55LWM7cmV0dXJuIGQqZCtlKmV9Zm9yKHZhciBlLGYsZyxo LGk9YS5ub2RlLGo9aS5nZXRUb3RhbExlbmd0aCgpLGs9ai9pLnBhdGhTZWdM aXN0Lm51bWJlck9mSXRlbXMqLjEyNSxsPTEvMCxtPTA7aj49bTttKz1rKSho PWQoZz1pLmdldFBvaW50QXRMZW5ndGgobSkpKTxsJiYoZT1nLGY9bSxsPWgp O2ZvcihrKj0uNTtrPi41Oyl7dmFyIG4sbyxwLHEscixzOyhwPWYtayk+PTAm JihyPWQobj1pLmdldFBvaW50QXRMZW5ndGgocCkpKTxsPyhlPW4sZj1wLGw9 cik6KHE9ZitrKTw9aiYmKHM9ZChvPWkuZ2V0UG9pbnRBdExlbmd0aChxKSkp PGw/KGU9byxmPXEsbD1zKTprKj0uNX1yZXR1cm4gZT17eDplLngseTplLnks bGVuZ3RoOmYsZGlzdGFuY2U6TWF0aC5zcXJ0KGwpfX0sYy5pcz1lLGMuc25h cFRvPWZ1bmN0aW9uKGEsYixjKXtpZihjPWUoYywiZmluaXRlIik/YzoxMCxl KGEsImFycmF5Iikpe2Zvcih2YXIgZD1hLmxlbmd0aDtkLS07KWlmKEcoYVtk XS1iKTw9YylyZXR1cm4gYVtkXX1lbHNle2E9K2E7dmFyIGY9YiVhO2lmKGM+ ZilyZXR1cm4gYi1mO2lmKGY+YS1jKXJldHVybiBiLWYrYX1yZXR1cm4gYn0s Yy5nZXRSR0I9aShmdW5jdGlvbihhKXtpZighYXx8KGE9QShhKSkuaW5kZXhP ZigiLSIpKzEpcmV0dXJue3I6LTEsZzotMSxiOi0xLGhleDoibm9uZSIsZXJy b3I6MSx0b1N0cmluZzpafTtpZigibm9uZSI9PWEpcmV0dXJue3I6LTEsZzot MSxiOi0xLGhleDoibm9uZSIsdG9TdHJpbmc6Wn07aWYoIShNW3pdKGEudG9M b3dlckNhc2UoKS5zdWJzdHJpbmcoMCwyKSl8fCIjIj09YS5jaGFyQXQoKSkm JihhPVcoYSkpLCFhKXJldHVybntyOi0xLGc6LTEsYjotMSxoZXg6Im5vbmUi LGVycm9yOjEsdG9TdHJpbmc6Wn07dmFyIGIsZCxmLGcsaCxpLGo9YS5tYXRj aChLKTtyZXR1cm4gaj8oalsyXSYmKGY9QyhqWzJdLnN1YnN0cmluZyg1KSwx NiksZD1DKGpbMl0uc3Vic3RyaW5nKDMsNSksMTYpLGI9QyhqWzJdLnN1YnN0 cmluZygxLDMpLDE2KSksalszXSYmKGY9QygoaD1qWzNdLmNoYXJBdCgzKSkr aCwxNiksZD1DKChoPWpbM10uY2hhckF0KDIpKStoLDE2KSxiPUMoKGg9alsz XS5jaGFyQXQoMSkpK2gsMTYpKSxqWzRdJiYoaT1qWzRdLnNwbGl0KEwpLGI9 QihpWzBdKSwiJSI9PWlbMF0uc2xpY2UoLTEpJiYoYio9Mi41NSksZD1CKGlb MV0pLCIlIj09aVsxXS5zbGljZSgtMSkmJihkKj0yLjU1KSxmPUIoaVsyXSks IiUiPT1pWzJdLnNsaWNlKC0xKSYmKGYqPTIuNTUpLCJyZ2JhIj09alsxXS50 b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNCkmJihnPUIoaVszXSkpLGlbM10mJiIl Ij09aVszXS5zbGljZSgtMSkmJihnLz0xMDApKSxqWzVdPyhpPWpbNV0uc3Bs aXQoTCksYj1CKGlbMF0pLCIlIj09aVswXS5zbGljZSgtMSkmJihiLz0xMDAp LGQ9QihpWzFdKSwiJSI9PWlbMV0uc2xpY2UoLTEpJiYoZC89MTAwKSxmPUIo aVsyXSksIiUiPT1pWzJdLnNsaWNlKC0xKSYmKGYvPTEwMCksKCJkZWciPT1p WzBdLnNsaWNlKC0zKXx8IsKwIj09aVswXS5zbGljZSgtMSkpJiYoYi89MzYw KSwiaHNiYSI9PWpbMV0udG9Mb3dlckNhc2UoKS5zbGljZSgwLDQpJiYoZz1C KGlbM10pKSxpWzNdJiYiJSI9PWlbM10uc2xpY2UoLTEpJiYoZy89MTAwKSxj LmhzYjJyZ2IoYixkLGYsZykpOmpbNl0/KGk9als2XS5zcGxpdChMKSxiPUIo aVswXSksIiUiPT1pWzBdLnNsaWNlKC0xKSYmKGIvPTEwMCksZD1CKGlbMV0p LCIlIj09aVsxXS5zbGljZSgtMSkmJihkLz0xMDApLGY9QihpWzJdKSwiJSI9 PWlbMl0uc2xpY2UoLTEpJiYoZi89MTAwKSwoImRlZyI9PWlbMF0uc2xpY2Uo LTMpfHwiwrAiPT1pWzBdLnNsaWNlKC0xKSkmJihiLz0zNjApLCJoc2xhIj09 alsxXS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNCkmJihnPUIoaVszXSkpLGlb M10mJiIlIj09aVszXS5zbGljZSgtMSkmJihnLz0xMDApLGMuaHNsMnJnYihi LGQsZixnKSk6KGI9RihELnJvdW5kKGIpLDI1NSksZD1GKEQucm91bmQoZCks MjU1KSxmPUYoRC5yb3VuZChmKSwyNTUpLGc9RihFKGcsMCksMSksaj17cjpi LGc6ZCxiOmYsdG9TdHJpbmc6Wn0sai5oZXg9IiMiKygxNjc3NzIxNnxmfGQ8 PDh8Yjw8MTYpLnRvU3RyaW5nKDE2KS5zbGljZSgxKSxqLm9wYWNpdHk9ZShn LCJmaW5pdGUiKT9nOjEsaikpOntyOi0xLGc6LTEsYjotMSxoZXg6Im5vbmUi LGVycm9yOjEsdG9TdHJpbmc6Wn19LGMpLGMuaHNiPWkoZnVuY3Rpb24oYSxi LGQpe3JldHVybiBjLmhzYjJyZ2IoYSxiLGQpLmhleH0pLGMuaHNsPWkoZnVu Y3Rpb24oYSxiLGQpe3JldHVybiBjLmhzbDJyZ2IoYSxiLGQpLmhleH0pLGMu cmdiPWkoZnVuY3Rpb24oYSxiLGMsZCl7aWYoZShkLCJmaW5pdGUiKSl7dmFy IGY9RC5yb3VuZDtyZXR1cm4icmdiYSgiK1tmKGEpLGYoYiksZihjKSwrZC50 b0ZpeGVkKDIpXSsiKSJ9cmV0dXJuIiMiKygxNjc3NzIxNnxjfGI8PDh8YTw8 MTYpLnRvU3RyaW5nKDE2KS5zbGljZSgxKX0pO3ZhciBXPWZ1bmN0aW9uKGEp e3ZhciBiPXkuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18 fHkuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzdmciKVswXSxjPSJyZ2Io MjU1LCAwLCAwKSI7cmV0dXJuKFc9aShmdW5jdGlvbihhKXtpZigicmVkIj09 YS50b0xvd2VyQ2FzZSgpKXJldHVybiBjO2Iuc3R5bGUuY29sb3I9YyxiLnN0 eWxlLmNvbG9yPWE7dmFyIGQ9eS5kb2MuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0 ZWRTdHlsZShiLEkpLmdldFByb3BlcnR5VmFsdWUoImNvbG9yIik7cmV0dXJu IGQ9PWM/bnVsbDpkfSkpKGEpfSxYPWZ1bmN0aW9uKCl7cmV0dXJuImhzYigi K1t0aGlzLmgsdGhpcy5zLHRoaXMuYl0rIikifSxZPWZ1bmN0aW9uKCl7cmV0 dXJuImhzbCgiK1t0aGlzLmgsdGhpcy5zLHRoaXMubF0rIikifSxaPWZ1bmN0 aW9uKCl7cmV0dXJuIDE9PXRoaXMub3BhY2l0eXx8bnVsbD09dGhpcy5vcGFj aXR5P3RoaXMuaGV4OiJyZ2JhKCIrW3RoaXMucix0aGlzLmcsdGhpcy5iLHRo aXMub3BhY2l0eV0rIikifSwkPWZ1bmN0aW9uKGEsYixkKXtpZihudWxsPT1i JiZlKGEsIm9iamVjdCIpJiYiciJpbiBhJiYiZyJpbiBhJiYiYiJpbiBhJiYo ZD1hLmIsYj1hLmcsYT1hLnIpLG51bGw9PWImJmUoYSxzdHJpbmcpKXt2YXIg Zj1jLmdldFJHQihhKTthPWYucixiPWYuZyxkPWYuYn1yZXR1cm4oYT4xfHxi PjF8fGQ+MSkmJihhLz0yNTUsYi89MjU1LGQvPTI1NSksW2EsYixkXX0sXz1m dW5jdGlvbihhLGIsZCxmKXthPUQucm91bmQoMjU1KmEpLGI9RC5yb3VuZCgy NTUqYiksZD1ELnJvdW5kKDI1NSpkKTt2YXIgZz17cjphLGc6YixiOmQsb3Bh Y2l0eTplKGYsImZpbml0ZSIpP2Y6MSxoZXg6Yy5yZ2IoYSxiLGQpLHRvU3Ry aW5nOlp9O3JldHVybiBlKGYsImZpbml0ZSIpJiYoZy5vcGFjaXR5PWYpLGd9 O2MuY29sb3I9ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIGUoYSwib2JqZWN0 IikmJiJoImluIGEmJiJzImluIGEmJiJiImluIGE/KGI9Yy5oc2IycmdiKGEp LGEucj1iLnIsYS5nPWIuZyxhLmI9Yi5iLGEub3BhY2l0eT0xLGEuaGV4PWIu aGV4KTplKGEsIm9iamVjdCIpJiYiaCJpbiBhJiYicyJpbiBhJiYibCJpbiBh PyhiPWMuaHNsMnJnYihhKSxhLnI9Yi5yLGEuZz1iLmcsYS5iPWIuYixhLm9w YWNpdHk9MSxhLmhleD1iLmhleCk6KGUoYSwic3RyaW5nIikmJihhPWMuZ2V0 UkdCKGEpKSxlKGEsIm9iamVjdCIpJiYiciJpbiBhJiYiZyJpbiBhJiYiYiJp biBhJiYhKCJlcnJvciJpbiBhKT8oYj1jLnJnYjJoc2woYSksYS5oPWIuaCxh LnM9Yi5zLGEubD1iLmwsYj1jLnJnYjJoc2IoYSksYS52PWIuYik6KGE9e2hl eDoibm9uZSJ9LGEucj1hLmc9YS5iPWEuaD1hLnM9YS52PWEubD0tMSxhLmVy cm9yPTEpKSxhLnRvU3RyaW5nPVosYX0sYy5oc2IycmdiPWZ1bmN0aW9uKGEs YixjLGQpe2UoYSwib2JqZWN0IikmJiJoImluIGEmJiJzImluIGEmJiJiImlu IGEmJihjPWEuYixiPWEucyxkPWEubyxhPWEuaCksYSo9MzYwO3ZhciBmLGcs aCxpLGo7cmV0dXJuIGE9YSUzNjAvNjAsaj1jKmIsaT1qKigxLUcoYSUyLTEp KSxmPWc9aD1jLWosYT1+fmEsZis9W2osaSwwLDAsaSxqXVthXSxnKz1baSxq LGosaSwwLDBdW2FdLGgrPVswLDAsaSxqLGosaV1bYV0sXyhmLGcsaCxkKX0s Yy5oc2wycmdiPWZ1bmN0aW9uKGEsYixjLGQpe2UoYSwib2JqZWN0IikmJiJo ImluIGEmJiJzImluIGEmJiJsImluIGEmJihjPWEubCxiPWEucyxhPWEuaCks KGE+MXx8Yj4xfHxjPjEpJiYoYS89MzYwLGIvPTEwMCxjLz0xMDApLGEqPTM2 MDt2YXIgZixnLGgsaSxqO3JldHVybiBhPWElMzYwLzYwLGo9MipiKiguNT5j P2M6MS1jKSxpPWoqKDEtRyhhJTItMSkpLGY9Zz1oPWMtai8yLGE9fn5hLGYr PVtqLGksMCwwLGksal1bYV0sZys9W2ksaixqLGksMCwwXVthXSxoKz1bMCww LGksaixqLGldW2FdLF8oZixnLGgsZCl9LGMucmdiMmhzYj1mdW5jdGlvbihh LGIsYyl7Yz0kKGEsYixjKSxhPWNbMF0sYj1jWzFdLGM9Y1syXTt2YXIgZCxl LGYsZztyZXR1cm4gZj1FKGEsYixjKSxnPWYtRihhLGIsYyksZD0wPT1nP251 bGw6Zj09YT8oYi1jKS9nOmY9PWI/KGMtYSkvZysyOihhLWIpL2crNCxkPShk KzM2MCklNio2MC8zNjAsZT0wPT1nPzA6Zy9mLHtoOmQsczplLGI6Zix0b1N0 cmluZzpYfX0sYy5yZ2IyaHNsPWZ1bmN0aW9uKGEsYixjKXtjPSQoYSxiLGMp LGE9Y1swXSxiPWNbMV0sYz1jWzJdO3ZhciBkLGUsZixnLGgsaTtyZXR1cm4g Zz1FKGEsYixjKSxoPUYoYSxiLGMpLGk9Zy1oLGQ9MD09aT9udWxsOmc9PWE/ KGItYykvaTpnPT1iPyhjLWEpL2krMjooYS1iKS9pKzQsZD0oZCszNjApJTYq NjAvMzYwLGY9KGcraCkvMixlPTA9PWk/MDouNT5mP2kvKDIqZik6aS8oMi0y KmYpLHtoOmQsczplLGw6Zix0b1N0cmluZzpZfX0sYy5wYXJzZVBhdGhTdHJp bmc9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIG51bGw7dmFyIGI9Yy5wYXRo KGEpO2lmKGIuYXJyKXJldHVybiBjLnBhdGguY2xvbmUoYi5hcnIpO3ZhciBk PXthOjcsYzo2LG86MixoOjEsbDoyLG06MixyOjQscTo0LHM6NCx0OjIsdjox LHU6Myx6OjB9LGY9W107cmV0dXJuIGUoYSwiYXJyYXkiKSYmZShhWzBdLCJh cnJheSIpJiYoZj1jLnBhdGguY2xvbmUoYSkpLGYubGVuZ3RofHxBKGEpLnJl cGxhY2UoTixmdW5jdGlvbihhLGIsYyl7dmFyIGU9W10sZz1iLnRvTG93ZXJD YXNlKCk7aWYoYy5yZXBsYWNlKFAsZnVuY3Rpb24oYSxiKXtiJiZlLnB1c2go K2IpfSksIm0iPT1nJiZlLmxlbmd0aD4yJiYoZi5wdXNoKFtiXS5jb25jYXQo ZS5zcGxpY2UoMCwyKSkpLGc9ImwiLGI9Im0iPT1iPyJsIjoiTCIpLCJvIj09 ZyYmMT09ZS5sZW5ndGgmJmYucHVzaChbYixlWzBdXSksInIiPT1nKWYucHVz aChbYl0uY29uY2F0KGUpKTtlbHNlIGZvcig7ZS5sZW5ndGg+PWRbZ10mJihm LnB1c2goW2JdLmNvbmNhdChlLnNwbGljZSgwLGRbZ10pKSksZFtnXSk7KTt9 KSxmLnRvU3RyaW5nPWMucGF0aC50b1N0cmluZyxiLmFycj1jLnBhdGguY2xv bmUoZiksZn07dmFyIGFiPWMucGFyc2VUcmFuc2Zvcm1TdHJpbmc9ZnVuY3Rp b24oYSl7aWYoIWEpcmV0dXJuIG51bGw7dmFyIGI9W107cmV0dXJuIGUoYSwi YXJyYXkiKSYmZShhWzBdLCJhcnJheSIpJiYoYj1jLnBhdGguY2xvbmUoYSkp LGIubGVuZ3RofHxBKGEpLnJlcGxhY2UoTyxmdW5jdGlvbihhLGMsZCl7e3Zh ciBlPVtdO2MudG9Mb3dlckNhc2UoKX1kLnJlcGxhY2UoUCxmdW5jdGlvbihh LGIpe2ImJmUucHVzaCgrYil9KSxiLnB1c2goW2NdLmNvbmNhdChlKSl9KSxi LnRvU3RyaW5nPWMucGF0aC50b1N0cmluZyxifTtjLl8uc3ZnVHJhbnNmb3Jt MnN0cmluZz1tLGMuXy5yZ1RyYW5zZm9ybT0vXlthLXpdW1xzXSotP1wuP1xk L2ksYy5fLnRyYW5zZm9ybTJtYXRyaXg9bixjLl91bml0MnB4PXE7eS5kb2Mu Y29udGFpbnN8fHkuZG9jLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0 aW9uKGEsYil7dmFyIGM9OT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVu dDphLGQ9YiYmYi5wYXJlbnROb2RlO3JldHVybiBhPT1kfHwhKCFkfHwxIT1k Lm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBh cmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0 aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYilmb3IoO2I7KWlmKGI9Yi5w YXJlbnROb2RlLGI9PWEpcmV0dXJuITA7cmV0dXJuITF9O2MuXy5nZXRTb21l RGVmcz1vLGMuXy5nZXRTb21lU1ZHPXAsYy5zZWxlY3Q9ZnVuY3Rpb24oYSl7 cmV0dXJuIGE9QShhKS5yZXBsYWNlKC8oW15cXF0pOi9nLCIkMVxcOiIpLHco eS5kb2MucXVlcnlTZWxlY3RvcihhKSl9LGMuc2VsZWN0QWxsPWZ1bmN0aW9u KGEpe2Zvcih2YXIgYj15LmRvYy5xdWVyeVNlbGVjdG9yQWxsKGEpLGQ9KGMu c2V0fHxBcnJheSkoKSxlPTA7ZTxiLmxlbmd0aDtlKyspZC5wdXNoKHcoYltl XSkpO3JldHVybiBkfSxzZXRJbnRlcnZhbChmdW5jdGlvbigpe2Zvcih2YXIg YSBpbiBWKWlmKFZbel0oYSkpe3ZhciBiPVZbYV0sYz1iLm5vZGU7KCJzdmci IT1iLnR5cGUmJiFjLm93bmVyU1ZHRWxlbWVudHx8InN2ZyI9PWIudHlwZSYm KCFjLnBhcmVudE5vZGV8fCJvd25lclNWR0VsZW1lbnQiaW4gYy5wYXJlbnRO b2RlJiYhYy5vd25lclNWR0VsZW1lbnQpKSYmZGVsZXRlIFZbYV19fSwxZTQp LHMucHJvdG90eXBlLmF0dHI9ZnVuY3Rpb24oYSxjKXt2YXIgZD10aGlzLGY9 ZC5ub2RlO2lmKCFhKXtpZigxIT1mLm5vZGVUeXBlKXJldHVybnt0ZXh0OmYu bm9kZVZhbHVlfTtmb3IodmFyIGc9Zi5hdHRyaWJ1dGVzLGg9e30saT0wLGo9 Zy5sZW5ndGg7aj5pO2krKyloW2dbaV0ubm9kZU5hbWVdPWdbaV0ubm9kZVZh bHVlO3JldHVybiBofWlmKGUoYSwic3RyaW5nIikpe2lmKCEoYXJndW1lbnRz Lmxlbmd0aD4xKSlyZXR1cm4gYigic25hcC51dGlsLmdldGF0dHIuIithLGQp LmZpcnN0RGVmaW5lZCgpO3ZhciBrPXt9O2tbYV09YyxhPWt9Zm9yKHZhciBs IGluIGEpYVt6XShsKSYmYigic25hcC51dGlsLmF0dHIuIitsLGQsYVtsXSk7 cmV0dXJuIGR9LGMucGFyc2U9ZnVuY3Rpb24oYSl7dmFyIGI9eS5kb2MuY3Jl YXRlRG9jdW1lbnRGcmFnbWVudCgpLGM9ITAsZD15LmRvYy5jcmVhdGVFbGVt ZW50KCJkaXYiKTtpZihhPUEoYSksYS5tYXRjaCgvXlxzKjxccypzdmcoPzpc c3w+KS8pfHwoYT0iPHN2Zz4iK2ErIjwvc3ZnPiIsYz0hMSksZC5pbm5lckhU TUw9YSxhPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN2ZyIpWzBdKWlmKGMp Yj1hO2Vsc2UgZm9yKDthLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoYS5m aXJzdENoaWxkKTtyZXR1cm4gbmV3IHQoYil9LGMuZnJhZ21lbnQ9ZnVuY3Rp b24oKXtmb3IodmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJn dW1lbnRzLDApLGI9eS5kb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGQ9 MCxlPWEubGVuZ3RoO2U+ZDtkKyspe3ZhciBmPWFbZF07Zi5ub2RlJiZmLm5v ZGUubm9kZVR5cGUmJmIuYXBwZW5kQ2hpbGQoZi5ub2RlKSxmLm5vZGVUeXBl JiZiLmFwcGVuZENoaWxkKGYpLCJzdHJpbmciPT10eXBlb2YgZiYmYi5hcHBl bmRDaGlsZChjLnBhcnNlKGYpLm5vZGUpfXJldHVybiBuZXcgdChiKX0sYy5f Lm1ha2U9dSxjLl8ud3JhcD13LHYucHJvdG90eXBlLmVsPWZ1bmN0aW9uKGEs Yil7dmFyIGM9dShhLHRoaXMubm9kZSk7cmV0dXJuIGImJmMuYXR0cihiKSxj fSxzLnByb3RvdHlwZS5jaGlsZHJlbj1mdW5jdGlvbigpe2Zvcih2YXIgYT1b XSxiPXRoaXMubm9kZS5jaGlsZE5vZGVzLGQ9MCxlPWIubGVuZ3RoO2U+ZDtk KyspYVtkXT1jKGJbZF0pO3JldHVybiBhfSxzLnByb3RvdHlwZS50b0pTT049 ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4geChbdGhpc10sYSksYVswXX0s Yi5vbigic25hcC51dGlsLmdldGF0dHIiLGZ1bmN0aW9uKCl7dmFyIGE9Yi5u dCgpO2E9YS5zdWJzdHJpbmcoYS5sYXN0SW5kZXhPZigiLiIpKzEpO3ZhciBj PWEucmVwbGFjZSgvW0EtWl0vZyxmdW5jdGlvbihhKXtyZXR1cm4iLSIrYS50 b0xvd2VyQ2FzZSgpfSk7cmV0dXJuIGJiW3pdKGMpP3RoaXMubm9kZS5vd25l ckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodGhpcy5u b2RlLG51bGwpLmdldFByb3BlcnR5VmFsdWUoYyk6ZCh0aGlzLm5vZGUsYSl9 KTt2YXIgYmI9eyJhbGlnbm1lbnQtYmFzZWxpbmUiOjAsImJhc2VsaW5lLXNo aWZ0IjowLGNsaXA6MCwiY2xpcC1wYXRoIjowLCJjbGlwLXJ1bGUiOjAsY29s b3I6MCwiY29sb3ItaW50ZXJwb2xhdGlvbiI6MCwiY29sb3ItaW50ZXJwb2xh dGlvbi1maWx0ZXJzIjowLCJjb2xvci1wcm9maWxlIjowLCJjb2xvci1yZW5k ZXJpbmciOjAsY3Vyc29yOjAsZGlyZWN0aW9uOjAsZGlzcGxheTowLCJkb21p bmFudC1iYXNlbGluZSI6MCwiZW5hYmxlLWJhY2tncm91bmQiOjAsZmlsbDow LCJmaWxsLW9wYWNpdHkiOjAsImZpbGwtcnVsZSI6MCxmaWx0ZXI6MCwiZmxv b2QtY29sb3IiOjAsImZsb29kLW9wYWNpdHkiOjAsZm9udDowLCJmb250LWZh bWlseSI6MCwiZm9udC1zaXplIjowLCJmb250LXNpemUtYWRqdXN0IjowLCJm b250LXN0cmV0Y2giOjAsImZvbnQtc3R5bGUiOjAsImZvbnQtdmFyaWFudCI6 MCwiZm9udC13ZWlnaHQiOjAsImdseXBoLW9yaWVudGF0aW9uLWhvcml6b250 YWwiOjAsImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIjowLCJpbWFnZS1y ZW5kZXJpbmciOjAsa2VybmluZzowLCJsZXR0ZXItc3BhY2luZyI6MCwibGln aHRpbmctY29sb3IiOjAsbWFya2VyOjAsIm1hcmtlci1lbmQiOjAsIm1hcmtl ci1taWQiOjAsIm1hcmtlci1zdGFydCI6MCxtYXNrOjAsb3BhY2l0eTowLG92 ZXJmbG93OjAsInBvaW50ZXItZXZlbnRzIjowLCJzaGFwZS1yZW5kZXJpbmci OjAsInN0b3AtY29sb3IiOjAsInN0b3Atb3BhY2l0eSI6MCxzdHJva2U6MCwi c3Ryb2tlLWRhc2hhcnJheSI6MCwic3Ryb2tlLWRhc2hvZmZzZXQiOjAsInN0 cm9rZS1saW5lY2FwIjowLCJzdHJva2UtbGluZWpvaW4iOjAsInN0cm9rZS1t aXRlcmxpbWl0IjowLCJzdHJva2Utb3BhY2l0eSI6MCwic3Ryb2tlLXdpZHRo IjowLCJ0ZXh0LWFuY2hvciI6MCwidGV4dC1kZWNvcmF0aW9uIjowLCJ0ZXh0 LXJlbmRlcmluZyI6MCwidW5pY29kZS1iaWRpIjowLHZpc2liaWxpdHk6MCwi d29yZC1zcGFjaW5nIjowLCJ3cml0aW5nLW1vZGUiOjB9O2Iub24oInNuYXAu dXRpbC5hdHRyIixmdW5jdGlvbihhKXt2YXIgYz1iLm50KCksZT17fTtjPWMu c3Vic3RyaW5nKGMubGFzdEluZGV4T2YoIi4iKSsxKSxlW2NdPWE7dmFyIGY9 Yy5yZXBsYWNlKC8tKFx3KS9naSxmdW5jdGlvbihhLGIpe3JldHVybiBiLnRv VXBwZXJDYXNlKCl9KSxnPWMucmVwbGFjZSgvW0EtWl0vZyxmdW5jdGlvbihh KXtyZXR1cm4iLSIrYS50b0xvd2VyQ2FzZSgpfSk7YmJbel0oZyk/dGhpcy5u b2RlLnN0eWxlW2ZdPW51bGw9PWE/STphOmQodGhpcy5ub2RlLGUpfSksZnVu Y3Rpb24oKXt9KHYucHJvdG90eXBlKSxjLmFqYXg9ZnVuY3Rpb24oYSxjLGQs Zil7dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0LGg9UygpO2lmKGcpe2lmKGUo YywiZnVuY3Rpb24iKSlmPWQsZD1jLGM9bnVsbDtlbHNlIGlmKGUoYywib2Jq ZWN0Iikpe3ZhciBpPVtdO2Zvcih2YXIgaiBpbiBjKWMuaGFzT3duUHJvcGVy dHkoaikmJmkucHVzaChlbmNvZGVVUklDb21wb25lbnQoaikrIj0iK2VuY29k ZVVSSUNvbXBvbmVudChjW2pdKSk7Yz1pLmpvaW4oIiYiKX1yZXR1cm4gZy5v cGVuKGM/IlBPU1QiOiJHRVQiLGEsITApLGMmJihnLnNldFJlcXVlc3RIZWFk ZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpLGcuc2V0 UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13 d3ctZm9ybS11cmxlbmNvZGVkIikpLGQmJihiLm9uY2UoInNuYXAuYWpheC4i K2grIi4wIixkKSxiLm9uY2UoInNuYXAuYWpheC4iK2grIi4yMDAiLGQpLGIu b25jZSgic25hcC5hamF4LiIraCsiLjMwNCIsZCkpLGcub25yZWFkeXN0YXRl Y2hhbmdlPWZ1bmN0aW9uKCl7ND09Zy5yZWFkeVN0YXRlJiZiKCJzbmFwLmFq YXguIitoKyIuIitnLnN0YXR1cyxmLGcpfSw0PT1nLnJlYWR5U3RhdGU/Zzoo Zy5zZW5kKGMpLGcpfX0sYy5sb2FkPWZ1bmN0aW9uKGEsYixkKXtjLmFqYXgo YSxmdW5jdGlvbihhKXt2YXIgZT1jLnBhcnNlKGEucmVzcG9uc2VUZXh0KTtk P2IuY2FsbChkLGUpOmIoZSl9KX07dmFyIGNiPWZ1bmN0aW9uKGEpe3ZhciBi PWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1hLm93bmVyRG9jdW1lbnQs ZD1jLmJvZHksZT1jLmRvY3VtZW50RWxlbWVudCxmPWUuY2xpZW50VG9wfHxk LmNsaWVudFRvcHx8MCxoPWUuY2xpZW50TGVmdHx8ZC5jbGllbnRMZWZ0fHww LGk9Yi50b3ArKGcud2luLnBhZ2VZT2Zmc2V0fHxlLnNjcm9sbFRvcHx8ZC5z Y3JvbGxUb3ApLWYsaj1iLmxlZnQrKGcud2luLnBhZ2VYT2Zmc2V0fHxlLnNj cm9sbExlZnR8fGQuc2Nyb2xsTGVmdCktaDtyZXR1cm57eTppLHg6an19O3Jl dHVybiBjLmdldEVsZW1lbnRCeVBvaW50PWZ1bmN0aW9uKGEsYil7dmFyIGM9 dGhpcyxkPShjLmNhbnZhcyx5LmRvYy5lbGVtZW50RnJvbVBvaW50KGEsYikp O2lmKHkud2luLm9wZXJhJiYic3ZnIj09ZC50YWdOYW1lKXt2YXIgZT1jYihk KSxmPWQuY3JlYXRlU1ZHUmVjdCgpO2YueD1hLWUueCxmLnk9Yi1lLnksZi53 aWR0aD1mLmhlaWdodD0xO3ZhciBnPWQuZ2V0SW50ZXJzZWN0aW9uTGlzdChm LG51bGwpO2cubGVuZ3RoJiYoZD1nW2cubGVuZ3RoLTFdKX1yZXR1cm4gZD93 KGQpOm51bGx9LGMucGx1Z2luPWZ1bmN0aW9uKGEpe2EoYyxzLHYseSx0KX0s eS53aW4uU25hcD1jLGN9KGF8fHRoaXMpO3JldHVybiBkLnBsdWdpbihmdW5j dGlvbihkLGUsZixnLGgpe2Z1bmN0aW9uIGkoYSxiKXtpZihudWxsPT1iKXt2 YXIgYz0hMDtpZihiPWEubm9kZS5nZXRBdHRyaWJ1dGUoImxpbmVhckdyYWRp ZW50Ij09YS50eXBlfHwicmFkaWFsR3JhZGllbnQiPT1hLnR5cGU/ImdyYWRp ZW50VHJhbnNmb3JtIjoicGF0dGVybiI9PWEudHlwZT8icGF0dGVyblRyYW5z Zm9ybSI6InRyYW5zZm9ybSIpLCFiKXJldHVybiBuZXcgZC5NYXRyaXg7Yj1k Ll8uc3ZnVHJhbnNmb3JtMnN0cmluZyhiKX1lbHNlIGI9ZC5fLnJnVHJhbnNm b3JtLnRlc3QoYik/byhiKS5yZXBsYWNlKC9cLnszfXxcdTIwMjYvZyxhLl8u dHJhbnNmb3JtfHwiIik6ZC5fLnN2Z1RyYW5zZm9ybTJzdHJpbmcoYiksbihi LCJhcnJheSIpJiYoYj1kLnBhdGg/ZC5wYXRoLnRvU3RyaW5nLmNhbGwoYik6 byhiKSksYS5fLnRyYW5zZm9ybT1iO3ZhciBlPWQuXy50cmFuc2Zvcm0ybWF0 cml4KGIsYS5nZXRCQm94KDEpKTtyZXR1cm4gYz9lOnZvaWQoYS5tYXRyaXg9 ZSl9ZnVuY3Rpb24gaihhKXtmdW5jdGlvbiBiKGEsYil7dmFyIGM9cShhLm5v ZGUsYik7Yz1jJiZjLm1hdGNoKGYpLGM9YyYmY1syXSxjJiYiIyI9PWMuY2hh ckF0KCkmJihjPWMuc3Vic3RyaW5nKDEpLGMmJihoW2NdPShoW2NdfHxbXSku Y29uY2F0KGZ1bmN0aW9uKGMpe3ZhciBkPXt9O2RbYl09VVJMKGMpLHEoYS5u b2RlLGQpfSkpKX1mdW5jdGlvbiBjKGEpe3ZhciBiPXEoYS5ub2RlLCJ4bGlu azpocmVmIik7YiYmIiMiPT1iLmNoYXJBdCgpJiYoYj1iLnN1YnN0cmluZygx KSxiJiYoaFtiXT0oaFtiXXx8W10pLmNvbmNhdChmdW5jdGlvbihiKXthLmF0 dHIoInhsaW5rOmhyZWYiLCIjIitiKX0pKSl9Zm9yKHZhciBkLGU9YS5zZWxl Y3RBbGwoIioiKSxmPS9eXHMqdXJsXCgoInwnfCkoLiopXDFcKVxzKiQvLGc9 W10saD17fSxpPTAsaj1lLmxlbmd0aDtqPmk7aSsrKXtkPWVbaV0sYihkLCJm aWxsIiksYihkLCJzdHJva2UiKSxiKGQsImZpbHRlciIpLGIoZCwibWFzayIp LGIoZCwiY2xpcC1wYXRoIiksYyhkKTt2YXIgaz1xKGQubm9kZSwiaWQiKTtr JiYocShkLm5vZGUse2lkOmQuaWR9KSxnLnB1c2goe29sZDprLGlkOmQuaWR9 KSl9Zm9yKGk9MCxqPWcubGVuZ3RoO2o+aTtpKyspe3ZhciBsPWhbZ1tpXS5v bGRdO2lmKGwpZm9yKHZhciBtPTAsbj1sLmxlbmd0aDtuPm07bSsrKWxbbV0o Z1tpXS5pZCl9fWZ1bmN0aW9uIGsoYSxiLGMpe3JldHVybiBmdW5jdGlvbihk KXt2YXIgZT1kLnNsaWNlKGEsYik7cmV0dXJuIDE9PWUubGVuZ3RoJiYoZT1l WzBdKSxjP2MoZSk6ZX19ZnVuY3Rpb24gbChhKXtyZXR1cm4gZnVuY3Rpb24o KXt2YXIgYj1hPyI8Iit0aGlzLnR5cGU6IiIsYz10aGlzLm5vZGUuYXR0cmli dXRlcyxkPXRoaXMubm9kZS5jaGlsZE5vZGVzO2lmKGEpZm9yKHZhciBlPTAs Zj1jLmxlbmd0aDtmPmU7ZSsrKWIrPSIgIitjW2VdLm5hbWUrJz0iJytjW2Vd LnZhbHVlLnJlcGxhY2UoLyIvZywnXFwiJykrJyInO2lmKGQubGVuZ3RoKXtm b3IoYSYmKGIrPSI+IiksZT0wLGY9ZC5sZW5ndGg7Zj5lO2UrKykzPT1kW2Vd Lm5vZGVUeXBlP2IrPWRbZV0ubm9kZVZhbHVlOjE9PWRbZV0ubm9kZVR5cGUm JihiKz11KGRbZV0pLnRvU3RyaW5nKCkpO2EmJihiKz0iPC8iK3RoaXMudHlw ZSsiPiIpfWVsc2UgYSYmKGIrPSIvPiIpO3JldHVybiBifX12YXIgbT1lLnBy b3RvdHlwZSxuPWQuaXMsbz1TdHJpbmcscD1kLl91bml0MnB4LHE9ZC5fLiQs cj1kLl8ubWFrZSxzPWQuXy5nZXRTb21lRGVmcyx0PSJoYXNPd25Qcm9wZXJ0 eSIsdT1kLl8ud3JhcDttLmdldEJCb3g9ZnVuY3Rpb24oYSl7aWYoIWQuTWF0 cml4fHwhZC5wYXRoKXJldHVybiB0aGlzLm5vZGUuZ2V0QkJveCgpO3ZhciBi PXRoaXMsYz1uZXcgZC5NYXRyaXg7aWYoYi5yZW1vdmVkKXJldHVybiBkLl8u Ym94KCk7Zm9yKDsidXNlIj09Yi50eXBlOylpZihhfHwoYz1jLmFkZChiLnRy YW5zZm9ybSgpLmxvY2FsTWF0cml4LnRyYW5zbGF0ZShiLmF0dHIoIngiKXx8 MCxiLmF0dHIoInkiKXx8MCkpKSxiLm9yaWdpbmFsKWI9Yi5vcmlnaW5hbDtl bHNle3ZhciBlPWIuYXR0cigieGxpbms6aHJlZiIpO2I9Yi5vcmlnaW5hbD1i Lm5vZGUub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZChlLnN1YnN0cmlu ZyhlLmluZGV4T2YoIiMiKSsxKSl9dmFyIGY9Yi5fLGc9ZC5wYXRoLmdldFti LnR5cGVdfHxkLnBhdGguZ2V0LmRlZmx0O3RyeXtyZXR1cm4gYT8oZi5iYm94 d3Q9Zz9kLnBhdGguZ2V0QkJveChiLnJlYWxQYXRoPWcoYikpOmQuXy5ib3go Yi5ub2RlLmdldEJCb3goKSksZC5fLmJveChmLmJib3h3dCkpOihiLnJlYWxQ YXRoPWcoYiksYi5tYXRyaXg9Yi50cmFuc2Zvcm0oKS5sb2NhbE1hdHJpeCxm LmJib3g9ZC5wYXRoLmdldEJCb3goZC5wYXRoLm1hcChiLnJlYWxQYXRoLGMu YWRkKGIubWF0cml4KSkpLGQuXy5ib3goZi5iYm94KSl9Y2F0Y2goaCl7cmV0 dXJuIGQuXy5ib3goKX19O3ZhciB2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu c3RyaW5nfTttLnRyYW5zZm9ybT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLl87 aWYobnVsbD09YSl7Zm9yKHZhciBjLGU9dGhpcyxmPW5ldyBkLk1hdHJpeCh0 aGlzLm5vZGUuZ2V0Q1RNKCkpLGc9aSh0aGlzKSxoPVtnXSxqPW5ldyBkLk1h dHJpeCxrPWcudG9UcmFuc2Zvcm1TdHJpbmcoKSxsPW8oZyk9PW8odGhpcy5t YXRyaXgpP28oYi50cmFuc2Zvcm0pOms7InN2ZyIhPWUudHlwZSYmKGU9ZS5w YXJlbnQoKSk7KWgucHVzaChpKGUpKTtmb3IoYz1oLmxlbmd0aDtjLS07KWou YWRkKGhbY10pO3JldHVybntzdHJpbmc6bCxnbG9iYWxNYXRyaXg6Zix0b3Rh bE1hdHJpeDpqLGxvY2FsTWF0cml4OmcsZGlmZk1hdHJpeDpmLmNsb25lKCku YWRkKGcuaW52ZXJ0KCkpLGdsb2JhbDpmLnRvVHJhbnNmb3JtU3RyaW5nKCks dG90YWw6ai50b1RyYW5zZm9ybVN0cmluZygpLGxvY2FsOmssdG9TdHJpbmc6 dn19cmV0dXJuIGEgaW5zdGFuY2VvZiBkLk1hdHJpeD8odGhpcy5tYXRyaXg9 YSx0aGlzLl8udHJhbnNmb3JtPWEudG9UcmFuc2Zvcm1TdHJpbmcoKSk6aSh0 aGlzLGEpLHRoaXMubm9kZSYmKCJsaW5lYXJHcmFkaWVudCI9PXRoaXMudHlw ZXx8InJhZGlhbEdyYWRpZW50Ij09dGhpcy50eXBlP3EodGhpcy5ub2RlLHtn cmFkaWVudFRyYW5zZm9ybTp0aGlzLm1hdHJpeH0pOiJwYXR0ZXJuIj09dGhp cy50eXBlP3EodGhpcy5ub2RlLHtwYXR0ZXJuVHJhbnNmb3JtOnRoaXMubWF0 cml4fSk6cSh0aGlzLm5vZGUse3RyYW5zZm9ybTp0aGlzLm1hdHJpeH0pKSx0 aGlzfSxtLnBhcmVudD1mdW5jdGlvbigpe3JldHVybiB1KHRoaXMubm9kZS5w YXJlbnROb2RlKX0sbS5hcHBlbmQ9bS5hZGQ9ZnVuY3Rpb24oYSl7aWYoYSl7 aWYoInNldCI9PWEudHlwZSl7dmFyIGI9dGhpcztyZXR1cm4gYS5mb3JFYWNo KGZ1bmN0aW9uKGEpe2IuYWRkKGEpfSksdGhpc31hPXUoYSksdGhpcy5ub2Rl LmFwcGVuZENoaWxkKGEubm9kZSksYS5wYXBlcj10aGlzLnBhcGVyfXJldHVy biB0aGlzfSxtLmFwcGVuZFRvPWZ1bmN0aW9uKGEpe3JldHVybiBhJiYoYT11 KGEpLGEuYXBwZW5kKHRoaXMpKSx0aGlzfSxtLnByZXBlbmQ9ZnVuY3Rpb24o YSl7aWYoYSl7aWYoInNldCI9PWEudHlwZSl7dmFyIGIsYz10aGlzO3JldHVy biBhLmZvckVhY2goZnVuY3Rpb24oYSl7Yj9iLmFmdGVyKGEpOmMucHJlcGVu ZChhKSxiPWF9KSx0aGlzfWE9dShhKTt2YXIgZD1hLnBhcmVudCgpO3RoaXMu bm9kZS5pbnNlcnRCZWZvcmUoYS5ub2RlLHRoaXMubm9kZS5maXJzdENoaWxk KSx0aGlzLmFkZCYmdGhpcy5hZGQoKSxhLnBhcGVyPXRoaXMucGFwZXIsdGhp cy5wYXJlbnQoKSYmdGhpcy5wYXJlbnQoKS5hZGQoKSxkJiZkLmFkZCgpfXJl dHVybiB0aGlzfSxtLnByZXBlbmRUbz1mdW5jdGlvbihhKXtyZXR1cm4gYT11 KGEpLGEucHJlcGVuZCh0aGlzKSx0aGlzfSxtLmJlZm9yZT1mdW5jdGlvbihh KXtpZigic2V0Ij09YS50eXBlKXt2YXIgYj10aGlzO3JldHVybiBhLmZvckVh Y2goZnVuY3Rpb24oYSl7dmFyIGM9YS5wYXJlbnQoKTtiLm5vZGUucGFyZW50 Tm9kZS5pbnNlcnRCZWZvcmUoYS5ub2RlLGIubm9kZSksYyYmYy5hZGQoKX0p LHRoaXMucGFyZW50KCkuYWRkKCksdGhpc31hPXUoYSk7dmFyIGM9YS5wYXJl bnQoKTtyZXR1cm4gdGhpcy5ub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl KGEubm9kZSx0aGlzLm5vZGUpLHRoaXMucGFyZW50KCkmJnRoaXMucGFyZW50 KCkuYWRkKCksYyYmYy5hZGQoKSxhLnBhcGVyPXRoaXMucGFwZXIsdGhpc30s bS5hZnRlcj1mdW5jdGlvbihhKXthPXUoYSk7dmFyIGI9YS5wYXJlbnQoKTty ZXR1cm4gdGhpcy5ub2RlLm5leHRTaWJsaW5nP3RoaXMubm9kZS5wYXJlbnRO b2RlLmluc2VydEJlZm9yZShhLm5vZGUsdGhpcy5ub2RlLm5leHRTaWJsaW5n KTp0aGlzLm5vZGUucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChhLm5vZGUpLHRo aXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkuYWRkKCksYiYmYi5hZGQoKSxh LnBhcGVyPXRoaXMucGFwZXIsdGhpc30sbS5pbnNlcnRCZWZvcmU9ZnVuY3Rp b24oYSl7YT11KGEpO3ZhciBiPXRoaXMucGFyZW50KCk7cmV0dXJuIGEubm9k ZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLm5vZGUsYS5ub2RlKSx0 aGlzLnBhcGVyPWEucGFwZXIsYiYmYi5hZGQoKSxhLnBhcmVudCgpJiZhLnBh cmVudCgpLmFkZCgpLHRoaXN9LG0uaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24oYSl7 YT11KGEpO3ZhciBiPXRoaXMucGFyZW50KCk7cmV0dXJuIGEubm9kZS5wYXJl bnROb2RlLmluc2VydEJlZm9yZSh0aGlzLm5vZGUsYS5ub2RlLm5leHRTaWJs aW5nKSx0aGlzLnBhcGVyPWEucGFwZXIsYiYmYi5hZGQoKSxhLnBhcmVudCgp JiZhLnBhcmVudCgpLmFkZCgpLHRoaXN9LG0ucmVtb3ZlPWZ1bmN0aW9uKCl7 dmFyIGE9dGhpcy5wYXJlbnQoKTtyZXR1cm4gdGhpcy5ub2RlLnBhcmVudE5v ZGUmJnRoaXMubm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMubm9k ZSksZGVsZXRlIHRoaXMucGFwZXIsdGhpcy5yZW1vdmVkPSEwLGEmJmEuYWRk KCksdGhpc30sbS5zZWxlY3Q9ZnVuY3Rpb24oYSl7cmV0dXJuIHUodGhpcy5u b2RlLnF1ZXJ5U2VsZWN0b3IoYSkpfSxtLnNlbGVjdEFsbD1mdW5jdGlvbihh KXtmb3IodmFyIGI9dGhpcy5ub2RlLnF1ZXJ5U2VsZWN0b3JBbGwoYSksYz0o ZC5zZXR8fEFycmF5KSgpLGU9MDtlPGIubGVuZ3RoO2UrKyljLnB1c2godShi W2VdKSk7cmV0dXJuIGN9LG0uYXNQWD1mdW5jdGlvbihhLGIpe3JldHVybiBu dWxsPT1iJiYoYj10aGlzLmF0dHIoYSkpLCtwKHRoaXMsYSxiKX0sbS51c2U9 ZnVuY3Rpb24oKXt2YXIgYSxiPXRoaXMubm9kZS5pZDtyZXR1cm4gYnx8KGI9 dGhpcy5pZCxxKHRoaXMubm9kZSx7aWQ6Yn0pKSxhPSJsaW5lYXJHcmFkaWVu dCI9PXRoaXMudHlwZXx8InJhZGlhbEdyYWRpZW50Ij09dGhpcy50eXBlfHwi cGF0dGVybiI9PXRoaXMudHlwZT9yKHRoaXMudHlwZSx0aGlzLm5vZGUucGFy ZW50Tm9kZSk6cigidXNlIix0aGlzLm5vZGUucGFyZW50Tm9kZSkscShhLm5v ZGUseyJ4bGluazpocmVmIjoiIyIrYn0pLGEub3JpZ2luYWw9dGhpcyxhfSxt LmNsb25lPWZ1bmN0aW9uKCl7dmFyIGE9dSh0aGlzLm5vZGUuY2xvbmVOb2Rl KCEwKSk7cmV0dXJuIHEoYS5ub2RlLCJpZCIpJiZxKGEubm9kZSx7aWQ6YS5p ZH0pLGooYSksYS5pbnNlcnRBZnRlcih0aGlzKSxhfSxtLnRvRGVmcz1mdW5j dGlvbigpe3ZhciBhPXModGhpcyk7cmV0dXJuIGEuYXBwZW5kQ2hpbGQodGhp cy5ub2RlKSx0aGlzfSxtLnBhdHRlcm49bS50b1BhdHRlcm49ZnVuY3Rpb24o YSxiLGMsZCl7dmFyIGU9cigicGF0dGVybiIscyh0aGlzKSk7cmV0dXJuIG51 bGw9PWEmJihhPXRoaXMuZ2V0QkJveCgpKSxuKGEsIm9iamVjdCIpJiYieCJp biBhJiYoYj1hLnksYz1hLndpZHRoLGQ9YS5oZWlnaHQsYT1hLngpLHEoZS5u b2RlLHt4OmEseTpiLHdpZHRoOmMsaGVpZ2h0OmQscGF0dGVyblVuaXRzOiJ1 c2VyU3BhY2VPblVzZSIsaWQ6ZS5pZCx2aWV3Qm94OlthLGIsYyxkXS5qb2lu KCIgIil9KSxlLm5vZGUuYXBwZW5kQ2hpbGQodGhpcy5ub2RlKSxlfSxtLm1h cmtlcj1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9cigibWFya2VyIixz KHRoaXMpKTtyZXR1cm4gbnVsbD09YSYmKGE9dGhpcy5nZXRCQm94KCkpLG4o YSwib2JqZWN0IikmJiJ4ImluIGEmJihiPWEueSxjPWEud2lkdGgsZD1hLmhl aWdodCxlPWEucmVmWHx8YS5jeCxmPWEucmVmWXx8YS5jeSxhPWEueCkscShn Lm5vZGUse3ZpZXdCb3g6W2EsYixjLGRdLmpvaW4oIiAiKSxtYXJrZXJXaWR0 aDpjLG1hcmtlckhlaWdodDpkLG9yaWVudDoiYXV0byIscmVmWDplfHwwLHJl Zlk6Znx8MCxpZDpnLmlkfSksZy5ub2RlLmFwcGVuZENoaWxkKHRoaXMubm9k ZSksZ307dmFyIHc9ZnVuY3Rpb24oYSxiLGQsZSl7ImZ1bmN0aW9uIiE9dHlw ZW9mIGR8fGQubGVuZ3RofHwoZT1kLGQ9Yy5saW5lYXIpLHRoaXMuYXR0cj1h LHRoaXMuZHVyPWIsZCYmKHRoaXMuZWFzaW5nPWQpLGUmJih0aGlzLmNhbGxi YWNrPWUpfTtkLl8uQW5pbWF0aW9uPXcsZC5hbmltYXRpb249ZnVuY3Rpb24o YSxiLGMsZCl7cmV0dXJuIG5ldyB3KGEsYixjLGQpfSxtLmluQW5pbT1mdW5j dGlvbigpe3ZhciBhPXRoaXMsYj1bXTtmb3IodmFyIGMgaW4gYS5hbmltcylh LmFuaW1zW3RdKGMpJiYhZnVuY3Rpb24oYSl7Yi5wdXNoKHthbmltOm5ldyB3 KGEuX2F0dHJzLGEuZHVyLGEuZWFzaW5nLGEuX2NhbGxiYWNrKSxtaW5hOmEs Y3VyU3RhdHVzOmEuc3RhdHVzKCksc3RhdHVzOmZ1bmN0aW9uKGIpe3JldHVy biBhLnN0YXR1cyhiKX0sc3RvcDpmdW5jdGlvbigpe2Euc3RvcCgpfX0pfShh LmFuaW1zW2NdKTtyZXR1cm4gYn0sZC5hbmltYXRlPWZ1bmN0aW9uKGEsZCxl LGYsZyxoKXsiZnVuY3Rpb24iIT10eXBlb2YgZ3x8Zy5sZW5ndGh8fChoPWcs Zz1jLmxpbmVhcik7dmFyIGk9Yy50aW1lKCksaj1jKGEsZCxpLGkrZixjLnRp bWUsZSxnKTtyZXR1cm4gaCYmYi5vbmNlKCJtaW5hLmZpbmlzaC4iK2ouaWQs aCksan0sbS5zdG9wPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuaW5Bbmlt KCksYj0wLGM9YS5sZW5ndGg7Yz5iO2IrKylhW2JdLnN0b3AoKTtyZXR1cm4g dGhpc30sbS5hbmltYXRlPWZ1bmN0aW9uKGEsZCxlLGYpeyJmdW5jdGlvbiIh PXR5cGVvZiBlfHxlLmxlbmd0aHx8KGY9ZSxlPWMubGluZWFyKSxhIGluc3Rh bmNlb2YgdyYmKGY9YS5jYWxsYmFjayxlPWEuZWFzaW5nLGQ9YS5kdXIsYT1h LmF0dHIpO3ZhciBnLGgsaSxqLGw9W10sbT1bXSxwPXt9LHE9dGhpcztmb3Io dmFyIHIgaW4gYSlpZihhW3RdKHIpKXtxLmVxdWFsPyhqPXEuZXF1YWwocixv KGFbcl0pKSxnPWouZnJvbSxoPWoudG8saT1qLmYpOihnPStxLmF0dHIociks aD0rYVtyXSk7dmFyIHM9bihnLCJhcnJheSIpP2cubGVuZ3RoOjE7cFtyXT1r KGwubGVuZ3RoLGwubGVuZ3RoK3MsaSksbD1sLmNvbmNhdChnKSxtPW0uY29u Y2F0KGgpfXZhciB1PWMudGltZSgpLHY9YyhsLG0sdSx1K2QsYy50aW1lLGZ1 bmN0aW9uKGEpe3ZhciBiPXt9O2Zvcih2YXIgYyBpbiBwKXBbdF0oYykmJihi W2NdPXBbY10oYSkpO3EuYXR0cihiKX0sZSk7cmV0dXJuIHEuYW5pbXNbdi5p ZF09dix2Ll9hdHRycz1hLHYuX2NhbGxiYWNrPWYsYigic25hcC5hbmltY3Jl YXRlZC4iK3EuaWQsdiksYi5vbmNlKCJtaW5hLmZpbmlzaC4iK3YuaWQsZnVu Y3Rpb24oKXtkZWxldGUgcS5hbmltc1t2LmlkXSxmJiZmLmNhbGwocSl9KSxi Lm9uY2UoIm1pbmEuc3RvcC4iK3YuaWQsZnVuY3Rpb24oKXtkZWxldGUgcS5h bmltc1t2LmlkXX0pLHF9O3ZhciB4PXt9O20uZGF0YT1mdW5jdGlvbihhLGMp e3ZhciBlPXhbdGhpcy5pZF09eFt0aGlzLmlkXXx8e307aWYoMD09YXJndW1l bnRzLmxlbmd0aClyZXR1cm4gYigic25hcC5kYXRhLmdldC4iK3RoaXMuaWQs dGhpcyxlLG51bGwpLGU7CitpZigxPT1hcmd1bWVudHMubGVuZ3RoKXtpZihk LmlzKGEsIm9iamVjdCIpKXtmb3IodmFyIGYgaW4gYSlhW3RdKGYpJiZ0aGlz LmRhdGEoZixhW2ZdKTtyZXR1cm4gdGhpc31yZXR1cm4gYigic25hcC5kYXRh LmdldC4iK3RoaXMuaWQsdGhpcyxlW2FdLGEpLGVbYV19cmV0dXJuIGVbYV09 YyxiKCJzbmFwLmRhdGEuc2V0LiIrdGhpcy5pZCx0aGlzLGMsYSksdGhpc30s bS5yZW1vdmVEYXRhPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hP3hbdGhp cy5pZF09e306eFt0aGlzLmlkXSYmZGVsZXRlIHhbdGhpcy5pZF1bYV0sdGhp c30sbS5vdXRlclNWRz1tLnRvU3RyaW5nPWwoMSksbS5pbm5lclNWRz1sKCks bS50b0RhdGFVUkw9ZnVuY3Rpb24oKXtpZihhJiZhLmJ0b2Epe3ZhciBiPXRo aXMuZ2V0QkJveCgpLGM9ZC5mb3JtYXQoJzxzdmcgdmVyc2lvbj0iMS4xIiB4 bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5r PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0ie3dpZHRo fSIgaGVpZ2h0PSJ7aGVpZ2h0fSIgdmlld0JveD0ie3h9IHt5fSB7d2lkdGh9 IHtoZWlnaHR9Ij57Y29udGVudHN9PC9zdmc+Jyx7eDorYi54LnRvRml4ZWQo MykseTorYi55LnRvRml4ZWQoMyksd2lkdGg6K2Iud2lkdGgudG9GaXhlZCgz KSxoZWlnaHQ6K2IuaGVpZ2h0LnRvRml4ZWQoMyksY29udGVudHM6dGhpcy5v dXRlclNWRygpfSk7cmV0dXJuImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQs IitidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChjKSkpfX0saC5w cm90b3R5cGUuc2VsZWN0PW0uc2VsZWN0LGgucHJvdG90eXBlLnNlbGVjdEFs bD1tLnNlbGVjdEFsbH0pLGQucGx1Z2luKGZ1bmN0aW9uKGEpe2Z1bmN0aW9u IGIoYSxiLGQsZSxmLGcpe3JldHVybiBudWxsPT1iJiYiW29iamVjdCBTVkdN YXRyaXhdIj09Yy5jYWxsKGEpPyh0aGlzLmE9YS5hLHRoaXMuYj1hLmIsdGhp cy5jPWEuYyx0aGlzLmQ9YS5kLHRoaXMuZT1hLmUsdm9pZCh0aGlzLmY9YS5m KSk6dm9pZChudWxsIT1hPyh0aGlzLmE9K2EsdGhpcy5iPStiLHRoaXMuYz0r ZCx0aGlzLmQ9K2UsdGhpcy5lPStmLHRoaXMuZj0rZyk6KHRoaXMuYT0xLHRo aXMuYj0wLHRoaXMuYz0wLHRoaXMuZD0xLHRoaXMuZT0wLHRoaXMuZj0wKSl9 dmFyIGM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxkPVN0cmluZyxlPU1h dGgsZj0iIjshZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyhhKXtyZXR1cm4gYVsw XSphWzBdK2FbMV0qYVsxXX1mdW5jdGlvbiBoKGEpe3ZhciBiPWUuc3FydChn KGEpKTthWzBdJiYoYVswXS89YiksYVsxXSYmKGFbMV0vPWIpfWMuYWRkPWZ1 bmN0aW9uKGEsYyxkLGUsZixnKXt2YXIgaCxpLGosayxsPVtbXSxbXSxbXV0s bT1bW3RoaXMuYSx0aGlzLmMsdGhpcy5lXSxbdGhpcy5iLHRoaXMuZCx0aGlz LmZdLFswLDAsMV1dLG49W1thLGQsZl0sW2MsZSxnXSxbMCwwLDFdXTtmb3Io YSYmYSBpbnN0YW5jZW9mIGImJihuPVtbYS5hLGEuYyxhLmVdLFthLmIsYS5k LGEuZl0sWzAsMCwxXV0pLGg9MDszPmg7aCsrKWZvcihpPTA7Mz5pO2krKyl7 Zm9yKGs9MCxqPTA7Mz5qO2orKylrKz1tW2hdW2pdKm5bal1baV07bFtoXVtp XT1rfXJldHVybiB0aGlzLmE9bFswXVswXSx0aGlzLmI9bFsxXVswXSx0aGlz LmM9bFswXVsxXSx0aGlzLmQ9bFsxXVsxXSx0aGlzLmU9bFswXVsyXSx0aGlz LmY9bFsxXVsyXSx0aGlzfSxjLmludmVydD1mdW5jdGlvbigpe3ZhciBhPXRo aXMsYz1hLmEqYS5kLWEuYiphLmM7cmV0dXJuIG5ldyBiKGEuZC9jLC1hLmIv YywtYS5jL2MsYS5hL2MsKGEuYyphLmYtYS5kKmEuZSkvYywoYS5iKmEuZS1h LmEqYS5mKS9jKX0sYy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgYih0 aGlzLmEsdGhpcy5iLHRoaXMuYyx0aGlzLmQsdGhpcy5lLHRoaXMuZil9LGMu dHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYWRkKDEsMCww LDEsYSxiKX0sYy5zY2FsZT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gbnVs bD09YiYmKGI9YSksKGN8fGQpJiZ0aGlzLmFkZCgxLDAsMCwxLGMsZCksdGhp cy5hZGQoYSwwLDAsYiwwLDApLChjfHxkKSYmdGhpcy5hZGQoMSwwLDAsMSwt YywtZCksdGhpc30sYy5yb3RhdGU9ZnVuY3Rpb24oYixjLGQpe2I9YS5yYWQo YiksYz1jfHwwLGQ9ZHx8MDt2YXIgZj0rZS5jb3MoYikudG9GaXhlZCg5KSxn PStlLnNpbihiKS50b0ZpeGVkKDkpO3JldHVybiB0aGlzLmFkZChmLGcsLWcs ZixjLGQpLHRoaXMuYWRkKDEsMCwwLDEsLWMsLWQpfSxjLng9ZnVuY3Rpb24o YSxiKXtyZXR1cm4gYSp0aGlzLmErYip0aGlzLmMrdGhpcy5lfSxjLnk9ZnVu Y3Rpb24oYSxiKXtyZXR1cm4gYSp0aGlzLmIrYip0aGlzLmQrdGhpcy5mfSxj LmdldD1mdW5jdGlvbihhKXtyZXR1cm4rdGhpc1tkLmZyb21DaGFyQ29kZSg5 NythKV0udG9GaXhlZCg0KX0sYy50b1N0cmluZz1mdW5jdGlvbigpe3JldHVy biJtYXRyaXgoIitbdGhpcy5nZXQoMCksdGhpcy5nZXQoMSksdGhpcy5nZXQo MiksdGhpcy5nZXQoMyksdGhpcy5nZXQoNCksdGhpcy5nZXQoNSldLmpvaW4o KSsiKSJ9LGMub2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuZS50b0Zp eGVkKDQpLHRoaXMuZi50b0ZpeGVkKDQpXX0sYy5kZXRlcm1pbmFudD1mdW5j dGlvbigpe3JldHVybiB0aGlzLmEqdGhpcy5kLXRoaXMuYip0aGlzLmN9LGMu c3BsaXQ9ZnVuY3Rpb24oKXt2YXIgYj17fTtiLmR4PXRoaXMuZSxiLmR5PXRo aXMuZjt2YXIgYz1bW3RoaXMuYSx0aGlzLmNdLFt0aGlzLmIsdGhpcy5kXV07 Yi5zY2FsZXg9ZS5zcXJ0KGcoY1swXSkpLGgoY1swXSksYi5zaGVhcj1jWzBd WzBdKmNbMV1bMF0rY1swXVsxXSpjWzFdWzFdLGNbMV09W2NbMV1bMF0tY1sw XVswXSpiLnNoZWFyLGNbMV1bMV0tY1swXVsxXSpiLnNoZWFyXSxiLnNjYWxl eT1lLnNxcnQoZyhjWzFdKSksaChjWzFdKSxiLnNoZWFyLz1iLnNjYWxleSx0 aGlzLmRldGVybWluYW50KCk8MCYmKGIuc2NhbGV4PS1iLnNjYWxleCk7dmFy IGQ9LWNbMF1bMV0sZj1jWzFdWzFdO3JldHVybiAwPmY/KGIucm90YXRlPWEu ZGVnKGUuYWNvcyhmKSksMD5kJiYoYi5yb3RhdGU9MzYwLWIucm90YXRlKSk6 Yi5yb3RhdGU9YS5kZWcoZS5hc2luKGQpKSxiLmlzU2ltcGxlPSEoK2Iuc2hl YXIudG9GaXhlZCg5KXx8Yi5zY2FsZXgudG9GaXhlZCg5KSE9Yi5zY2FsZXku dG9GaXhlZCg5KSYmYi5yb3RhdGUpLGIuaXNTdXBlclNpbXBsZT0hK2Iuc2hl YXIudG9GaXhlZCg5KSYmYi5zY2FsZXgudG9GaXhlZCg5KT09Yi5zY2FsZXku dG9GaXhlZCg5KSYmIWIucm90YXRlLGIubm9Sb3RhdGlvbj0hK2Iuc2hlYXIu dG9GaXhlZCg5KSYmIWIucm90YXRlLGJ9LGMudG9UcmFuc2Zvcm1TdHJpbmc9 ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dGhpcy5zcGxpdCgpO3JldHVybitiLnNo ZWFyLnRvRml4ZWQoOSk/Im0iK1t0aGlzLmdldCgwKSx0aGlzLmdldCgxKSx0 aGlzLmdldCgyKSx0aGlzLmdldCgzKSx0aGlzLmdldCg0KSx0aGlzLmdldCg1 KV06KGIuc2NhbGV4PStiLnNjYWxleC50b0ZpeGVkKDQpLGIuc2NhbGV5PSti LnNjYWxleS50b0ZpeGVkKDQpLGIucm90YXRlPStiLnJvdGF0ZS50b0ZpeGVk KDQpLChiLmR4fHxiLmR5PyJ0IitbK2IuZHgudG9GaXhlZCg0KSwrYi5keS50 b0ZpeGVkKDQpXTpmKSsoMSE9Yi5zY2FsZXh8fDEhPWIuc2NhbGV5PyJzIitb Yi5zY2FsZXgsYi5zY2FsZXksMCwwXTpmKSsoYi5yb3RhdGU/InIiK1srYi5y b3RhdGUudG9GaXhlZCg0KSwwLDBdOmYpKX19KGIucHJvdG90eXBlKSxhLk1h dHJpeD1iLGEubWF0cml4PWZ1bmN0aW9uKGEsYyxkLGUsZixnKXtyZXR1cm4g bmV3IGIoYSxjLGQsZSxmLGcpfX0pLGQucGx1Z2luKGZ1bmN0aW9uKGEsYyxk LGUsZil7ZnVuY3Rpb24gZyhkKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoYi5z dG9wKCksZSBpbnN0YW5jZW9mIGYmJjE9PWUubm9kZS5jaGlsZE5vZGVzLmxl bmd0aCYmKCJyYWRpYWxHcmFkaWVudCI9PWUubm9kZS5maXJzdENoaWxkLnRh Z05hbWV8fCJsaW5lYXJHcmFkaWVudCI9PWUubm9kZS5maXJzdENoaWxkLnRh Z05hbWV8fCJwYXR0ZXJuIj09ZS5ub2RlLmZpcnN0Q2hpbGQudGFnTmFtZSkm JihlPWUubm9kZS5maXJzdENoaWxkLG4odGhpcykuYXBwZW5kQ2hpbGQoZSks ZT1sKGUpKSxlIGluc3RhbmNlb2YgYylpZigicmFkaWFsR3JhZGllbnQiPT1l LnR5cGV8fCJsaW5lYXJHcmFkaWVudCI9PWUudHlwZXx8InBhdHRlcm4iPT1l LnR5cGUpe2Uubm9kZS5pZHx8cChlLm5vZGUse2lkOmUuaWR9KTt2YXIgZz1x KGUubm9kZS5pZCl9ZWxzZSBnPWUuYXR0cihkKTtlbHNlIGlmKGc9YS5jb2xv cihlKSxnLmVycm9yKXt2YXIgaD1hKG4odGhpcykub3duZXJTVkdFbGVtZW50 KS5ncmFkaWVudChlKTtoPyhoLm5vZGUuaWR8fHAoaC5ub2RlLHtpZDpoLmlk fSksZz1xKGgubm9kZS5pZCkpOmc9ZX1lbHNlIGc9cihnKTt2YXIgaT17fTtp W2RdPWcscCh0aGlzLm5vZGUsaSksdGhpcy5ub2RlLnN0eWxlW2RdPXR9fWZ1 bmN0aW9uIGgoYSl7Yi5zdG9wKCksYT09K2EmJihhKz0icHgiKSx0aGlzLm5v ZGUuc3R5bGUuZm9udFNpemU9YX1mdW5jdGlvbiBpKGEpe2Zvcih2YXIgYj1b XSxjPWEuY2hpbGROb2RlcyxkPTAsZT1jLmxlbmd0aDtlPmQ7ZCsrKXt2YXIg Zj1jW2RdOzM9PWYubm9kZVR5cGUmJmIucHVzaChmLm5vZGVWYWx1ZSksInRz cGFuIj09Zi50YWdOYW1lJiZiLnB1c2goMT09Zi5jaGlsZE5vZGVzLmxlbmd0 aCYmMz09Zi5maXJzdENoaWxkLm5vZGVUeXBlP2YuZmlyc3RDaGlsZC5ub2Rl VmFsdWU6aShmKSl9cmV0dXJuIGJ9ZnVuY3Rpb24gaigpe3JldHVybiBiLnN0 b3AoKSx0aGlzLm5vZGUuc3R5bGUuZm9udFNpemV9dmFyIGs9YS5fLm1ha2Us bD1hLl8ud3JhcCxtPWEuaXMsbj1hLl8uZ2V0U29tZURlZnMsbz0vXnVybFwo Iz8oW14pXSspXCkkLyxwPWEuXy4kLHE9YS51cmwscj1TdHJpbmcscz1hLl8u c2VwYXJhdG9yLHQ9IiI7Yi5vbigic25hcC51dGlsLmF0dHIubWFzayIsZnVu Y3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIGN8fGEgaW5zdGFuY2VvZiBmKXtp ZihiLnN0b3AoKSxhIGluc3RhbmNlb2YgZiYmMT09YS5ub2RlLmNoaWxkTm9k ZXMubGVuZ3RoJiYoYT1hLm5vZGUuZmlyc3RDaGlsZCxuKHRoaXMpLmFwcGVu ZENoaWxkKGEpLGE9bChhKSksIm1hc2siPT1hLnR5cGUpdmFyIGQ9YTtlbHNl IGQ9aygibWFzayIsbih0aGlzKSksZC5ub2RlLmFwcGVuZENoaWxkKGEubm9k ZSk7IWQubm9kZS5pZCYmcChkLm5vZGUse2lkOmQuaWR9KSxwKHRoaXMubm9k ZSx7bWFzazpxKGQuaWQpfSl9fSksZnVuY3Rpb24oYSl7Yi5vbigic25hcC51 dGlsLmF0dHIuY2xpcCIsYSksYi5vbigic25hcC51dGlsLmF0dHIuY2xpcC1w YXRoIixhKSxiLm9uKCJzbmFwLnV0aWwuYXR0ci5jbGlwUGF0aCIsYSl9KGZ1 bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBjfHxhIGluc3RhbmNlb2YgZil7 aWYoYi5zdG9wKCksImNsaXBQYXRoIj09YS50eXBlKXZhciBkPWE7ZWxzZSBk PWsoImNsaXBQYXRoIixuKHRoaXMpKSxkLm5vZGUuYXBwZW5kQ2hpbGQoYS5u b2RlKSwhZC5ub2RlLmlkJiZwKGQubm9kZSx7aWQ6ZC5pZH0pO3AodGhpcy5u b2RlLHsiY2xpcC1wYXRoIjpxKGQubm9kZS5pZHx8ZC5pZCl9KX19KSxiLm9u KCJzbmFwLnV0aWwuYXR0ci5maWxsIixnKCJmaWxsIikpLGIub24oInNuYXAu dXRpbC5hdHRyLnN0cm9rZSIsZygic3Ryb2tlIikpO3ZhciB1PS9eKFtscl0p KD86XCgoW14pXSopXCkpPyguKikkL2k7Yi5vbigic25hcC51dGlsLmdyYWQu cGFyc2UiLGZ1bmN0aW9uKGEpe2E9cihhKTt2YXIgYj1hLm1hdGNoKHUpO2lm KCFiKXJldHVybiBudWxsO3ZhciBjPWJbMV0sZD1iWzJdLGU9YlszXTtyZXR1 cm4gZD1kLnNwbGl0KC9ccyosXHMqLykubWFwKGZ1bmN0aW9uKGEpe3JldHVy bithPT1hPythOmF9KSwxPT1kLmxlbmd0aCYmMD09ZFswXSYmKGQ9W10pLGU9 ZS5zcGxpdCgiLSIpLGU9ZS5tYXAoZnVuY3Rpb24oYSl7YT1hLnNwbGl0KCI6 Iik7dmFyIGI9e2NvbG9yOmFbMF19O3JldHVybiBhWzFdJiYoYi5vZmZzZXQ9 cGFyc2VGbG9hdChhWzFdKSksYn0pLHt0eXBlOmMscGFyYW1zOmQsc3RvcHM6 ZX19KSxiLm9uKCJzbmFwLnV0aWwuYXR0ci5kIixmdW5jdGlvbihjKXtiLnN0 b3AoKSxtKGMsImFycmF5IikmJm0oY1swXSwiYXJyYXkiKSYmKGM9YS5wYXRo LnRvU3RyaW5nLmNhbGwoYykpLGM9cihjKSxjLm1hdGNoKC9bcnVvXS9pKSYm KGM9YS5wYXRoLnRvQWJzb2x1dGUoYykpLHAodGhpcy5ub2RlLHtkOmN9KX0p KC0xKSxiLm9uKCJzbmFwLnV0aWwuYXR0ci4jdGV4dCIsZnVuY3Rpb24oYSl7 Yi5zdG9wKCksYT1yKGEpO2Zvcih2YXIgYz1lLmRvYy5jcmVhdGVUZXh0Tm9k ZShhKTt0aGlzLm5vZGUuZmlyc3RDaGlsZDspdGhpcy5ub2RlLnJlbW92ZUNo aWxkKHRoaXMubm9kZS5maXJzdENoaWxkKTt0aGlzLm5vZGUuYXBwZW5kQ2hp bGQoYyl9KSgtMSksYi5vbigic25hcC51dGlsLmF0dHIucGF0aCIsZnVuY3Rp b24oYSl7Yi5zdG9wKCksdGhpcy5hdHRyKHtkOmF9KX0pKC0xKSxiLm9uKCJz bmFwLnV0aWwuYXR0ci5jbGFzcyIsZnVuY3Rpb24oYSl7Yi5zdG9wKCksdGhp cy5ub2RlLmNsYXNzTmFtZS5iYXNlVmFsPWF9KSgtMSksYi5vbigic25hcC51 dGlsLmF0dHIudmlld0JveCIsZnVuY3Rpb24oYSl7dmFyIGM7Yz1tKGEsIm9i amVjdCIpJiYieCJpbiBhP1thLngsYS55LGEud2lkdGgsYS5oZWlnaHRdLmpv aW4oIiAiKTptKGEsImFycmF5Iik/YS5qb2luKCIgIik6YSxwKHRoaXMubm9k ZSx7dmlld0JveDpjfSksYi5zdG9wKCl9KSgtMSksYi5vbigic25hcC51dGls LmF0dHIudHJhbnNmb3JtIixmdW5jdGlvbihhKXt0aGlzLnRyYW5zZm9ybShh KSxiLnN0b3AoKX0pKC0xKSxiLm9uKCJzbmFwLnV0aWwuYXR0ci5yIixmdW5j dGlvbihhKXsicmVjdCI9PXRoaXMudHlwZSYmKGIuc3RvcCgpLHAodGhpcy5u b2RlLHtyeDphLHJ5OmF9KSl9KSgtMSksYi5vbigic25hcC51dGlsLmF0dHIu dGV4dHBhdGgiLGZ1bmN0aW9uKGEpe2lmKGIuc3RvcCgpLCJ0ZXh0Ij09dGhp cy50eXBlKXt2YXIgZCxlLGY7aWYoIWEmJnRoaXMudGV4dFBhdGgpe2Zvcihl PXRoaXMudGV4dFBhdGg7ZS5ub2RlLmZpcnN0Q2hpbGQ7KXRoaXMubm9kZS5h cHBlbmRDaGlsZChlLm5vZGUuZmlyc3RDaGlsZCk7cmV0dXJuIGUucmVtb3Zl KCksdm9pZCBkZWxldGUgdGhpcy50ZXh0UGF0aH1pZihtKGEsInN0cmluZyIp KXt2YXIgZz1uKHRoaXMpLGg9bChnLnBhcmVudE5vZGUpLnBhdGgoYSk7Zy5h cHBlbmRDaGlsZChoLm5vZGUpLGQ9aC5pZCxoLmF0dHIoe2lkOmR9KX1lbHNl IGE9bChhKSxhIGluc3RhbmNlb2YgYyYmKGQ9YS5hdHRyKCJpZCIpLGR8fChk PWEuaWQsYS5hdHRyKHtpZDpkfSkpKTtpZihkKWlmKGU9dGhpcy50ZXh0UGF0 aCxmPXRoaXMubm9kZSxlKWUuYXR0cih7InhsaW5rOmhyZWYiOiIjIitkfSk7 ZWxzZXtmb3IoZT1wKCJ0ZXh0UGF0aCIseyJ4bGluazpocmVmIjoiIyIrZH0p O2YuZmlyc3RDaGlsZDspZS5hcHBlbmRDaGlsZChmLmZpcnN0Q2hpbGQpO2Yu YXBwZW5kQ2hpbGQoZSksdGhpcy50ZXh0UGF0aD1sKGUpfX19KSgtMSksYi5v bigic25hcC51dGlsLmF0dHIudGV4dCIsZnVuY3Rpb24oYSl7aWYoInRleHQi PT10aGlzLnR5cGUpe2Zvcih2YXIgYz10aGlzLm5vZGUsZD1mdW5jdGlvbihh KXt2YXIgYj1wKCJ0c3BhbiIpO2lmKG0oYSwiYXJyYXkiKSlmb3IodmFyIGM9 MDtjPGEubGVuZ3RoO2MrKyliLmFwcGVuZENoaWxkKGQoYVtjXSkpO2Vsc2Ug Yi5hcHBlbmRDaGlsZChlLmRvYy5jcmVhdGVUZXh0Tm9kZShhKSk7cmV0dXJu IGIubm9ybWFsaXplJiZiLm5vcm1hbGl6ZSgpLGJ9O2MuZmlyc3RDaGlsZDsp Yy5yZW1vdmVDaGlsZChjLmZpcnN0Q2hpbGQpO2Zvcih2YXIgZj1kKGEpO2Yu Zmlyc3RDaGlsZDspYy5hcHBlbmRDaGlsZChmLmZpcnN0Q2hpbGQpfWIuc3Rv cCgpfSkoLTEpLGIub24oInNuYXAudXRpbC5hdHRyLmZvbnRTaXplIixoKSgt MSksYi5vbigic25hcC51dGlsLmF0dHIuZm9udC1zaXplIixoKSgtMSksYi5v bigic25hcC51dGlsLmdldGF0dHIudHJhbnNmb3JtIixmdW5jdGlvbigpe3Jl dHVybiBiLnN0b3AoKSx0aGlzLnRyYW5zZm9ybSgpfSkoLTEpLGIub24oInNu YXAudXRpbC5nZXRhdHRyLnRleHRwYXRoIixmdW5jdGlvbigpe3JldHVybiBi LnN0b3AoKSx0aGlzLnRleHRQYXRofSkoLTEpLGZ1bmN0aW9uKCl7ZnVuY3Rp b24gYyhjKXtyZXR1cm4gZnVuY3Rpb24oKXtiLnN0b3AoKTt2YXIgZD1lLmRv Yy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubm9kZSxudWxs KS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJrZXItIitjKTtyZXR1cm4ibm9uZSI9 PWQ/ZDphKGUuZG9jLmdldEVsZW1lbnRCeUlkKGQubWF0Y2gobylbMV0pKX19 ZnVuY3Rpb24gZChhKXtyZXR1cm4gZnVuY3Rpb24oYyl7Yi5zdG9wKCk7dmFy IGQ9Im1hcmtlciIrYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnN1YnN0 cmluZygxKTtpZigiIj09Y3x8IWMpcmV0dXJuIHZvaWQodGhpcy5ub2RlLnN0 eWxlW2RdPSJub25lIik7aWYoIm1hcmtlciI9PWMudHlwZSl7dmFyIGU9Yy5u b2RlLmlkO3JldHVybiBlfHxwKGMubm9kZSx7aWQ6Yy5pZH0pLHZvaWQodGhp cy5ub2RlLnN0eWxlW2RdPXEoZSkpfX19Yi5vbigic25hcC51dGlsLmdldGF0 dHIubWFya2VyLWVuZCIsYygiZW5kIikpKC0xKSxiLm9uKCJzbmFwLnV0aWwu Z2V0YXR0ci5tYXJrZXJFbmQiLGMoImVuZCIpKSgtMSksYi5vbigic25hcC51 dGlsLmdldGF0dHIubWFya2VyLXN0YXJ0IixjKCJzdGFydCIpKSgtMSksYi5v bigic25hcC51dGlsLmdldGF0dHIubWFya2VyU3RhcnQiLGMoInN0YXJ0Iikp KC0xKSxiLm9uKCJzbmFwLnV0aWwuZ2V0YXR0ci5tYXJrZXItbWlkIixjKCJt aWQiKSkoLTEpLGIub24oInNuYXAudXRpbC5nZXRhdHRyLm1hcmtlck1pZCIs YygibWlkIikpKC0xKSxiLm9uKCJzbmFwLnV0aWwuYXR0ci5tYXJrZXItZW5k IixkKCJlbmQiKSkoLTEpLGIub24oInNuYXAudXRpbC5hdHRyLm1hcmtlckVu ZCIsZCgiZW5kIikpKC0xKSxiLm9uKCJzbmFwLnV0aWwuYXR0ci5tYXJrZXIt c3RhcnQiLGQoInN0YXJ0IikpKC0xKSxiLm9uKCJzbmFwLnV0aWwuYXR0ci5t YXJrZXJTdGFydCIsZCgic3RhcnQiKSkoLTEpLGIub24oInNuYXAudXRpbC5h dHRyLm1hcmtlci1taWQiLGQoIm1pZCIpKSgtMSksYi5vbigic25hcC51dGls LmF0dHIubWFya2VyTWlkIixkKCJtaWQiKSkoLTEpfSgpLGIub24oInNuYXAu dXRpbC5nZXRhdHRyLnIiLGZ1bmN0aW9uKCl7cmV0dXJuInJlY3QiPT10aGlz LnR5cGUmJnAodGhpcy5ub2RlLCJyeCIpPT1wKHRoaXMubm9kZSwicnkiKT8o Yi5zdG9wKCkscCh0aGlzLm5vZGUsInJ4IikpOnZvaWQgMH0pKC0xKSxiLm9u KCJzbmFwLnV0aWwuZ2V0YXR0ci50ZXh0IixmdW5jdGlvbigpe2lmKCJ0ZXh0 Ij09dGhpcy50eXBlfHwidHNwYW4iPT10aGlzLnR5cGUpe2Iuc3RvcCgpO3Zh ciBhPWkodGhpcy5ub2RlKTtyZXR1cm4gMT09YS5sZW5ndGg/YVswXTphfX0p KC0xKSxiLm9uKCJzbmFwLnV0aWwuZ2V0YXR0ci4jdGV4dCIsZnVuY3Rpb24o KXtyZXR1cm4gdGhpcy5ub2RlLnRleHRDb250ZW50fSkoLTEpLGIub24oInNu YXAudXRpbC5nZXRhdHRyLnZpZXdCb3giLGZ1bmN0aW9uKCl7Yi5zdG9wKCk7 dmFyIGM9cCh0aGlzLm5vZGUsInZpZXdCb3giKTtyZXR1cm4gYz8oYz1jLnNw bGl0KHMpLGEuXy5ib3goK2NbMF0sK2NbMV0sK2NbMl0sK2NbM10pKTp2b2lk IDB9KSgtMSksYi5vbigic25hcC51dGlsLmdldGF0dHIucG9pbnRzIixmdW5j dGlvbigpe3ZhciBhPXAodGhpcy5ub2RlLCJwb2ludHMiKTtyZXR1cm4gYi5z dG9wKCksYT9hLnNwbGl0KHMpOnZvaWQgMH0pKC0xKSxiLm9uKCJzbmFwLnV0 aWwuZ2V0YXR0ci5wYXRoIixmdW5jdGlvbigpe3ZhciBhPXAodGhpcy5ub2Rl LCJkIik7cmV0dXJuIGIuc3RvcCgpLGF9KSgtMSksYi5vbigic25hcC51dGls LmdldGF0dHIuY2xhc3MiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5j bGFzc05hbWUuYmFzZVZhbH0pKC0xKSxiLm9uKCJzbmFwLnV0aWwuZ2V0YXR0 ci5mb250U2l6ZSIsaikoLTEpLGIub24oInNuYXAudXRpbC5nZXRhdHRyLmZv bnQtc2l6ZSIsaikoLTEpfSksZC5wbHVnaW4oZnVuY3Rpb24oYSxiKXt2YXIg Yz0vXFMrL2csZD1TdHJpbmcsZT1iLnByb3RvdHlwZTtlLmFkZENsYXNzPWZ1 bmN0aW9uKGEpe3ZhciBiLGUsZixnLGg9ZChhfHwiIikubWF0Y2goYyl8fFtd LGk9dGhpcy5ub2RlLGo9aS5jbGFzc05hbWUuYmFzZVZhbCxrPWoubWF0Y2go Yyl8fFtdO2lmKGgubGVuZ3RoKXtmb3IoYj0wO2Y9aFtiKytdOyllPWsuaW5k ZXhPZihmKSx+ZXx8ay5wdXNoKGYpO2c9ay5qb2luKCIgIiksaiE9ZyYmKGku Y2xhc3NOYW1lLmJhc2VWYWw9Zyl9cmV0dXJuIHRoaXN9LGUucmVtb3ZlQ2xh c3M9ZnVuY3Rpb24oYSl7dmFyIGIsZSxmLGcsaD1kKGF8fCIiKS5tYXRjaChj KXx8W10saT10aGlzLm5vZGUsaj1pLmNsYXNzTmFtZS5iYXNlVmFsLGs9ai5t YXRjaChjKXx8W107aWYoay5sZW5ndGgpe2ZvcihiPTA7Zj1oW2IrK107KWU9 ay5pbmRleE9mKGYpLH5lJiZrLnNwbGljZShlLDEpO2c9ay5qb2luKCIgIiks aiE9ZyYmKGkuY2xhc3NOYW1lLmJhc2VWYWw9Zyl9cmV0dXJuIHRoaXN9LGUu aGFzQ2xhc3M9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5ub2RlLGQ9Yi5jbGFz c05hbWUuYmFzZVZhbCxlPWQubWF0Y2goYyl8fFtdO3JldHVybiEhfmUuaW5k ZXhPZihhKX0sZS50b2dnbGVDbGFzcz1mdW5jdGlvbihhLGIpe2lmKG51bGwh PWIpcmV0dXJuIGI/dGhpcy5hZGRDbGFzcyhhKTp0aGlzLnJlbW92ZUNsYXNz KGEpO3ZhciBkLGUsZixnLGg9KGF8fCIiKS5tYXRjaChjKXx8W10saT10aGlz Lm5vZGUsaj1pLmNsYXNzTmFtZS5iYXNlVmFsLGs9ai5tYXRjaChjKXx8W107 Zm9yKGQ9MDtmPWhbZCsrXTspZT1rLmluZGV4T2YoZiksfmU/ay5zcGxpY2Uo ZSwxKTprLnB1c2goZik7cmV0dXJuIGc9ay5qb2luKCIgIiksaiE9ZyYmKGku Y2xhc3NOYW1lLmJhc2VWYWw9ZyksdGhpc319KSxkLnBsdWdpbihmdW5jdGlv bigpe2Z1bmN0aW9uIGEoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gYyhhKXtyZXR1 cm4gZnVuY3Rpb24oYil7cmV0dXJuK2IudG9GaXhlZCgzKSthfX12YXIgZD17 IisiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0sIi0iOmZ1bmN0aW9uKGEs Yil7cmV0dXJuIGEtYn0sIi8iOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEvYn0s IioiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEqYn19LGU9U3RyaW5nLGY9L1th LXpdKyQvaSxnPS9eXHMqKFsrXC1cLypdKVxzKj1ccyooW1xkLmVFK1wtXSsp XHMqKFteXGRcc10rKT9ccyokLztiLm9uKCJzbmFwLnV0aWwuYXR0ciIsZnVu Y3Rpb24oYSl7dmFyIGM9ZShhKS5tYXRjaChnKTtpZihjKXt2YXIgaD1iLm50 KCksaT1oLnN1YnN0cmluZyhoLmxhc3RJbmRleE9mKCIuIikrMSksaj10aGlz LmF0dHIoaSksaz17fTtiLnN0b3AoKTt2YXIgbD1jWzNdfHwiIixtPWoubWF0 Y2goZiksbj1kW2NbMV1dO2lmKG0mJm09PWw/YT1uKHBhcnNlRmxvYXQoaiks K2NbMl0pOihqPXRoaXMuYXNQWChpKSxhPW4odGhpcy5hc1BYKGkpLHRoaXMu YXNQWChpLGNbMl0rbCkpKSxpc05hTihqKXx8aXNOYU4oYSkpcmV0dXJuO2tb aV09YSx0aGlzLmF0dHIoayl9fSkoLTEwKSxiLm9uKCJzbmFwLnV0aWwuZXF1 YWwiLGZ1bmN0aW9uKGgsaSl7dmFyIGo9ZSh0aGlzLmF0dHIoaCl8fCIiKSxr PWUoaSkubWF0Y2goZyk7aWYoayl7Yi5zdG9wKCk7dmFyIGw9a1szXXx8IiIs bT1qLm1hdGNoKGYpLG49ZFtrWzFdXTtyZXR1cm4gbSYmbT09bD97ZnJvbTpw YXJzZUZsb2F0KGopLHRvOm4ocGFyc2VGbG9hdChqKSwra1syXSksZjpjKG0p fTooaj10aGlzLmFzUFgoaCkse2Zyb206aix0bzpuKGosdGhpcy5hc1BYKGgs a1syXStsKSksZjphfSl9fSkoLTEwKX0pLGQucGx1Z2luKGZ1bmN0aW9uKGMs ZCxlLGYpe3ZhciBnPWUucHJvdG90eXBlLGg9Yy5pcztnLnJlY3Q9ZnVuY3Rp b24oYSxiLGMsZCxlLGYpe3ZhciBnO3JldHVybiBudWxsPT1mJiYoZj1lKSxo KGEsIm9iamVjdCIpJiYiW29iamVjdCBPYmplY3RdIj09YT9nPWE6bnVsbCE9 YSYmKGc9e3g6YSx5OmIsd2lkdGg6YyxoZWlnaHQ6ZH0sbnVsbCE9ZSYmKGcu cng9ZSxnLnJ5PWYpKSx0aGlzLmVsKCJyZWN0IixnKX0sZy5jaXJjbGU9ZnVu Y3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBoKGEsIm9iamVjdCIpJiYiW29i amVjdCBPYmplY3RdIj09YT9kPWE6bnVsbCE9YSYmKGQ9e2N4OmEsY3k6Yixy OmN9KSx0aGlzLmVsKCJjaXJjbGUiLGQpfTt2YXIgaT1mdW5jdGlvbigpe2Z1 bmN0aW9uIGEoKXt0aGlzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcyl9 cmV0dXJuIGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Zi5kb2MuY3JlYXRlRWxlbWVu dCgiaW1nIiksZT1mLmRvYy5ib2R5O2Quc3R5bGUuY3NzVGV4dD0icG9zaXRp b246YWJzb2x1dGU7bGVmdDotOTk5OWVtO3RvcDotOTk5OWVtIixkLm9ubG9h ZD1mdW5jdGlvbigpe2MuY2FsbChkKSxkLm9ubG9hZD1kLm9uZXJyb3I9bnVs bCxlLnJlbW92ZUNoaWxkKGQpfSxkLm9uZXJyb3I9YSxlLmFwcGVuZENoaWxk KGQpLGQuc3JjPWJ9fSgpO2cuaW1hZ2U9ZnVuY3Rpb24oYSxiLGQsZSxmKXt2 YXIgZz10aGlzLmVsKCJpbWFnZSIpO2lmKGgoYSwib2JqZWN0IikmJiJzcmMi aW4gYSlnLmF0dHIoYSk7ZWxzZSBpZihudWxsIT1hKXt2YXIgaj17InhsaW5r OmhyZWYiOmEscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9O251bGwhPWIm Jm51bGwhPWQmJihqLng9YixqLnk9ZCksbnVsbCE9ZSYmbnVsbCE9Zj8oai53 aWR0aD1lLGouaGVpZ2h0PWYpOmkoYSxmdW5jdGlvbigpe2MuXy4kKGcubm9k ZSx7d2lkdGg6dGhpcy5vZmZzZXRXaWR0aCxoZWlnaHQ6dGhpcy5vZmZzZXRI ZWlnaHR9KX0pLGMuXy4kKGcubm9kZSxqKX1yZXR1cm4gZ30sZy5lbGxpcHNl PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlO3JldHVybiBoKGEsIm9iamVjdCIp JiYiW29iamVjdCBPYmplY3RdIj09YT9lPWE6bnVsbCE9YSYmKGU9e2N4OmEs Y3k6YixyeDpjLHJ5OmR9KSx0aGlzLmVsKCJlbGxpcHNlIixlKX0sZy5wYXRo PWZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBoKGEsIm9iamVjdCIpJiYhaChh LCJhcnJheSIpP2I9YTphJiYoYj17ZDphfSksdGhpcy5lbCgicGF0aCIsYil9 LGcuZ3JvdXA9Zy5nPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZWwoImciKTty ZXR1cm4gMT09YXJndW1lbnRzLmxlbmd0aCYmYSYmIWEudHlwZT9iLmF0dHIo YSk6YXJndW1lbnRzLmxlbmd0aCYmYi5hZGQoQXJyYXkucHJvdG90eXBlLnNs aWNlLmNhbGwoYXJndW1lbnRzLDApKSxifSxnLnN2Zz1mdW5jdGlvbihhLGIs YyxkLGUsZixnLGkpe3ZhciBqPXt9O3JldHVybiBoKGEsIm9iamVjdCIpJiZu dWxsPT1iP2o9YToobnVsbCE9YSYmKGoueD1hKSxudWxsIT1iJiYoai55PWIp LG51bGwhPWMmJihqLndpZHRoPWMpLG51bGwhPWQmJihqLmhlaWdodD1kKSxu dWxsIT1lJiZudWxsIT1mJiZudWxsIT1nJiZudWxsIT1pJiYoai52aWV3Qm94 PVtlLGYsZyxpXSkpLHRoaXMuZWwoInN2ZyIsail9LGcubWFzaz1mdW5jdGlv bihhKXt2YXIgYj10aGlzLmVsKCJtYXNrIik7cmV0dXJuIDE9PWFyZ3VtZW50 cy5sZW5ndGgmJmEmJiFhLnR5cGU/Yi5hdHRyKGEpOmFyZ3VtZW50cy5sZW5n dGgmJmIuYWRkKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50 cywwKSksYn0sZy5wdHJuPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaSl7aWYo aChhLCJvYmplY3QiKSl2YXIgaj1hO2Vsc2Ugaj17cGF0dGVyblVuaXRzOiJ1 c2VyU3BhY2VPblVzZSJ9LGEmJihqLng9YSksYiYmKGoueT1iKSxudWxsIT1j JiYoai53aWR0aD1jKSxudWxsIT1kJiYoai5oZWlnaHQ9ZCksai52aWV3Qm94 PW51bGwhPWUmJm51bGwhPWYmJm51bGwhPWcmJm51bGwhPWk/W2UsZixnLGld OlthfHwwLGJ8fDAsY3x8MCxkfHwwXTtyZXR1cm4gdGhpcy5lbCgicGF0dGVy biIsail9LGcudXNlPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hPyhhIGlu c3RhbmNlb2YgZCYmKGEuYXR0cigiaWQiKXx8YS5hdHRyKHtpZDpjLl8uaWQo YSl9KSxhPWEuYXR0cigiaWQiKSksIiMiPT1TdHJpbmcoYSkuY2hhckF0KCkm JihhPWEuc3Vic3RyaW5nKDEpKSx0aGlzLmVsKCJ1c2UiLHsieGxpbms6aHJl ZiI6IiMiK2F9KSk6ZC5wcm90b3R5cGUudXNlLmNhbGwodGhpcyl9LGcuc3lt Ym9sPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXt9O3JldHVybiBudWxsIT1h JiZudWxsIT1iJiZudWxsIT1jJiZudWxsIT1kJiYoZS52aWV3Qm94PVthLGIs YyxkXSksdGhpcy5lbCgic3ltYm9sIixlKX0sZy50ZXh0PWZ1bmN0aW9uKGEs YixjKXt2YXIgZD17fTtyZXR1cm4gaChhLCJvYmplY3QiKT9kPWE6bnVsbCE9 YSYmKGQ9e3g6YSx5OmIsdGV4dDpjfHwiIn0pLHRoaXMuZWwoInRleHQiLGQp fSxnLmxpbmU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e307cmV0dXJuIGgo YSwib2JqZWN0Iik/ZT1hOm51bGwhPWEmJihlPXt4MTphLHgyOmMseTE6Yix5 MjpkfSksdGhpcy5lbCgibGluZSIsZSl9LGcucG9seWxpbmU9ZnVuY3Rpb24o YSl7YXJndW1lbnRzLmxlbmd0aD4xJiYoYT1BcnJheS5wcm90b3R5cGUuc2xp Y2UuY2FsbChhcmd1bWVudHMsMCkpO3ZhciBiPXt9O3JldHVybiBoKGEsIm9i amVjdCIpJiYhaChhLCJhcnJheSIpP2I9YTpudWxsIT1hJiYoYj17cG9pbnRz OmF9KSx0aGlzLmVsKCJwb2x5bGluZSIsYil9LGcucG9seWdvbj1mdW5jdGlv bihhKXthcmd1bWVudHMubGVuZ3RoPjEmJihhPUFycmF5LnByb3RvdHlwZS5z bGljZS5jYWxsKGFyZ3VtZW50cywwKSk7dmFyIGI9e307cmV0dXJuIGgoYSwi b2JqZWN0IikmJiFoKGEsImFycmF5Iik/Yj1hOm51bGwhPWEmJihiPXtwb2lu dHM6YX0pLHRoaXMuZWwoInBvbHlnb24iLGIpfSxmdW5jdGlvbigpe2Z1bmN0 aW9uIGQoKXtyZXR1cm4gdGhpcy5zZWxlY3RBbGwoInN0b3AiKX1mdW5jdGlv biBlKGEsYil7dmFyIGQ9aygic3RvcCIpLGU9e29mZnNldDorYisiJSJ9O3Jl dHVybiBhPWMuY29sb3IoYSksZVsic3RvcC1jb2xvciJdPWEuaGV4LGEub3Bh Y2l0eTwxJiYoZVsic3RvcC1vcGFjaXR5Il09YS5vcGFjaXR5KSxrKGQsZSks dGhpcy5ub2RlLmFwcGVuZENoaWxkKGQpLHRoaXN9ZnVuY3Rpb24gZigpe2lm KCJsaW5lYXJHcmFkaWVudCI9PXRoaXMudHlwZSl7dmFyIGE9ayh0aGlzLm5v ZGUsIngxIil8fDAsYj1rKHRoaXMubm9kZSwieDIiKXx8MSxkPWsodGhpcy5u b2RlLCJ5MSIpfHwwLGU9ayh0aGlzLm5vZGUsInkyIil8fDA7cmV0dXJuIGMu Xy5ib3goYSxkLG1hdGguYWJzKGItYSksbWF0aC5hYnMoZS1kKSl9dmFyIGY9 dGhpcy5ub2RlLmN4fHwuNSxnPXRoaXMubm9kZS5jeXx8LjUsaD10aGlzLm5v ZGUucnx8MDtyZXR1cm4gYy5fLmJveChmLWgsZy1oLDIqaCwyKmgpfWZ1bmN0 aW9uIGgoYSxjKXtmdW5jdGlvbiBkKGEsYil7Zm9yKHZhciBjPShiLWwpLyhh LW0pLGQ9bTthPmQ7ZCsrKWdbZF0ub2Zmc2V0PSsoK2wrYyooZC1tKSkudG9G aXhlZCgyKTttPWEsbD1ifXZhciBlLGY9Yigic25hcC51dGlsLmdyYWQucGFy c2UiLG51bGwsYykuZmlyc3REZWZpbmVkKCk7aWYoIWYpcmV0dXJuIG51bGw7 Zi5wYXJhbXMudW5zaGlmdChhKSxlPSJsIj09Zi50eXBlLnRvTG93ZXJDYXNl KCk/aS5hcHBseSgwLGYucGFyYW1zKTpqLmFwcGx5KDAsZi5wYXJhbXMpLGYu dHlwZSE9Zi50eXBlLnRvTG93ZXJDYXNlKCkmJmsoZS5ub2RlLHtncmFkaWVu dFVuaXRzOiJ1c2VyU3BhY2VPblVzZSJ9KTt2YXIgZz1mLnN0b3BzLGg9Zy5s ZW5ndGgsbD0wLG09MDtoLS07Zm9yKHZhciBuPTA7aD5uO24rKykib2Zmc2V0 ImluIGdbbl0mJmQobixnW25dLm9mZnNldCk7Zm9yKGdbaF0ub2Zmc2V0PWdb aF0ub2Zmc2V0fHwxMDAsZChoLGdbaF0ub2Zmc2V0KSxuPTA7aD49bjtuKysp e3ZhciBvPWdbbl07ZS5hZGRTdG9wKG8uY29sb3Isby5vZmZzZXQpfXJldHVy biBlfWZ1bmN0aW9uIGkoYSxiLGcsaCxpKXt2YXIgaj1jLl8ubWFrZSgibGlu ZWFyR3JhZGllbnQiLGEpO3JldHVybiBqLnN0b3BzPWQsai5hZGRTdG9wPWUs ai5nZXRCQm94PWYsbnVsbCE9YiYmayhqLm5vZGUse3gxOmIseTE6Zyx4Mjpo LHkyOml9KSxqfWZ1bmN0aW9uIGooYSxiLGcsaCxpLGope3ZhciBsPWMuXy5t YWtlKCJyYWRpYWxHcmFkaWVudCIsYSk7cmV0dXJuIGwuc3RvcHM9ZCxsLmFk ZFN0b3A9ZSxsLmdldEJCb3g9ZixudWxsIT1iJiZrKGwubm9kZSx7Y3g6Yixj eTpnLHI6aH0pLG51bGwhPWkmJm51bGwhPWomJmsobC5ub2RlLHtmeDppLGZ5 Omp9KSxsfXZhciBrPWMuXy4kO2cuZ3JhZGllbnQ9ZnVuY3Rpb24oYSl7cmV0 dXJuIGgodGhpcy5kZWZzLGEpfSxnLmdyYWRpZW50TGluZWFyPWZ1bmN0aW9u KGEsYixjLGQpe3JldHVybiBpKHRoaXMuZGVmcyxhLGIsYyxkKX0sZy5ncmFk aWVudFJhZGlhbD1mdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBqKHRoaXMu ZGVmcyxhLGIsYyxkLGUpfSxnLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGEs Yj10aGlzLm5vZGUub3duZXJEb2N1bWVudCxkPWIuY3JlYXRlRG9jdW1lbnRG cmFnbWVudCgpLGU9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKSxmPXRoaXMubm9k ZS5jbG9uZU5vZGUoITApO3JldHVybiBkLmFwcGVuZENoaWxkKGUpLGUuYXBw ZW5kQ2hpbGQoZiksYy5fLiQoZix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3Jn LzIwMDAvc3ZnIn0pLGE9ZS5pbm5lckhUTUwsZC5yZW1vdmVDaGlsZChkLmZp cnN0Q2hpbGQpLGF9LGcudG9EYXRhVVJMPWZ1bmN0aW9uKCl7cmV0dXJuIGEm JmEuYnRvYT8iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwiK2J0b2EodW5l c2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMpKSk6dm9pZCAwfSxnLmNs ZWFyPWZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9dGhpcy5ub2RlLmZpcnN0Q2hp bGQ7YjspYT1iLm5leHRTaWJsaW5nLCJkZWZzIiE9Yi50YWdOYW1lP2IucGFy ZW50Tm9kZS5yZW1vdmVDaGlsZChiKTpnLmNsZWFyLmNhbGwoe25vZGU6Yn0p LGI9YX19KCl9KSxkLnBsdWdpbihmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMo YSl7dmFyIGI9Yy5wcz1jLnBzfHx7fTtyZXR1cm4gYlthXT9iW2FdLnNsZWVw PTEwMDpiW2FdPXtzbGVlcDoxMDB9LHNldFRpbWVvdXQoZnVuY3Rpb24oKXtm b3IodmFyIGMgaW4gYiliW0tdKGMpJiZjIT1hJiYoYltjXS5zbGVlcC0tLCFi W2NdLnNsZWVwJiZkZWxldGUgYltjXSl9KSxiW2FdfWZ1bmN0aW9uIGQoYSxi LGMsZCl7cmV0dXJuIG51bGw9PWEmJihhPWI9Yz1kPTApLG51bGw9PWImJihi PWEueSxjPWEud2lkdGgsZD1hLmhlaWdodCxhPWEueCkse3g6YSx5OmIsd2lk dGg6Yyx3OmMsaGVpZ2h0OmQsaDpkLHgyOmErYyx5MjpiK2QsY3g6YStjLzIs Y3k6YitkLzIscjE6Ti5taW4oYyxkKS8yLHIyOk4ubWF4KGMsZCkvMixyMDpO LnNxcnQoYypjK2QqZCkvMixwYXRoOncoYSxiLGMsZCksdmI6W2EsYixjLGRd LmpvaW4oIiAiKX19ZnVuY3Rpb24gZSgpe3JldHVybiB0aGlzLmpvaW4oIiwi KS5yZXBsYWNlKEwsIiQxIil9ZnVuY3Rpb24gZihhKXt2YXIgYj1KKGEpO3Jl dHVybiBiLnRvU3RyaW5nPWUsYn1mdW5jdGlvbiBnKGEsYixjLGQsZSxmLGcs aCxqKXtyZXR1cm4gbnVsbD09aj9uKGEsYixjLGQsZSxmLGcsaCk6aShhLGIs YyxkLGUsZixnLGgsbyhhLGIsYyxkLGUsZixnLGgsaikpfWZ1bmN0aW9uIGgo YyxkKXtmdW5jdGlvbiBlKGEpe3JldHVybisoK2EpLnRvRml4ZWQoMyl9cmV0 dXJuIGEuXy5jYWNoZXIoZnVuY3Rpb24oYSxmLGgpe2EgaW5zdGFuY2VvZiBi JiYoYT1hLmF0dHIoImQiKSksYT1FKGEpO2Zvcih2YXIgaixrLGwsbSxuLG89 IiIscD17fSxxPTAscj0wLHM9YS5sZW5ndGg7cz5yO3IrKyl7aWYobD1hW3Jd LCJNIj09bFswXSlqPStsWzFdLGs9K2xbMl07ZWxzZXtpZihtPWcoaixrLGxb MV0sbFsyXSxsWzNdLGxbNF0sbFs1XSxsWzZdKSxxK20+Zil7aWYoZCYmIXAu c3RhcnQpe2lmKG49ZyhqLGssbFsxXSxsWzJdLGxbM10sbFs0XSxsWzVdLGxb Nl0sZi1xKSxvKz1bIkMiK2Uobi5zdGFydC54KSxlKG4uc3RhcnQueSksZShu Lm0ueCksZShuLm0ueSksZShuLngpLGUobi55KV0saClyZXR1cm4gbztwLnN0 YXJ0PW8sbz1bIk0iK2Uobi54KSxlKG4ueSkrIkMiK2Uobi5uLngpLGUobi5u LnkpLGUobi5lbmQueCksZShuLmVuZC55KSxlKGxbNV0pLGUobFs2XSldLmpv aW4oKSxxKz1tLGo9K2xbNV0saz0rbFs2XTtjb250aW51ZX1pZighYyYmIWQp cmV0dXJuIG49ZyhqLGssbFsxXSxsWzJdLGxbM10sbFs0XSxsWzVdLGxbNl0s Zi1xKX1xKz1tLGo9K2xbNV0saz0rbFs2XX1vKz1sLnNoaWZ0KCkrbH1yZXR1 cm4gcC5lbmQ9byxuPWM/cTpkP3A6aShqLGssbFswXSxsWzFdLGxbMl0sbFsz XSxsWzRdLGxbNV0sMSl9LG51bGwsYS5fLmNsb25lKX1mdW5jdGlvbiBpKGEs YixjLGQsZSxmLGcsaCxpKXt2YXIgaj0xLWksaz1SKGosMyksbD1SKGosMiks bT1pKmksbj1tKmksbz1rKmErMypsKmkqYyszKmoqaSppKmUrbipnLHA9aypi KzMqbCppKmQrMypqKmkqaSpmK24qaCxxPWErMippKihjLWEpK20qKGUtMipj K2EpLHI9YisyKmkqKGQtYikrbSooZi0yKmQrYikscz1jKzIqaSooZS1jKStt KihnLTIqZStjKSx0PWQrMippKihmLWQpK20qKGgtMipmK2QpLHU9aiphK2kq Yyx2PWoqYitpKmQsdz1qKmUraSpnLHg9aipmK2kqaCx5PTkwLTE4MCpOLmF0 YW4yKHEtcyxyLXQpL087cmV0dXJue3g6byx5OnAsbTp7eDpxLHk6cn0sbjp7 eDpzLHk6dH0sc3RhcnQ6e3g6dSx5OnZ9LGVuZDp7eDp3LHk6eH0sYWxwaGE6 eX19ZnVuY3Rpb24gaihiLGMsZSxmLGcsaCxpLGope2EuaXMoYiwiYXJyYXki KXx8KGI9W2IsYyxlLGYsZyxoLGksal0pO3ZhciBrPUQuYXBwbHkobnVsbCxi KTtyZXR1cm4gZChrLm1pbi54LGsubWluLnksay5tYXgueC1rLm1pbi54LGsu bWF4Lnktay5taW4ueSl9ZnVuY3Rpb24gayhhLGIsYyl7cmV0dXJuIGI+PWEu eCYmYjw9YS54K2Eud2lkdGgmJmM+PWEueSYmYzw9YS55K2EuaGVpZ2h0fWZ1 bmN0aW9uIGwoYSxiKXtyZXR1cm4gYT1kKGEpLGI9ZChiKSxrKGIsYS54LGEu eSl8fGsoYixhLngyLGEueSl8fGsoYixhLngsYS55Mil8fGsoYixhLngyLGEu eTIpfHxrKGEsYi54LGIueSl8fGsoYSxiLngyLGIueSl8fGsoYSxiLngsYi55 Mil8fGsoYSxiLngyLGIueTIpfHwoYS54PGIueDImJmEueD5iLnh8fGIueDxh LngyJiZiLng+YS54KSYmKGEueTxiLnkyJiZhLnk+Yi55fHxiLnk8YS55MiYm Yi55PmEueSl9ZnVuY3Rpb24gbShhLGIsYyxkLGUpe3ZhciBmPS0zKmIrOSpj LTkqZCszKmUsZz1hKmYrNipiLTEyKmMrNipkO3JldHVybiBhKmctMypiKzMq Y31mdW5jdGlvbiBuKGEsYixjLGQsZSxmLGcsaCxpKXtudWxsPT1pJiYoaT0x KSxpPWk+MT8xOjA+aT8wOmk7Zm9yKHZhciBqPWkvMixrPTEyLGw9Wy0uMTI1 MiwuMTI1MiwtLjM2NzgsLjM2NzgsLS41ODczLC41ODczLC0uNzY5OSwuNzY5 OSwtLjkwNDEsLjkwNDEsLS45ODE2LC45ODE2XSxuPVsuMjQ5MSwuMjQ5MSwu MjMzNSwuMjMzNSwuMjAzMiwuMjAzMiwuMTYwMSwuMTYwMSwuMTA2OSwuMTA2 OSwuMDQ3MiwuMDQ3Ml0sbz0wLHA9MDtrPnA7cCsrKXt2YXIgcT1qKmxbcF0r aixyPW0ocSxhLGMsZSxnKSxzPW0ocSxiLGQsZixoKSx0PXIqcitzKnM7bys9 bltwXSpOLnNxcnQodCl9cmV0dXJuIGoqb31mdW5jdGlvbiBvKGEsYixjLGQs ZSxmLGcsaCxpKXtpZighKDA+aXx8bihhLGIsYyxkLGUsZixnLGgpPGkpKXt2 YXIgaixrPTEsbD1rLzIsbT1rLWwsbz0uMDE7Zm9yKGo9bihhLGIsYyxkLGUs ZixnLGgsbSk7UyhqLWkpPm87KWwvPTIsbSs9KGk+aj8xOi0xKSpsLGo9bihh LGIsYyxkLGUsZixnLGgsbSk7cmV0dXJuIG19fWZ1bmN0aW9uIHAoYSxiLGMs ZCxlLGYsZyxoKXtpZighKFEoYSxjKTxQKGUsZyl8fFAoYSxjKT5RKGUsZyl8 fFEoYixkKTxQKGYsaCl8fFAoYixkKT5RKGYsaCkpKXt2YXIgaT0oYSpkLWIq YykqKGUtZyktKGEtYykqKGUqaC1mKmcpLGo9KGEqZC1iKmMpKihmLWgpLShi LWQpKihlKmgtZipnKSxrPShhLWMpKihmLWgpLShiLWQpKihlLWcpO2lmKGsp e3ZhciBsPWkvayxtPWovayxuPStsLnRvRml4ZWQoMiksbz0rbS50b0ZpeGVk KDIpO2lmKCEobjwrUChhLGMpLnRvRml4ZWQoMil8fG4+K1EoYSxjKS50b0Zp eGVkKDIpfHxuPCtQKGUsZykudG9GaXhlZCgyKXx8bj4rUShlLGcpLnRvRml4 ZWQoMil8fG88K1AoYixkKS50b0ZpeGVkKDIpfHxvPitRKGIsZCkudG9GaXhl ZCgyKXx8bzwrUChmLGgpLnRvRml4ZWQoMil8fG8+K1EoZixoKS50b0ZpeGVk KDIpKSlyZXR1cm57eDpsLHk6bX19fX1mdW5jdGlvbiBxKGEsYixjKXt2YXIg ZD1qKGEpLGU9aihiKTtpZighbChkLGUpKXJldHVybiBjPzA6W107Zm9yKHZh ciBmPW4uYXBwbHkoMCxhKSxnPW4uYXBwbHkoMCxiKSxoPX5+KGYvOCksaz1+ fihnLzgpLG09W10sbz1bXSxxPXt9LHI9Yz8wOltdLHM9MDtoKzE+cztzKysp e3ZhciB0PWkuYXBwbHkoMCxhLmNvbmNhdChzL2gpKTttLnB1c2goe3g6dC54 LHk6dC55LHQ6cy9ofSl9Zm9yKHM9MDtrKzE+cztzKyspdD1pLmFwcGx5KDAs Yi5jb25jYXQocy9rKSksby5wdXNoKHt4OnQueCx5OnQueSx0OnMva30pO2Zv cihzPTA7aD5zO3MrKylmb3IodmFyIHU9MDtrPnU7dSsrKXt2YXIgdj1tW3Nd LHc9bVtzKzFdLHg9b1t1XSx5PW9bdSsxXSx6PVMody54LXYueCk8LjAwMT8i eSI6IngiLEE9Uyh5LngteC54KTwuMDAxPyJ5IjoieCIsQj1wKHYueCx2Lnks dy54LHcueSx4LngseC55LHkueCx5LnkpO2lmKEIpe2lmKHFbQi54LnRvRml4 ZWQoNCldPT1CLnkudG9GaXhlZCg0KSljb250aW51ZTtxW0IueC50b0ZpeGVk KDQpXT1CLnkudG9GaXhlZCg0KTt2YXIgQz12LnQrUygoQlt6XS12W3pdKS8o d1t6XS12W3pdKSkqKHcudC12LnQpLEQ9eC50K1MoKEJbQV0teFtBXSkvKHlb QV0teFtBXSkpKih5LnQteC50KTtDPj0wJiYxPj1DJiZEPj0wJiYxPj1EJiYo Yz9yKys6ci5wdXNoKHt4OkIueCx5OkIueSx0MTpDLHQyOkR9KSl9fXJldHVy biByfWZ1bmN0aW9uIHIoYSxiKXtyZXR1cm4gdChhLGIpfWZ1bmN0aW9uIHMo YSxiKXtyZXR1cm4gdChhLGIsMSl9ZnVuY3Rpb24gdChhLGIsYyl7YT1FKGEp LGI9RShiKTtmb3IodmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbj1jPzA6W10s bz0wLHA9YS5sZW5ndGg7cD5vO28rKyl7dmFyIHI9YVtvXTtpZigiTSI9PXJb MF0pZD1oPXJbMV0sZT1pPXJbMl07ZWxzZXsiQyI9PXJbMF0/KGw9W2QsZV0u Y29uY2F0KHIuc2xpY2UoMSkpLGQ9bFs2XSxlPWxbN10pOihsPVtkLGUsZCxl LGgsaSxoLGldLGQ9aCxlPWkpO2Zvcih2YXIgcz0wLHQ9Yi5sZW5ndGg7dD5z O3MrKyl7dmFyIHU9YltzXTtpZigiTSI9PXVbMF0pZj1qPXVbMV0sZz1rPXVb Ml07ZWxzZXsiQyI9PXVbMF0/KG09W2YsZ10uY29uY2F0KHUuc2xpY2UoMSkp LGY9bVs2XSxnPW1bN10pOihtPVtmLGcsZixnLGosayxqLGtdLGY9aixnPWsp O3ZhciB2PXEobCxtLGMpO2lmKGMpbis9djtlbHNle2Zvcih2YXIgdz0wLHg9 di5sZW5ndGg7eD53O3crKyl2W3ddLnNlZ21lbnQxPW8sdlt3XS5zZWdtZW50 Mj1zLHZbd10uYmV6MT1sLHZbd10uYmV6Mj1tO249bi5jb25jYXQodil9fX19 fXJldHVybiBufWZ1bmN0aW9uIHUoYSxiLGMpe3ZhciBkPXYoYSk7cmV0dXJu IGsoZCxiLGMpJiZ0KGEsW1siTSIsYixjXSxbIkgiLGQueDIrMTBdXSwxKSUy PT0xfWZ1bmN0aW9uIHYoYSl7dmFyIGI9YyhhKTtpZihiLmJib3gpcmV0dXJu IEooYi5iYm94KTtpZighYSlyZXR1cm4gZCgpO2E9RShhKTtmb3IodmFyIGUs Zj0wLGc9MCxoPVtdLGk9W10saj0wLGs9YS5sZW5ndGg7az5qO2orKylpZihl PWFbal0sIk0iPT1lWzBdKWY9ZVsxXSxnPWVbMl0saC5wdXNoKGYpLGkucHVz aChnKTtlbHNle3ZhciBsPUQoZixnLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1 XSxlWzZdKTtoPWguY29uY2F0KGwubWluLngsbC5tYXgueCksaT1pLmNvbmNh dChsLm1pbi55LGwubWF4LnkpLGY9ZVs1XSxnPWVbNl19dmFyIG09UC5hcHBs eSgwLGgpLG49UC5hcHBseSgwLGkpLG89US5hcHBseSgwLGgpLHA9US5hcHBs eSgwLGkpLHE9ZChtLG4sby1tLHAtbik7cmV0dXJuIGIuYmJveD1KKHEpLHF9 ZnVuY3Rpb24gdyhhLGIsYyxkLGYpe2lmKGYpcmV0dXJuW1siTSIsK2ErICtm LGJdLFsibCIsYy0yKmYsMF0sWyJhIixmLGYsMCwwLDEsZixmXSxbImwiLDAs ZC0yKmZdLFsiYSIsZixmLDAsMCwxLC1mLGZdLFsibCIsMipmLWMsMF0sWyJh IixmLGYsMCwwLDEsLWYsLWZdLFsibCIsMCwyKmYtZF0sWyJhIixmLGYsMCww LDEsZiwtZl0sWyJ6Il1dO3ZhciBnPVtbIk0iLGEsYl0sWyJsIixjLDBdLFsi bCIsMCxkXSxbImwiLC1jLDBdLFsieiJdXTtyZXR1cm4gZy50b1N0cmluZz1l LGd9ZnVuY3Rpb24geChhLGIsYyxkLGYpe2lmKG51bGw9PWYmJm51bGw9PWQm JihkPWMpLGE9K2EsYj0rYixjPStjLGQ9K2QsbnVsbCE9Zil2YXIgZz1NYXRo LlBJLzE4MCxoPWErYypNYXRoLmNvcygtZCpnKSxpPWErYypNYXRoLmNvcygt ZipnKSxqPWIrYypNYXRoLnNpbigtZCpnKSxrPWIrYypNYXRoLnNpbigtZipn KSxsPVtbIk0iLGgsal0sWyJBIixjLGMsMCwrKGYtZD4xODApLDAsaSxrXV07 ZWxzZSBsPVtbIk0iLGEsYl0sWyJtIiwwLC1kXSxbImEiLGMsZCwwLDEsMSww LDIqZF0sWyJhIixjLGQsMCwxLDEsMCwtMipkXSxbInoiXV07cmV0dXJuIGwu dG9TdHJpbmc9ZSxsfWZ1bmN0aW9uIHkoYil7dmFyIGQ9YyhiKSxnPVN0cmlu Zy5wcm90b3R5cGUudG9Mb3dlckNhc2U7aWYoZC5yZWwpcmV0dXJuIGYoZC5y ZWwpO2EuaXMoYiwiYXJyYXkiKSYmYS5pcyhiJiZiWzBdLCJhcnJheSIpfHwo Yj1hLnBhcnNlUGF0aFN0cmluZyhiKSk7dmFyIGg9W10saT0wLGo9MCxrPTAs bD0wLG09MDsiTSI9PWJbMF1bMF0mJihpPWJbMF1bMV0saj1iWzBdWzJdLGs9 aSxsPWosbSsrLGgucHVzaChbIk0iLGksal0pKTtmb3IodmFyIG49bSxvPWIu bGVuZ3RoO28+bjtuKyspe3ZhciBwPWhbbl09W10scT1iW25dO2lmKHFbMF0h PWcuY2FsbChxWzBdKSlzd2l0Y2gocFswXT1nLmNhbGwocVswXSkscFswXSl7 Y2FzZSJhIjpwWzFdPXFbMV0scFsyXT1xWzJdLHBbM109cVszXSxwWzRdPXFb NF0scFs1XT1xWzVdLHBbNl09KyhxWzZdLWkpLnRvRml4ZWQoMykscFs3XT0r KHFbN10taikudG9GaXhlZCgzKTticmVhaztjYXNlInYiOnBbMV09KyhxWzFd LWopLnRvRml4ZWQoMyk7YnJlYWs7Y2FzZSJtIjprPXFbMV0sbD1xWzJdO2Rl ZmF1bHQ6Zm9yKHZhciByPTEscz1xLmxlbmd0aDtzPnI7cisrKXBbcl09Kyhx W3JdLShyJTI/aTpqKSkudG9GaXhlZCgzKX1lbHNle3A9aFtuXT1bXSwibSI9 PXFbMF0mJihrPXFbMV0raSxsPXFbMl0raik7Zm9yKHZhciB0PTAsdT1xLmxl bmd0aDt1PnQ7dCsrKWhbbl1bdF09cVt0XX12YXIgdj1oW25dLmxlbmd0aDtz d2l0Y2goaFtuXVswXSl7Y2FzZSJ6IjppPWssaj1sO2JyZWFrO2Nhc2UiaCI6 aSs9K2hbbl1bdi0xXTticmVhaztjYXNlInYiOmorPStoW25dW3YtMV07YnJl YWs7ZGVmYXVsdDppKz0raFtuXVt2LTJdLGorPStoW25dW3YtMV19fXJldHVy biBoLnRvU3RyaW5nPWUsZC5yZWw9ZihoKSxofWZ1bmN0aW9uIHooYil7dmFy IGQ9YyhiKTtpZihkLmFicylyZXR1cm4gZihkLmFicyk7aWYoSShiLCJhcnJh eSIpJiZJKGImJmJbMF0sImFycmF5Iil8fChiPWEucGFyc2VQYXRoU3RyaW5n KGIpKSwhYnx8IWIubGVuZ3RoKXJldHVybltbIk0iLDAsMF1dO3ZhciBnLGg9 W10saT0wLGo9MCxrPTAsbD0wLG09MDsiTSI9PWJbMF1bMF0mJihpPStiWzBd WzFdLGo9K2JbMF1bMl0saz1pLGw9aixtKyssaFswXT1bIk0iLGksal0pO2Zv cih2YXIgbixvLHA9Mz09Yi5sZW5ndGgmJiJNIj09YlswXVswXSYmIlIiPT1i WzFdWzBdLnRvVXBwZXJDYXNlKCkmJiJaIj09YlsyXVswXS50b1VwcGVyQ2Fz ZSgpLHE9bSxyPWIubGVuZ3RoO3I+cTtxKyspe2lmKGgucHVzaChuPVtdKSxv PWJbcV0sZz1vWzBdLGchPWcudG9VcHBlckNhc2UoKSlzd2l0Y2goblswXT1n LnRvVXBwZXJDYXNlKCksblswXSl7Y2FzZSJBIjpuWzFdPW9bMV0sblsyXT1v WzJdLG5bM109b1szXSxuWzRdPW9bNF0sbls1XT1vWzVdLG5bNl09K29bNl0r aSxuWzddPStvWzddK2o7YnJlYWs7Y2FzZSJWIjpuWzFdPStvWzFdK2o7YnJl YWs7Y2FzZSJIIjpuWzFdPStvWzFdK2k7YnJlYWs7Y2FzZSJSIjpmb3IodmFy IHM9W2ksal0uY29uY2F0KG8uc2xpY2UoMSkpLHQ9Mix1PXMubGVuZ3RoO3U+ dDt0Kyspc1t0XT0rc1t0XStpLHNbKyt0XT0rc1t0XStqO2gucG9wKCksaD1o LmNvbmNhdChHKHMscCkpO2JyZWFrO2Nhc2UiTyI6aC5wb3AoKSxzPXgoaSxq LG9bMV0sb1syXSkscy5wdXNoKHNbMF0pLGg9aC5jb25jYXQocyk7YnJlYWs7 Y2FzZSJVIjpoLnBvcCgpLGg9aC5jb25jYXQoeChpLGosb1sxXSxvWzJdLG9b M10pKSxuPVsiVSJdLmNvbmNhdChoW2gubGVuZ3RoLTFdLnNsaWNlKC0yKSk7 YnJlYWs7Y2FzZSJNIjprPStvWzFdK2ksbD0rb1syXStqO2RlZmF1bHQ6Zm9y KHQ9MSx1PW8ubGVuZ3RoO3U+dDt0Kyspblt0XT0rb1t0XSsodCUyP2k6ail9 ZWxzZSBpZigiUiI9PWcpcz1baSxqXS5jb25jYXQoby5zbGljZSgxKSksaC5w b3AoKSxoPWguY29uY2F0KEcocyxwKSksbj1bIlIiXS5jb25jYXQoby5zbGlj ZSgtMikpO2Vsc2UgaWYoIk8iPT1nKWgucG9wKCkscz14KGksaixvWzFdLG9b Ml0pLHMucHVzaChzWzBdKSxoPWguY29uY2F0KHMpO2Vsc2UgaWYoIlUiPT1n KWgucG9wKCksaD1oLmNvbmNhdCh4KGksaixvWzFdLG9bMl0sb1szXSkpLG49 WyJVIl0uY29uY2F0KGhbaC5sZW5ndGgtMV0uc2xpY2UoLTIpKTtlbHNlIGZv cih2YXIgdj0wLHc9by5sZW5ndGg7dz52O3YrKyluW3ZdPW9bdl07aWYoZz1n LnRvVXBwZXJDYXNlKCksIk8iIT1nKXN3aXRjaChuWzBdKXtjYXNlIloiOmk9 K2ssaj0rbDticmVhaztjYXNlIkgiOmk9blsxXTticmVhaztjYXNlIlYiOmo9 blsxXTticmVhaztjYXNlIk0iOms9bltuLmxlbmd0aC0yXSxsPW5bbi5sZW5n dGgtMV07ZGVmYXVsdDppPW5bbi5sZW5ndGgtMl0saj1uW24ubGVuZ3RoLTFd fX1yZXR1cm4gaC50b1N0cmluZz1lLGQuYWJzPWYoaCksaH1mdW5jdGlvbiBB KGEsYixjLGQpe3JldHVyblthLGIsYyxkLGMsZF19ZnVuY3Rpb24gQihhLGIs YyxkLGUsZil7dmFyIGc9MS8zLGg9Mi8zO3JldHVybltnKmEraCpjLGcqYito KmQsZyplK2gqYyxnKmYraCpkLGUsZl19ZnVuY3Rpb24gQyhiLGMsZCxlLGYs ZyxoLGksaixrKXt2YXIgbCxtPTEyMCpPLzE4MCxuPU8vMTgwKigrZnx8MCks bz1bXSxwPWEuXy5jYWNoZXIoZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEqTi5j b3MoYyktYipOLnNpbihjKSxlPWEqTi5zaW4oYykrYipOLmNvcyhjKTtyZXR1 cm57eDpkLHk6ZX19KTtpZihrKXk9a1swXSx6PWtbMV0sdz1rWzJdLHg9a1sz XTtlbHNle2w9cChiLGMsLW4pLGI9bC54LGM9bC55LGw9cChpLGosLW4pLGk9 bC54LGo9bC55O3ZhciBxPShOLmNvcyhPLzE4MCpmKSxOLnNpbihPLzE4MCpm KSwoYi1pKS8yKSxyPShjLWopLzIscz1xKnEvKGQqZCkrcipyLyhlKmUpO3M+ MSYmKHM9Ti5zcXJ0KHMpLGQ9cypkLGU9cyplKTt2YXIgdD1kKmQsdT1lKmUs dj0oZz09aD8tMToxKSpOLnNxcnQoUygodCp1LXQqcipyLXUqcSpxKS8odCpy KnIrdSpxKnEpKSksdz12KmQqci9lKyhiK2kpLzIseD12Ki1lKnEvZCsoYytq KS8yLHk9Ti5hc2luKCgoYy14KS9lKS50b0ZpeGVkKDkpKSx6PU4uYXNpbigo KGoteCkvZSkudG9GaXhlZCg5KSk7eT13PmI/Ty15Onksej13Pmk/Ty16Onos MD55JiYoeT0yKk8reSksMD56JiYoej0yKk8reiksaCYmeT56JiYoeS09MipP KSwhaCYmej55JiYoei09MipPKX12YXIgQT16LXk7aWYoUyhBKT5tKXt2YXIg Qj16LEQ9aSxFPWo7ej15K20qKGgmJno+eT8xOi0xKSxpPXcrZCpOLmNvcyh6 KSxqPXgrZSpOLnNpbih6KSxvPUMoaSxqLGQsZSxmLDAsaCxELEUsW3osQix3 LHhdKX1BPXoteTt2YXIgRj1OLmNvcyh5KSxHPU4uc2luKHkpLEg9Ti5jb3Mo eiksST1OLnNpbih6KSxKPU4udGFuKEEvNCksSz00LzMqZCpKLEw9NC8zKmUq SixNPVtiLGNdLFA9W2IrSypHLGMtTCpGXSxRPVtpK0sqSSxqLUwqSF0sUj1b aSxqXTtpZihQWzBdPTIqTVswXS1QWzBdLFBbMV09MipNWzFdLVBbMV0sayly ZXR1cm5bUCxRLFJdLmNvbmNhdChvKTtvPVtQLFEsUl0uY29uY2F0KG8pLmpv aW4oKS5zcGxpdCgiLCIpO2Zvcih2YXIgVD1bXSxVPTAsVj1vLmxlbmd0aDtW PlU7VSsrKVRbVV09VSUyP3Aob1tVLTFdLG9bVV0sbikueTpwKG9bVV0sb1tV KzFdLG4pLng7cmV0dXJuIFR9ZnVuY3Rpb24gRChhLGIsYyxkLGUsZixnLGgp e2Zvcih2YXIgaSxqLGssbCxtLG4sbyxwLHE9W10scj1bW10sW11dLHM9MDsy PnM7KytzKWlmKDA9PXM/KGo9NiphLTEyKmMrNiplLGk9LTMqYSs5KmMtOSpl KzMqZyxrPTMqYy0zKmEpOihqPTYqYi0xMipkKzYqZixpPS0zKmIrOSpkLTkq ZiszKmgsaz0zKmQtMypiKSxTKGkpPDFlLTEyKXtpZihTKGopPDFlLTEyKWNv bnRpbnVlO2w9LWsvaixsPjAmJjE+bCYmcS5wdXNoKGwpfWVsc2Ugbz1qKmot NCprKmkscD1OLnNxcnQobyksMD5vfHwobT0oLWorcCkvKDIqaSksbT4wJiYx Pm0mJnEucHVzaChtKSxuPSgtai1wKS8oMippKSxuPjAmJjE+biYmcS5wdXNo KG4pKTtmb3IodmFyIHQsdT1xLmxlbmd0aCx2PXU7dS0tOylsPXFbdV0sdD0x LWwsclswXVt1XT10KnQqdCphKzMqdCp0KmwqYyszKnQqbCpsKmUrbCpsKmwq ZyxyWzFdW3VdPXQqdCp0KmIrMyp0KnQqbCpkKzMqdCpsKmwqZitsKmwqbCpo O3JldHVybiByWzBdW3ZdPWEsclsxXVt2XT1iLHJbMF1bdisxXT1nLHJbMV1b disxXT1oLHJbMF0ubGVuZ3RoPXJbMV0ubGVuZ3RoPXYrMix7bWluOnt4OlAu YXBwbHkoMCxyWzBdKSx5OlAuYXBwbHkoMCxyWzFdKX0sbWF4Ont4OlEuYXBw bHkoMCxyWzBdKSx5OlEuYXBwbHkoMCxyWzFdKX19fWZ1bmN0aW9uIEUoYSxi KXt2YXIgZD0hYiYmYyhhKTtpZighYiYmZC5jdXJ2ZSlyZXR1cm4gZihkLmN1 cnZlKTtmb3IodmFyIGU9eihhKSxnPWImJnooYiksaD17eDowLHk6MCxieDow LGJ5OjAsWDowLFk6MCxxeDpudWxsLHF5Om51bGx9LGk9e3g6MCx5OjAsYng6 MCxieTowLFg6MCxZOjAscXg6bnVsbCxxeTpudWxsfSxqPShmdW5jdGlvbihh LGIsYyl7dmFyIGQsZTtpZighYSlyZXR1cm5bIkMiLGIueCxiLnksYi54LGIu eSxiLngsYi55XTtzd2l0Y2goIShhWzBdaW57VDoxLFE6MX0pJiYoYi5xeD1i LnF5PW51bGwpLGFbMF0pe2Nhc2UiTSI6Yi5YPWFbMV0sYi5ZPWFbMl07YnJl YWs7Y2FzZSJBIjphPVsiQyJdLmNvbmNhdChDLmFwcGx5KDAsW2IueCxiLnld LmNvbmNhdChhLnNsaWNlKDEpKSkpO2JyZWFrO2Nhc2UiUyI6IkMiPT1jfHwi UyI9PWM/KGQ9MipiLngtYi5ieCxlPTIqYi55LWIuYnkpOihkPWIueCxlPWIu eSksYT1bIkMiLGQsZV0uY29uY2F0KGEuc2xpY2UoMSkpO2JyZWFrO2Nhc2Ui VCI6IlEiPT1jfHwiVCI9PWM/KGIucXg9MipiLngtYi5xeCxiLnF5PTIqYi55 LWIucXkpOihiLnF4PWIueCxiLnF5PWIueSksYT1bIkMiXS5jb25jYXQoQihi LngsYi55LGIucXgsYi5xeSxhWzFdLGFbMl0pKTticmVhaztjYXNlIlEiOmIu cXg9YVsxXSxiLnF5PWFbMl0sYT1bIkMiXS5jb25jYXQoQihiLngsYi55LGFb MV0sYVsyXSxhWzNdLGFbNF0pKTticmVhaztjYXNlIkwiOmE9WyJDIl0uY29u Y2F0KEEoYi54LGIueSxhWzFdLGFbMl0pKTticmVhaztjYXNlIkgiOmE9WyJD Il0uY29uY2F0KEEoYi54LGIueSxhWzFdLGIueSkpO2JyZWFrO2Nhc2UiViI6 YT1bIkMiXS5jb25jYXQoQShiLngsYi55LGIueCxhWzFdKSk7YnJlYWs7Y2Fz ZSJaIjphPVsiQyJdLmNvbmNhdChBKGIueCxiLnksYi5YLGIuWSkpfXJldHVy biBhfSksaz1mdW5jdGlvbihhLGIpe2lmKGFbYl0ubGVuZ3RoPjcpe2FbYl0u c2hpZnQoKTtmb3IodmFyIGM9YVtiXTtjLmxlbmd0aDspbVtiXT0iQSIsZyYm KG5bYl09IkEiKSxhLnNwbGljZShiKyssMCxbIkMiXS5jb25jYXQoYy5zcGxp Y2UoMCw2KSkpO2Euc3BsaWNlKGIsMSkscj1RKGUubGVuZ3RoLGcmJmcubGVu Z3RofHwwKX19LGw9ZnVuY3Rpb24oYSxiLGMsZCxmKXthJiZiJiYiTSI9PWFb Zl1bMF0mJiJNIiE9YltmXVswXSYmKGIuc3BsaWNlKGYsMCxbIk0iLGQueCxk LnldKSxjLmJ4PTAsYy5ieT0wLGMueD1hW2ZdWzFdLGMueT1hW2ZdWzJdLHI9 UShlLmxlbmd0aCxnJiZnLmxlbmd0aHx8MCkpfSxtPVtdLG49W10sbz0iIixw PSIiLHE9MCxyPVEoZS5sZW5ndGgsZyYmZy5sZW5ndGh8fDApO3I+cTtxKysp e2VbcV0mJihvPWVbcV1bMF0pLCJDIiE9byYmKG1bcV09byxxJiYocD1tW3Et MV0pKSxlW3FdPWooZVtxXSxoLHApLCJBIiE9bVtxXSYmIkMiPT1vJiYobVtx XT0iQyIpLGsoZSxxKSxnJiYoZ1txXSYmKG89Z1txXVswXSksIkMiIT1vJiYo bltxXT1vLHEmJihwPW5bcS0xXSkpLGdbcV09aihnW3FdLGkscCksIkEiIT1u W3FdJiYiQyI9PW8mJihuW3FdPSJDIiksayhnLHEpKSxsKGUsZyxoLGkscSks bChnLGUsaSxoLHEpO3ZhciBzPWVbcV0sdD1nJiZnW3FdLHU9cy5sZW5ndGgs dj1nJiZ0Lmxlbmd0aDtoLng9c1t1LTJdLGgueT1zW3UtMV0saC5ieD1NKHNb dS00XSl8fGgueCxoLmJ5PU0oc1t1LTNdKXx8aC55LGkuYng9ZyYmKE0odFt2 LTRdKXx8aS54KSxpLmJ5PWcmJihNKHRbdi0zXSl8fGkueSksaS54PWcmJnRb di0yXSxpLnk9ZyYmdFt2LTFdfXJldHVybiBnfHwoZC5jdXJ2ZT1mKGUpKSxn P1tlLGddOmV9ZnVuY3Rpb24gRihhLGIpe2lmKCFiKXJldHVybiBhO3ZhciBj LGQsZSxmLGcsaCxpO2ZvcihhPUUoYSksZT0wLGc9YS5sZW5ndGg7Zz5lO2Ur Kylmb3IoaT1hW2VdLGY9MSxoPWkubGVuZ3RoO2g+ZjtmKz0yKWM9Yi54KGlb Zl0saVtmKzFdKSxkPWIueShpW2ZdLGlbZisxXSksaVtmXT1jLGlbZisxXT1k O3JldHVybiBhfWZ1bmN0aW9uIEcoYSxiKXtmb3IodmFyIGM9W10sZD0wLGU9 YS5sZW5ndGg7ZS0yKiFiPmQ7ZCs9Mil7dmFyIGY9W3t4OithW2QtMl0seTor YVtkLTFdfSx7eDorYVtkXSx5OithW2QrMV19LHt4OithW2QrMl0seTorYVtk KzNdfSx7eDorYVtkKzRdLHk6K2FbZCs1XX1dO2I/ZD9lLTQ9PWQ/ZlszXT17 eDorYVswXSx5OithWzFdfTplLTI9PWQmJihmWzJdPXt4OithWzBdLHk6K2Fb MV19LGZbM109e3g6K2FbMl0seTorYVszXX0pOmZbMF09e3g6K2FbZS0yXSx5 OithW2UtMV19OmUtND09ZD9mWzNdPWZbMl06ZHx8KGZbMF09e3g6K2FbZF0s eTorYVtkKzFdfSksYy5wdXNoKFsiQyIsKC1mWzBdLngrNipmWzFdLngrZlsy XS54KS82LCgtZlswXS55KzYqZlsxXS55K2ZbMl0ueSkvNiwoZlsxXS54KzYq ZlsyXS54LWZbM10ueCkvNiwoZlsxXS55KzYqZlsyXS55LWZbM10ueSkvNixm WzJdLngsZlsyXS55XSl9cmV0dXJuIGN9dmFyIEg9Yi5wcm90b3R5cGUsST1h LmlzLEo9YS5fLmNsb25lLEs9Imhhc093blByb3BlcnR5IixMPS8sPyhbYS16 XSksPy9naSxNPXBhcnNlRmxvYXQsTj1NYXRoLE89Ti5QSSxQPU4ubWluLFE9 Ti5tYXgsUj1OLnBvdyxTPU4uYWJzLFQ9aCgxKSxVPWgoKSxWPWgoMCwxKSxX PWEuX3VuaXQycHgsWD17cGF0aDpmdW5jdGlvbihhKXtyZXR1cm4gYS5hdHRy KCJwYXRoIil9LGNpcmNsZTpmdW5jdGlvbihhKXt2YXIgYj1XKGEpO3JldHVy biB4KGIuY3gsYi5jeSxiLnIpfSxlbGxpcHNlOmZ1bmN0aW9uKGEpe3ZhciBi PVcoYSk7cmV0dXJuIHgoYi5jeHx8MCxiLmN5fHwwLGIucngsYi5yeSl9LHJl Y3Q6ZnVuY3Rpb24oYSl7dmFyIGI9VyhhKTtyZXR1cm4gdyhiLnh8fDAsYi55 fHwwLGIud2lkdGgsYi5oZWlnaHQsYi5yeCxiLnJ5KX0saW1hZ2U6ZnVuY3Rp b24oYSl7dmFyIGI9VyhhKTtyZXR1cm4gdyhiLnh8fDAsYi55fHwwLGIud2lk dGgsYi5oZWlnaHQpfSxsaW5lOmZ1bmN0aW9uKGEpe3JldHVybiJNIitbYS5h dHRyKCJ4MSIpfHwwLGEuYXR0cigieTEiKXx8MCxhLmF0dHIoIngyIiksYS5h dHRyKCJ5MiIpXX0scG9seWxpbmU6ZnVuY3Rpb24oYSl7cmV0dXJuIk0iK2Eu YXR0cigicG9pbnRzIil9LHBvbHlnb246ZnVuY3Rpb24oYSl7cmV0dXJuIk0i K2EuYXR0cigicG9pbnRzIikrInoifSxkZWZsdDpmdW5jdGlvbihhKXt2YXIg Yj1hLm5vZGUuZ2V0QkJveCgpO3JldHVybiB3KGIueCxiLnksYi53aWR0aCxi LmhlaWdodCl9fTthLnBhdGg9YyxhLnBhdGguZ2V0VG90YWxMZW5ndGg9VCxh LnBhdGguZ2V0UG9pbnRBdExlbmd0aD1VLGEucGF0aC5nZXRTdWJwYXRoPWZ1 bmN0aW9uKGEsYixjKXtpZih0aGlzLmdldFRvdGFsTGVuZ3RoKGEpLWM8MWUt NilyZXR1cm4gVihhLGIpLmVuZDt2YXIgZD1WKGEsYywxKTtyZXR1cm4gYj9W KGQsYikuZW5kOmR9LEguZ2V0VG90YWxMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5ub2RlLmdldFRvdGFsTGVuZ3RoP3RoaXMubm9kZS5nZXRUb3Rh bExlbmd0aCgpOnZvaWQgMH0sSC5nZXRQb2ludEF0TGVuZ3RoPWZ1bmN0aW9u KGEpe3JldHVybiBVKHRoaXMuYXR0cigiZCIpLGEpfSxILmdldFN1YnBhdGg9 ZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5wYXRoLmdldFN1YnBhdGgodGhpcy5h dHRyKCJkIiksYixjKX0sYS5fLmJveD1kLGEucGF0aC5maW5kRG90c0F0U2Vn bWVudD1pLGEucGF0aC5iZXppZXJCQm94PWosYS5wYXRoLmlzUG9pbnRJbnNp ZGVCQm94PWssYS5jbG9zZXN0PWZ1bmN0aW9uKGIsYyxlLGYpe2Zvcih2YXIg Zz0xMDAsaD1kKGItZy8yLGMtZy8yLGcsZyksaT1bXSxqPWVbMF0uaGFzT3du UHJvcGVydHkoIngiKT9mdW5jdGlvbihhKXtyZXR1cm57eDplW2FdLngseTpl W2FdLnl9fTpmdW5jdGlvbihhKXtyZXR1cm57eDplW2FdLHk6ZlthXX19LGw9 MDsxZTY+PWcmJiFsOyl7Zm9yKHZhciBtPTAsbj1lLmxlbmd0aDtuPm07bSsr KXt2YXIgbz1qKG0pO2lmKGsoaCxvLngsby55KSl7bCsrLGkucHVzaChvKTti cmVha319bHx8KGcqPTIsaD1kKGItZy8yLGMtZy8yLGcsZykpfWlmKDFlNiE9 Zyl7dmFyIHAscT0xLzA7Zm9yKG09MCxuPWkubGVuZ3RoO24+bTttKyspe3Zh ciByPWEubGVuKGIsYyxpW21dLngsaVttXS55KTtxPnImJihxPXIsaVttXS5s ZW49cixwPWlbbV0pfXJldHVybiBwfX0sYS5wYXRoLmlzQkJveEludGVyc2Vj dD1sLGEucGF0aC5pbnRlcnNlY3Rpb249cixhLnBhdGguaW50ZXJzZWN0aW9u TnVtYmVyPXMsYS5wYXRoLmlzUG9pbnRJbnNpZGU9dSxhLnBhdGguZ2V0QkJv eD12LGEucGF0aC5nZXQ9WCxhLnBhdGgudG9SZWxhdGl2ZT15LGEucGF0aC50 b0Fic29sdXRlPXosYS5wYXRoLnRvQ3ViaWM9RSxhLnBhdGgubWFwPUYsYS5w YXRoLnRvU3RyaW5nPWUsYS5wYXRoLmNsb25lPWZ9KSxkLnBsdWdpbihmdW5j dGlvbihhKXt2YXIgZD1NYXRoLm1heCxlPU1hdGgubWluLGY9ZnVuY3Rpb24o YSl7aWYodGhpcy5pdGVtcz1bXSx0aGlzLmJpbmRpbmdzPXt9LHRoaXMubGVu Z3RoPTAsdGhpcy50eXBlPSJzZXQiLGEpZm9yKHZhciBiPTAsYz1hLmxlbmd0 aDtjPmI7YisrKWFbYl0mJih0aGlzW3RoaXMuaXRlbXMubGVuZ3RoXT10aGlz Lml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoXT1hW2JdLHRoaXMubGVuZ3RoKysp fSxnPWYucHJvdG90eXBlO2cucHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYSxi LGM9MCxkPWFyZ3VtZW50cy5sZW5ndGg7ZD5jO2MrKylhPWFyZ3VtZW50c1tj XSxhJiYoYj10aGlzLml0ZW1zLmxlbmd0aCx0aGlzW2JdPXRoaXMuaXRlbXNb Yl09YSx0aGlzLmxlbmd0aCsrKTtyZXR1cm4gdGhpc30sZy5wb3A9ZnVuY3Rp b24oKXtyZXR1cm4gdGhpcy5sZW5ndGgmJmRlbGV0ZSB0aGlzW3RoaXMubGVu Z3RoLS1dLHRoaXMuaXRlbXMucG9wKCl9LGcuZm9yRWFjaD1mdW5jdGlvbihh LGIpe2Zvcih2YXIgYz0wLGQ9dGhpcy5pdGVtcy5sZW5ndGg7ZD5jO2MrKylp ZihhLmNhbGwoYix0aGlzLml0ZW1zW2NdLGMpPT09ITEpcmV0dXJuIHRoaXM7 cmV0dXJuIHRoaXN9LGcuYW5pbWF0ZT1mdW5jdGlvbihkLGUsZixnKXsiZnVu Y3Rpb24iIT10eXBlb2YgZnx8Zi5sZW5ndGh8fChnPWYsZj1jLmxpbmVhciks ZCBpbnN0YW5jZW9mIGEuXy5BbmltYXRpb24mJihnPWQuY2FsbGJhY2ssZj1k LmVhc2luZyxlPWYuZHVyLGQ9ZC5hdHRyKTt2YXIgaD1hcmd1bWVudHM7aWYo YS5pcyhkLCJhcnJheSIpJiZhLmlzKGhbaC5sZW5ndGgtMV0sImFycmF5Iikp dmFyIGk9ITA7dmFyIGosaz1mdW5jdGlvbigpe2o/dGhpcy5iPWo6aj10aGlz LmJ9LGw9MCxtPXRoaXMsbj1nJiZmdW5jdGlvbigpeysrbD09bS5sZW5ndGgm JmcuY2FsbCh0aGlzKQorfTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9u KGEsYyl7Yi5vbmNlKCJzbmFwLmFuaW1jcmVhdGVkLiIrYS5pZCxrKSxpP2hb Y10mJmEuYW5pbWF0ZS5hcHBseShhLGhbY10pOmEuYW5pbWF0ZShkLGUsZixu KX0pfSxnLnJlbW92ZT1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg7KXRo aXMucG9wKCkucmVtb3ZlKCk7cmV0dXJuIHRoaXN9LGcuYmluZD1mdW5jdGlv bihhLGIsYyl7dmFyIGQ9e307aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIpdGhp cy5iaW5kaW5nc1thXT1iO2Vsc2V7dmFyIGU9Y3x8YTt0aGlzLmJpbmRpbmdz W2FdPWZ1bmN0aW9uKGEpe2RbZV09YSxiLmF0dHIoZCl9fXJldHVybiB0aGlz fSxnLmF0dHI9ZnVuY3Rpb24oYSl7dmFyIGI9e307Zm9yKHZhciBjIGluIGEp dGhpcy5iaW5kaW5nc1tjXT90aGlzLmJpbmRpbmdzW2NdKGFbY10pOmJbY109 YVtjXTtmb3IodmFyIGQ9MCxlPXRoaXMuaXRlbXMubGVuZ3RoO2U+ZDtkKysp dGhpcy5pdGVtc1tkXS5hdHRyKGIpO3JldHVybiB0aGlzfSxnLmNsZWFyPWZ1 bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aDspdGhpcy5wb3AoKX0sZy5zcGxp Y2U9ZnVuY3Rpb24oYSxiKXthPTA+YT9kKHRoaXMubGVuZ3RoK2EsMCk6YSxi PWQoMCxlKHRoaXMubGVuZ3RoLWEsYikpO3ZhciBjLGc9W10saD1bXSxpPVtd O2ZvcihjPTI7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKylpLnB1c2goYXJndW1l bnRzW2NdKTtmb3IoYz0wO2I+YztjKyspaC5wdXNoKHRoaXNbYStjXSk7Zm9y KDtjPHRoaXMubGVuZ3RoLWE7YysrKWcucHVzaCh0aGlzW2ErY10pO3ZhciBq PWkubGVuZ3RoO2ZvcihjPTA7YzxqK2cubGVuZ3RoO2MrKyl0aGlzLml0ZW1z W2ErY109dGhpc1thK2NdPWo+Yz9pW2NdOmdbYy1qXTtmb3IoYz10aGlzLml0 ZW1zLmxlbmd0aD10aGlzLmxlbmd0aC09Yi1qO3RoaXNbY107KWRlbGV0ZSB0 aGlzW2MrK107cmV0dXJuIG5ldyBmKGgpfSxnLmV4Y2x1ZGU9ZnVuY3Rpb24o YSl7Zm9yKHZhciBiPTAsYz10aGlzLmxlbmd0aDtjPmI7YisrKWlmKHRoaXNb Yl09PWEpcmV0dXJuIHRoaXMuc3BsaWNlKGIsMSksITA7cmV0dXJuITF9LGcu aW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMuaXRlbXMu bGVuZ3RoO2ItLTspdGhpcy5pdGVtc1tiXS5pbnNlcnRBZnRlcihhKTtyZXR1 cm4gdGhpc30sZy5nZXRCQm94PWZ1bmN0aW9uKCl7Zm9yKHZhciBhPVtdLGI9 W10sYz1bXSxmPVtdLGc9dGhpcy5pdGVtcy5sZW5ndGg7Zy0tOylpZighdGhp cy5pdGVtc1tnXS5yZW1vdmVkKXt2YXIgaD10aGlzLml0ZW1zW2ddLmdldEJC b3goKTthLnB1c2goaC54KSxiLnB1c2goaC55KSxjLnB1c2goaC54K2gud2lk dGgpLGYucHVzaChoLnkraC5oZWlnaHQpfXJldHVybiBhPWUuYXBwbHkoMCxh KSxiPWUuYXBwbHkoMCxiKSxjPWQuYXBwbHkoMCxjKSxmPWQuYXBwbHkoMCxm KSx7eDphLHk6Yix4MjpjLHkyOmYsd2lkdGg6Yy1hLGhlaWdodDpmLWIsY3g6 YSsoYy1hKS8yLGN5OmIrKGYtYikvMn19LGcuY2xvbmU9ZnVuY3Rpb24oYSl7 YT1uZXcgZjtmb3IodmFyIGI9MCxjPXRoaXMuaXRlbXMubGVuZ3RoO2M+Yjti KyspYS5wdXNoKHRoaXMuaXRlbXNbYl0uY2xvbmUoKSk7cmV0dXJuIGF9LGcu dG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iU25hcOKAmHMgc2V0In0sZy50 eXBlPSJzZXQiLGEuU2V0PWYsYS5zZXQ9ZnVuY3Rpb24oKXt2YXIgYT1uZXcg ZjtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCYmYS5wdXNoLmFwcGx5KGEsQXJy YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKSxhfX0pLGQu cGx1Z2luKGZ1bmN0aW9uKGEsYyl7ZnVuY3Rpb24gZChhKXt2YXIgYj1hWzBd O3N3aXRjaChiLnRvTG93ZXJDYXNlKCkpe2Nhc2UidCI6cmV0dXJuW2IsMCww XTtjYXNlIm0iOnJldHVybltiLDEsMCwwLDEsMCwwXTtjYXNlInIiOnJldHVy biA0PT1hLmxlbmd0aD9bYiwwLGFbMl0sYVszXV06W2IsMF07Y2FzZSJzIjpy ZXR1cm4gNT09YS5sZW5ndGg/W2IsMSwxLGFbM10sYVs0XV06Mz09YS5sZW5n dGg/W2IsMSwxXTpbYiwxXX19ZnVuY3Rpb24gZShiLGMsZSl7Yz1wKGMpLnJl cGxhY2UoL1wuezN9fFx1MjAyNi9nLGIpLGI9YS5wYXJzZVRyYW5zZm9ybVN0 cmluZyhiKXx8W10sYz1hLnBhcnNlVHJhbnNmb3JtU3RyaW5nKGMpfHxbXTtm b3IodmFyIGYsZyxoLGksbD1NYXRoLm1heChiLmxlbmd0aCxjLmxlbmd0aCks bT1bXSxuPVtdLG89MDtsPm87bysrKXtpZihoPWJbb118fGQoY1tvXSksaT1j W29dfHxkKGgpLGhbMF0hPWlbMF18fCJyIj09aFswXS50b0xvd2VyQ2FzZSgp JiYoaFsyXSE9aVsyXXx8aFszXSE9aVszXSl8fCJzIj09aFswXS50b0xvd2Vy Q2FzZSgpJiYoaFszXSE9aVszXXx8aFs0XSE9aVs0XSkpe2I9YS5fLnRyYW5z Zm9ybTJtYXRyaXgoYixlKCkpLGM9YS5fLnRyYW5zZm9ybTJtYXRyaXgoYyxl KCkpLG09W1sibSIsYi5hLGIuYixiLmMsYi5kLGIuZSxiLmZdXSxuPVtbIm0i LGMuYSxjLmIsYy5jLGMuZCxjLmUsYy5mXV07YnJlYWt9Zm9yKG1bb109W10s bltvXT1bXSxmPTAsZz1NYXRoLm1heChoLmxlbmd0aCxpLmxlbmd0aCk7Zz5m O2YrKylmIGluIGgmJihtW29dW2ZdPWhbZl0pLGYgaW4gaSYmKG5bb11bZl09 aVtmXSl9cmV0dXJue2Zyb206ayhtKSx0bzprKG4pLGY6aihtKX19ZnVuY3Rp b24gZihhKXtyZXR1cm4gYX1mdW5jdGlvbiBnKGEpe3JldHVybiBmdW5jdGlv bihiKXtyZXR1cm4rYi50b0ZpeGVkKDMpK2F9fWZ1bmN0aW9uIGgoYSl7cmV0 dXJuIGEuam9pbigiICIpfWZ1bmN0aW9uIGkoYil7cmV0dXJuIGEucmdiKGJb MF0sYlsxXSxiWzJdKX1mdW5jdGlvbiBqKGEpe3ZhciBiLGMsZCxlLGYsZyxo PTAsaT1bXTtmb3IoYj0wLGM9YS5sZW5ndGg7Yz5iO2IrKyl7Zm9yKGY9Ilsi LGc9WyciJythW2JdWzBdKyciJ10sZD0xLGU9YVtiXS5sZW5ndGg7ZT5kO2Qr KylnW2RdPSJ2YWxbIitoKysgKyJdIjtmKz1nKyJdIixpW2JdPWZ9cmV0dXJu IEZ1bmN0aW9uKCJ2YWwiLCJyZXR1cm4gU25hcC5wYXRoLnRvU3RyaW5nLmNh bGwoWyIraSsiXSkiKX1mdW5jdGlvbiBrKGEpe2Zvcih2YXIgYj1bXSxjPTAs ZD1hLmxlbmd0aDtkPmM7YysrKWZvcih2YXIgZT0xLGY9YVtjXS5sZW5ndGg7 Zj5lO2UrKyliLnB1c2goYVtjXVtlXSk7cmV0dXJuIGJ9ZnVuY3Rpb24gbChh KXtyZXR1cm4gaXNGaW5pdGUocGFyc2VGbG9hdChhKSl9ZnVuY3Rpb24gbShi LGMpe3JldHVybiBhLmlzKGIsImFycmF5IikmJmEuaXMoYywiYXJyYXkiKT9i LnRvU3RyaW5nKCk9PWMudG9TdHJpbmcoKTohMX12YXIgbj17fSxvPS9bYS16 XSskL2kscD1TdHJpbmc7bi5zdHJva2U9bi5maWxsPSJjb2xvdXIiLGMucHJv dG90eXBlLmVxdWFsPWZ1bmN0aW9uKGEsYyl7cmV0dXJuIGIoInNuYXAudXRp bC5lcXVhbCIsdGhpcyxhLGMpLmZpcnN0RGVmaW5lZCgpfSxiLm9uKCJzbmFw LnV0aWwuZXF1YWwiLGZ1bmN0aW9uKGIsYyl7dmFyIGQscSxyPXAodGhpcy5h dHRyKGIpfHwiIikscz10aGlzO2lmKGwocikmJmwoYykpcmV0dXJue2Zyb206 cGFyc2VGbG9hdChyKSx0bzpwYXJzZUZsb2F0KGMpLGY6Zn07aWYoImNvbG91 ciI9PW5bYl0pcmV0dXJuIGQ9YS5jb2xvcihyKSxxPWEuY29sb3IoYykse2Zy b206W2QucixkLmcsZC5iLGQub3BhY2l0eV0sdG86W3EucixxLmcscS5iLHEu b3BhY2l0eV0sZjppfTtpZigidmlld0JveCI9PWIpcmV0dXJuIGQ9dGhpcy5h dHRyKGIpLnZiLnNwbGl0KCIgIikubWFwKE51bWJlcikscT1jLnNwbGl0KCIg IikubWFwKE51bWJlcikse2Zyb206ZCx0bzpxLGY6aH07aWYoInRyYW5zZm9y bSI9PWJ8fCJncmFkaWVudFRyYW5zZm9ybSI9PWJ8fCJwYXR0ZXJuVHJhbnNm b3JtIj09YilyZXR1cm4gYyBpbnN0YW5jZW9mIGEuTWF0cml4JiYoYz1jLnRv VHJhbnNmb3JtU3RyaW5nKCkpLGEuXy5yZ1RyYW5zZm9ybS50ZXN0KGMpfHwo Yz1hLl8uc3ZnVHJhbnNmb3JtMnN0cmluZyhjKSksZShyLGMsZnVuY3Rpb24o KXtyZXR1cm4gcy5nZXRCQm94KDEpfSk7aWYoImQiPT1ifHwicGF0aCI9PWIp cmV0dXJuIGQ9YS5wYXRoLnRvQ3ViaWMocixjKSx7ZnJvbTprKGRbMF0pLHRv OmsoZFsxXSksZjpqKGRbMF0pfTtpZigicG9pbnRzIj09YilyZXR1cm4gZD1w KHIpLnNwbGl0KGEuXy5zZXBhcmF0b3IpLHE9cChjKS5zcGxpdChhLl8uc2Vw YXJhdG9yKSx7ZnJvbTpkLHRvOnEsZjpmdW5jdGlvbihhKXtyZXR1cm4gYX19 O3ZhciB0PXIubWF0Y2gobyksdT1wKGMpLm1hdGNoKG8pO3JldHVybiB0JiZt KHQsdSk/e2Zyb206cGFyc2VGbG9hdChyKSx0bzpwYXJzZUZsb2F0KGMpLGY6 Zyh0KX06e2Zyb206dGhpcy5hc1BYKGIpLHRvOnRoaXMuYXNQWChiLGMpLGY6 Zn19KX0pLGQucGx1Z2luKGZ1bmN0aW9uKGEsYyxkLGUpe2Zvcih2YXIgZj1j LnByb3RvdHlwZSxnPSJoYXNPd25Qcm9wZXJ0eSIsaD0oImNyZWF0ZVRvdWNo ImluIGUuZG9jKSxpPVsiY2xpY2siLCJkYmxjbGljayIsIm1vdXNlZG93biIs Im1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIs InRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIsInRvdWNoY2Fu Y2VsIl0saj17bW91c2Vkb3duOiJ0b3VjaHN0YXJ0Iixtb3VzZW1vdmU6InRv dWNobW92ZSIsbW91c2V1cDoidG91Y2hlbmQifSxrPShmdW5jdGlvbihhLGIp e3ZhciBjPSJ5Ij09YT8ic2Nyb2xsVG9wIjoic2Nyb2xsTGVmdCIsZD1iJiZi Lm5vZGU/Yi5ub2RlLm93bmVyRG9jdW1lbnQ6ZS5kb2M7cmV0dXJuIGRbYyBp biBkLmRvY3VtZW50RWxlbWVudD8iZG9jdW1lbnRFbGVtZW50IjoiYm9keSJd W2NdfSksbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9yaWdpbmFsRXZlbnQu cHJldmVudERlZmF1bHQoKX0sbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9y aWdpbmFsRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9LG49ZnVuY3Rpb24oYSxi LGMsZCl7dmFyIGU9aCYmaltiXT9qW2JdOmIsZj1mdW5jdGlvbihlKXt2YXIg Zj1rKCJ5IixkKSxpPWsoIngiLGQpO2lmKGgmJmpbZ10oYikpZm9yKHZhciBu PTAsbz1lLnRhcmdldFRvdWNoZXMmJmUudGFyZ2V0VG91Y2hlcy5sZW5ndGg7 bz5uO24rKylpZihlLnRhcmdldFRvdWNoZXNbbl0udGFyZ2V0PT1hfHxhLmNv bnRhaW5zKGUudGFyZ2V0VG91Y2hlc1tuXS50YXJnZXQpKXt2YXIgcD1lO2U9 ZS50YXJnZXRUb3VjaGVzW25dLGUub3JpZ2luYWxFdmVudD1wLGUucHJldmVu dERlZmF1bHQ9bCxlLnN0b3BQcm9wYWdhdGlvbj1tO2JyZWFrfXZhciBxPWUu Y2xpZW50WCtpLHI9ZS5jbGllbnRZK2Y7cmV0dXJuIGMuY2FsbChkLGUscSxy KX07cmV0dXJuIGIhPT1lJiZhLmFkZEV2ZW50TGlzdGVuZXIoYixmLCExKSxh LmFkZEV2ZW50TGlzdGVuZXIoZSxmLCExKSxmdW5jdGlvbigpe3JldHVybiBi IT09ZSYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsZiwhMSksYS5yZW1vdmVF dmVudExpc3RlbmVyKGUsZiwhMSksITB9fSxvPVtdLHA9ZnVuY3Rpb24oYSl7 Zm9yKHZhciBjLGQ9YS5jbGllbnRYLGU9YS5jbGllbnRZLGY9aygieSIpLGc9 aygieCIpLGk9by5sZW5ndGg7aS0tOyl7aWYoYz1vW2ldLGgpe2Zvcih2YXIg aixsPWEudG91Y2hlcyYmYS50b3VjaGVzLmxlbmd0aDtsLS07KWlmKGo9YS50 b3VjaGVzW2xdLGouaWRlbnRpZmllcj09Yy5lbC5fZHJhZy5pZHx8Yy5lbC5u b2RlLmNvbnRhaW5zKGoudGFyZ2V0KSl7ZD1qLmNsaWVudFgsZT1qLmNsaWVu dFksKGEub3JpZ2luYWxFdmVudD9hLm9yaWdpbmFsRXZlbnQ6YSkucHJldmVu dERlZmF1bHQoKTticmVha319ZWxzZSBhLnByZXZlbnREZWZhdWx0KCk7e3Zh ciBtPWMuZWwubm9kZTttLm5leHRTaWJsaW5nLG0ucGFyZW50Tm9kZSxtLnN0 eWxlLmRpc3BsYXl9ZCs9ZyxlKz1mLGIoInNuYXAuZHJhZy5tb3ZlLiIrYy5l bC5pZCxjLm1vdmVfc2NvcGV8fGMuZWwsZC1jLmVsLl9kcmFnLngsZS1jLmVs Ll9kcmFnLnksZCxlLGEpfX0scT1mdW5jdGlvbihjKXthLnVubW91c2Vtb3Zl KHApLnVubW91c2V1cChxKTtmb3IodmFyIGQsZT1vLmxlbmd0aDtlLS07KWQ9 b1tlXSxkLmVsLl9kcmFnPXt9LGIoInNuYXAuZHJhZy5lbmQuIitkLmVsLmlk LGQuZW5kX3Njb3BlfHxkLnN0YXJ0X3Njb3BlfHxkLm1vdmVfc2NvcGV8fGQu ZWwsYyksYi5vZmYoInNuYXAuZHJhZy4qLiIrZC5lbC5pZCk7bz1bXX0scj1p Lmxlbmd0aDtyLS07KSFmdW5jdGlvbihiKXthW2JdPWZbYl09ZnVuY3Rpb24o YyxkKXtpZihhLmlzKGMsImZ1bmN0aW9uIikpdGhpcy5ldmVudHM9dGhpcy5l dmVudHN8fFtdLHRoaXMuZXZlbnRzLnB1c2goe25hbWU6YixmOmMsdW5iaW5k Om4odGhpcy5ub2RlfHxkb2N1bWVudCxiLGMsZHx8dGhpcyl9KTtlbHNlIGZv cih2YXIgZT0wLGY9dGhpcy5ldmVudHMubGVuZ3RoO2Y+ZTtlKyspaWYodGhp cy5ldmVudHNbZV0ubmFtZT09Yil0cnl7dGhpcy5ldmVudHNbZV0uZi5jYWxs KHRoaXMpfWNhdGNoKGcpe31yZXR1cm4gdGhpc30sYVsidW4iK2JdPWZbInVu IitiXT1mdW5jdGlvbihhKXtmb3IodmFyIGM9dGhpcy5ldmVudHN8fFtdLGQ9 Yy5sZW5ndGg7ZC0tOylpZihjW2RdLm5hbWU9PWImJihjW2RdLmY9PWF8fCFh KSlyZXR1cm4gY1tkXS51bmJpbmQoKSxjLnNwbGljZShkLDEpLCFjLmxlbmd0 aCYmZGVsZXRlIHRoaXMuZXZlbnRzLHRoaXM7cmV0dXJuIHRoaXN9fShpW3Jd KTtmLmhvdmVyPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm1vdXNl b3ZlcihhLGMpLm1vdXNlb3V0KGIsZHx8Yyl9LGYudW5ob3Zlcj1mdW5jdGlv bihhLGIpe3JldHVybiB0aGlzLnVubW91c2VvdmVyKGEpLnVubW91c2VvdXQo Yil9O3ZhciBzPVtdO2YuZHJhZz1mdW5jdGlvbihjLGQsZSxmLGcsaCl7ZnVu Y3Rpb24gaShpLGosbCl7KGkub3JpZ2luYWxFdmVudHx8aSkucHJldmVudERl ZmF1bHQoKSxrLl9kcmFnLng9aixrLl9kcmFnLnk9bCxrLl9kcmFnLmlkPWku aWRlbnRpZmllciwhby5sZW5ndGgmJmEubW91c2Vtb3ZlKHApLm1vdXNldXAo cSksby5wdXNoKHtlbDprLG1vdmVfc2NvcGU6ZixzdGFydF9zY29wZTpnLGVu ZF9zY29wZTpofSksZCYmYi5vbigic25hcC5kcmFnLnN0YXJ0LiIray5pZCxk KSxjJiZiLm9uKCJzbmFwLmRyYWcubW92ZS4iK2suaWQsYyksZSYmYi5vbigi c25hcC5kcmFnLmVuZC4iK2suaWQsZSksYigic25hcC5kcmFnLnN0YXJ0LiIr ay5pZCxnfHxmfHxrLGosbCxpKX1mdW5jdGlvbiBqKGEsYyxkKXtiKCJzbmFw LmRyYWdpbml0LiIray5pZCxrLGEsYyxkKX12YXIgaz10aGlzO2lmKCFhcmd1 bWVudHMubGVuZ3RoKXt2YXIgbDtyZXR1cm4gay5kcmFnKGZ1bmN0aW9uKGEs Yil7dGhpcy5hdHRyKHt0cmFuc2Zvcm06bCsobD8iVCI6InQiKStbYSxiXX0p fSxmdW5jdGlvbigpe2w9dGhpcy50cmFuc2Zvcm0oKS5sb2NhbH0pfXJldHVy biBiLm9uKCJzbmFwLmRyYWdpbml0LiIray5pZCxpKSxrLl9kcmFnPXt9LHMu cHVzaCh7ZWw6ayxzdGFydDppLGluaXQ6an0pLGsubW91c2Vkb3duKGopLGt9 LGYudW5kcmFnPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPXMubGVuZ3RoO2MtLTsp c1tjXS5lbD09dGhpcyYmKHRoaXMudW5tb3VzZWRvd24oc1tjXS5pbml0KSxz LnNwbGljZShjLDEpLGIudW5iaW5kKCJzbmFwLmRyYWcuKi4iK3RoaXMuaWQp LGIudW5iaW5kKCJzbmFwLmRyYWdpbml0LiIrdGhpcy5pZCkpO3JldHVybiFz Lmxlbmd0aCYmYS51bm1vdXNlbW92ZShwKS51bm1vdXNldXAocSksdGhpc319 KSxkLnBsdWdpbihmdW5jdGlvbihhLGMsZCl7dmFyIGU9KGMucHJvdG90eXBl LGQucHJvdG90eXBlKSxmPS9eXHMqdXJsXCgoLispXCkvLGc9U3RyaW5nLGg9 YS5fLiQ7YS5maWx0ZXI9e30sZS5maWx0ZXI9ZnVuY3Rpb24oYil7dmFyIGQ9 dGhpczsic3ZnIiE9ZC50eXBlJiYoZD1kLnBhcGVyKTt2YXIgZT1hLnBhcnNl KGcoYikpLGY9YS5fLmlkKCksaT0oZC5ub2RlLm9mZnNldFdpZHRoLGQubm9k ZS5vZmZzZXRIZWlnaHQsaCgiZmlsdGVyIikpO3JldHVybiBoKGkse2lkOmYs ZmlsdGVyVW5pdHM6InVzZXJTcGFjZU9uVXNlIn0pLGkuYXBwZW5kQ2hpbGQo ZS5ub2RlKSxkLmRlZnMuYXBwZW5kQ2hpbGQoaSksbmV3IGMoaSl9LGIub24o InNuYXAudXRpbC5nZXRhdHRyLmZpbHRlciIsZnVuY3Rpb24oKXtiLnN0b3Ao KTt2YXIgYz1oKHRoaXMubm9kZSwiZmlsdGVyIik7aWYoYyl7dmFyIGQ9Zyhj KS5tYXRjaChmKTtyZXR1cm4gZCYmYS5zZWxlY3QoZFsxXSl9fSksYi5vbigi c25hcC51dGlsLmF0dHIuZmlsdGVyIixmdW5jdGlvbihkKXtpZihkIGluc3Rh bmNlb2YgYyYmImZpbHRlciI9PWQudHlwZSl7Yi5zdG9wKCk7dmFyIGU9ZC5u b2RlLmlkO2V8fChoKGQubm9kZSx7aWQ6ZC5pZH0pLGU9ZC5pZCksaCh0aGlz Lm5vZGUse2ZpbHRlcjphLnVybChlKX0pfWQmJiJub25lIiE9ZHx8KGIuc3Rv cCgpLHRoaXMubm9kZS5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpKX0pLGEu ZmlsdGVyLmJsdXI9ZnVuY3Rpb24oYixjKXtudWxsPT1iJiYoYj0yKTt2YXIg ZD1udWxsPT1jP2I6W2IsY107cmV0dXJuIGEuZm9ybWF0KCc8ZmVHYXVzc2lh bkJsdXIgc3RkRGV2aWF0aW9uPSJ7ZGVmfSIvPicse2RlZjpkfSl9LGEuZmls dGVyLmJsdXIudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcygpfSxh LmZpbHRlci5zaGFkb3c9ZnVuY3Rpb24oYixjLGQsZSxmKXtyZXR1cm4ic3Ry aW5nIj09dHlwZW9mIGQmJihlPWQsZj1lLGQ9NCksInN0cmluZyIhPXR5cGVv ZiBlJiYoZj1lLGU9IiMwMDAiKSxlPWV8fCIjMDAwIixudWxsPT1kJiYoZD00 KSxudWxsPT1mJiYoZj0xKSxudWxsPT1iJiYoYj0wLGM9MiksbnVsbD09YyYm KGM9YiksZT1hLmNvbG9yKGUpLGEuZm9ybWF0KCc8ZmVHYXVzc2lhbkJsdXIg aW49IlNvdXJjZUFscGhhIiBzdGREZXZpYXRpb249IntibHVyfSIvPjxmZU9m ZnNldCBkeD0ie2R4fSIgZHk9IntkeX0iIHJlc3VsdD0ib2Zmc2V0Ymx1ciIv PjxmZUZsb29kIGZsb29kLWNvbG9yPSJ7Y29sb3J9Ii8+PGZlQ29tcG9zaXRl IGluMj0ib2Zmc2V0Ymx1ciIgb3BlcmF0b3I9ImluIi8+PGZlQ29tcG9uZW50 VHJhbnNmZXI+PGZlRnVuY0EgdHlwZT0ibGluZWFyIiBzbG9wZT0ie29wYWNp dHl9Ii8+PC9mZUNvbXBvbmVudFRyYW5zZmVyPjxmZU1lcmdlPjxmZU1lcmdl Tm9kZS8+PGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIi8+PC9mZU1l cmdlPicse2NvbG9yOmUsZHg6YixkeTpjLGJsdXI6ZCxvcGFjaXR5OmZ9KX0s YS5maWx0ZXIuc2hhZG93LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRo aXMoKX0sYS5maWx0ZXIuZ3JheXNjYWxlPWZ1bmN0aW9uKGIpe3JldHVybiBu dWxsPT1iJiYoYj0xKSxhLmZvcm1hdCgnPGZlQ29sb3JNYXRyaXggdHlwZT0i bWF0cml4IiB2YWx1ZXM9InthfSB7Yn0ge2N9IDAgMCB7ZH0ge2V9IHtmfSAw IDAge2d9IHtifSB7aH0gMCAwIDAgMCAwIDEgMCIvPicse2E6LjIxMjYrLjc4 NzQqKDEtYiksYjouNzE1Mi0uNzE1MiooMS1iKSxjOi4wNzIyLS4wNzIyKigx LWIpLGQ6LjIxMjYtLjIxMjYqKDEtYiksZTouNzE1MisuMjg0OCooMS1iKSxm Oi4wNzIyLS4wNzIyKigxLWIpLGc6LjIxMjYtLjIxMjYqKDEtYiksaDouMDcy MisuOTI3OCooMS1iKX0pfSxhLmZpbHRlci5ncmF5c2NhbGUudG9TdHJpbmc9 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcygpfSxhLmZpbHRlci5zZXBpYT1mdW5j dGlvbihiKXtyZXR1cm4gbnVsbD09YiYmKGI9MSksYS5mb3JtYXQoJzxmZUNv bG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSJ7YX0ge2J9IHtjfSAw IDAge2R9IHtlfSB7Zn0gMCAwIHtnfSB7aH0ge2l9IDAgMCAwIDAgMCAxIDAi Lz4nLHthOi4zOTMrLjYwNyooMS1iKSxiOi43NjktLjc2OSooMS1iKSxjOi4x ODktLjE4OSooMS1iKSxkOi4zNDktLjM0OSooMS1iKSxlOi42ODYrLjMxNCoo MS1iKSxmOi4xNjgtLjE2OCooMS1iKSxnOi4yNzItLjI3MiooMS1iKSxoOi41 MzQtLjUzNCooMS1iKSxpOi4xMzErLjg2OSooMS1iKX0pfSxhLmZpbHRlci5z ZXBpYS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzKCl9LGEuZmls dGVyLnNhdHVyYXRlPWZ1bmN0aW9uKGIpe3JldHVybiBudWxsPT1iJiYoYj0x KSxhLmZvcm1hdCgnPGZlQ29sb3JNYXRyaXggdHlwZT0ic2F0dXJhdGUiIHZh bHVlcz0ie2Ftb3VudH0iLz4nLHthbW91bnQ6MS1ifSl9LGEuZmlsdGVyLnNh dHVyYXRlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMoKX0sYS5m aWx0ZXIuaHVlUm90YXRlPWZ1bmN0aW9uKGIpe3JldHVybiBiPWJ8fDAsYS5m b3JtYXQoJzxmZUNvbG9yTWF0cml4IHR5cGU9Imh1ZVJvdGF0ZSIgdmFsdWVz PSJ7YW5nbGV9Ii8+Jyx7YW5nbGU6Yn0pfSxhLmZpbHRlci5odWVSb3RhdGUu dG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcygpfSxhLmZpbHRlci5p bnZlcnQ9ZnVuY3Rpb24oYil7cmV0dXJuIG51bGw9PWImJihiPTEpLGEuZm9y bWF0KCc8ZmVDb21wb25lbnRUcmFuc2Zlcj48ZmVGdW5jUiB0eXBlPSJ0YWJs ZSIgdGFibGVWYWx1ZXM9InthbW91bnR9IHthbW91bnQyfSIvPjxmZUZ1bmNH IHR5cGU9InRhYmxlIiB0YWJsZVZhbHVlcz0ie2Ftb3VudH0ge2Ftb3VudDJ9 Ii8+PGZlRnVuY0IgdHlwZT0idGFibGUiIHRhYmxlVmFsdWVzPSJ7YW1vdW50 fSB7YW1vdW50Mn0iLz48L2ZlQ29tcG9uZW50VHJhbnNmZXI+Jyx7YW1vdW50 OmIsYW1vdW50MjoxLWJ9KX0sYS5maWx0ZXIuaW52ZXJ0LnRvU3RyaW5nPWZ1 bmN0aW9uKCl7cmV0dXJuIHRoaXMoKX0sYS5maWx0ZXIuYnJpZ2h0bmVzcz1m dW5jdGlvbihiKXtyZXR1cm4gbnVsbD09YiYmKGI9MSksYS5mb3JtYXQoJzxm ZUNvbXBvbmVudFRyYW5zZmVyPjxmZUZ1bmNSIHR5cGU9ImxpbmVhciIgc2xv cGU9InthbW91bnR9Ii8+PGZlRnVuY0cgdHlwZT0ibGluZWFyIiBzbG9wZT0i e2Ftb3VudH0iLz48ZmVGdW5jQiB0eXBlPSJsaW5lYXIiIHNsb3BlPSJ7YW1v dW50fSIvPjwvZmVDb21wb25lbnRUcmFuc2Zlcj4nLHthbW91bnQ6Yn0pfSxh LmZpbHRlci5icmlnaHRuZXNzLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJu IHRoaXMoKX0sYS5maWx0ZXIuY29udHJhc3Q9ZnVuY3Rpb24oYil7cmV0dXJu IG51bGw9PWImJihiPTEpLGEuZm9ybWF0KCc8ZmVDb21wb25lbnRUcmFuc2Zl cj48ZmVGdW5jUiB0eXBlPSJsaW5lYXIiIHNsb3BlPSJ7YW1vdW50fSIgaW50 ZXJjZXB0PSJ7YW1vdW50Mn0iLz48ZmVGdW5jRyB0eXBlPSJsaW5lYXIiIHNs b3BlPSJ7YW1vdW50fSIgaW50ZXJjZXB0PSJ7YW1vdW50Mn0iLz48ZmVGdW5j QiB0eXBlPSJsaW5lYXIiIHNsb3BlPSJ7YW1vdW50fSIgaW50ZXJjZXB0PSJ7 YW1vdW50Mn0iLz48L2ZlQ29tcG9uZW50VHJhbnNmZXI+Jyx7YW1vdW50OmIs YW1vdW50MjouNS1iLzJ9KX0sYS5maWx0ZXIuY29udHJhc3QudG9TdHJpbmc9 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcygpfX0pLGQucGx1Z2luKGZ1bmN0aW9u KGEsYil7dmFyIGM9YS5fLmJveCxkPWEuaXMsZT0vXlteYS16XSooW3RibWxy Y10pL2ksZj1mdW5jdGlvbigpe3JldHVybiJUIit0aGlzLmR4KyIsIit0aGlz LmR5fTtiLnByb3RvdHlwZS5nZXRBbGlnbj1mdW5jdGlvbihhLGIpe251bGw9 PWImJmQoYSwic3RyaW5nIikmJihiPWEsYT1udWxsKSxhPWF8fHRoaXMucGFw ZXI7dmFyIGc9YS5nZXRCQm94P2EuZ2V0QkJveCgpOmMoYSksaD10aGlzLmdl dEJCb3goKSxpPXt9O3N3aXRjaChiPWImJmIubWF0Y2goZSksYj1iP2JbMV0u dG9Mb3dlckNhc2UoKToiYyIpe2Nhc2UidCI6aS5keD0wLGkuZHk9Zy55LWgu eTticmVhaztjYXNlImIiOmkuZHg9MCxpLmR5PWcueTItaC55MjticmVhaztj YXNlIm0iOmkuZHg9MCxpLmR5PWcuY3ktaC5jeTticmVhaztjYXNlImwiOmku ZHg9Zy54LWgueCxpLmR5PTA7YnJlYWs7Y2FzZSJyIjppLmR4PWcueDItaC54 MixpLmR5PTA7YnJlYWs7ZGVmYXVsdDppLmR4PWcuY3gtaC5jeCxpLmR5PTB9 cmV0dXJuIGkudG9TdHJpbmc9ZixpfSxiLnByb3RvdHlwZS5hbGlnbj1mdW5j dGlvbihhLGIpe3JldHVybiB0aGlzLnRyYW5zZm9ybSgiLi4uIit0aGlzLmdl dEFsaWduKGEsYikpfX0pLGR9KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L21pc2Mvc3RhdGljL2V4cGxhaW4vanMvc25hcC5zdmcuanMgYi93ZWIvcGdh ZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2pzL3NuYXAuc3ZnLmpzCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMGZiNmQKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWlu L2pzL3NuYXAuc3ZnLmpzCkBAIC0wLDAgKzEsODE0OSBAQAorLy8gU25hcC5z dmcgMC40LjEKKy8vIENvcHlyaWdodCAoYykgMjAxMyDigJMgMjAxNSBBZG9i ZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K Ky8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv biAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRo aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNl LgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0 CisvLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y LjAKKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh Z3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVk IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJ UyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O UyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8v IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdv dmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVy IHRoZSBMaWNlbnNlLgorLy8gYnVpbGQ6IDIwMTUtMDQtMTMKKy8vIENvcHly aWdodCAoYykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFj aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8g eW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5j ZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5 IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gaHR0cDovL3d3dy5hcGFjaGUu b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVp cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n LCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug aXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhP VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRo ZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZv ciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z IGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLyDi lIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilJAgXFwKKy8vIOKUgiBFdmUgMC40LjIgLSBKYXZhU2NyaXB0IEV2ZW50 cyBMaWJyYXJ5ICAgICAgICAgICAgICAgICAgICAgIOKUgiBcXAorLy8g4pSc 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSkIFxcCisvLyDilIIgQXV0aG9yIERtaXRyeSBCYXJhbm92c2tpeSAoaHR0 cDovL2RtaXRyeS5iYXJhbm92c2tpeS5jb20vKSDilIIgXFwKKy8vIOKUlOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU mCBcXAorKGZ1bmN0aW9uIChnbG9iKSB7CisgICAgdmFyIHZlcnNpb24gPSAi MC40LjIiLAorICAgICAgICBoYXMgPSAiaGFzT3duUHJvcGVydHkiLAorICAg ICAgICBzZXBhcmF0b3IgPSAvW1wuXC9dLywKKyAgICAgICAgY29tYXNlcGFy YXRvciA9IC9ccyosXHMqLywKKyAgICAgICAgd2lsZGNhcmQgPSAiKiIsCisg ICAgICAgIGZ1biA9IGZ1bmN0aW9uICgpIHt9LAorICAgICAgICBudW1zb3J0 ID0gZnVuY3Rpb24gKGEsIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBhIC0g YjsKKyAgICAgICAgfSwKKyAgICAgICAgY3VycmVudF9ldmVudCwKKyAgICAg ICAgc3RvcCwKKyAgICAgICAgZXZlbnRzID0ge246IHt9fSwKKyAgICAgICAg Zmlyc3REZWZpbmVkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm9y ICh2YXIgaSA9IDAsIGlpID0gdGhpcy5sZW5ndGg7IGkgPCBpaTsgaSsrKSB7 CisgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzW2ldICE9ICJ1bmRl ZmluZWQiKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2ld OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg fSwKKyAgICAgICAgbGFzdERlZmluZWQgPSBmdW5jdGlvbiAoKSB7CisgICAg ICAgICAgICB2YXIgaSA9IHRoaXMubGVuZ3RoOworICAgICAgICAgICAgd2hp bGUgKC0taSkgeworICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpc1tp XSAhPSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAgICAgICAgICByZXR1 cm4gdGhpc1tpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9 CisgICAgICAgIH0sCisgICAgLypcCisgICAgICogZXZlCisgICAgIFsgbWV0 aG9kIF0KKyAgICAgKiBGaXJlcyBldmVudCB3aXRoIGdpdmVuIGBuYW1lYCwg Z2l2ZW4gc2NvcGUgYW5kIG90aGVyIHBhcmFtZXRlcnMuCisgICAgID4gQXJn dW1lbnRzCisgICAgIC0gbmFtZSAoc3RyaW5nKSBuYW1lIG9mIHRoZSAqZXZl bnQqLCBkb3QgKGAuYCkgb3Igc2xhc2ggKGAvYCkgc2VwYXJhdGVkCisgICAg IC0gc2NvcGUgKG9iamVjdCkgY29udGV4dCBmb3IgdGhlIGV2ZW50IGhhbmRs ZXJzCisgICAgIC0gdmFyYXJncyAoLi4uKSB0aGUgcmVzdCBvZiBhcmd1bWVu dHMgd2lsbCBiZSBzZW50IHRvIGV2ZW50IGhhbmRsZXJzCisgICAgID0gKG9i amVjdCkgYXJyYXkgb2YgcmV0dXJuZWQgdmFsdWVzIGZyb20gdGhlIGxpc3Rl bmVycy4gQXJyYXkgaGFzIHR3byBtZXRob2RzIGAuZmlyc3REZWZpbmVkKClg IGFuZCBgLmxhc3REZWZpbmVkKClgIHRvIGdldCBmaXJzdCBvciBsYXN0IG5v dCBgdW5kZWZpbmVkYCB2YWx1ZS4KKyAgICBcKi8KKyAgICAgICAgZXZlID0g ZnVuY3Rpb24gKG5hbWUsIHNjb3BlKSB7CisgICAgICAgICAgICBuYW1lID0g U3RyaW5nKG5hbWUpOworICAgICAgICAgICAgdmFyIGUgPSBldmVudHMsCisg ICAgICAgICAgICAgICAgb2xkc3RvcCA9IHN0b3AsCisgICAgICAgICAgICAg ICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50 cywgMiksCisgICAgICAgICAgICAgICAgbGlzdGVuZXJzID0gZXZlLmxpc3Rl bmVycyhuYW1lKSwKKyAgICAgICAgICAgICAgICB6ID0gMCwKKyAgICAgICAg ICAgICAgICBmID0gZmFsc2UsCisgICAgICAgICAgICAgICAgbCwKKyAgICAg ICAgICAgICAgICBpbmRleGVkID0gW10sCisgICAgICAgICAgICAgICAgcXVl dWUgPSB7fSwKKyAgICAgICAgICAgICAgICBvdXQgPSBbXSwKKyAgICAgICAg ICAgICAgICBjZSA9IGN1cnJlbnRfZXZlbnQsCisgICAgICAgICAgICAgICAg ZXJyb3JzID0gW107CisgICAgICAgICAgICBvdXQuZmlyc3REZWZpbmVkID0g Zmlyc3REZWZpbmVkOworICAgICAgICAgICAgb3V0Lmxhc3REZWZpbmVkID0g bGFzdERlZmluZWQ7CisgICAgICAgICAgICBjdXJyZW50X2V2ZW50ID0gbmFt ZTsKKyAgICAgICAgICAgIHN0b3AgPSAwOworICAgICAgICAgICAgZm9yICh2 YXIgaSA9IDAsIGlpID0gbGlzdGVuZXJzLmxlbmd0aDsgaSA8IGlpOyBpKysp IGlmICgiekluZGV4IiBpbiBsaXN0ZW5lcnNbaV0pIHsKKyAgICAgICAgICAg ICAgICBpbmRleGVkLnB1c2gobGlzdGVuZXJzW2ldLnpJbmRleCk7CisgICAg ICAgICAgICAgICAgaWYgKGxpc3RlbmVyc1tpXS56SW5kZXggPCAwKSB7Cisg ICAgICAgICAgICAgICAgICAgIHF1ZXVlW2xpc3RlbmVyc1tpXS56SW5kZXhd ID0gbGlzdGVuZXJzW2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIGluZGV4ZWQuc29ydChudW1zb3J0KTsKKyAg ICAgICAgICAgIHdoaWxlIChpbmRleGVkW3pdIDwgMCkgeworICAgICAgICAg ICAgICAgIGwgPSBxdWV1ZVtpbmRleGVkW3orK11dOworICAgICAgICAgICAg ICAgIG91dC5wdXNoKGwuYXBwbHkoc2NvcGUsIGFyZ3MpKTsKKyAgICAgICAg ICAgICAgICBpZiAoc3RvcCkgeworICAgICAgICAgICAgICAgICAgICBzdG9w ID0gb2xkc3RvcDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dDsK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgaWk7IGkrKykgeworICAgICAgICAgICAgICAg IGwgPSBsaXN0ZW5lcnNbaV07CisgICAgICAgICAgICAgICAgaWYgKCJ6SW5k ZXgiIGluIGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGwuekluZGV4 ID09IGluZGV4ZWRbel0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91 dC5wdXNoKGwuYXBwbHkoc2NvcGUsIGFyZ3MpKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChzdG9wKSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeisrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwg PSBxdWV1ZVtpbmRleGVkW3pdXTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsICYmIG91dC5wdXNoKGwuYXBwbHkoc2NvcGUsIGFyZ3MpKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcCkgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9 IHdoaWxlIChsKQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgICAgICAgICAgICAgcXVldWVbbC56SW5kZXhdID0gbDsKKyAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKGwuYXBwbHkoc2NvcGUs IGFyZ3MpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3ApIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg ICAgICAgICAgc3RvcCA9IG9sZHN0b3A7CisgICAgICAgICAgICBjdXJyZW50 X2V2ZW50ID0gY2U7CisgICAgICAgICAgICByZXR1cm4gb3V0OworICAgICAg ICB9OworICAgICAgICAvLyBVbmRvY3VtZW50ZWQuIERlYnVnIG9ubHkuCisg ICAgICAgIGV2ZS5fZXZlbnRzID0gZXZlbnRzOworICAgIC8qXAorICAgICAq IGV2ZS5saXN0ZW5lcnMKKyAgICAgWyBtZXRob2QgXQorICAgICAqIEludGVy bmFsIG1ldGhvZCB3aGljaCBnaXZlcyB5b3UgYXJyYXkgb2YgYWxsIGV2ZW50 IGhhbmRsZXJzIHRoYXQgd2lsbCBiZSB0cmlnZ2VyZWQgYnkgdGhlIGdpdmVu IGBuYW1lYC4KKyAgICAgPiBBcmd1bWVudHMKKyAgICAgLSBuYW1lIChzdHJp bmcpIG5hbWUgb2YgdGhlIGV2ZW50LCBkb3QgKGAuYCkgb3Igc2xhc2ggKGAv YCkgc2VwYXJhdGVkCisgICAgID0gKGFycmF5KSBhcnJheSBvZiBldmVudCBo YW5kbGVycworICAgIFwqLworICAgIGV2ZS5saXN0ZW5lcnMgPSBmdW5jdGlv biAobmFtZSkgeworICAgICAgICB2YXIgbmFtZXMgPSBuYW1lLnNwbGl0KHNl cGFyYXRvciksCisgICAgICAgICAgICBlID0gZXZlbnRzLAorICAgICAgICAg ICAgaXRlbSwKKyAgICAgICAgICAgIGl0ZW1zLAorICAgICAgICAgICAgaywK KyAgICAgICAgICAgIGksCisgICAgICAgICAgICBpaSwKKyAgICAgICAgICAg IGosCisgICAgICAgICAgICBqaiwKKyAgICAgICAgICAgIG5lcywKKyAgICAg ICAgICAgIGVzID0gW2VdLAorICAgICAgICAgICAgb3V0ID0gW107CisgICAg ICAgIGZvciAoaSA9IDAsIGlpID0gbmFtZXMubGVuZ3RoOyBpIDwgaWk7IGkr KykgeworICAgICAgICAgICAgbmVzID0gW107CisgICAgICAgICAgICBmb3Ig KGogPSAwLCBqaiA9IGVzLmxlbmd0aDsgaiA8IGpqOyBqKyspIHsKKyAgICAg ICAgICAgICAgICBlID0gZXNbal0ubjsKKyAgICAgICAgICAgICAgICBpdGVt cyA9IFtlW25hbWVzW2ldXSwgZVt3aWxkY2FyZF1dOworICAgICAgICAgICAg ICAgIGsgPSAyOworICAgICAgICAgICAgICAgIHdoaWxlIChrLS0pIHsKKyAg ICAgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2tdOworICAgICAgICAg ICAgICAgICAgICBpZiAoaXRlbSkgeworICAgICAgICAgICAgICAgICAgICAg ICAgbmVzLnB1c2goaXRlbSk7CisgICAgICAgICAgICAgICAgICAgICAgICBv dXQgPSBvdXQuY29uY2F0KGl0ZW0uZiB8fCBbXSk7CisgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBlcyA9IG5lczsKKyAgICAgICAgfQorICAgICAgICByZXR1 cm4gb3V0OworICAgIH07CisgICAgLypcCisgICAgICogZXZlLm9uCisgICAg IFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBCaW5kcyBnaXZlbiBldmVu dCBoYW5kbGVyIHdpdGggYSBnaXZlbiBuYW1lLiBZb3UgY2FuIHVzZSB3aWxk Y2FyZHMg4oCcYCpg4oCdIGZvciB0aGUgbmFtZXM6CisgICAgIHwgZXZlLm9u KCIqLnVuZGVyLioiLCBmKTsKKyAgICAgfCBldmUoIm1vdXNlLnVuZGVyLmZs b29yIik7IC8vIHRyaWdnZXJzIGYKKyAgICAgKiBVc2UgQGV2ZSB0byB0cmln Z2VyIHRoZSBsaXN0ZW5lci4KKyAgICAgKioKKyAgICAgPiBBcmd1bWVudHMK KyAgICAgKioKKyAgICAgLSBuYW1lIChzdHJpbmcpIG5hbWUgb2YgdGhlIGV2 ZW50LCBkb3QgKGAuYCkgb3Igc2xhc2ggKGAvYCkgc2VwYXJhdGVkLCB3aXRo IG9wdGlvbmFsIHdpbGRjYXJkcworICAgICAtIGYgKGZ1bmN0aW9uKSBldmVu dCBoYW5kbGVyIGZ1bmN0aW9uCisgICAgICoqCisgICAgID0gKGZ1bmN0aW9u KSByZXR1cm5lZCBmdW5jdGlvbiBhY2NlcHRzIGEgc2luZ2xlIG51bWVyaWMg cGFyYW1ldGVyIHRoYXQgcmVwcmVzZW50cyB6LWluZGV4IG9mIHRoZSBoYW5k bGVyLiBJdCBpcyBhbiBvcHRpb25hbCBmZWF0dXJlIGFuZCBvbmx5IHVzZWQg d2hlbiB5b3UgbmVlZCB0byBlbnN1cmUgdGhhdCBzb21lIHN1YnNldCBvZiBo YW5kbGVycyB3aWxsIGJlIGludm9rZWQgaW4gYSBnaXZlbiBvcmRlciwgZGVz cGl0ZSBvZiB0aGUgb3JkZXIgb2YgYXNzaWdubWVudC4KKyAgICAgPiBFeGFt cGxlOgorICAgICB8IGV2ZS5vbigibW91c2UiLCBlYXRJdCkoMik7CisgICAg IHwgZXZlLm9uKCJtb3VzZSIsIHNjcmVhbSk7CisgICAgIHwgZXZlLm9uKCJt b3VzZSIsIGNhdGNoSXQpKDEpOworICAgICAqIFRoaXMgd2lsbCBlbnN1cmUg dGhhdCBgY2F0Y2hJdGAgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYmVmb3Jl IGBlYXRJdGAuCisgICAgICoKKyAgICAgKiBJZiB5b3Ugd2FudCB0byBwdXQg eW91ciBoYW5kbGVyIGJlZm9yZSBub24taW5kZXhlZCBoYW5kbGVycywgc3Bl Y2lmeSBhIG5lZ2F0aXZlIHZhbHVlLgorICAgICAqIE5vdGU6IEkgYXNzdW1l IG1vc3Qgb2YgdGhlIHRpbWUgeW91IGRvbuKAmXQgbmVlZCB0byB3b3JyeSBh Ym91dCB6LWluZGV4LCBidXQgaXTigJlzIG5pY2UgdG8gaGF2ZSB0aGlzIGZl YXR1cmUg4oCcanVzdCBpbiBjYXNl4oCdLgorICAgIFwqLworICAgIGV2ZS5v biA9IGZ1bmN0aW9uIChuYW1lLCBmKSB7CisgICAgICAgIG5hbWUgPSBTdHJp bmcobmFtZSk7CisgICAgICAgIGlmICh0eXBlb2YgZiAhPSAiZnVuY3Rpb24i KSB7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge307CisgICAg ICAgIH0KKyAgICAgICAgdmFyIG5hbWVzID0gbmFtZS5zcGxpdChjb21hc2Vw YXJhdG9yKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gbmFtZXMu bGVuZ3RoOyBpIDwgaWk7IGkrKykgeworICAgICAgICAgICAgKGZ1bmN0aW9u IChuYW1lKSB7CisgICAgICAgICAgICAgICAgdmFyIG5hbWVzID0gbmFtZS5z cGxpdChzZXBhcmF0b3IpLAorICAgICAgICAgICAgICAgICAgICBlID0gZXZl bnRzLAorICAgICAgICAgICAgICAgICAgICBleGlzdDsKKyAgICAgICAgICAg ICAgICBmb3IgKHZhciBpID0gMCwgaWkgPSBuYW1lcy5sZW5ndGg7IGkgPCBp aTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGUgPSBlLm47CisgICAg ICAgICAgICAgICAgICAgIGUgPSBlLmhhc093blByb3BlcnR5KG5hbWVzW2ld KSAmJiBlW25hbWVzW2ldXSB8fCAoZVtuYW1lc1tpXV0gPSB7bjoge319KTsK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZS5mID0gZS5m IHx8IFtdOworICAgICAgICAgICAgICAgIGZvciAoaSA9IDAsIGlpID0gZS5m Lmxlbmd0aDsgaSA8IGlpOyBpKyspIGlmIChlLmZbaV0gPT0gZikgeworICAg ICAgICAgICAgICAgICAgICBleGlzdCA9IHRydWU7CisgICAgICAgICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAhZXhpc3QgJiYgZS5mLnB1c2goZik7CisgICAgICAgICAgICB9KG5h bWVzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9u ICh6SW5kZXgpIHsKKyAgICAgICAgICAgIGlmICgrekluZGV4ID09ICt6SW5k ZXgpIHsKKyAgICAgICAgICAgICAgICBmLnpJbmRleCA9ICt6SW5kZXg7Cisg ICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfTsKKyAgICAvKlwKKyAg ICAgKiBldmUuZgorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICog UmV0dXJucyBmdW5jdGlvbiB0aGF0IHdpbGwgZmlyZSBnaXZlbiBldmVudCB3 aXRoIG9wdGlvbmFsIGFyZ3VtZW50cy4KKyAgICAgKiBBcmd1bWVudHMgdGhh dCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcmVzdWx0IGZ1bmN0aW9uIHdpbGwg YmUgYWxzbworICAgICAqIGNvbmNhdGVkIHRvIHRoZSBsaXN0IG9mIGZpbmFs IGFyZ3VtZW50cy4KKyAgICAgfCBlbC5vbmNsaWNrID0gZXZlLmYoImNsaWNr IiwgMSwgMik7CisgICAgIHwgZXZlLm9uKCJjbGljayIsIGZ1bmN0aW9uIChh LCBiLCBjKSB7CisgICAgIHwgICAgIGNvbnNvbGUubG9nKGEsIGIsIGMpOyAv LyAxLCAyLCBbZXZlbnQgb2JqZWN0XQorICAgICB8IH0pOworICAgICA+IEFy Z3VtZW50cworICAgICAtIGV2ZW50IChzdHJpbmcpIGV2ZW50IG5hbWUKKyAg ICAgLSB2YXJhcmdzICjigKYpIGFuZCBhbnkgb3RoZXIgYXJndW1lbnRzCisg ICAgID0gKGZ1bmN0aW9uKSBwb3NzaWJsZSBldmVudCBoYW5kbGVyIGZ1bmN0 aW9uCisgICAgXCovCisgICAgZXZlLmYgPSBmdW5jdGlvbiAoZXZlbnQpIHsK KyAgICAgICAgdmFyIGF0dHJzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMs IDEpOworICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeworICAgICAgICAg ICAgZXZlLmFwcGx5KG51bGwsIFtldmVudCwgbnVsbF0uY29uY2F0KGF0dHJz KS5jb25jYXQoW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApKSk7CisgICAg ICAgIH07CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBldmUuc3RvcAorICAg ICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogSXMgdXNlZCBpbnNpZGUg YW4gZXZlbnQgaGFuZGxlciB0byBzdG9wIHRoZSBldmVudCwgcHJldmVudGlu ZyBhbnkgc3Vic2VxdWVudCBsaXN0ZW5lcnMgZnJvbSBmaXJpbmcuCisgICAg XCovCisgICAgZXZlLnN0b3AgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHN0 b3AgPSAxOworICAgIH07CisgICAgLypcCisgICAgICogZXZlLm50CisgICAg IFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBDb3VsZCBiZSB1c2VkIGlu c2lkZSBldmVudCBoYW5kbGVyIHRvIGZpZ3VyZSBvdXQgYWN0dWFsIG5hbWUg b2YgdGhlIGV2ZW50LgorICAgICAqKgorICAgICA+IEFyZ3VtZW50cworICAg ICAqKgorICAgICAtIHN1Ym5hbWUgKHN0cmluZykgI29wdGlvbmFsIHN1Ym5h bWUgb2YgdGhlIGV2ZW50CisgICAgICoqCisgICAgID0gKHN0cmluZykgbmFt ZSBvZiB0aGUgZXZlbnQsIGlmIGBzdWJuYW1lYCBpcyBub3Qgc3BlY2lmaWVk CisgICAgICogb3IKKyAgICAgPSAoYm9vbGVhbikgYHRydWVgLCBpZiBjdXJy ZW50IGV2ZW504oCZcyBuYW1lIGNvbnRhaW5zIGBzdWJuYW1lYAorICAgIFwq LworICAgIGV2ZS5udCA9IGZ1bmN0aW9uIChzdWJuYW1lKSB7CisgICAgICAg IGlmIChzdWJuYW1lKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4 cCgiKD86XFwufFxcL3xeKSIgKyBzdWJuYW1lICsgIig/OlxcLnxcXC98JCki KS50ZXN0KGN1cnJlbnRfZXZlbnQpOworICAgICAgICB9CisgICAgICAgIHJl dHVybiBjdXJyZW50X2V2ZW50OworICAgIH07CisgICAgLypcCisgICAgICog ZXZlLm50cworICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogQ291 bGQgYmUgdXNlZCBpbnNpZGUgZXZlbnQgaGFuZGxlciB0byBmaWd1cmUgb3V0 IGFjdHVhbCBuYW1lIG9mIHRoZSBldmVudC4KKyAgICAgKioKKyAgICAgKioK KyAgICAgPSAoYXJyYXkpIG5hbWVzIG9mIHRoZSBldmVudAorICAgIFwqLwor ICAgIGV2ZS5udHMgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBj dXJyZW50X2V2ZW50LnNwbGl0KHNlcGFyYXRvcik7CisgICAgfTsKKyAgICAv KlwKKyAgICAgKiBldmUub2ZmCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioK KyAgICAgKiBSZW1vdmVzIGdpdmVuIGZ1bmN0aW9uIGZyb20gdGhlIGxpc3Qg b2YgZXZlbnQgbGlzdGVuZXJzIGFzc2lnbmVkIHRvIGdpdmVuIG5hbWUuCisg ICAgICogSWYgbm8gYXJndW1lbnRzIHNwZWNpZmllZCBhbGwgdGhlIGV2ZW50 cyB3aWxsIGJlIGNsZWFyZWQuCisgICAgICoqCisgICAgID4gQXJndW1lbnRz CisgICAgICoqCisgICAgIC0gbmFtZSAoc3RyaW5nKSBuYW1lIG9mIHRoZSBl dmVudCwgZG90IChgLmApIG9yIHNsYXNoIChgL2ApIHNlcGFyYXRlZCwgd2l0 aCBvcHRpb25hbCB3aWxkY2FyZHMKKyAgICAgLSBmIChmdW5jdGlvbikgZXZl bnQgaGFuZGxlciBmdW5jdGlvbgorICAgIFwqLworICAgIC8qXAorICAgICAq IGV2ZS51bmJpbmQKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAq IFNlZSBAZXZlLm9mZgorICAgIFwqLworICAgIGV2ZS5vZmYgPSBldmUudW5i aW5kID0gZnVuY3Rpb24gKG5hbWUsIGYpIHsKKyAgICAgICAgaWYgKCFuYW1l KSB7CisgICAgICAgICAgICBldmUuX2V2ZW50cyA9IGV2ZW50cyA9IHtuOiB7 fX07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg dmFyIG5hbWVzID0gbmFtZS5zcGxpdChjb21hc2VwYXJhdG9yKTsKKyAgICAg ICAgaWYgKG5hbWVzLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICAgIGZvciAo dmFyIGkgPSAwLCBpaSA9IG5hbWVzLmxlbmd0aDsgaSA8IGlpOyBpKyspIHsK KyAgICAgICAgICAgICAgICBldmUub2ZmKG5hbWVzW2ldLCBmKTsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg ICAgICBuYW1lcyA9IG5hbWUuc3BsaXQoc2VwYXJhdG9yKTsKKyAgICAgICAg dmFyIGUsCisgICAgICAgICAgICBrZXksCisgICAgICAgICAgICBzcGxpY2Us CisgICAgICAgICAgICBpLCBpaSwgaiwgamosCisgICAgICAgICAgICBjdXIg PSBbZXZlbnRzXTsKKyAgICAgICAgZm9yIChpID0gMCwgaWkgPSBuYW1lcy5s ZW5ndGg7IGkgPCBpaTsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSAw OyBqIDwgY3VyLmxlbmd0aDsgaiArPSBzcGxpY2UubGVuZ3RoIC0gMikgewor ICAgICAgICAgICAgICAgIHNwbGljZSA9IFtqLCAxXTsKKyAgICAgICAgICAg ICAgICBlID0gY3VyW2pdLm47CisgICAgICAgICAgICAgICAgaWYgKG5hbWVz W2ldICE9IHdpbGRjYXJkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChl W25hbWVzW2ldXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3BsaWNl LnB1c2goZVtuYW1lc1tpXV0pOworICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg Zm9yIChrZXkgaW4gZSkgaWYgKGVbaGFzXShrZXkpKSB7CisgICAgICAgICAg ICAgICAgICAgICAgICBzcGxpY2UucHVzaChlW2tleV0pOworICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIGN1ci5zcGxpY2UuYXBwbHkoY3VyLCBzcGxpY2UpOworICAgICAgICAg ICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaSA9IDAsIGlpID0gY3Vy Lmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgIGUgPSBjdXJb aV07CisgICAgICAgICAgICB3aGlsZSAoZS5uKSB7CisgICAgICAgICAgICAg ICAgaWYgKGYpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUuZikgewor ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gMCwgamogPSBlLmYu bGVuZ3RoOyBqIDwgamo7IGorKykgaWYgKGUuZltqXSA9PSBmKSB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZS5mLnNwbGljZShqLCAxKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICFlLmYu bGVuZ3RoICYmIGRlbGV0ZSBlLmY7CisgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgZm9yIChrZXkgaW4gZS5uKSBpZiAoZS5u W2hhc10oa2V5KSAmJiBlLm5ba2V5XS5mKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICB2YXIgZnVuY3MgPSBlLm5ba2V5XS5mOworICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIChqID0gMCwgamogPSBmdW5jcy5sZW5ndGg7IGog PCBqajsgaisrKSBpZiAoZnVuY3Nbal0gPT0gZikgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZ1bmNzLnNwbGljZShqLCAxKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICFmdW5jcy5sZW5n dGggJiYgZGVsZXRlIGUubltrZXldLmY7CisgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg ICAgICBkZWxldGUgZS5mOworICAgICAgICAgICAgICAgICAgICBmb3IgKGtl eSBpbiBlLm4pIGlmIChlLm5baGFzXShrZXkpICYmIGUubltrZXldLmYpIHsK KyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBlLm5ba2V5XS5mOwor ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgIGUgPSBlLm47CisgICAgICAgICAgICB9CisgICAgICAg IH0KKyAgICB9OworICAgIC8qXAorICAgICAqIGV2ZS5vbmNlCisgICAgIFsg bWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBCaW5kcyBnaXZlbiBldmVudCBo YW5kbGVyIHdpdGggYSBnaXZlbiBuYW1lIHRvIG9ubHkgcnVuIG9uY2UgdGhl biB1bmJpbmQgaXRzZWxmLgorICAgICB8IGV2ZS5vbmNlKCJsb2dpbiIsIGYp OworICAgICB8IGV2ZSgibG9naW4iKTsgLy8gdHJpZ2dlcnMgZgorICAgICB8 IGV2ZSgibG9naW4iKTsgLy8gbm8gbGlzdGVuZXJzCisgICAgICogVXNlIEBl dmUgdG8gdHJpZ2dlciB0aGUgbGlzdGVuZXIuCisgICAgICoqCisgICAgID4g QXJndW1lbnRzCisgICAgICoqCisgICAgIC0gbmFtZSAoc3RyaW5nKSBuYW1l IG9mIHRoZSBldmVudCwgZG90IChgLmApIG9yIHNsYXNoIChgL2ApIHNlcGFy YXRlZCwgd2l0aCBvcHRpb25hbCB3aWxkY2FyZHMKKyAgICAgLSBmIChmdW5j dGlvbikgZXZlbnQgaGFuZGxlciBmdW5jdGlvbgorICAgICAqKgorICAgICA9 IChmdW5jdGlvbikgc2FtZSByZXR1cm4gZnVuY3Rpb24gYXMgQGV2ZS5vbgor ICAgIFwqLworICAgIGV2ZS5vbmNlID0gZnVuY3Rpb24gKG5hbWUsIGYpIHsK KyAgICAgICAgdmFyIGYyID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg ZXZlLnVuYmluZChuYW1lLCBmMik7CisgICAgICAgICAgICByZXR1cm4gZi5h cHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICB9OworICAgICAgICBy ZXR1cm4gZXZlLm9uKG5hbWUsIGYyKTsKKyAgICB9OworICAgIC8qXAorICAg ICAqIGV2ZS52ZXJzaW9uCisgICAgIFsgcHJvcGVydHkgKHN0cmluZykgXQor ICAgICAqKgorICAgICAqIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgbGlicmFy eS4KKyAgICBcKi8KKyAgICBldmUudmVyc2lvbiA9IHZlcnNpb247CisgICAg ZXZlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4g IllvdSBhcmUgcnVubmluZyBFdmUgIiArIHZlcnNpb247CisgICAgfTsKKyAg ICAodHlwZW9mIG1vZHVsZSAhPSAidW5kZWZpbmVkIiAmJiBtb2R1bGUuZXhw b3J0cykgPyAobW9kdWxlLmV4cG9ydHMgPSBldmUpIDogKHR5cGVvZiBkZWZp bmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCA/IChkZWZpbmUoImV2 ZSIsIFtdLCBmdW5jdGlvbigpIHsgcmV0dXJuIGV2ZTsgfSkpIDogKGdsb2Iu ZXZlID0gZXZlKSk7Cit9KSh0aGlzKTsKKworKGZ1bmN0aW9uIChnbG9iLCBm YWN0b3J5KSB7CisgICAgLy8gQU1EIHN1cHBvcnQKKyAgICBpZiAodHlwZW9m IGRlZmluZSA9PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKKyAgICAg ICAgLy8gRGVmaW5lIGFzIGFuIGFub255bW91cyBtb2R1bGUKKyAgICAgICAg ZGVmaW5lKFsiZXZlIl0sIGZ1bmN0aW9uIChldmUpIHsKKyAgICAgICAgICAg IHJldHVybiBmYWN0b3J5KGdsb2IsIGV2ZSk7CisgICAgICAgIH0pOworICAg IH0gZWxzZSBpZiAodHlwZW9mIGV4cG9ydHMgIT0gJ3VuZGVmaW5lZCcpIHsK KyAgICAgICAgLy8gTmV4dCBmb3IgTm9kZS5qcyBvciBDb21tb25KUworICAg ICAgICB2YXIgZXZlID0gcmVxdWlyZSgnZXZlJyk7CisgICAgICAgIG1vZHVs ZS5leHBvcnRzID0gZmFjdG9yeShnbG9iLCBldmUpOworICAgIH0gZWxzZSB7 CisgICAgICAgIC8vIEJyb3dzZXIgZ2xvYmFscyAoZ2xvYiBpcyB3aW5kb3cp CisgICAgICAgIC8vIFNuYXAgYWRkcyBpdHNlbGYgdG8gd2luZG93CisgICAg ICAgIGZhY3RvcnkoZ2xvYiwgZ2xvYi5ldmUpOworICAgIH0KK30od2luZG93 IHx8IHRoaXMsIGZ1bmN0aW9uICh3aW5kb3csIGV2ZSkgeworLy8gQ29weXJp Z2h0IChjKSAyMDEzIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwg cmlnaHRzIHJlc2VydmVkLgorLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNo ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5 b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl IHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkg b2YgdGhlIExpY2Vuc2UgYXQKKy8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s aWNlbnNlcy9MSUNFTlNFLTIuMAorLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFw cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2Fy ZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp YnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFO VElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVz cyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3Bl Y2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8g bGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCit2YXIgbWluYSA9IChm dW5jdGlvbiAoZXZlKSB7CisgICAgdmFyIGFuaW1hdGlvbnMgPSB7fSwKKyAg ICByZXF1ZXN0QW5pbUZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25G cmFtZSAgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cu d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8CisgICAgICAgICAgICAg ICAgICAgICAgIHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgICAg fHwKKyAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9SZXF1ZXN0QW5p bWF0aW9uRnJhbWUgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAgICB3 aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgICAgIHx8CisgICAgICAg ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChjYWxsYmFjaykgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChjYWxsYmFjaywgMTYp OworICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIGlzQXJyYXkgPSBB cnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIChhKSB7CisgICAgICAgIHJldHVy biBhIGluc3RhbmNlb2YgQXJyYXkgfHwKKyAgICAgICAgICAgIE9iamVjdC5w cm90b3R5cGUudG9TdHJpbmcuY2FsbChhKSA9PSAiW29iamVjdCBBcnJheV0i OworICAgIH0sCisgICAgaWRnZW4gPSAwLAorICAgIGlkcHJlZml4ID0gIk0i ICsgKCtuZXcgRGF0ZSkudG9TdHJpbmcoMzYpLAorICAgIElEID0gZnVuY3Rp b24gKCkgeworICAgICAgICByZXR1cm4gaWRwcmVmaXggKyAoaWRnZW4rKyku dG9TdHJpbmcoMzYpOworICAgIH0sCisgICAgZGlmZiA9IGZ1bmN0aW9uIChh LCBiLCBBLCBCKSB7CisgICAgICAgIGlmIChpc0FycmF5KGEpKSB7CisgICAg ICAgICAgICByZXMgPSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw LCBpaSA9IGEubGVuZ3RoOyBpIDwgaWk7IGkrKykgeworICAgICAgICAgICAg ICAgIHJlc1tpXSA9IGRpZmYoYVtpXSwgYiwgQVtpXSwgQik7CisgICAgICAg ICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICB9Cisg ICAgICAgIHZhciBkaWYgPSAoQSAtIGEpIC8gKEIgLSBiKTsKKyAgICAgICAg cmV0dXJuIGZ1bmN0aW9uIChiYikgeworICAgICAgICAgICAgcmV0dXJuIGEg KyBkaWYgKiAoYmIgLSBiKTsKKyAgICAgICAgfTsKKyAgICB9LAorICAgIHRp bWVyID0gRGF0ZS5ub3cgfHwgZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1 cm4gK25ldyBEYXRlOworICAgIH0sCisgICAgc3RhID0gZnVuY3Rpb24gKHZh bCkgeworICAgICAgICB2YXIgYSA9IHRoaXM7CisgICAgICAgIGlmICh2YWwg PT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGEuczsKKyAgICAgICAg fQorICAgICAgICB2YXIgZHMgPSBhLnMgLSB2YWw7CisgICAgICAgIGEuYiAr PSBhLmR1ciAqIGRzOworICAgICAgICBhLkIgKz0gYS5kdXIgKiBkczsKKyAg ICAgICAgYS5zID0gdmFsOworICAgIH0sCisgICAgc3BlZWQgPSBmdW5jdGlv biAodmFsKSB7CisgICAgICAgIHZhciBhID0gdGhpczsKKyAgICAgICAgaWYg KHZhbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gYS5zcGQ7Cisg ICAgICAgIH0KKyAgICAgICAgYS5zcGQgPSB2YWw7CisgICAgfSwKKyAgICBk dXJhdGlvbiA9IGZ1bmN0aW9uICh2YWwpIHsKKyAgICAgICAgdmFyIGEgPSB0 aGlzOworICAgICAgICBpZiAodmFsID09IG51bGwpIHsKKyAgICAgICAgICAg IHJldHVybiBhLmR1cjsKKyAgICAgICAgfQorICAgICAgICBhLnMgPSBhLnMg KiB2YWwgLyBhLmR1cjsKKyAgICAgICAgYS5kdXIgPSB2YWw7CisgICAgfSwK KyAgICBzdG9waXQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBhID0g dGhpczsKKyAgICAgICAgZGVsZXRlIGFuaW1hdGlvbnNbYS5pZF07CisgICAg ICAgIGEudXBkYXRlKCk7CisgICAgICAgIGV2ZSgibWluYS5zdG9wLiIgKyBh LmlkLCBhKTsKKyAgICB9LAorICAgIHBhdXNlID0gZnVuY3Rpb24gKCkgewor ICAgICAgICB2YXIgYSA9IHRoaXM7CisgICAgICAgIGlmIChhLnBkaWYpIHsK KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBkZWxl dGUgYW5pbWF0aW9uc1thLmlkXTsKKyAgICAgICAgYS51cGRhdGUoKTsKKyAg ICAgICAgYS5wZGlmID0gYS5nZXQoKSAtIGEuYjsKKyAgICB9LAorICAgIHJl c3VtZSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGEgPSB0aGlzOwor ICAgICAgICBpZiAoIWEucGRpZikgeworICAgICAgICAgICAgcmV0dXJuOwor ICAgICAgICB9CisgICAgICAgIGEuYiA9IGEuZ2V0KCkgLSBhLnBkaWY7Cisg ICAgICAgIGRlbGV0ZSBhLnBkaWY7CisgICAgICAgIGFuaW1hdGlvbnNbYS5p ZF0gPSBhOworICAgIH0sCisgICAgdXBkYXRlID0gZnVuY3Rpb24gKCkgewor ICAgICAgICB2YXIgYSA9IHRoaXMsCisgICAgICAgICAgICByZXM7CisgICAg ICAgIGlmIChpc0FycmF5KGEuc3RhcnQpKSB7CisgICAgICAgICAgICByZXMg PSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwLCBqaiA9IGEuc3Rh cnQubGVuZ3RoOyBqIDwgamo7IGorKykgeworICAgICAgICAgICAgICAgIHJl c1tqXSA9ICthLnN0YXJ0W2pdICsKKyAgICAgICAgICAgICAgICAgICAgKGEu ZW5kW2pdIC0gYS5zdGFydFtqXSkgKiBhLmVhc2luZyhhLnMpOworICAgICAg ICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzID0g K2Euc3RhcnQgKyAoYS5lbmQgLSBhLnN0YXJ0KSAqIGEuZWFzaW5nKGEucyk7 CisgICAgICAgIH0KKyAgICAgICAgYS5zZXQocmVzKTsKKyAgICB9LAorICAg IGZyYW1lID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgbGVuID0gMDsK KyAgICAgICAgZm9yICh2YXIgaSBpbiBhbmltYXRpb25zKSBpZiAoYW5pbWF0 aW9ucy5oYXNPd25Qcm9wZXJ0eShpKSkgeworICAgICAgICAgICAgdmFyIGEg PSBhbmltYXRpb25zW2ldLAorICAgICAgICAgICAgICAgIGIgPSBhLmdldCgp LAorICAgICAgICAgICAgICAgIHJlczsKKyAgICAgICAgICAgIGxlbisrOwor ICAgICAgICAgICAgYS5zID0gKGIgLSBhLmIpIC8gKGEuZHVyIC8gYS5zcGQp OworICAgICAgICAgICAgaWYgKGEucyA+PSAxKSB7CisgICAgICAgICAgICAg ICAgZGVsZXRlIGFuaW1hdGlvbnNbaV07CisgICAgICAgICAgICAgICAgYS5z ID0gMTsKKyAgICAgICAgICAgICAgICBsZW4tLTsKKyAgICAgICAgICAgICAg ICAoZnVuY3Rpb24gKGEpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGlt ZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBl dmUoIm1pbmEuZmluaXNoLiIgKyBhLmlkLCBhKTsKKyAgICAgICAgICAgICAg ICAgICAgfSk7CisgICAgICAgICAgICAgICAgfShhKSk7CisgICAgICAgICAg ICB9CisgICAgICAgICAgICBhLnVwZGF0ZSgpOworICAgICAgICB9CisgICAg ICAgIGxlbiAmJiByZXF1ZXN0QW5pbUZyYW1lKGZyYW1lKTsKKyAgICB9LAor ICAgIC8qXAorICAgICAqIG1pbmEKKyAgICAgWyBtZXRob2QgXQorICAgICAq KgorICAgICAqIEdlbmVyaWMgYW5pbWF0aW9uIG9mIG51bWJlcnMKKyAgICAg KioKKyAgICAgLSBhIChudW1iZXIpIHN0YXJ0IF9zbGF2ZV8gbnVtYmVyCisg ICAgIC0gQSAobnVtYmVyKSBlbmQgX3NsYXZlXyBudW1iZXIKKyAgICAgLSBi IChudW1iZXIpIHN0YXJ0IF9tYXN0ZXJfIG51bWJlciAoc3RhcnQgdGltZSBp biBnZW5lcmFsIGNhc2UpCisgICAgIC0gQiAobnVtYmVyKSBlbmQgX21hc3Rl cl8gbnVtYmVyIChlbmQgdGltZSBpbiBnZXJlYWwgY2FzZSkKKyAgICAgLSBn ZXQgKGZ1bmN0aW9uKSBnZXR0ZXIgb2YgX21hc3Rlcl8gbnVtYmVyIChzZWUg QG1pbmEudGltZSkKKyAgICAgLSBzZXQgKGZ1bmN0aW9uKSBzZXR0ZXIgb2Yg X3NsYXZlXyBudW1iZXIKKyAgICAgLSBlYXNpbmcgKGZ1bmN0aW9uKSAjb3B0 aW9uYWwgZWFzaW5nIGZ1bmN0aW9uLCBkZWZhdWx0IGlzIEBtaW5hLmxpbmVh cgorICAgICA9IChvYmplY3QpIGFuaW1hdGlvbiBkZXNjcmlwdG9yCisgICAg IG8geworICAgICBvICAgICAgICAgaWQgKHN0cmluZykgYW5pbWF0aW9uIGlk LAorICAgICBvICAgICAgICAgc3RhcnQgKG51bWJlcikgc3RhcnQgX3NsYXZl XyBudW1iZXIsCisgICAgIG8gICAgICAgICBlbmQgKG51bWJlcikgZW5kIF9z bGF2ZV8gbnVtYmVyLAorICAgICBvICAgICAgICAgYiAobnVtYmVyKSBzdGFy dCBfbWFzdGVyXyBudW1iZXIsCisgICAgIG8gICAgICAgICBzIChudW1iZXIp IGFuaW1hdGlvbiBzdGF0dXMgKDAuLjEpLAorICAgICBvICAgICAgICAgZHVy IChudW1iZXIpIGFuaW1hdGlvbiBkdXJhdGlvbiwKKyAgICAgbyAgICAgICAg IHNwZCAobnVtYmVyKSBhbmltYXRpb24gc3BlZWQsCisgICAgIG8gICAgICAg ICBnZXQgKGZ1bmN0aW9uKSBnZXR0ZXIgb2YgX21hc3Rlcl8gbnVtYmVyIChz ZWUgQG1pbmEudGltZSksCisgICAgIG8gICAgICAgICBzZXQgKGZ1bmN0aW9u KSBzZXR0ZXIgb2YgX3NsYXZlXyBudW1iZXIsCisgICAgIG8gICAgICAgICBl YXNpbmcgKGZ1bmN0aW9uKSBlYXNpbmcgZnVuY3Rpb24sIGRlZmF1bHQgaXMg QG1pbmEubGluZWFyLAorICAgICBvICAgICAgICAgc3RhdHVzIChmdW5jdGlv bikgc3RhdHVzIGdldHRlci9zZXR0ZXIsCisgICAgIG8gICAgICAgICBzcGVl ZCAoZnVuY3Rpb24pIHNwZWVkIGdldHRlci9zZXR0ZXIsCisgICAgIG8gICAg ICAgICBkdXJhdGlvbiAoZnVuY3Rpb24pIGR1cmF0aW9uIGdldHRlci9zZXR0 ZXIsCisgICAgIG8gICAgICAgICBzdG9wIChmdW5jdGlvbikgYW5pbWF0aW9u IHN0b3BwZXIKKyAgICAgbyAgICAgICAgIHBhdXNlIChmdW5jdGlvbikgcGF1 c2VzIHRoZSBhbmltYXRpb24KKyAgICAgbyAgICAgICAgIHJlc3VtZSAoZnVu Y3Rpb24pIHJlc3VtZXMgdGhlIGFuaW1hdGlvbgorICAgICBvICAgICAgICAg dXBkYXRlIChmdW5jdGlvbikgY2FsbGVzIHNldHRlciB3aXRoIHRoZSByaWdo dCB2YWx1ZSBvZiB0aGUgYW5pbWF0aW9uCisgICAgIG8gfQorICAgIFwqLwor ICAgIG1pbmEgPSBmdW5jdGlvbiAoYSwgQSwgYiwgQiwgZ2V0LCBzZXQsIGVh c2luZykgeworICAgICAgICB2YXIgYW5pbSA9IHsKKyAgICAgICAgICAgIGlk OiBJRCgpLAorICAgICAgICAgICAgc3RhcnQ6IGEsCisgICAgICAgICAgICBl bmQ6IEEsCisgICAgICAgICAgICBiOiBiLAorICAgICAgICAgICAgczogMCwK KyAgICAgICAgICAgIGR1cjogQiAtIGIsCisgICAgICAgICAgICBzcGQ6IDEs CisgICAgICAgICAgICBnZXQ6IGdldCwKKyAgICAgICAgICAgIHNldDogc2V0 LAorICAgICAgICAgICAgZWFzaW5nOiBlYXNpbmcgfHwgbWluYS5saW5lYXIs CisgICAgICAgICAgICBzdGF0dXM6IHN0YSwKKyAgICAgICAgICAgIHNwZWVk OiBzcGVlZCwKKyAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiwKKyAg ICAgICAgICAgIHN0b3A6IHN0b3BpdCwKKyAgICAgICAgICAgIHBhdXNlOiBw YXVzZSwKKyAgICAgICAgICAgIHJlc3VtZTogcmVzdW1lLAorICAgICAgICAg ICAgdXBkYXRlOiB1cGRhdGUKKyAgICAgICAgfTsKKyAgICAgICAgYW5pbWF0 aW9uc1thbmltLmlkXSA9IGFuaW07CisgICAgICAgIHZhciBsZW4gPSAwLCBp OworICAgICAgICBmb3IgKGkgaW4gYW5pbWF0aW9ucykgaWYgKGFuaW1hdGlv bnMuaGFzT3duUHJvcGVydHkoaSkpIHsKKyAgICAgICAgICAgIGxlbisrOwor ICAgICAgICAgICAgaWYgKGxlbiA9PSAyKSB7CisgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbGVu ID09IDEgJiYgcmVxdWVzdEFuaW1GcmFtZShmcmFtZSk7CisgICAgICAgIHJl dHVybiBhbmltOworICAgIH07CisgICAgLypcCisgICAgICogbWluYS50aW1l CisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBSZXR1cm5zIHRo ZSBjdXJyZW50IHRpbWUuIEVxdWl2YWxlbnQgdG86CisgICAgIHwgZnVuY3Rp b24gKCkgeworICAgICB8ICAgICByZXR1cm4gKG5ldyBEYXRlKS5nZXRUaW1l KCk7CisgICAgIHwgfQorICAgIFwqLworICAgIG1pbmEudGltZSA9IHRpbWVy OworICAgIC8qXAorICAgICAqIG1pbmEuZ2V0QnlJZAorICAgICBbIG1ldGhv ZCBdCisgICAgICoqCisgICAgICogUmV0dXJucyBhbiBhbmltYXRpb24gYnkg aXRzIGlkCisgICAgIC0gaWQgKHN0cmluZykgYW5pbWF0aW9uJ3MgaWQKKyAg ICAgPSAob2JqZWN0KSBTZWUgQG1pbmEKKyAgICBcKi8KKyAgICBtaW5hLmdl dEJ5SWQgPSBmdW5jdGlvbiAoaWQpIHsKKyAgICAgICAgcmV0dXJuIGFuaW1h dGlvbnNbaWRdIHx8IG51bGw7CisgICAgfTsKKworICAgIC8qXAorICAgICAq IG1pbmEubGluZWFyCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAg KiBEZWZhdWx0IGxpbmVhciBlYXNpbmcKKyAgICAgLSBuIChudW1iZXIpIGlu cHV0IDAuLjEKKyAgICAgPSAobnVtYmVyKSBvdXRwdXQgMC4uMQorICAgIFwq LworICAgIG1pbmEubGluZWFyID0gZnVuY3Rpb24gKG4pIHsKKyAgICAgICAg cmV0dXJuIG47CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBtaW5hLmVhc2Vv dXQKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEVhc2VvdXQg ZWFzaW5nCisgICAgIC0gbiAobnVtYmVyKSBpbnB1dCAwLi4xCisgICAgID0g KG51bWJlcikgb3V0cHV0IDAuLjEKKyAgICBcKi8KKyAgICBtaW5hLmVhc2Vv dXQgPSBmdW5jdGlvbiAobikgeworICAgICAgICByZXR1cm4gTWF0aC5wb3co biwgMS43KTsKKyAgICB9OworICAgIC8qXAorICAgICAqIG1pbmEuZWFzZWlu CisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBFYXNlaW4gZWFz aW5nCisgICAgIC0gbiAobnVtYmVyKSBpbnB1dCAwLi4xCisgICAgID0gKG51 bWJlcikgb3V0cHV0IDAuLjEKKyAgICBcKi8KKyAgICBtaW5hLmVhc2VpbiA9 IGZ1bmN0aW9uIChuKSB7CisgICAgICAgIHJldHVybiBNYXRoLnBvdyhuLCAu NDgpOworICAgIH07CisgICAgLypcCisgICAgICogbWluYS5lYXNlaW5vdXQK KyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEVhc2Vpbm91dCBl YXNpbmcKKyAgICAgLSBuIChudW1iZXIpIGlucHV0IDAuLjEKKyAgICAgPSAo bnVtYmVyKSBvdXRwdXQgMC4uMQorICAgIFwqLworICAgIG1pbmEuZWFzZWlu b3V0ID0gZnVuY3Rpb24gKG4pIHsKKyAgICAgICAgaWYgKG4gPT0gMSkgewor ICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgaWYg KG4gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0K KyAgICAgICAgdmFyIHEgPSAuNDggLSBuIC8gMS4wNCwKKyAgICAgICAgICAg IFEgPSBNYXRoLnNxcnQoLjE3MzQgKyBxICogcSksCisgICAgICAgICAgICB4 ID0gUSAtIHEsCisgICAgICAgICAgICBYID0gTWF0aC5wb3coTWF0aC5hYnMo eCksIDEgLyAzKSAqICh4IDwgMCA/IC0xIDogMSksCisgICAgICAgICAgICB5 ID0gLVEgLSBxLAorICAgICAgICAgICAgWSA9IE1hdGgucG93KE1hdGguYWJz KHkpLCAxIC8gMykgKiAoeSA8IDAgPyAtMSA6IDEpLAorICAgICAgICAgICAg dCA9IFggKyBZICsgLjU7CisgICAgICAgIHJldHVybiAoMSAtIHQpICogMyAq IHQgKiB0ICsgdCAqIHQgKiB0OworICAgIH07CisgICAgLypcCisgICAgICog bWluYS5iYWNraW4KKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAq IEJhY2tpbiBlYXNpbmcKKyAgICAgLSBuIChudW1iZXIpIGlucHV0IDAuLjEK KyAgICAgPSAobnVtYmVyKSBvdXRwdXQgMC4uMQorICAgIFwqLworICAgIG1p bmEuYmFja2luID0gZnVuY3Rpb24gKG4pIHsKKyAgICAgICAgaWYgKG4gPT0g MSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAg ICAgdmFyIHMgPSAxLjcwMTU4OworICAgICAgICByZXR1cm4gbiAqIG4gKiAo KHMgKyAxKSAqIG4gLSBzKTsKKyAgICB9OworICAgIC8qXAorICAgICAqIG1p bmEuYmFja291dAorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICog QmFja291dCBlYXNpbmcKKyAgICAgLSBuIChudW1iZXIpIGlucHV0IDAuLjEK KyAgICAgPSAobnVtYmVyKSBvdXRwdXQgMC4uMQorICAgIFwqLworICAgIG1p bmEuYmFja291dCA9IGZ1bmN0aW9uIChuKSB7CisgICAgICAgIGlmIChuID09 IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAg ICAgIG4gPSBuIC0gMTsKKyAgICAgICAgdmFyIHMgPSAxLjcwMTU4OworICAg ICAgICByZXR1cm4gbiAqIG4gKiAoKHMgKyAxKSAqIG4gKyBzKSArIDE7Cisg ICAgfTsKKyAgICAvKlwKKyAgICAgKiBtaW5hLmVsYXN0aWMKKyAgICAgWyBt ZXRob2QgXQorICAgICAqKgorICAgICAqIEVsYXN0aWMgZWFzaW5nCisgICAg IC0gbiAobnVtYmVyKSBpbnB1dCAwLi4xCisgICAgID0gKG51bWJlcikgb3V0 cHV0IDAuLjEKKyAgICBcKi8KKyAgICBtaW5hLmVsYXN0aWMgPSBmdW5jdGlv biAobikgeworICAgICAgICBpZiAobiA9PSAhIW4pIHsKKyAgICAgICAgICAg IHJldHVybiBuOworICAgICAgICB9CisgICAgICAgIHJldHVybiBNYXRoLnBv dygyLCAtMTAgKiBuKSAqIE1hdGguc2luKChuIC0gLjA3NSkgKgorICAgICAg ICAgICAgKDIgKiBNYXRoLlBJKSAvIC4zKSArIDE7CisgICAgfTsKKyAgICAv KlwKKyAgICAgKiBtaW5hLmJvdW5jZQorICAgICBbIG1ldGhvZCBdCisgICAg ICoqCisgICAgICogQm91bmNlIGVhc2luZworICAgICAtIG4gKG51bWJlcikg aW5wdXQgMC4uMQorICAgICA9IChudW1iZXIpIG91dHB1dCAwLi4xCisgICAg XCovCisgICAgbWluYS5ib3VuY2UgPSBmdW5jdGlvbiAobikgeworICAgICAg ICB2YXIgcyA9IDcuNTYyNSwKKyAgICAgICAgICAgIHAgPSAyLjc1LAorICAg ICAgICAgICAgbDsKKyAgICAgICAgaWYgKG4gPCAoMSAvIHApKSB7CisgICAg ICAgICAgICBsID0gcyAqIG4gKiBuOworICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgaWYgKG4gPCAoMiAvIHApKSB7CisgICAgICAgICAgICAgICAg biAtPSAoMS41IC8gcCk7CisgICAgICAgICAgICAgICAgbCA9IHMgKiBuICog biArIC43NTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg ICAgaWYgKG4gPCAoMi41IC8gcCkpIHsKKyAgICAgICAgICAgICAgICAgICAg biAtPSAoMi4yNSAvIHApOworICAgICAgICAgICAgICAgICAgICBsID0gcyAq IG4gKiBuICsgLjkzNzU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICAgICAgbiAtPSAoMi42MjUgLyBwKTsKKyAgICAgICAg ICAgICAgICAgICAgbCA9IHMgKiBuICogbiArIC45ODQzNzU7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg IHJldHVybiBsOworICAgIH07CisgICAgd2luZG93Lm1pbmEgPSBtaW5hOwor ICAgIHJldHVybiBtaW5hOworfSkodHlwZW9mIGV2ZSA9PSAidW5kZWZpbmVk IiA/IGZ1bmN0aW9uICgpIHt9IDogZXZlKTsKKy8vIENvcHlyaWdodCAoYykg MjAxMyAtIDIwMTUgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFw YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Cisv LyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh bmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNv cHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyBodHRwOi8vd3d3LmFwYWNo ZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVx dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp bmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z ZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lU SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVp dGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2Ug Zm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv bnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKwor dmFyIFNuYXAgPSAoZnVuY3Rpb24ocm9vdCkgeworU25hcC52ZXJzaW9uID0g IjAuNC4wIjsKKy8qXAorICogU25hcAorIFsgbWV0aG9kIF0KKyAqKgorICog Q3JlYXRlcyBhIGRyYXdpbmcgc3VyZmFjZSBvciB3cmFwcyBleGlzdGluZyBT VkcgZWxlbWVudC4KKyAqKgorIC0gd2lkdGggKG51bWJlcnxzdHJpbmcpIHdp ZHRoIG9mIHN1cmZhY2UKKyAtIGhlaWdodCAobnVtYmVyfHN0cmluZykgaGVp Z2h0IG9mIHN1cmZhY2UKKyAqIG9yCisgLSBET00gKFNWR0VsZW1lbnQpIGVs ZW1lbnQgdG8gYmUgd3JhcHBlZCBpbnRvIFNuYXAgc3RydWN0dXJlCisgKiBv cgorIC0gYXJyYXkgKGFycmF5KSBhcnJheSBvZiBlbGVtZW50cyAod2lsbCBy ZXR1cm4gc2V0IG9mIGVsZW1lbnRzKQorICogb3IKKyAtIHF1ZXJ5IChzdHJp bmcpIENTUyBxdWVyeSBzZWxlY3RvcgorID0gKG9iamVjdCkgQEVsZW1lbnQK K1wqLworZnVuY3Rpb24gU25hcCh3LCBoKSB7CisgICAgaWYgKHcpIHsKKyAg ICAgICAgaWYgKHcubm9kZVR5cGUpIHsKKyAgICAgICAgICAgIHJldHVybiB3 cmFwKHcpOworICAgICAgICB9CisgICAgICAgIGlmIChpcyh3LCAiYXJyYXki KSAmJiBTbmFwLnNldCkgeworICAgICAgICAgICAgcmV0dXJuIFNuYXAuc2V0 LmFwcGx5KFNuYXAsIHcpOworICAgICAgICB9CisgICAgICAgIGlmICh3IGlu c3RhbmNlb2YgRWxlbWVudCkgeworICAgICAgICAgICAgcmV0dXJuIHc7Cisg ICAgICAgIH0KKyAgICAgICAgaWYgKGggPT0gbnVsbCkgeworICAgICAgICAg ICAgdyA9IGdsb2IuZG9jLnF1ZXJ5U2VsZWN0b3IoU3RyaW5nKHcpKTsKKyAg ICAgICAgICAgIHJldHVybiB3cmFwKHcpOworICAgICAgICB9CisgICAgfQor ICAgIHcgPSB3ID09IG51bGwgPyAiMTAwJSIgOiB3OworICAgIGggPSBoID09 IG51bGwgPyAiMTAwJSIgOiBoOworICAgIHJldHVybiBuZXcgUGFwZXIodywg aCk7Cit9CitTbmFwLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkgeworICAgIHJl dHVybiAiU25hcCB2IiArIHRoaXMudmVyc2lvbjsKK307CitTbmFwLl8gPSB7 fTsKK3ZhciBnbG9iID0geworICAgIHdpbjogcm9vdC53aW5kb3csCisgICAg ZG9jOiByb290LndpbmRvdy5kb2N1bWVudAorfTsKK1NuYXAuXy5nbG9iID0g Z2xvYjsKK3ZhciBoYXMgPSAiaGFzT3duUHJvcGVydHkiLAorICAgIFN0ciA9 IFN0cmluZywKKyAgICB0b0Zsb2F0ID0gcGFyc2VGbG9hdCwKKyAgICB0b0lu dCA9IHBhcnNlSW50LAorICAgIG1hdGggPSBNYXRoLAorICAgIG1tYXggPSBt YXRoLm1heCwKKyAgICBtbWluID0gbWF0aC5taW4sCisgICAgYWJzID0gbWF0 aC5hYnMsCisgICAgcG93ID0gbWF0aC5wb3csCisgICAgUEkgPSBtYXRoLlBJ LAorICAgIHJvdW5kID0gbWF0aC5yb3VuZCwKKyAgICBFID0gIiIsCisgICAg UyA9ICIgIiwKKyAgICBvYmplY3RUb1N0cmluZyA9IE9iamVjdC5wcm90b3R5 cGUudG9TdHJpbmcsCisgICAgSVNVUkwgPSAvXnVybFwoWyciXT8oW15cKV0r PylbJyJdP1wpJC9pLAorICAgIGNvbG91clJlZ0V4cCA9IC9eXHMqKCgjW2Et ZlxkXXs2fSl8KCNbYS1mXGRdezN9KXxyZ2JhP1woXHMqKFtcZFwuXSslP1xz KixccypbXGRcLl0rJT9ccyosXHMqW1xkXC5dKyU/KD86XHMqLFxzKltcZFwu XSslPyk/KVxzKlwpfGhzYmE/XChccyooW1xkXC5dKyg/OmRlZ3xceGIwfCUp P1xzKixccypbXGRcLl0rJT9ccyosXHMqW1xkXC5dKyg/OiU/XHMqLFxzKltc ZFwuXSspPyU/KVxzKlwpfGhzbGE/XChccyooW1xkXC5dKyg/OmRlZ3xceGIw fCUpP1xzKixccypbXGRcLl0rJT9ccyosXHMqW1xkXC5dKyg/OiU/XHMqLFxz KltcZFwuXSspPyU/KVxzKlwpKVxzKiQvaSwKKyAgICBiZXppZXJyZyA9IC9e KD86Y3ViaWMtKT9iZXppZXJcKChbXixdKyksKFteLF0rKSwoW14sXSspLChb XlwpXSspXCkvLAorICAgIHJlVVJMVmFsdWUgPSAvXnVybFwoIz8oW14pXSsp XCkkLywKKyAgICBzZXBhcmF0b3IgPSBTbmFwLl8uc2VwYXJhdG9yID0gL1ss XHNdKy8sCisgICAgd2hpdGVzcGFjZSA9IC9bXHNdL2csCisgICAgY29tbWFT cGFjZXMgPSAvW1xzXSosW1xzXSovLAorICAgIGhzcmcgPSB7aHM6IDEsIHJn OiAxfSwKKyAgICBwYXRoQ29tbWFuZCA9IC8oW2Etel0pW1xzLF0qKCgtP1xk KlwuP1xkKig/OmVbXC0rXT9cZCspP1tcc10qLD9bXHNdKikrKS9pZywKKyAg ICB0Q29tbWFuZCA9IC8oW3JzdG1dKVtccyxdKigoLT9cZCpcLj9cZCooPzpl W1wtK10/XGQrKT9bXHNdKiw/W1xzXSopKykvaWcsCisgICAgcGF0aFZhbHVl cyA9IC8oLT9cZCpcLj9cZCooPzplW1wtK10/XFxkKyk/KVtcc10qLD9bXHNd Ki9pZywKKyAgICBpZGdlbiA9IDAsCisgICAgaWRwcmVmaXggPSAiUyIgKyAo K25ldyBEYXRlKS50b1N0cmluZygzNiksCisgICAgSUQgPSBmdW5jdGlvbiAo ZWwpIHsKKyAgICAgICAgcmV0dXJuIChlbCAmJiBlbC50eXBlID8gZWwudHlw ZSA6IEUpICsgaWRwcmVmaXggKyAoaWRnZW4rKykudG9TdHJpbmcoMzYpOwor ICAgIH0sCisgICAgeGxpbmsgPSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94 bGluayIsCisgICAgeG1sbnMgPSAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z dmciLAorICAgIGh1YiA9IHt9LAorICAgIFVSTCA9IFNuYXAudXJsID0gZnVu Y3Rpb24gKHVybCkgeworICAgICAgICByZXR1cm4gInVybCgnIyIgKyB1cmwg KyAiJykiOworICAgIH07CisKK2Z1bmN0aW9uICQoZWwsIGF0dHIpIHsKKyAg ICBpZiAoYXR0cikgeworICAgICAgICBpZiAoZWwgPT0gIiN0ZXh0Iikgewor ICAgICAgICAgICAgZWwgPSBnbG9iLmRvYy5jcmVhdGVUZXh0Tm9kZShhdHRy LnRleHQgfHwgYXR0clsiI3RleHQiXSB8fCAiIik7CisgICAgICAgIH0KKyAg ICAgICAgaWYgKGVsID09ICIjY29tbWVudCIpIHsKKyAgICAgICAgICAgIGVs ID0gZ2xvYi5kb2MuY3JlYXRlQ29tbWVudChhdHRyLnRleHQgfHwgYXR0clsi I3RleHQiXSB8fCAiIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHR5cGVv ZiBlbCA9PSAic3RyaW5nIikgeworICAgICAgICAgICAgZWwgPSAkKGVsKTsK KyAgICAgICAgfQorICAgICAgICBpZiAodHlwZW9mIGF0dHIgPT0gInN0cmlu ZyIpIHsKKyAgICAgICAgICAgIGlmIChlbC5ub2RlVHlwZSA9PSAxKSB7Cisg ICAgICAgICAgICAgICAgaWYgKGF0dHIuc3Vic3RyaW5nKDAsIDYpID09ICJ4 bGluazoiKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbC5nZXRB dHRyaWJ1dGVOUyh4bGluaywgYXR0ci5zdWJzdHJpbmcoNikpOworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYXR0ci5zdWJzdHJp bmcoMCwgNCkgPT0gInhtbDoiKSB7CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBlbC5nZXRBdHRyaWJ1dGVOUyh4bWxucywgYXR0ci5zdWJzdHJpbmco NCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1 cm4gZWwuZ2V0QXR0cmlidXRlKGF0dHIpOworICAgICAgICAgICAgfSBlbHNl IGlmIChhdHRyID09ICJ0ZXh0IikgeworICAgICAgICAgICAgICAgIHJldHVy biBlbC5ub2RlVmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAg ICB9CisgICAgICAgIGlmIChlbC5ub2RlVHlwZSA9PSAxKSB7CisgICAgICAg ICAgICBmb3IgKHZhciBrZXkgaW4gYXR0cikgaWYgKGF0dHJbaGFzXShrZXkp KSB7CisgICAgICAgICAgICAgICAgdmFyIHZhbCA9IFN0cihhdHRyW2tleV0p OworICAgICAgICAgICAgICAgIGlmICh2YWwpIHsKKyAgICAgICAgICAgICAg ICAgICAgaWYgKGtleS5zdWJzdHJpbmcoMCwgNikgPT0gInhsaW5rOiIpIHsK KyAgICAgICAgICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZU5TKHhs aW5rLCBrZXkuc3Vic3RyaW5nKDYpLCB2YWwpOworICAgICAgICAgICAgICAg ICAgICB9IGVsc2UgaWYgKGtleS5zdWJzdHJpbmcoMCwgNCkgPT0gInhtbDoi KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGVO Uyh4bWxucywga2V5LnN1YnN0cmluZyg0KSwgdmFsKTsKKyAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVs LnNldEF0dHJpYnV0ZShrZXksIHZhbCk7CisgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg ICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoInRleHQi IGluIGF0dHIpIHsKKyAgICAgICAgICAgIGVsLm5vZGVWYWx1ZSA9IGF0dHIu dGV4dDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGVsID0g Z2xvYi5kb2MuY3JlYXRlRWxlbWVudE5TKHhtbG5zLCBlbCk7CisgICAgfQor ICAgIHJldHVybiBlbDsKK30KK1NuYXAuXy4kID0gJDsKK1NuYXAuXy5pZCA9 IElEOworZnVuY3Rpb24gZ2V0QXR0cnMoZWwpIHsKKyAgICB2YXIgYXR0cnMg PSBlbC5hdHRyaWJ1dGVzLAorICAgICAgICBuYW1lLAorICAgICAgICBvdXQg PSB7fTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsg aSsrKSB7CisgICAgICAgIGlmIChhdHRyc1tpXS5uYW1lc3BhY2VVUkkgPT0g eGxpbmspIHsKKyAgICAgICAgICAgIG5hbWUgPSAieGxpbms6IjsKKyAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5hbWUgPSAiIjsKKyAgICAgICAg fQorICAgICAgICBuYW1lICs9IGF0dHJzW2ldLm5hbWU7CisgICAgICAgIG91 dFtuYW1lXSA9IGF0dHJzW2ldLnRleHRDb250ZW50OworICAgIH0KKyAgICBy ZXR1cm4gb3V0OworfQorZnVuY3Rpb24gaXMobywgdHlwZSkgeworICAgIHR5 cGUgPSBTdHIucHJvdG90eXBlLnRvTG93ZXJDYXNlLmNhbGwodHlwZSk7Cisg ICAgaWYgKHR5cGUgPT0gImZpbml0ZSIpIHsKKyAgICAgICAgcmV0dXJuIGlz RmluaXRlKG8pOworICAgIH0KKyAgICBpZiAodHlwZSA9PSAiYXJyYXkiICYm CisgICAgICAgIChvIGluc3RhbmNlb2YgQXJyYXkgfHwgQXJyYXkuaXNBcnJh eSAmJiBBcnJheS5pc0FycmF5KG8pKSkgeworICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICB9CisgICAgcmV0dXJuICAodHlwZSA9PSAibnVsbCIgJiYgbyA9 PT0gbnVsbCkgfHwKKyAgICAgICAgICAgICh0eXBlID09IHR5cGVvZiBvICYm IG8gIT09IG51bGwpIHx8CisgICAgICAgICAgICAodHlwZSA9PSAib2JqZWN0 IiAmJiBvID09PSBPYmplY3QobykpIHx8CisgICAgICAgICAgICBvYmplY3RU b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpID09 IHR5cGU7Cit9CisvKlwKKyAqIFNuYXAuZm9ybWF0CisgWyBtZXRob2QgXQor ICoqCisgKiBSZXBsYWNlcyBjb25zdHJ1Y3Rpb24gb2YgdHlwZSBgezxuYW1l Pn1gIHRvIHRoZSBjb3JyZXNwb25kaW5nIGFyZ3VtZW50CisgKioKKyAtIHRv a2VuIChzdHJpbmcpIHN0cmluZyB0byBmb3JtYXQKKyAtIGpzb24gKG9iamVj dCkgb2JqZWN0IHdoaWNoIHByb3BlcnRpZXMgYXJlIHVzZWQgYXMgYSByZXBs YWNlbWVudAorID0gKHN0cmluZykgZm9ybWF0dGVkIHN0cmluZworID4gVXNh Z2UKKyB8IC8vIHRoaXMgZHJhd3MgYSByZWN0YW5ndWxhciBzaGFwZSBlcXVp dmFsZW50IHRvICJNMTAsMjBoNDB2NTBoLTQweiIKKyB8IHBhcGVyLnBhdGgo U25hcC5mb3JtYXQoIk17eH0se3l9aHtkaW0ud2lkdGh9dntkaW0uaGVpZ2h0 fWh7ZGltWyduZWdhdGl2ZSB3aWR0aCddfXoiLCB7CisgfCAgICAgeDogMTAs CisgfCAgICAgeTogMjAsCisgfCAgICAgZGltOiB7CisgfCAgICAgICAgIHdp ZHRoOiA0MCwKKyB8ICAgICAgICAgaGVpZ2h0OiA1MCwKKyB8ICAgICAgICAg Im5lZ2F0aXZlIHdpZHRoIjogLTQwCisgfCAgICAgfQorIHwgfSkpOworXCov CitTbmFwLmZvcm1hdCA9IChmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRva2Vu UmVnZXggPSAvXHsoW15cfV0rKVx9L2csCisgICAgICAgIG9iak5vdGF0aW9u UmVnZXggPSAvKD86KD86XnxcLikoLis/KSg/PVxbfFwufCR8XCgpfFxbKCd8 IikoLis/KVwyXF0pKFwoXCkpPy9nLCAvLyBtYXRjaGVzIC54eHh4eCBvciBb Inh4eHh4Il0gdG8gcnVuIG92ZXIgb2JqZWN0IHByb3BlcnRpZXMKKyAgICAg ICAgcmVwbGFjZXIgPSBmdW5jdGlvbiAoYWxsLCBrZXksIG9iaikgeworICAg ICAgICAgICAgdmFyIHJlcyA9IG9iajsKKyAgICAgICAgICAgIGtleS5yZXBs YWNlKG9iak5vdGF0aW9uUmVnZXgsIGZ1bmN0aW9uIChhbGwsIG5hbWUsIHF1 b3RlLCBxdW90ZWROYW1lLCBpc0Z1bmMpIHsKKyAgICAgICAgICAgICAgICBu YW1lID0gbmFtZSB8fCBxdW90ZWROYW1lOworICAgICAgICAgICAgICAgIGlm IChyZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gcmVz KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSByZXNbbmFtZV07 CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg dHlwZW9mIHJlcyA9PSAiZnVuY3Rpb24iICYmIGlzRnVuYyAmJiAocmVzID0g cmVzKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOwor ICAgICAgICAgICAgcmVzID0gKHJlcyA9PSBudWxsIHx8IHJlcyA9PSBvYmog PyBhbGwgOiByZXMpICsgIiI7CisgICAgICAgICAgICByZXR1cm4gcmVzOwor ICAgICAgICB9OworICAgIHJldHVybiBmdW5jdGlvbiAoc3RyLCBvYmopIHsK KyAgICAgICAgcmV0dXJuIFN0cihzdHIpLnJlcGxhY2UodG9rZW5SZWdleCwg ZnVuY3Rpb24gKGFsbCwga2V5KSB7CisgICAgICAgICAgICByZXR1cm4gcmVw bGFjZXIoYWxsLCBrZXksIG9iaik7CisgICAgICAgIH0pOworICAgIH07Cit9 KSgpOworZnVuY3Rpb24gY2xvbmUob2JqKSB7CisgICAgaWYgKHR5cGVvZiBv YmogPT0gImZ1bmN0aW9uIiB8fCBPYmplY3Qob2JqKSAhPT0gb2JqKSB7Cisg ICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIHZhciByZXMgPSBuZXcg b2JqLmNvbnN0cnVjdG9yOworICAgIGZvciAodmFyIGtleSBpbiBvYmopIGlm IChvYmpbaGFzXShrZXkpKSB7CisgICAgICAgIHJlc1trZXldID0gY2xvbmUo b2JqW2tleV0pOworICAgIH0KKyAgICByZXR1cm4gcmVzOworfQorU25hcC5f LmNsb25lID0gY2xvbmU7CitmdW5jdGlvbiByZXB1c2goYXJyYXksIGl0ZW0p IHsKKyAgICBmb3IgKHZhciBpID0gMCwgaWkgPSBhcnJheS5sZW5ndGg7IGkg PCBpaTsgaSsrKSBpZiAoYXJyYXlbaV0gPT09IGl0ZW0pIHsKKyAgICAgICAg cmV0dXJuIGFycmF5LnB1c2goYXJyYXkuc3BsaWNlKGksIDEpWzBdKTsKKyAg ICB9Cit9CitmdW5jdGlvbiBjYWNoZXIoZiwgc2NvcGUsIHBvc3Rwcm9jZXNz b3IpIHsKKyAgICBmdW5jdGlvbiBuZXdmKCkgeworICAgICAgICB2YXIgYXJn ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKSwK KyAgICAgICAgICAgIGFyZ3MgPSBhcmcuam9pbigiXHUyNDAwIiksCisgICAg ICAgICAgICBjYWNoZSA9IG5ld2YuY2FjaGUgPSBuZXdmLmNhY2hlIHx8IHt9 LAorICAgICAgICAgICAgY291bnQgPSBuZXdmLmNvdW50ID0gbmV3Zi5jb3Vu dCB8fCBbXTsKKyAgICAgICAgaWYgKGNhY2hlW2hhc10oYXJncykpIHsKKyAg ICAgICAgICAgIHJlcHVzaChjb3VudCwgYXJncyk7CisgICAgICAgICAgICBy ZXR1cm4gcG9zdHByb2Nlc3NvciA/IHBvc3Rwcm9jZXNzb3IoY2FjaGVbYXJn c10pIDogY2FjaGVbYXJnc107CisgICAgICAgIH0KKyAgICAgICAgY291bnQu bGVuZ3RoID49IDFlMyAmJiBkZWxldGUgY2FjaGVbY291bnQuc2hpZnQoKV07 CisgICAgICAgIGNvdW50LnB1c2goYXJncyk7CisgICAgICAgIGNhY2hlW2Fy Z3NdID0gZi5hcHBseShzY29wZSwgYXJnKTsKKyAgICAgICAgcmV0dXJuIHBv c3Rwcm9jZXNzb3IgPyBwb3N0cHJvY2Vzc29yKGNhY2hlW2FyZ3NdKSA6IGNh Y2hlW2FyZ3NdOworICAgIH0KKyAgICByZXR1cm4gbmV3ZjsKK30KK1NuYXAu Xy5jYWNoZXIgPSBjYWNoZXI7CitmdW5jdGlvbiBhbmdsZSh4MSwgeTEsIHgy LCB5MiwgeDMsIHkzKSB7CisgICAgaWYgKHgzID09IG51bGwpIHsKKyAgICAg ICAgdmFyIHggPSB4MSAtIHgyLAorICAgICAgICAgICAgeSA9IHkxIC0geTI7 CisgICAgICAgIGlmICgheCAmJiAheSkgeworICAgICAgICAgICAgcmV0dXJu IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICgxODAgKyBtYXRoLmF0 YW4yKC15LCAteCkgKiAxODAgLyBQSSArIDM2MCkgJSAzNjA7CisgICAgfSBl bHNlIHsKKyAgICAgICAgcmV0dXJuIGFuZ2xlKHgxLCB5MSwgeDMsIHkzKSAt IGFuZ2xlKHgyLCB5MiwgeDMsIHkzKTsKKyAgICB9Cit9CitmdW5jdGlvbiBy YWQoZGVnKSB7CisgICAgcmV0dXJuIGRlZyAlIDM2MCAqIFBJIC8gMTgwOwor fQorZnVuY3Rpb24gZGVnKHJhZCkgeworICAgIHJldHVybiByYWQgKiAxODAg LyBQSSAlIDM2MDsKK30KK2Z1bmN0aW9uIHhfeSgpIHsKKyAgICByZXR1cm4g dGhpcy54ICsgUyArIHRoaXMueTsKK30KK2Z1bmN0aW9uIHhfeV93X2goKSB7 CisgICAgcmV0dXJuIHRoaXMueCArIFMgKyB0aGlzLnkgKyBTICsgdGhpcy53 aWR0aCArICIgXHhkNyAiICsgdGhpcy5oZWlnaHQ7Cit9CisKKy8qXAorICog U25hcC5yYWQKKyBbIG1ldGhvZCBdCisgKioKKyAqIFRyYW5zZm9ybSBhbmds ZSB0byByYWRpYW5zCisgLSBkZWcgKG51bWJlcikgYW5nbGUgaW4gZGVncmVl cworID0gKG51bWJlcikgYW5nbGUgaW4gcmFkaWFucworXCovCitTbmFwLnJh ZCA9IHJhZDsKKy8qXAorICogU25hcC5kZWcKKyBbIG1ldGhvZCBdCisgKioK KyAqIFRyYW5zZm9ybSBhbmdsZSB0byBkZWdyZWVzCisgLSByYWQgKG51bWJl cikgYW5nbGUgaW4gcmFkaWFucworID0gKG51bWJlcikgYW5nbGUgaW4gZGVn cmVlcworXCovCitTbmFwLmRlZyA9IGRlZzsKKy8qXAorICogU25hcC5zaW4K KyBbIG1ldGhvZCBdCisgKioKKyAqIEVxdWl2YWxlbnQgdG8gYE1hdGguc2lu KClgIG9ubHkgd29ya3Mgd2l0aCBkZWdyZWVzLCBub3QgcmFkaWFucy4KKyAt IGFuZ2xlIChudW1iZXIpIGFuZ2xlIGluIGRlZ3JlZXMKKyA9IChudW1iZXIp IHNpbgorXCovCitTbmFwLnNpbiA9IGZ1bmN0aW9uIChhbmdsZSkgeworICAg IHJldHVybiBtYXRoLnNpbihTbmFwLnJhZChhbmdsZSkpOworfTsKKy8qXAor ICogU25hcC50YW4KKyBbIG1ldGhvZCBdCisgKioKKyAqIEVxdWl2YWxlbnQg dG8gYE1hdGgudGFuKClgIG9ubHkgd29ya3Mgd2l0aCBkZWdyZWVzLCBub3Qg cmFkaWFucy4KKyAtIGFuZ2xlIChudW1iZXIpIGFuZ2xlIGluIGRlZ3JlZXMK KyA9IChudW1iZXIpIHRhbgorXCovCitTbmFwLnRhbiA9IGZ1bmN0aW9uIChh bmdsZSkgeworICAgIHJldHVybiBtYXRoLnRhbihTbmFwLnJhZChhbmdsZSkp OworfTsKKy8qXAorICogU25hcC5jb3MKKyBbIG1ldGhvZCBdCisgKioKKyAq IEVxdWl2YWxlbnQgdG8gYE1hdGguY29zKClgIG9ubHkgd29ya3Mgd2l0aCBk ZWdyZWVzLCBub3QgcmFkaWFucy4KKyAtIGFuZ2xlIChudW1iZXIpIGFuZ2xl IGluIGRlZ3JlZXMKKyA9IChudW1iZXIpIGNvcworXCovCitTbmFwLmNvcyA9 IGZ1bmN0aW9uIChhbmdsZSkgeworICAgIHJldHVybiBtYXRoLmNvcyhTbmFw LnJhZChhbmdsZSkpOworfTsKKy8qXAorICogU25hcC5hc2luCisgWyBtZXRo b2QgXQorICoqCisgKiBFcXVpdmFsZW50IHRvIGBNYXRoLmFzaW4oKWAgb25s eSB3b3JrcyB3aXRoIGRlZ3JlZXMsIG5vdCByYWRpYW5zLgorIC0gbnVtIChu dW1iZXIpIHZhbHVlCisgPSAobnVtYmVyKSBhc2luIGluIGRlZ3JlZXMKK1wq LworU25hcC5hc2luID0gZnVuY3Rpb24gKG51bSkgeworICAgIHJldHVybiBT bmFwLmRlZyhtYXRoLmFzaW4obnVtKSk7Cit9OworLypcCisgKiBTbmFwLmFj b3MKKyBbIG1ldGhvZCBdCisgKioKKyAqIEVxdWl2YWxlbnQgdG8gYE1hdGgu YWNvcygpYCBvbmx5IHdvcmtzIHdpdGggZGVncmVlcywgbm90IHJhZGlhbnMu CisgLSBudW0gKG51bWJlcikgdmFsdWUKKyA9IChudW1iZXIpIGFjb3MgaW4g ZGVncmVlcworXCovCitTbmFwLmFjb3MgPSBmdW5jdGlvbiAobnVtKSB7Cisg ICAgcmV0dXJuIFNuYXAuZGVnKG1hdGguYWNvcyhudW0pKTsKK307CisvKlwK KyAqIFNuYXAuYXRhbgorIFsgbWV0aG9kIF0KKyAqKgorICogRXF1aXZhbGVu dCB0byBgTWF0aC5hdGFuKClgIG9ubHkgd29ya3Mgd2l0aCBkZWdyZWVzLCBu b3QgcmFkaWFucy4KKyAtIG51bSAobnVtYmVyKSB2YWx1ZQorID0gKG51bWJl cikgYXRhbiBpbiBkZWdyZWVzCitcKi8KK1NuYXAuYXRhbiA9IGZ1bmN0aW9u IChudW0pIHsKKyAgICByZXR1cm4gU25hcC5kZWcobWF0aC5hdGFuKG51bSkp OworfTsKKy8qXAorICogU25hcC5hdGFuMgorIFsgbWV0aG9kIF0KKyAqKgor ICogRXF1aXZhbGVudCB0byBgTWF0aC5hdGFuMigpYCBvbmx5IHdvcmtzIHdp dGggZGVncmVlcywgbm90IHJhZGlhbnMuCisgLSBudW0gKG51bWJlcikgdmFs dWUKKyA9IChudW1iZXIpIGF0YW4yIGluIGRlZ3JlZXMKK1wqLworU25hcC5h dGFuMiA9IGZ1bmN0aW9uIChudW0pIHsKKyAgICByZXR1cm4gU25hcC5kZWco bWF0aC5hdGFuMihudW0pKTsKK307CisvKlwKKyAqIFNuYXAuYW5nbGUKKyBb IG1ldGhvZCBdCisgKioKKyAqIFJldHVybnMgYW4gYW5nbGUgYmV0d2VlbiB0 d28gb3IgdGhyZWUgcG9pbnRzCisgPiBQYXJhbWV0ZXJzCisgLSB4MSAobnVt YmVyKSB4IGNvb3JkIG9mIGZpcnN0IHBvaW50CisgLSB5MSAobnVtYmVyKSB5 IGNvb3JkIG9mIGZpcnN0IHBvaW50CisgLSB4MiAobnVtYmVyKSB4IGNvb3Jk IG9mIHNlY29uZCBwb2ludAorIC0geTIgKG51bWJlcikgeSBjb29yZCBvZiBz ZWNvbmQgcG9pbnQKKyAtIHgzIChudW1iZXIpICNvcHRpb25hbCB4IGNvb3Jk IG9mIHRoaXJkIHBvaW50CisgLSB5MyAobnVtYmVyKSAjb3B0aW9uYWwgeSBj b29yZCBvZiB0aGlyZCBwb2ludAorID0gKG51bWJlcikgYW5nbGUgaW4gZGVn cmVlcworXCovCitTbmFwLmFuZ2xlID0gYW5nbGU7CisvKlwKKyAqIFNuYXAu bGVuCisgWyBtZXRob2QgXQorICoqCisgKiBSZXR1cm5zIGRpc3RhbmNlIGJl dHdlZW4gdHdvIHBvaW50cworID4gUGFyYW1ldGVycworIC0geDEgKG51bWJl cikgeCBjb29yZCBvZiBmaXJzdCBwb2ludAorIC0geTEgKG51bWJlcikgeSBj b29yZCBvZiBmaXJzdCBwb2ludAorIC0geDIgKG51bWJlcikgeCBjb29yZCBv ZiBzZWNvbmQgcG9pbnQKKyAtIHkyIChudW1iZXIpIHkgY29vcmQgb2Ygc2Vj b25kIHBvaW50CisgPSAobnVtYmVyKSBkaXN0YW5jZQorXCovCitTbmFwLmxl biA9IGZ1bmN0aW9uICh4MSwgeTEsIHgyLCB5MikgeworICAgIHJldHVybiBN YXRoLnNxcnQoU25hcC5sZW4yKHgxLCB5MSwgeDIsIHkyKSk7Cit9OworLypc CisgKiBTbmFwLmxlbjIKKyBbIG1ldGhvZCBdCisgKioKKyAqIFJldHVybnMg c3F1YXJlZCBkaXN0YW5jZSBiZXR3ZWVuIHR3byBwb2ludHMKKyA+IFBhcmFt ZXRlcnMKKyAtIHgxIChudW1iZXIpIHggY29vcmQgb2YgZmlyc3QgcG9pbnQK KyAtIHkxIChudW1iZXIpIHkgY29vcmQgb2YgZmlyc3QgcG9pbnQKKyAtIHgy IChudW1iZXIpIHggY29vcmQgb2Ygc2Vjb25kIHBvaW50CisgLSB5MiAobnVt YmVyKSB5IGNvb3JkIG9mIHNlY29uZCBwb2ludAorID0gKG51bWJlcikgZGlz dGFuY2UKK1wqLworU25hcC5sZW4yID0gZnVuY3Rpb24gKHgxLCB5MSwgeDIs IHkyKSB7CisgICAgcmV0dXJuICh4MSAtIHgyKSAqICh4MSAtIHgyKSArICh5 MSAtIHkyKSAqICh5MSAtIHkyKTsKK307CisvKlwKKyAqIFNuYXAuY2xvc2Vz dFBvaW50CisgWyBtZXRob2QgXQorICoqCisgKiBSZXR1cm5zIGNsb3Nlc3Qg cG9pbnQgdG8gYSBnaXZlbiBvbmUgb24gYSBnaXZlbiBwYXRoLgorID4gUGFy YW1ldGVycworIC0gcGF0aCAoRWxlbWVudCkgcGF0aCBlbGVtZW50CisgLSB4 IChudW1iZXIpIHggY29vcmQgb2YgYSBwb2ludAorIC0geSAobnVtYmVyKSB5 IGNvb3JkIG9mIGEgcG9pbnQKKyA9IChvYmplY3QpIGluIGZvcm1hdAorIHsK KyAgICB4IChudW1iZXIpIHggY29vcmQgb2YgdGhlIHBvaW50IG9uIHRoZSBw YXRoCisgICAgeSAobnVtYmVyKSB5IGNvb3JkIG9mIHRoZSBwb2ludCBvbiB0 aGUgcGF0aAorICAgIGxlbmd0aCAobnVtYmVyKSBsZW5ndGggb2YgdGhlIHBh dGggdG8gdGhlIHBvaW50CisgICAgZGlzdGFuY2UgKG51bWJlcikgZGlzdGFu Y2UgZnJvbSB0aGUgZ2l2ZW4gcG9pbnQgdG8gdGhlIHBhdGgKKyB9CitcKi8K Ky8vIENvcGllZCBmcm9tIGh0dHA6Ly9ibC5vY2tzLm9yZy9tYm9zdG9jay84 MDI3NjM3CitTbmFwLmNsb3Nlc3RQb2ludCA9IGZ1bmN0aW9uIChwYXRoLCB4 LCB5KSB7CisgICAgZnVuY3Rpb24gZGlzdGFuY2UyKHApIHsKKyAgICAgICAg dmFyIGR4ID0gcC54IC0geCwKKyAgICAgICAgICAgIGR5ID0gcC55IC0geTsK KyAgICAgICAgcmV0dXJuIGR4ICogZHggKyBkeSAqIGR5OworICAgIH0KKyAg ICB2YXIgcGF0aE5vZGUgPSBwYXRoLm5vZGUsCisgICAgICAgIHBhdGhMZW5n dGggPSBwYXRoTm9kZS5nZXRUb3RhbExlbmd0aCgpLAorICAgICAgICBwcmVj aXNpb24gPSBwYXRoTGVuZ3RoIC8gcGF0aE5vZGUucGF0aFNlZ0xpc3QubnVt YmVyT2ZJdGVtcyAqIC4xMjUsCisgICAgICAgIGJlc3QsCisgICAgICAgIGJl c3RMZW5ndGgsCisgICAgICAgIGJlc3REaXN0YW5jZSA9IEluZmluaXR5Owor CisgICAgLy8gbGluZWFyIHNjYW4gZm9yIGNvYXJzZSBhcHByb3hpbWF0aW9u CisgICAgZm9yICh2YXIgc2Nhbiwgc2Nhbkxlbmd0aCA9IDAsIHNjYW5EaXN0 YW5jZTsgc2Nhbkxlbmd0aCA8PSBwYXRoTGVuZ3RoOyBzY2FuTGVuZ3RoICs9 IHByZWNpc2lvbikgeworICAgICAgICBpZiAoKHNjYW5EaXN0YW5jZSA9IGRp c3RhbmNlMihzY2FuID0gcGF0aE5vZGUuZ2V0UG9pbnRBdExlbmd0aChzY2Fu TGVuZ3RoKSkpIDwgYmVzdERpc3RhbmNlKSB7CisgICAgICAgICAgICBiZXN0 ID0gc2NhbiwgYmVzdExlbmd0aCA9IHNjYW5MZW5ndGgsIGJlc3REaXN0YW5j ZSA9IHNjYW5EaXN0YW5jZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8v IGJpbmFyeSBzZWFyY2ggZm9yIHByZWNpc2UgZXN0aW1hdGUKKyAgICBwcmVj aXNpb24gKj0gLjU7CisgICAgd2hpbGUgKHByZWNpc2lvbiA+IC41KSB7Cisg ICAgICAgIHZhciBiZWZvcmUsCisgICAgICAgICAgICBhZnRlciwKKyAgICAg ICAgICAgIGJlZm9yZUxlbmd0aCwKKyAgICAgICAgICAgIGFmdGVyTGVuZ3Ro LAorICAgICAgICAgICAgYmVmb3JlRGlzdGFuY2UsCisgICAgICAgICAgICBh ZnRlckRpc3RhbmNlOworICAgICAgICBpZiAoKGJlZm9yZUxlbmd0aCA9IGJl c3RMZW5ndGggLSBwcmVjaXNpb24pID49IDAgJiYgKGJlZm9yZURpc3RhbmNl ID0gZGlzdGFuY2UyKGJlZm9yZSA9IHBhdGhOb2RlLmdldFBvaW50QXRMZW5n dGgoYmVmb3JlTGVuZ3RoKSkpIDwgYmVzdERpc3RhbmNlKSB7CisgICAgICAg ICAgICBiZXN0ID0gYmVmb3JlLCBiZXN0TGVuZ3RoID0gYmVmb3JlTGVuZ3Ro LCBiZXN0RGlzdGFuY2UgPSBiZWZvcmVEaXN0YW5jZTsKKyAgICAgICAgfSBl bHNlIGlmICgoYWZ0ZXJMZW5ndGggPSBiZXN0TGVuZ3RoICsgcHJlY2lzaW9u KSA8PSBwYXRoTGVuZ3RoICYmIChhZnRlckRpc3RhbmNlID0gZGlzdGFuY2Uy KGFmdGVyID0gcGF0aE5vZGUuZ2V0UG9pbnRBdExlbmd0aChhZnRlckxlbmd0 aCkpKSA8IGJlc3REaXN0YW5jZSkgeworICAgICAgICAgICAgYmVzdCA9IGFm dGVyLCBiZXN0TGVuZ3RoID0gYWZ0ZXJMZW5ndGgsIGJlc3REaXN0YW5jZSA9 IGFmdGVyRGlzdGFuY2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICBwcmVjaXNpb24gKj0gLjU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBi ZXN0ID0geworICAgICAgICB4OiBiZXN0LngsCisgICAgICAgIHk6IGJlc3Qu eSwKKyAgICAgICAgbGVuZ3RoOiBiZXN0TGVuZ3RoLAorICAgICAgICBkaXN0 YW5jZTogTWF0aC5zcXJ0KGJlc3REaXN0YW5jZSkKKyAgICB9OworICAgIHJl dHVybiBiZXN0OworfQorLypcCisgKiBTbmFwLmlzCisgWyBtZXRob2QgXQor ICoqCisgKiBIYW5keSByZXBsYWNlbWVudCBmb3IgdGhlIGB0eXBlb2ZgIG9w ZXJhdG9yCisgLSBvICjigKYpIGFueSBvYmplY3Qgb3IgcHJpbWl0aXZlCisg LSB0eXBlIChzdHJpbmcpIG5hbWUgb2YgdGhlIHR5cGUsIGUuZy4sIGBzdHJp bmdgLCBgZnVuY3Rpb25gLCBgbnVtYmVyYCwgZXRjLgorID0gKGJvb2xlYW4p IGB0cnVlYCBpZiBnaXZlbiB2YWx1ZSBpcyBvZiBnaXZlbiB0eXBlCitcKi8K K1NuYXAuaXMgPSBpczsKKy8qXAorICogU25hcC5zbmFwVG8KKyBbIG1ldGhv ZCBdCisgKioKKyAqIFNuYXBzIGdpdmVuIHZhbHVlIHRvIGdpdmVuIGdyaWQK KyAtIHZhbHVlcyAoYXJyYXl8bnVtYmVyKSBnaXZlbiBhcnJheSBvZiB2YWx1 ZXMgb3Igc3RlcCBvZiB0aGUgZ3JpZAorIC0gdmFsdWUgKG51bWJlcikgdmFs dWUgdG8gYWRqdXN0CisgLSB0b2xlcmFuY2UgKG51bWJlcikgI29wdGlvbmFs IG1heGltdW0gZGlzdGFuY2UgdG8gdGhlIHRhcmdldCB2YWx1ZSB0aGF0IHdv dWxkIHRyaWdnZXIgdGhlIHNuYXAuIERlZmF1bHQgaXMgYDEwYC4KKyA9IChu dW1iZXIpIGFkanVzdGVkIHZhbHVlCitcKi8KK1NuYXAuc25hcFRvID0gZnVu Y3Rpb24gKHZhbHVlcywgdmFsdWUsIHRvbGVyYW5jZSkgeworICAgIHRvbGVy YW5jZSA9IGlzKHRvbGVyYW5jZSwgImZpbml0ZSIpID8gdG9sZXJhbmNlIDog MTA7CisgICAgaWYgKGlzKHZhbHVlcywgImFycmF5IikpIHsKKyAgICAgICAg dmFyIGkgPSB2YWx1ZXMubGVuZ3RoOworICAgICAgICB3aGlsZSAoaS0tKSBp ZiAoYWJzKHZhbHVlc1tpXSAtIHZhbHVlKSA8PSB0b2xlcmFuY2UpIHsKKyAg ICAgICAgICAgIHJldHVybiB2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICB9 IGVsc2UgeworICAgICAgICB2YWx1ZXMgPSArdmFsdWVzOworICAgICAgICB2 YXIgcmVtID0gdmFsdWUgJSB2YWx1ZXM7CisgICAgICAgIGlmIChyZW0gPCB0 b2xlcmFuY2UpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZSAtIHJlbTsK KyAgICAgICAgfQorICAgICAgICBpZiAocmVtID4gdmFsdWVzIC0gdG9sZXJh bmNlKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWUgLSByZW0gKyB2YWx1 ZXM7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHZhbHVlOworfTsK Ky8vIENvbG91cgorLypcCisgKiBTbmFwLmdldFJHQgorIFsgbWV0aG9kIF0K KyAqKgorICogUGFyc2VzIGNvbG9yIHN0cmluZyBhcyBSR0Igb2JqZWN0Cisg LSBjb2xvciAoc3RyaW5nKSBjb2xvciBzdHJpbmcgaW4gb25lIG9mIHRoZSBm b2xsb3dpbmcgZm9ybWF0czoKKyAjIDx1bD4KKyAjICAgICA8bGk+Q29sb3Ig bmFtZSAoPGNvZGU+cmVkPC9jb2RlPiwgPGNvZGU+Z3JlZW48L2NvZGU+LCA8 Y29kZT5jb3JuZmxvd2VyYmx1ZTwvY29kZT4sIGV0Yyk8L2xpPgorICMgICAg IDxsaT4j4oCi4oCi4oCiIOKAlCBzaG9ydGVuZWQgSFRNTCBjb2xvcjogKDxj b2RlPiMwMDA8L2NvZGU+LCA8Y29kZT4jZmMwPC9jb2RlPiwgZXRjLik8L2xp PgorICMgICAgIDxsaT4j4oCi4oCi4oCi4oCi4oCi4oCiIOKAlCBmdWxsIGxl bmd0aCBIVE1MIGNvbG9yOiAoPGNvZGU+IzAwMDAwMDwvY29kZT4sIDxjb2Rl PiNiZDIzMDA8L2NvZGU+KTwvbGk+CisgIyAgICAgPGxpPnJnYijigKLigKLi gKIsIOKAouKAouKAoiwg4oCi4oCi4oCiKSDigJQgcmVkLCBncmVlbiBhbmQg Ymx1ZSBjaGFubmVscyB2YWx1ZXM6ICg8Y29kZT5yZ2IoMjAwLCZuYnNwOzEw MCwmbmJzcDswKTwvY29kZT4pPC9saT4KKyAjICAgICA8bGk+cmdiYSjigKLi gKLigKIsIOKAouKAouKAoiwg4oCi4oCi4oCiLCDigKLigKLigKIpIOKAlCBh bHNvIHdpdGggb3BhY2l0eTwvbGk+CisgIyAgICAgPGxpPnJnYijigKLigKLi gKIlLCDigKLigKLigKIlLCDigKLigKLigKIlKSDigJQgc2FtZSBhcyBhYm92 ZSwgYnV0IGluICU6ICg8Y29kZT5yZ2IoMTAwJSwmbmJzcDsxNzUlLCZuYnNw OzAlKTwvY29kZT4pPC9saT4KKyAjICAgICA8bGk+cmdiYSjigKLigKLigKIl LCDigKLigKLigKIlLCDigKLigKLigKIlLCDigKLigKLigKIlKSDigJQgYWxz byB3aXRoIG9wYWNpdHk8L2xpPgorICMgICAgIDxsaT5oc2Io4oCi4oCi4oCi LCDigKLigKLigKIsIOKAouKAouKAoikg4oCUIGh1ZSwgc2F0dXJhdGlvbiBh bmQgYnJpZ2h0bmVzcyB2YWx1ZXM6ICg8Y29kZT5oc2IoMC41LCZuYnNwOzAu MjUsJm5ic3A7MSk8L2NvZGU+KTwvbGk+CisgIyAgICAgPGxpPmhzYmEo4oCi 4oCi4oCiLCDigKLigKLigKIsIOKAouKAouKAoiwg4oCi4oCi4oCiKSDigJQg YWxzbyB3aXRoIG9wYWNpdHk8L2xpPgorICMgICAgIDxsaT5oc2Io4oCi4oCi 4oCiJSwg4oCi4oCi4oCiJSwg4oCi4oCi4oCiJSkg4oCUIHNhbWUgYXMgYWJv dmUsIGJ1dCBpbiAlPC9saT4KKyAjICAgICA8bGk+aHNiYSjigKLigKLigKIl LCDigKLigKLigKIlLCDigKLigKLigKIlLCDigKLigKLigKIlKSDigJQgYWxz byB3aXRoIG9wYWNpdHk8L2xpPgorICMgICAgIDxsaT5oc2wo4oCi4oCi4oCi LCDigKLigKLigKIsIOKAouKAouKAoikg4oCUIGh1ZSwgc2F0dXJhdGlvbiBh bmQgbHVtaW5vc2l0eSB2YWx1ZXM6ICg8Y29kZT5oc2IoMC41LCZuYnNwOzAu MjUsJm5ic3A7MC41KTwvY29kZT4pPC9saT4KKyAjICAgICA8bGk+aHNsYSji gKLigKLigKIsIOKAouKAouKAoiwg4oCi4oCi4oCiLCDigKLigKLigKIpIOKA lCBhbHNvIHdpdGggb3BhY2l0eTwvbGk+CisgIyAgICAgPGxpPmhzbCjigKLi gKLigKIlLCDigKLigKLigKIlLCDigKLigKLigKIlKSDigJQgc2FtZSBhcyBh Ym92ZSwgYnV0IGluICU8L2xpPgorICMgICAgIDxsaT5oc2xhKOKAouKAouKA oiUsIOKAouKAouKAoiUsIOKAouKAouKAoiUsIOKAouKAouKAoiUpIOKAlCBh bHNvIHdpdGggb3BhY2l0eTwvbGk+CisgIyA8L3VsPgorICogTm90ZSB0aGF0 IGAlYCBjYW4gYmUgdXNlZCBhbnkgdGltZTogYHJnYigyMCUsIDI1NSwgNTAl KWAuCisgPSAob2JqZWN0KSBSR0Igb2JqZWN0IGluIHRoZSBmb2xsb3dpbmcg Zm9ybWF0OgorIG8geworIG8gICAgIHIgKG51bWJlcikgcmVkLAorIG8gICAg IGcgKG51bWJlcikgZ3JlZW4sCisgbyAgICAgYiAobnVtYmVyKSBibHVlLAor IG8gICAgIGhleCAoc3RyaW5nKSBjb2xvciBpbiBIVE1ML0NTUyBmb3JtYXQ6 ICPigKLigKLigKLigKLigKLigKIsCisgbyAgICAgZXJyb3IgKGJvb2xlYW4p IHRydWUgaWYgc3RyaW5nIGNhbid0IGJlIHBhcnNlZAorIG8gfQorXCovCitT bmFwLmdldFJHQiA9IGNhY2hlcihmdW5jdGlvbiAoY29sb3VyKSB7CisgICAg aWYgKCFjb2xvdXIgfHwgISEoKGNvbG91ciA9IFN0cihjb2xvdXIpKS5pbmRl eE9mKCItIikgKyAxKSkgeworICAgICAgICByZXR1cm4ge3I6IC0xLCBnOiAt MSwgYjogLTEsIGhleDogIm5vbmUiLCBlcnJvcjogMSwgdG9TdHJpbmc6IHJn YnRvU3RyaW5nfTsKKyAgICB9CisgICAgaWYgKGNvbG91ciA9PSAibm9uZSIp IHsKKyAgICAgICAgcmV0dXJuIHtyOiAtMSwgZzogLTEsIGI6IC0xLCBoZXg6 ICJub25lIiwgdG9TdHJpbmc6IHJnYnRvU3RyaW5nfTsKKyAgICB9CisgICAg IShoc3JnW2hhc10oY29sb3VyLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKDAs IDIpKSB8fCBjb2xvdXIuY2hhckF0KCkgPT0gIiMiKSAmJiAoY29sb3VyID0g dG9IZXgoY29sb3VyKSk7CisgICAgaWYgKCFjb2xvdXIpIHsKKyAgICAgICAg cmV0dXJuIHtyOiAtMSwgZzogLTEsIGI6IC0xLCBoZXg6ICJub25lIiwgZXJy b3I6IDEsIHRvU3RyaW5nOiByZ2J0b1N0cmluZ307CisgICAgfQorICAgIHZh ciByZXMsCisgICAgICAgIHJlZCwKKyAgICAgICAgZ3JlZW4sCisgICAgICAg IGJsdWUsCisgICAgICAgIG9wYWNpdHksCisgICAgICAgIHQsCisgICAgICAg IHZhbHVlcywKKyAgICAgICAgcmdiID0gY29sb3VyLm1hdGNoKGNvbG91clJl Z0V4cCk7CisgICAgaWYgKHJnYikgeworICAgICAgICBpZiAocmdiWzJdKSB7 CisgICAgICAgICAgICBibHVlID0gdG9JbnQocmdiWzJdLnN1YnN0cmluZyg1 KSwgMTYpOworICAgICAgICAgICAgZ3JlZW4gPSB0b0ludChyZ2JbMl0uc3Vi c3RyaW5nKDMsIDUpLCAxNik7CisgICAgICAgICAgICByZWQgPSB0b0ludChy Z2JbMl0uc3Vic3RyaW5nKDEsIDMpLCAxNik7CisgICAgICAgIH0KKyAgICAg ICAgaWYgKHJnYlszXSkgeworICAgICAgICAgICAgYmx1ZSA9IHRvSW50KCh0 ID0gcmdiWzNdLmNoYXJBdCgzKSkgKyB0LCAxNik7CisgICAgICAgICAgICBn cmVlbiA9IHRvSW50KCh0ID0gcmdiWzNdLmNoYXJBdCgyKSkgKyB0LCAxNik7 CisgICAgICAgICAgICByZWQgPSB0b0ludCgodCA9IHJnYlszXS5jaGFyQXQo MSkpICsgdCwgMTYpOworICAgICAgICB9CisgICAgICAgIGlmIChyZ2JbNF0p IHsKKyAgICAgICAgICAgIHZhbHVlcyA9IHJnYls0XS5zcGxpdChjb21tYVNw YWNlcyk7CisgICAgICAgICAgICByZWQgPSB0b0Zsb2F0KHZhbHVlc1swXSk7 CisgICAgICAgICAgICB2YWx1ZXNbMF0uc2xpY2UoLTEpID09ICIlIiAmJiAo cmVkICo9IDIuNTUpOworICAgICAgICAgICAgZ3JlZW4gPSB0b0Zsb2F0KHZh bHVlc1sxXSk7CisgICAgICAgICAgICB2YWx1ZXNbMV0uc2xpY2UoLTEpID09 ICIlIiAmJiAoZ3JlZW4gKj0gMi41NSk7CisgICAgICAgICAgICBibHVlID0g dG9GbG9hdCh2YWx1ZXNbMl0pOworICAgICAgICAgICAgdmFsdWVzWzJdLnNs aWNlKC0xKSA9PSAiJSIgJiYgKGJsdWUgKj0gMi41NSk7CisgICAgICAgICAg ICByZ2JbMV0udG9Mb3dlckNhc2UoKS5zbGljZSgwLCA0KSA9PSAicmdiYSIg JiYgKG9wYWNpdHkgPSB0b0Zsb2F0KHZhbHVlc1szXSkpOworICAgICAgICAg ICAgdmFsdWVzWzNdICYmIHZhbHVlc1szXS5zbGljZSgtMSkgPT0gIiUiICYm IChvcGFjaXR5IC89IDEwMCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJn Yls1XSkgeworICAgICAgICAgICAgdmFsdWVzID0gcmdiWzVdLnNwbGl0KGNv bW1hU3BhY2VzKTsKKyAgICAgICAgICAgIHJlZCA9IHRvRmxvYXQodmFsdWVz WzBdKTsKKyAgICAgICAgICAgIHZhbHVlc1swXS5zbGljZSgtMSkgPT0gIiUi ICYmIChyZWQgLz0gMTAwKTsKKyAgICAgICAgICAgIGdyZWVuID0gdG9GbG9h dCh2YWx1ZXNbMV0pOworICAgICAgICAgICAgdmFsdWVzWzFdLnNsaWNlKC0x KSA9PSAiJSIgJiYgKGdyZWVuIC89IDEwMCk7CisgICAgICAgICAgICBibHVl ID0gdG9GbG9hdCh2YWx1ZXNbMl0pOworICAgICAgICAgICAgdmFsdWVzWzJd LnNsaWNlKC0xKSA9PSAiJSIgJiYgKGJsdWUgLz0gMTAwKTsKKyAgICAgICAg ICAgICh2YWx1ZXNbMF0uc2xpY2UoLTMpID09ICJkZWciIHx8IHZhbHVlc1sw XS5zbGljZSgtMSkgPT0gIlx4YjAiKSAmJiAocmVkIC89IDM2MCk7CisgICAg ICAgICAgICByZ2JbMV0udG9Mb3dlckNhc2UoKS5zbGljZSgwLCA0KSA9PSAi aHNiYSIgJiYgKG9wYWNpdHkgPSB0b0Zsb2F0KHZhbHVlc1szXSkpOworICAg ICAgICAgICAgdmFsdWVzWzNdICYmIHZhbHVlc1szXS5zbGljZSgtMSkgPT0g IiUiICYmIChvcGFjaXR5IC89IDEwMCk7CisgICAgICAgICAgICByZXR1cm4g U25hcC5oc2IycmdiKHJlZCwgZ3JlZW4sIGJsdWUsIG9wYWNpdHkpOworICAg ICAgICB9CisgICAgICAgIGlmIChyZ2JbNl0pIHsKKyAgICAgICAgICAgIHZh bHVlcyA9IHJnYls2XS5zcGxpdChjb21tYVNwYWNlcyk7CisgICAgICAgICAg ICByZWQgPSB0b0Zsb2F0KHZhbHVlc1swXSk7CisgICAgICAgICAgICB2YWx1 ZXNbMF0uc2xpY2UoLTEpID09ICIlIiAmJiAocmVkIC89IDEwMCk7CisgICAg ICAgICAgICBncmVlbiA9IHRvRmxvYXQodmFsdWVzWzFdKTsKKyAgICAgICAg ICAgIHZhbHVlc1sxXS5zbGljZSgtMSkgPT0gIiUiICYmIChncmVlbiAvPSAx MDApOworICAgICAgICAgICAgYmx1ZSA9IHRvRmxvYXQodmFsdWVzWzJdKTsK KyAgICAgICAgICAgIHZhbHVlc1syXS5zbGljZSgtMSkgPT0gIiUiICYmIChi bHVlIC89IDEwMCk7CisgICAgICAgICAgICAodmFsdWVzWzBdLnNsaWNlKC0z KSA9PSAiZGVnIiB8fCB2YWx1ZXNbMF0uc2xpY2UoLTEpID09ICJceGIwIikg JiYgKHJlZCAvPSAzNjApOworICAgICAgICAgICAgcmdiWzFdLnRvTG93ZXJD YXNlKCkuc2xpY2UoMCwgNCkgPT0gImhzbGEiICYmIChvcGFjaXR5ID0gdG9G bG9hdCh2YWx1ZXNbM10pKTsKKyAgICAgICAgICAgIHZhbHVlc1szXSAmJiB2 YWx1ZXNbM10uc2xpY2UoLTEpID09ICIlIiAmJiAob3BhY2l0eSAvPSAxMDAp OworICAgICAgICAgICAgcmV0dXJuIFNuYXAuaHNsMnJnYihyZWQsIGdyZWVu LCBibHVlLCBvcGFjaXR5KTsKKyAgICAgICAgfQorICAgICAgICByZWQgPSBt bWluKG1hdGgucm91bmQocmVkKSwgMjU1KTsKKyAgICAgICAgZ3JlZW4gPSBt bWluKG1hdGgucm91bmQoZ3JlZW4pLCAyNTUpOworICAgICAgICBibHVlID0g bW1pbihtYXRoLnJvdW5kKGJsdWUpLCAyNTUpOworICAgICAgICBvcGFjaXR5 ID0gbW1pbihtbWF4KG9wYWNpdHksIDApLCAxKTsKKyAgICAgICAgcmdiID0g e3I6IHJlZCwgZzogZ3JlZW4sIGI6IGJsdWUsIHRvU3RyaW5nOiByZ2J0b1N0 cmluZ307CisgICAgICAgIHJnYi5oZXggPSAiIyIgKyAoMTY3NzcyMTYgfCBi bHVlIHwgKGdyZWVuIDw8IDgpIHwgKHJlZCA8PCAxNikpLnRvU3RyaW5nKDE2 KS5zbGljZSgxKTsKKyAgICAgICAgcmdiLm9wYWNpdHkgPSBpcyhvcGFjaXR5 LCAiZmluaXRlIikgPyBvcGFjaXR5IDogMTsKKyAgICAgICAgcmV0dXJuIHJn YjsKKyAgICB9CisgICAgcmV0dXJuIHtyOiAtMSwgZzogLTEsIGI6IC0xLCBo ZXg6ICJub25lIiwgZXJyb3I6IDEsIHRvU3RyaW5nOiByZ2J0b1N0cmluZ307 Cit9LCBTbmFwKTsKKy8qXAorICogU25hcC5oc2IKKyBbIG1ldGhvZCBdCisg KioKKyAqIENvbnZlcnRzIEhTQiB2YWx1ZXMgdG8gYSBoZXggcmVwcmVzZW50 YXRpb24gb2YgdGhlIGNvbG9yCisgLSBoIChudW1iZXIpIGh1ZQorIC0gcyAo bnVtYmVyKSBzYXR1cmF0aW9uCisgLSBiIChudW1iZXIpIHZhbHVlIG9yIGJy aWdodG5lc3MKKyA9IChzdHJpbmcpIGhleCByZXByZXNlbnRhdGlvbiBvZiB0 aGUgY29sb3IKK1wqLworU25hcC5oc2IgPSBjYWNoZXIoZnVuY3Rpb24gKGgs IHMsIGIpIHsKKyAgICByZXR1cm4gU25hcC5oc2IycmdiKGgsIHMsIGIpLmhl eDsKK30pOworLypcCisgKiBTbmFwLmhzbAorIFsgbWV0aG9kIF0KKyAqKgor ICogQ29udmVydHMgSFNMIHZhbHVlcyB0byBhIGhleCByZXByZXNlbnRhdGlv biBvZiB0aGUgY29sb3IKKyAtIGggKG51bWJlcikgaHVlCisgLSBzIChudW1i ZXIpIHNhdHVyYXRpb24KKyAtIGwgKG51bWJlcikgbHVtaW5vc2l0eQorID0g KHN0cmluZykgaGV4IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2xvcgorXCov CitTbmFwLmhzbCA9IGNhY2hlcihmdW5jdGlvbiAoaCwgcywgbCkgeworICAg IHJldHVybiBTbmFwLmhzbDJyZ2IoaCwgcywgbCkuaGV4OworfSk7CisvKlwK KyAqIFNuYXAucmdiCisgWyBtZXRob2QgXQorICoqCisgKiBDb252ZXJ0cyBS R0IgdmFsdWVzIHRvIGEgaGV4IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2xv cgorIC0gciAobnVtYmVyKSByZWQKKyAtIGcgKG51bWJlcikgZ3JlZW4KKyAt IGIgKG51bWJlcikgYmx1ZQorID0gKHN0cmluZykgaGV4IHJlcHJlc2VudGF0 aW9uIG9mIHRoZSBjb2xvcgorXCovCitTbmFwLnJnYiA9IGNhY2hlcihmdW5j dGlvbiAociwgZywgYiwgbykgeworICAgIGlmIChpcyhvLCAiZmluaXRlIikp IHsKKyAgICAgICAgdmFyIHJvdW5kID0gbWF0aC5yb3VuZDsKKyAgICAgICAg cmV0dXJuICJyZ2JhKCIgKyBbcm91bmQociksIHJvdW5kKGcpLCByb3VuZChi KSwgK28udG9GaXhlZCgyKV0gKyAiKSI7CisgICAgfQorICAgIHJldHVybiAi IyIgKyAoMTY3NzcyMTYgfCBiIHwgKGcgPDwgOCkgfCAociA8PCAxNikpLnRv U3RyaW5nKDE2KS5zbGljZSgxKTsKK30pOwordmFyIHRvSGV4ID0gZnVuY3Rp b24gKGNvbG9yKSB7CisgICAgdmFyIGkgPSBnbG9iLmRvYy5nZXRFbGVtZW50 c0J5VGFnTmFtZSgiaGVhZCIpWzBdIHx8IGdsb2IuZG9jLmdldEVsZW1lbnRz QnlUYWdOYW1lKCJzdmciKVswXSwKKyAgICAgICAgcmVkID0gInJnYigyNTUs IDAsIDApIjsKKyAgICB0b0hleCA9IGNhY2hlcihmdW5jdGlvbiAoY29sb3Ip IHsKKyAgICAgICAgaWYgKGNvbG9yLnRvTG93ZXJDYXNlKCkgPT0gInJlZCIp IHsKKyAgICAgICAgICAgIHJldHVybiByZWQ7CisgICAgICAgIH0KKyAgICAg ICAgaS5zdHlsZS5jb2xvciA9IHJlZDsKKyAgICAgICAgaS5zdHlsZS5jb2xv ciA9IGNvbG9yOworICAgICAgICB2YXIgb3V0ID0gZ2xvYi5kb2MuZGVmYXVs dFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShpLCBFKS5nZXRQcm9wZXJ0eVZhbHVl KCJjb2xvciIpOworICAgICAgICByZXR1cm4gb3V0ID09IHJlZCA/IG51bGwg OiBvdXQ7CisgICAgfSk7CisgICAgcmV0dXJuIHRvSGV4KGNvbG9yKTsKK30s Citoc2J0b1N0cmluZyA9IGZ1bmN0aW9uICgpIHsKKyAgICByZXR1cm4gImhz YigiICsgW3RoaXMuaCwgdGhpcy5zLCB0aGlzLmJdICsgIikiOworfSwKK2hz bHRvU3RyaW5nID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiAiaHNsKCIg KyBbdGhpcy5oLCB0aGlzLnMsIHRoaXMubF0gKyAiKSI7Cit9LAorcmdidG9T dHJpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIHRoaXMub3BhY2l0 eSA9PSAxIHx8IHRoaXMub3BhY2l0eSA9PSBudWxsID8KKyAgICAgICAgICAg IHRoaXMuaGV4IDoKKyAgICAgICAgICAgICJyZ2JhKCIgKyBbdGhpcy5yLCB0 aGlzLmcsIHRoaXMuYiwgdGhpcy5vcGFjaXR5XSArICIpIjsKK30sCitwcmVw YXJlUkdCID0gZnVuY3Rpb24gKHIsIGcsIGIpIHsKKyAgICBpZiAoZyA9PSBu dWxsICYmIGlzKHIsICJvYmplY3QiKSAmJiAiciIgaW4gciAmJiAiZyIgaW4g ciAmJiAiYiIgaW4gcikgeworICAgICAgICBiID0gci5iOworICAgICAgICBn ID0gci5nOworICAgICAgICByID0gci5yOworICAgIH0KKyAgICBpZiAoZyA9 PSBudWxsICYmIGlzKHIsIHN0cmluZykpIHsKKyAgICAgICAgdmFyIGNsciA9 IFNuYXAuZ2V0UkdCKHIpOworICAgICAgICByID0gY2xyLnI7CisgICAgICAg IGcgPSBjbHIuZzsKKyAgICAgICAgYiA9IGNsci5iOworICAgIH0KKyAgICBp ZiAociA+IDEgfHwgZyA+IDEgfHwgYiA+IDEpIHsKKyAgICAgICAgciAvPSAy NTU7CisgICAgICAgIGcgLz0gMjU1OworICAgICAgICBiIC89IDI1NTsKKyAg ICB9CisKKyAgICByZXR1cm4gW3IsIGcsIGJdOworfSwKK3BhY2thZ2VSR0Ig PSBmdW5jdGlvbiAociwgZywgYiwgbykgeworICAgIHIgPSBtYXRoLnJvdW5k KHIgKiAyNTUpOworICAgIGcgPSBtYXRoLnJvdW5kKGcgKiAyNTUpOworICAg IGIgPSBtYXRoLnJvdW5kKGIgKiAyNTUpOworICAgIHZhciByZ2IgPSB7Cisg ICAgICAgIHI6IHIsCisgICAgICAgIGc6IGcsCisgICAgICAgIGI6IGIsCisg ICAgICAgIG9wYWNpdHk6IGlzKG8sICJmaW5pdGUiKSA/IG8gOiAxLAorICAg ICAgICBoZXg6IFNuYXAucmdiKHIsIGcsIGIpLAorICAgICAgICB0b1N0cmlu ZzogcmdidG9TdHJpbmcKKyAgICB9OworICAgIGlzKG8sICJmaW5pdGUiKSAm JiAocmdiLm9wYWNpdHkgPSBvKTsKKyAgICByZXR1cm4gcmdiOworfTsKKy8q XAorICogU25hcC5jb2xvcgorIFsgbWV0aG9kIF0KKyAqKgorICogUGFyc2Vz IHRoZSBjb2xvciBzdHJpbmcgYW5kIHJldHVybnMgYW4gb2JqZWN0IGZlYXR1 cmluZyB0aGUgY29sb3IncyBjb21wb25lbnQgdmFsdWVzCisgLSBjbHIgKHN0 cmluZykgY29sb3Igc3RyaW5nIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGZv cm1hdHMgKHNlZSBAU25hcC5nZXRSR0IpCisgPSAob2JqZWN0KSBDb21iaW5l ZCBSR0IvSFNCIG9iamVjdCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyBv IHsKKyBvICAgICByIChudW1iZXIpIHJlZCwKKyBvICAgICBnIChudW1iZXIp IGdyZWVuLAorIG8gICAgIGIgKG51bWJlcikgYmx1ZSwKKyBvICAgICBoZXgg KHN0cmluZykgY29sb3IgaW4gSFRNTC9DU1MgZm9ybWF0OiAj4oCi4oCi4oCi 4oCi4oCi4oCiLAorIG8gICAgIGVycm9yIChib29sZWFuKSBgdHJ1ZWAgaWYg c3RyaW5nIGNhbid0IGJlIHBhcnNlZCwKKyBvICAgICBoIChudW1iZXIpIGh1 ZSwKKyBvICAgICBzIChudW1iZXIpIHNhdHVyYXRpb24sCisgbyAgICAgdiAo bnVtYmVyKSB2YWx1ZSAoYnJpZ2h0bmVzcyksCisgbyAgICAgbCAobnVtYmVy KSBsaWdodG5lc3MKKyBvIH0KK1wqLworU25hcC5jb2xvciA9IGZ1bmN0aW9u IChjbHIpIHsKKyAgICB2YXIgcmdiOworICAgIGlmIChpcyhjbHIsICJvYmpl Y3QiKSAmJiAiaCIgaW4gY2xyICYmICJzIiBpbiBjbHIgJiYgImIiIGluIGNs cikgeworICAgICAgICByZ2IgPSBTbmFwLmhzYjJyZ2IoY2xyKTsKKyAgICAg ICAgY2xyLnIgPSByZ2IucjsKKyAgICAgICAgY2xyLmcgPSByZ2IuZzsKKyAg ICAgICAgY2xyLmIgPSByZ2IuYjsKKyAgICAgICAgY2xyLm9wYWNpdHkgPSAx OworICAgICAgICBjbHIuaGV4ID0gcmdiLmhleDsKKyAgICB9IGVsc2UgaWYg KGlzKGNsciwgIm9iamVjdCIpICYmICJoIiBpbiBjbHIgJiYgInMiIGluIGNs ciAmJiAibCIgaW4gY2xyKSB7CisgICAgICAgIHJnYiA9IFNuYXAuaHNsMnJn YihjbHIpOworICAgICAgICBjbHIuciA9IHJnYi5yOworICAgICAgICBjbHIu ZyA9IHJnYi5nOworICAgICAgICBjbHIuYiA9IHJnYi5iOworICAgICAgICBj bHIub3BhY2l0eSA9IDE7CisgICAgICAgIGNsci5oZXggPSByZ2IuaGV4Owor ICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChpcyhjbHIsICJzdHJpbmciKSkg eworICAgICAgICAgICAgY2xyID0gU25hcC5nZXRSR0IoY2xyKTsKKyAgICAg ICAgfQorICAgICAgICBpZiAoaXMoY2xyLCAib2JqZWN0IikgJiYgInIiIGlu IGNsciAmJiAiZyIgaW4gY2xyICYmICJiIiBpbiBjbHIgJiYgISgiZXJyb3Ii IGluIGNscikpIHsKKyAgICAgICAgICAgIHJnYiA9IFNuYXAucmdiMmhzbChj bHIpOworICAgICAgICAgICAgY2xyLmggPSByZ2IuaDsKKyAgICAgICAgICAg IGNsci5zID0gcmdiLnM7CisgICAgICAgICAgICBjbHIubCA9IHJnYi5sOwor ICAgICAgICAgICAgcmdiID0gU25hcC5yZ2IyaHNiKGNscik7CisgICAgICAg ICAgICBjbHIudiA9IHJnYi5iOworICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgY2xyID0ge2hleDogIm5vbmUifTsKKyAgICAgICAgICAgIGNsci5y ID0gY2xyLmcgPSBjbHIuYiA9IGNsci5oID0gY2xyLnMgPSBjbHIudiA9IGNs ci5sID0gLTE7CisgICAgICAgICAgICBjbHIuZXJyb3IgPSAxOworICAgICAg ICB9CisgICAgfQorICAgIGNsci50b1N0cmluZyA9IHJnYnRvU3RyaW5nOwor ICAgIHJldHVybiBjbHI7Cit9OworLypcCisgKiBTbmFwLmhzYjJyZ2IKKyBb IG1ldGhvZCBdCisgKioKKyAqIENvbnZlcnRzIEhTQiB2YWx1ZXMgdG8gYW4g UkdCIG9iamVjdAorIC0gaCAobnVtYmVyKSBodWUKKyAtIHMgKG51bWJlcikg c2F0dXJhdGlvbgorIC0gdiAobnVtYmVyKSB2YWx1ZSBvciBicmlnaHRuZXNz CisgPSAob2JqZWN0KSBSR0Igb2JqZWN0IGluIHRoZSBmb2xsb3dpbmcgZm9y bWF0OgorIG8geworIG8gICAgIHIgKG51bWJlcikgcmVkLAorIG8gICAgIGcg KG51bWJlcikgZ3JlZW4sCisgbyAgICAgYiAobnVtYmVyKSBibHVlLAorIG8g ICAgIGhleCAoc3RyaW5nKSBjb2xvciBpbiBIVE1ML0NTUyBmb3JtYXQ6ICPi gKLigKLigKLigKLigKLigKIKKyBvIH0KK1wqLworU25hcC5oc2IycmdiID0g ZnVuY3Rpb24gKGgsIHMsIHYsIG8pIHsKKyAgICBpZiAoaXMoaCwgIm9iamVj dCIpICYmICJoIiBpbiBoICYmICJzIiBpbiBoICYmICJiIiBpbiBoKSB7Cisg ICAgICAgIHYgPSBoLmI7CisgICAgICAgIHMgPSBoLnM7CisgICAgICAgIG8g PSBoLm87CisgICAgICAgIGggPSBoLmg7CisgICAgfQorICAgIGggKj0gMzYw OworICAgIHZhciBSLCBHLCBCLCBYLCBDOworICAgIGggPSAoaCAlIDM2MCkg LyA2MDsKKyAgICBDID0gdiAqIHM7CisgICAgWCA9IEMgKiAoMSAtIGFicyho ICUgMiAtIDEpKTsKKyAgICBSID0gRyA9IEIgPSB2IC0gQzsKKworICAgIGgg PSB+fmg7CisgICAgUiArPSBbQywgWCwgMCwgMCwgWCwgQ11baF07CisgICAg RyArPSBbWCwgQywgQywgWCwgMCwgMF1baF07CisgICAgQiArPSBbMCwgMCwg WCwgQywgQywgWF1baF07CisgICAgcmV0dXJuIHBhY2thZ2VSR0IoUiwgRywg Qiwgbyk7Cit9OworLypcCisgKiBTbmFwLmhzbDJyZ2IKKyBbIG1ldGhvZCBd CisgKioKKyAqIENvbnZlcnRzIEhTTCB2YWx1ZXMgdG8gYW4gUkdCIG9iamVj dAorIC0gaCAobnVtYmVyKSBodWUKKyAtIHMgKG51bWJlcikgc2F0dXJhdGlv bgorIC0gbCAobnVtYmVyKSBsdW1pbm9zaXR5CisgPSAob2JqZWN0KSBSR0Ig b2JqZWN0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorIG8geworIG8gICAg IHIgKG51bWJlcikgcmVkLAorIG8gICAgIGcgKG51bWJlcikgZ3JlZW4sCisg byAgICAgYiAobnVtYmVyKSBibHVlLAorIG8gICAgIGhleCAoc3RyaW5nKSBj b2xvciBpbiBIVE1ML0NTUyBmb3JtYXQ6ICPigKLigKLigKLigKLigKLigKIK KyBvIH0KK1wqLworU25hcC5oc2wycmdiID0gZnVuY3Rpb24gKGgsIHMsIGws IG8pIHsKKyAgICBpZiAoaXMoaCwgIm9iamVjdCIpICYmICJoIiBpbiBoICYm ICJzIiBpbiBoICYmICJsIiBpbiBoKSB7CisgICAgICAgIGwgPSBoLmw7Cisg ICAgICAgIHMgPSBoLnM7CisgICAgICAgIGggPSBoLmg7CisgICAgfQorICAg IGlmIChoID4gMSB8fCBzID4gMSB8fCBsID4gMSkgeworICAgICAgICBoIC89 IDM2MDsKKyAgICAgICAgcyAvPSAxMDA7CisgICAgICAgIGwgLz0gMTAwOwor ICAgIH0KKyAgICBoICo9IDM2MDsKKyAgICB2YXIgUiwgRywgQiwgWCwgQzsK KyAgICBoID0gKGggJSAzNjApIC8gNjA7CisgICAgQyA9IDIgKiBzICogKGwg PCAuNSA/IGwgOiAxIC0gbCk7CisgICAgWCA9IEMgKiAoMSAtIGFicyhoICUg MiAtIDEpKTsKKyAgICBSID0gRyA9IEIgPSBsIC0gQyAvIDI7CisKKyAgICBo ID0gfn5oOworICAgIFIgKz0gW0MsIFgsIDAsIDAsIFgsIENdW2hdOworICAg IEcgKz0gW1gsIEMsIEMsIFgsIDAsIDBdW2hdOworICAgIEIgKz0gWzAsIDAs IFgsIEMsIEMsIFhdW2hdOworICAgIHJldHVybiBwYWNrYWdlUkdCKFIsIEcs IEIsIG8pOworfTsKKy8qXAorICogU25hcC5yZ2IyaHNiCisgWyBtZXRob2Qg XQorICoqCisgKiBDb252ZXJ0cyBSR0IgdmFsdWVzIHRvIGFuIEhTQiBvYmpl Y3QKKyAtIHIgKG51bWJlcikgcmVkCisgLSBnIChudW1iZXIpIGdyZWVuCisg LSBiIChudW1iZXIpIGJsdWUKKyA9IChvYmplY3QpIEhTQiBvYmplY3QgaW4g dGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgbyB7CisgbyAgICAgaCAobnVtYmVy KSBodWUsCisgbyAgICAgcyAobnVtYmVyKSBzYXR1cmF0aW9uLAorIG8gICAg IGIgKG51bWJlcikgYnJpZ2h0bmVzcworIG8gfQorXCovCitTbmFwLnJnYjJo c2IgPSBmdW5jdGlvbiAociwgZywgYikgeworICAgIGIgPSBwcmVwYXJlUkdC KHIsIGcsIGIpOworICAgIHIgPSBiWzBdOworICAgIGcgPSBiWzFdOworICAg IGIgPSBiWzJdOworCisgICAgdmFyIEgsIFMsIFYsIEM7CisgICAgViA9IG1t YXgociwgZywgYik7CisgICAgQyA9IFYgLSBtbWluKHIsIGcsIGIpOworICAg IEggPSAoQyA9PSAwID8gbnVsbCA6CisgICAgICAgICBWID09IHIgPyAoZyAt IGIpIC8gQyA6CisgICAgICAgICBWID09IGcgPyAoYiAtIHIpIC8gQyArIDIg OgorICAgICAgICAgICAgICAgICAgKHIgLSBnKSAvIEMgKyA0CisgICAgICAg ICk7CisgICAgSCA9ICgoSCArIDM2MCkgJSA2KSAqIDYwIC8gMzYwOworICAg IFMgPSBDID09IDAgPyAwIDogQyAvIFY7CisgICAgcmV0dXJuIHtoOiBILCBz OiBTLCBiOiBWLCB0b1N0cmluZzogaHNidG9TdHJpbmd9OworfTsKKy8qXAor ICogU25hcC5yZ2IyaHNsCisgWyBtZXRob2QgXQorICoqCisgKiBDb252ZXJ0 cyBSR0IgdmFsdWVzIHRvIGFuIEhTTCBvYmplY3QKKyAtIHIgKG51bWJlcikg cmVkCisgLSBnIChudW1iZXIpIGdyZWVuCisgLSBiIChudW1iZXIpIGJsdWUK KyA9IChvYmplY3QpIEhTTCBvYmplY3QgaW4gdGhlIGZvbGxvd2luZyBmb3Jt YXQ6CisgbyB7CisgbyAgICAgaCAobnVtYmVyKSBodWUsCisgbyAgICAgcyAo bnVtYmVyKSBzYXR1cmF0aW9uLAorIG8gICAgIGwgKG51bWJlcikgbHVtaW5v c2l0eQorIG8gfQorXCovCitTbmFwLnJnYjJoc2wgPSBmdW5jdGlvbiAociwg ZywgYikgeworICAgIGIgPSBwcmVwYXJlUkdCKHIsIGcsIGIpOworICAgIHIg PSBiWzBdOworICAgIGcgPSBiWzFdOworICAgIGIgPSBiWzJdOworCisgICAg dmFyIEgsIFMsIEwsIE0sIG0sIEM7CisgICAgTSA9IG1tYXgociwgZywgYik7 CisgICAgbSA9IG1taW4ociwgZywgYik7CisgICAgQyA9IE0gLSBtOworICAg IEggPSAoQyA9PSAwID8gbnVsbCA6CisgICAgICAgICBNID09IHIgPyAoZyAt IGIpIC8gQyA6CisgICAgICAgICBNID09IGcgPyAoYiAtIHIpIC8gQyArIDIg OgorICAgICAgICAgICAgICAgICAgKHIgLSBnKSAvIEMgKyA0KTsKKyAgICBI ID0gKChIICsgMzYwKSAlIDYpICogNjAgLyAzNjA7CisgICAgTCA9IChNICsg bSkgLyAyOworICAgIFMgPSAoQyA9PSAwID8gMCA6CisgICAgICAgICBMIDwg LjUgPyBDIC8gKDIgKiBMKSA6CisgICAgICAgICAgICAgICAgICBDIC8gKDIg LSAyICogTCkpOworICAgIHJldHVybiB7aDogSCwgczogUywgbDogTCwgdG9T dHJpbmc6IGhzbHRvU3RyaW5nfTsKK307CisKKy8vIFRyYW5zZm9ybWF0aW9u cworLypcCisgKiBTbmFwLnBhcnNlUGF0aFN0cmluZworIFsgbWV0aG9kIF0K KyAqKgorICogVXRpbGl0eSBtZXRob2QKKyAqKgorICogUGFyc2VzIGdpdmVu IHBhdGggc3RyaW5nIGludG8gYW4gYXJyYXkgb2YgYXJyYXlzIG9mIHBhdGgg c2VnbWVudHMKKyAtIHBhdGhTdHJpbmcgKHN0cmluZ3xhcnJheSkgcGF0aCBz dHJpbmcgb3IgYXJyYXkgb2Ygc2VnbWVudHMgKGluIHRoZSBsYXN0IGNhc2Ug aXQgaXMgcmV0dXJuZWQgc3RyYWlnaHQgYXdheSkKKyA9IChhcnJheSkgYXJy YXkgb2Ygc2VnbWVudHMKK1wqLworU25hcC5wYXJzZVBhdGhTdHJpbmcgPSBm dW5jdGlvbiAocGF0aFN0cmluZykgeworICAgIGlmICghcGF0aFN0cmluZykg eworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgdmFyIHB0aCA9 IFNuYXAucGF0aChwYXRoU3RyaW5nKTsKKyAgICBpZiAocHRoLmFycikgewor ICAgICAgICByZXR1cm4gU25hcC5wYXRoLmNsb25lKHB0aC5hcnIpOworICAg IH0KKworICAgIHZhciBwYXJhbUNvdW50cyA9IHthOiA3LCBjOiA2LCBvOiAy LCBoOiAxLCBsOiAyLCBtOiAyLCByOiA0LCBxOiA0LCBzOiA0LCB0OiAyLCB2 OiAxLCB1OiAzLCB6OiAwfSwKKyAgICAgICAgZGF0YSA9IFtdOworICAgIGlm IChpcyhwYXRoU3RyaW5nLCAiYXJyYXkiKSAmJiBpcyhwYXRoU3RyaW5nWzBd LCAiYXJyYXkiKSkgeyAvLyByb3VnaCBhc3N1bXB0aW9uCisgICAgICAgIGRh dGEgPSBTbmFwLnBhdGguY2xvbmUocGF0aFN0cmluZyk7CisgICAgfQorICAg IGlmICghZGF0YS5sZW5ndGgpIHsKKyAgICAgICAgU3RyKHBhdGhTdHJpbmcp LnJlcGxhY2UocGF0aENvbW1hbmQsIGZ1bmN0aW9uIChhLCBiLCBjKSB7Cisg ICAgICAgICAgICB2YXIgcGFyYW1zID0gW10sCisgICAgICAgICAgICAgICAg bmFtZSA9IGIudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgIGMucmVwbGFj ZShwYXRoVmFsdWVzLCBmdW5jdGlvbiAoYSwgYikgeworICAgICAgICAgICAg ICAgIGIgJiYgcGFyYW1zLnB1c2goK2IpOworICAgICAgICAgICAgfSk7Cisg ICAgICAgICAgICBpZiAobmFtZSA9PSAibSIgJiYgcGFyYW1zLmxlbmd0aCA+ IDIpIHsKKyAgICAgICAgICAgICAgICBkYXRhLnB1c2goW2JdLmNvbmNhdChw YXJhbXMuc3BsaWNlKDAsIDIpKSk7CisgICAgICAgICAgICAgICAgbmFtZSA9 ICJsIjsKKyAgICAgICAgICAgICAgICBiID0gYiA9PSAibSIgPyAibCIgOiAi TCI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobmFtZSA9PSAi byIgJiYgcGFyYW1zLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICAgICAg ZGF0YS5wdXNoKFtiLCBwYXJhbXNbMF1dKTsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIGlmIChuYW1lID09ICJyIikgeworICAgICAgICAgICAgICAg IGRhdGEucHVzaChbYl0uY29uY2F0KHBhcmFtcykpOworICAgICAgICAgICAg fSBlbHNlIHdoaWxlIChwYXJhbXMubGVuZ3RoID49IHBhcmFtQ291bnRzW25h bWVdKSB7CisgICAgICAgICAgICAgICAgZGF0YS5wdXNoKFtiXS5jb25jYXQo cGFyYW1zLnNwbGljZSgwLCBwYXJhbUNvdW50c1tuYW1lXSkpKTsKKyAgICAg ICAgICAgICAgICBpZiAoIXBhcmFtQ291bnRzW25hbWVdKSB7CisgICAgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorICAgIGRhdGEudG9TdHJp bmcgPSBTbmFwLnBhdGgudG9TdHJpbmc7CisgICAgcHRoLmFyciA9IFNuYXAu cGF0aC5jbG9uZShkYXRhKTsKKyAgICByZXR1cm4gZGF0YTsKK307CisvKlwK KyAqIFNuYXAucGFyc2VUcmFuc2Zvcm1TdHJpbmcKKyBbIG1ldGhvZCBdCisg KioKKyAqIFV0aWxpdHkgbWV0aG9kCisgKioKKyAqIFBhcnNlcyBnaXZlbiB0 cmFuc2Zvcm0gc3RyaW5nIGludG8gYW4gYXJyYXkgb2YgdHJhbnNmb3JtYXRp b25zCisgLSBUU3RyaW5nIChzdHJpbmd8YXJyYXkpIHRyYW5zZm9ybSBzdHJp bmcgb3IgYXJyYXkgb2YgdHJhbnNmb3JtYXRpb25zIChpbiB0aGUgbGFzdCBj YXNlIGl0IGlzIHJldHVybmVkIHN0cmFpZ2h0IGF3YXkpCisgPSAoYXJyYXkp IGFycmF5IG9mIHRyYW5zZm9ybWF0aW9ucworXCovCit2YXIgcGFyc2VUcmFu c2Zvcm1TdHJpbmcgPSBTbmFwLnBhcnNlVHJhbnNmb3JtU3RyaW5nID0gZnVu Y3Rpb24gKFRTdHJpbmcpIHsKKyAgICBpZiAoIVRTdHJpbmcpIHsKKyAgICAg ICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIHZhciBwYXJhbUNvdW50cyA9 IHtyOiAzLCBzOiA0LCB0OiAyLCBtOiA2fSwKKyAgICAgICAgZGF0YSA9IFtd OworICAgIGlmIChpcyhUU3RyaW5nLCAiYXJyYXkiKSAmJiBpcyhUU3RyaW5n WzBdLCAiYXJyYXkiKSkgeyAvLyByb3VnaCBhc3N1bXB0aW9uCisgICAgICAg IGRhdGEgPSBTbmFwLnBhdGguY2xvbmUoVFN0cmluZyk7CisgICAgfQorICAg IGlmICghZGF0YS5sZW5ndGgpIHsKKyAgICAgICAgU3RyKFRTdHJpbmcpLnJl cGxhY2UodENvbW1hbmQsIGZ1bmN0aW9uIChhLCBiLCBjKSB7CisgICAgICAg ICAgICB2YXIgcGFyYW1zID0gW10sCisgICAgICAgICAgICAgICAgbmFtZSA9 IGIudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgIGMucmVwbGFjZShwYXRo VmFsdWVzLCBmdW5jdGlvbiAoYSwgYikgeworICAgICAgICAgICAgICAgIGIg JiYgcGFyYW1zLnB1c2goK2IpOworICAgICAgICAgICAgfSk7CisgICAgICAg ICAgICBkYXRhLnB1c2goW2JdLmNvbmNhdChwYXJhbXMpKTsKKyAgICAgICAg fSk7CisgICAgfQorICAgIGRhdGEudG9TdHJpbmcgPSBTbmFwLnBhdGgudG9T dHJpbmc7CisgICAgcmV0dXJuIGRhdGE7Cit9OworZnVuY3Rpb24gc3ZnVHJh bnNmb3JtMnN0cmluZyh0c3RyKSB7CisgICAgdmFyIHJlcyA9IFtdOworICAg IHRzdHIgPSB0c3RyLnJlcGxhY2UoLyg/Ol58XHMpKFx3KylcKChbXildKylc KS9nLCBmdW5jdGlvbiAoYWxsLCBuYW1lLCBwYXJhbXMpIHsKKyAgICAgICAg cGFyYW1zID0gcGFyYW1zLnNwbGl0KC9ccyosXHMqfFxzKy8pOworICAgICAg ICBpZiAobmFtZSA9PSAicm90YXRlIiAmJiBwYXJhbXMubGVuZ3RoID09IDEp IHsKKyAgICAgICAgICAgIHBhcmFtcy5wdXNoKDAsIDApOworICAgICAgICB9 CisgICAgICAgIGlmIChuYW1lID09ICJzY2FsZSIpIHsKKyAgICAgICAgICAg IGlmIChwYXJhbXMubGVuZ3RoID4gMikgeworICAgICAgICAgICAgICAgIHBh cmFtcyA9IHBhcmFtcy5zbGljZSgwLCAyKTsKKyAgICAgICAgICAgIH0gZWxz ZSBpZiAocGFyYW1zLmxlbmd0aCA9PSAyKSB7CisgICAgICAgICAgICAgICAg cGFyYW1zLnB1c2goMCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBpZiAocGFyYW1zLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICAgICAg cGFyYW1zLnB1c2gocGFyYW1zWzBdLCAwLCAwKTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgICAgICBpZiAobmFtZSA9PSAic2tld1giKSB7Cisg ICAgICAgICAgICByZXMucHVzaChbIm0iLCAxLCAwLCBtYXRoLnRhbihyYWQo cGFyYW1zWzBdKSksIDEsIDAsIDBdKTsKKyAgICAgICAgfSBlbHNlIGlmIChu YW1lID09ICJza2V3WSIpIHsKKyAgICAgICAgICAgIHJlcy5wdXNoKFsibSIs IDEsIG1hdGgudGFuKHJhZChwYXJhbXNbMF0pKSwgMCwgMSwgMCwgMF0pOwor ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzLnB1c2goW25hbWUu Y2hhckF0KDApXS5jb25jYXQocGFyYW1zKSk7CisgICAgICAgIH0KKyAgICAg ICAgcmV0dXJuIGFsbDsKKyAgICB9KTsKKyAgICByZXR1cm4gcmVzOworfQor U25hcC5fLnN2Z1RyYW5zZm9ybTJzdHJpbmcgPSBzdmdUcmFuc2Zvcm0yc3Ry aW5nOworU25hcC5fLnJnVHJhbnNmb3JtID0gL15bYS16XVtcc10qLT9cLj9c ZC9pOworZnVuY3Rpb24gdHJhbnNmb3JtMm1hdHJpeCh0c3RyLCBiYm94KSB7 CisgICAgdmFyIHRkYXRhID0gcGFyc2VUcmFuc2Zvcm1TdHJpbmcodHN0ciks CisgICAgICAgIG0gPSBuZXcgU25hcC5NYXRyaXg7CisgICAgaWYgKHRkYXRh KSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBpaSA9IHRkYXRhLmxlbmd0 aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgIHZhciB0ID0gdGRhdGFb aV0sCisgICAgICAgICAgICAgICAgdGxlbiA9IHQubGVuZ3RoLAorICAgICAg ICAgICAgICAgIGNvbW1hbmQgPSBTdHIodFswXSkudG9Mb3dlckNhc2UoKSwK KyAgICAgICAgICAgICAgICBhYnNvbHV0ZSA9IHRbMF0gIT0gY29tbWFuZCwK KyAgICAgICAgICAgICAgICBpbnZlciA9IGFic29sdXRlID8gbS5pbnZlcnQo KSA6IDAsCisgICAgICAgICAgICAgICAgeDEsCisgICAgICAgICAgICAgICAg eTEsCisgICAgICAgICAgICAgICAgeDIsCisgICAgICAgICAgICAgICAgeTIs CisgICAgICAgICAgICAgICAgYmI7CisgICAgICAgICAgICBpZiAoY29tbWFu ZCA9PSAidCIgJiYgdGxlbiA9PSAyKXsKKyAgICAgICAgICAgICAgICBtLnRy YW5zbGF0ZSh0WzFdLCAwKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29t bWFuZCA9PSAidCIgJiYgdGxlbiA9PSAzKSB7CisgICAgICAgICAgICAgICAg aWYgKGFic29sdXRlKSB7CisgICAgICAgICAgICAgICAgICAgIHgxID0gaW52 ZXIueCgwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgeTEgPSBpbnZlci55 KDAsIDApOworICAgICAgICAgICAgICAgICAgICB4MiA9IGludmVyLngodFsx XSwgdFsyXSk7CisgICAgICAgICAgICAgICAgICAgIHkyID0gaW52ZXIueSh0 WzFdLCB0WzJdKTsKKyAgICAgICAgICAgICAgICAgICAgbS50cmFuc2xhdGUo eDIgLSB4MSwgeTIgLSB5MSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgICAgICAgbS50cmFuc2xhdGUodFsxXSwgdFsyXSk7 CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChj b21tYW5kID09ICJyIikgeworICAgICAgICAgICAgICAgIGlmICh0bGVuID09 IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgYmIgPSBiYiB8fCBiYm94Owor ICAgICAgICAgICAgICAgICAgICBtLnJvdGF0ZSh0WzFdLCBiYi54ICsgYmIu d2lkdGggLyAyLCBiYi55ICsgYmIuaGVpZ2h0IC8gMik7CisgICAgICAgICAg ICAgICAgfSBlbHNlIGlmICh0bGVuID09IDQpIHsKKyAgICAgICAgICAgICAg ICAgICAgaWYgKGFic29sdXRlKSB7CisgICAgICAgICAgICAgICAgICAgICAg ICB4MiA9IGludmVyLngodFsyXSwgdFszXSk7CisgICAgICAgICAgICAgICAg ICAgICAgICB5MiA9IGludmVyLnkodFsyXSwgdFszXSk7CisgICAgICAgICAg ICAgICAgICAgICAgICBtLnJvdGF0ZSh0WzFdLCB4MiwgeTIpOworICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg ICAgbS5yb3RhdGUodFsxXSwgdFsyXSwgdFszXSk7CisgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs c2UgaWYgKGNvbW1hbmQgPT0gInMiKSB7CisgICAgICAgICAgICAgICAgaWYg KHRsZW4gPT0gMiB8fCB0bGVuID09IDMpIHsKKyAgICAgICAgICAgICAgICAg ICAgYmIgPSBiYiB8fCBiYm94OworICAgICAgICAgICAgICAgICAgICBtLnNj YWxlKHRbMV0sIHRbdGxlbiAtIDFdLCBiYi54ICsgYmIud2lkdGggLyAyLCBi Yi55ICsgYmIuaGVpZ2h0IC8gMik7CisgICAgICAgICAgICAgICAgfSBlbHNl IGlmICh0bGVuID09IDQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFi c29sdXRlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4MiA9IGludmVy LngodFsyXSwgdFszXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB5MiA9 IGludmVyLnkodFsyXSwgdFszXSk7CisgICAgICAgICAgICAgICAgICAgICAg ICBtLnNjYWxlKHRbMV0sIHRbMV0sIHgyLCB5Mik7CisgICAgICAgICAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtLnNj YWxlKHRbMV0sIHRbMV0sIHRbMl0sIHRbM10pOworICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0bGVuID09IDUp IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFic29sdXRlKSB7CisgICAg ICAgICAgICAgICAgICAgICAgICB4MiA9IGludmVyLngodFszXSwgdFs0XSk7 CisgICAgICAgICAgICAgICAgICAgICAgICB5MiA9IGludmVyLnkodFszXSwg dFs0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtLnNjYWxlKHRbMV0s IHRbMl0sIHgyLCB5Mik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICAgICAgICAgICAgICBtLnNjYWxlKHRbMV0sIHRbMl0s IHRbM10sIHRbNF0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChjb21tYW5kID09 ICJtIiAmJiB0bGVuID09IDcpIHsKKyAgICAgICAgICAgICAgICBtLmFkZCh0 WzFdLCB0WzJdLCB0WzNdLCB0WzRdLCB0WzVdLCB0WzZdKTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbTsKK30KK1Nu YXAuXy50cmFuc2Zvcm0ybWF0cml4ID0gdHJhbnNmb3JtMm1hdHJpeDsKK1Nu YXAuX3VuaXQycHggPSB1bml0MnB4OwordmFyIGNvbnRhaW5zID0gZ2xvYi5k b2MuY29udGFpbnMgfHwgZ2xvYi5kb2MuY29tcGFyZURvY3VtZW50UG9zaXRp b24gPworICAgIGZ1bmN0aW9uIChhLCBiKSB7CisgICAgICAgIHZhciBhZG93 biA9IGEubm9kZVR5cGUgPT0gOSA/IGEuZG9jdW1lbnRFbGVtZW50IDogYSwK KyAgICAgICAgICAgIGJ1cCA9IGIgJiYgYi5wYXJlbnROb2RlOworICAgICAg ICAgICAgcmV0dXJuIGEgPT0gYnVwIHx8ICEhKGJ1cCAmJiBidXAubm9kZVR5 cGUgPT0gMSAmJiAoCisgICAgICAgICAgICAgICAgYWRvd24uY29udGFpbnMg PworICAgICAgICAgICAgICAgICAgICBhZG93bi5jb250YWlucyhidXApIDoK KyAgICAgICAgICAgICAgICAgICAgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlv biAmJiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGJ1cCkgJiAxNgorICAg ICAgICAgICAgKSk7CisgICAgfSA6CisgICAgZnVuY3Rpb24gKGEsIGIpIHsK KyAgICAgICAgaWYgKGIpIHsKKyAgICAgICAgICAgIHdoaWxlIChiKSB7Cisg ICAgICAgICAgICAgICAgYiA9IGIucGFyZW50Tm9kZTsKKyAgICAgICAgICAg ICAgICBpZiAoYiA9PSBhKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg ICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKK2Z1bmN0 aW9uIGdldFNvbWVEZWZzKGVsKSB7CisgICAgdmFyIHAgPSAoZWwubm9kZS5v d25lclNWR0VsZW1lbnQgJiYgd3JhcChlbC5ub2RlLm93bmVyU1ZHRWxlbWVu dCkpIHx8CisgICAgICAgICAgICAoZWwubm9kZS5wYXJlbnROb2RlICYmIHdy YXAoZWwubm9kZS5wYXJlbnROb2RlKSkgfHwKKyAgICAgICAgICAgIFNuYXAu c2VsZWN0KCJzdmciKSB8fAorICAgICAgICAgICAgU25hcCgwLCAwKSwKKyAg ICAgICAgcGRlZnMgPSBwLnNlbGVjdCgiZGVmcyIpLAorICAgICAgICBkZWZz ICA9IHBkZWZzID09IG51bGwgPyBmYWxzZSA6IHBkZWZzLm5vZGU7CisgICAg aWYgKCFkZWZzKSB7CisgICAgICAgIGRlZnMgPSBtYWtlKCJkZWZzIiwgcC5u b2RlKS5ub2RlOworICAgIH0KKyAgICByZXR1cm4gZGVmczsKK30KK2Z1bmN0 aW9uIGdldFNvbWVTVkcoZWwpIHsKKyAgICByZXR1cm4gZWwubm9kZS5vd25l clNWR0VsZW1lbnQgJiYgd3JhcChlbC5ub2RlLm93bmVyU1ZHRWxlbWVudCkg fHwgU25hcC5zZWxlY3QoInN2ZyIpOworfQorU25hcC5fLmdldFNvbWVEZWZz ID0gZ2V0U29tZURlZnM7CitTbmFwLl8uZ2V0U29tZVNWRyA9IGdldFNvbWVT Vkc7CitmdW5jdGlvbiB1bml0MnB4KGVsLCBuYW1lLCB2YWx1ZSkgeworICAg IHZhciBzdmcgPSBnZXRTb21lU1ZHKGVsKS5ub2RlLAorICAgICAgICBvdXQg PSB7fSwKKyAgICAgICAgbWdyID0gc3ZnLnF1ZXJ5U2VsZWN0b3IoIi5zdmct LS1tZ3IiKTsKKyAgICBpZiAoIW1ncikgeworICAgICAgICBtZ3IgPSAkKCJy ZWN0Iik7CisgICAgICAgICQobWdyLCB7eDogLTllOSwgeTogLTllOSwgd2lk dGg6IDEwLCBoZWlnaHQ6IDEwLCAiY2xhc3MiOiAic3ZnLS0tbWdyIiwgZmls bDogIm5vbmUifSk7CisgICAgICAgIHN2Zy5hcHBlbmRDaGlsZChtZ3IpOwor ICAgIH0KKyAgICBmdW5jdGlvbiBnZXRXKHZhbCkgeworICAgICAgICBpZiAo dmFsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBFOworICAgICAg ICB9CisgICAgICAgIGlmICh2YWwgPT0gK3ZhbCkgeworICAgICAgICAgICAg cmV0dXJuIHZhbDsKKyAgICAgICAgfQorICAgICAgICAkKG1nciwge3dpZHRo OiB2YWx9KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBt Z3IuZ2V0QkJveCgpLndpZHRoOworICAgICAgICB9IGNhdGNoIChlKSB7Cisg ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBm dW5jdGlvbiBnZXRIKHZhbCkgeworICAgICAgICBpZiAodmFsID09IG51bGwp IHsKKyAgICAgICAgICAgIHJldHVybiBFOworICAgICAgICB9CisgICAgICAg IGlmICh2YWwgPT0gK3ZhbCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbDsK KyAgICAgICAgfQorICAgICAgICAkKG1nciwge2hlaWdodDogdmFsfSk7Cisg ICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gbWdyLmdldEJCb3go KS5oZWlnaHQ7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg IHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uIHNl dChuYW0sIGYpIHsKKyAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAg ICAgICAgICAgb3V0W25hbV0gPSBmKGVsLmF0dHIobmFtKSB8fCAwKTsKKyAg ICAgICAgfSBlbHNlIGlmIChuYW0gPT0gbmFtZSkgeworICAgICAgICAgICAg b3V0ID0gZih2YWx1ZSA9PSBudWxsID8gZWwuYXR0cihuYW0pIHx8IDAgOiB2 YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgc3dpdGNoIChlbC50eXBl KSB7CisgICAgICAgIGNhc2UgInJlY3QiOgorICAgICAgICAgICAgc2V0KCJy eCIsIGdldFcpOworICAgICAgICAgICAgc2V0KCJyeSIsIGdldEgpOworICAg ICAgICBjYXNlICJpbWFnZSI6CisgICAgICAgICAgICBzZXQoIndpZHRoIiwg Z2V0Vyk7CisgICAgICAgICAgICBzZXQoImhlaWdodCIsIGdldEgpOworICAg ICAgICBjYXNlICJ0ZXh0IjoKKyAgICAgICAgICAgIHNldCgieCIsIGdldFcp OworICAgICAgICAgICAgc2V0KCJ5IiwgZ2V0SCk7CisgICAgICAgIGJyZWFr OworICAgICAgICBjYXNlICJjaXJjbGUiOgorICAgICAgICAgICAgc2V0KCJj eCIsIGdldFcpOworICAgICAgICAgICAgc2V0KCJjeSIsIGdldEgpOworICAg ICAgICAgICAgc2V0KCJyIiwgZ2V0Vyk7CisgICAgICAgIGJyZWFrOworICAg ICAgICBjYXNlICJlbGxpcHNlIjoKKyAgICAgICAgICAgIHNldCgiY3giLCBn ZXRXKTsKKyAgICAgICAgICAgIHNldCgiY3kiLCBnZXRIKTsKKyAgICAgICAg ICAgIHNldCgicngiLCBnZXRXKTsKKyAgICAgICAgICAgIHNldCgicnkiLCBn ZXRIKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImxpbmUiOgor ICAgICAgICAgICAgc2V0KCJ4MSIsIGdldFcpOworICAgICAgICAgICAgc2V0 KCJ4MiIsIGdldFcpOworICAgICAgICAgICAgc2V0KCJ5MSIsIGdldEgpOwor ICAgICAgICAgICAgc2V0KCJ5MiIsIGdldEgpOworICAgICAgICBicmVhazsK KyAgICAgICAgY2FzZSAibWFya2VyIjoKKyAgICAgICAgICAgIHNldCgicmVm WCIsIGdldFcpOworICAgICAgICAgICAgc2V0KCJtYXJrZXJXaWR0aCIsIGdl dFcpOworICAgICAgICAgICAgc2V0KCJyZWZZIiwgZ2V0SCk7CisgICAgICAg ICAgICBzZXQoIm1hcmtlckhlaWdodCIsIGdldEgpOworICAgICAgICBicmVh azsKKyAgICAgICAgY2FzZSAicmFkaWFsR3JhZGllbnQiOgorICAgICAgICAg ICAgc2V0KCJmeCIsIGdldFcpOworICAgICAgICAgICAgc2V0KCJmeSIsIGdl dEgpOworICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAidHNwYW4iOgor ICAgICAgICAgICAgc2V0KCJkeCIsIGdldFcpOworICAgICAgICAgICAgc2V0 KCJkeSIsIGdldEgpOworICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs dDoKKyAgICAgICAgICAgIHNldChuYW1lLCBnZXRXKTsKKyAgICB9CisgICAg c3ZnLnJlbW92ZUNoaWxkKG1ncik7CisgICAgcmV0dXJuIG91dDsKK30KKy8q XAorICogU25hcC5zZWxlY3QKKyBbIG1ldGhvZCBdCisgKioKKyAqIFdyYXBz IGEgRE9NIGVsZW1lbnQgc3BlY2lmaWVkIGJ5IENTUyBzZWxlY3RvciBhcyBA RWxlbWVudAorIC0gcXVlcnkgKHN0cmluZykgQ1NTIHNlbGVjdG9yIG9mIHRo ZSBlbGVtZW50CisgPSAoRWxlbWVudCkgdGhlIGN1cnJlbnQgZWxlbWVudAor XCovCitTbmFwLnNlbGVjdCA9IGZ1bmN0aW9uIChxdWVyeSkgeworICAgIHF1 ZXJ5ID0gU3RyKHF1ZXJ5KS5yZXBsYWNlKC8oW15cXF0pOi9nLCAiJDFcXDoi KTsKKyAgICByZXR1cm4gd3JhcChnbG9iLmRvYy5xdWVyeVNlbGVjdG9yKHF1 ZXJ5KSk7Cit9OworLypcCisgKiBTbmFwLnNlbGVjdEFsbAorIFsgbWV0aG9k IF0KKyAqKgorICogV3JhcHMgRE9NIGVsZW1lbnRzIHNwZWNpZmllZCBieSBD U1Mgc2VsZWN0b3IgYXMgc2V0IG9yIGFycmF5IG9mIEBFbGVtZW50CisgLSBx dWVyeSAoc3RyaW5nKSBDU1Mgc2VsZWN0b3Igb2YgdGhlIGVsZW1lbnQKKyA9 IChFbGVtZW50KSB0aGUgY3VycmVudCBlbGVtZW50CitcKi8KK1NuYXAuc2Vs ZWN0QWxsID0gZnVuY3Rpb24gKHF1ZXJ5KSB7CisgICAgdmFyIG5vZGVsaXN0 ID0gZ2xvYi5kb2MucXVlcnlTZWxlY3RvckFsbChxdWVyeSksCisgICAgICAg IHNldCA9IChTbmFwLnNldCB8fCBBcnJheSkoKTsKKyAgICBmb3IgKHZhciBp ID0gMDsgaSA8IG5vZGVsaXN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHNl dC5wdXNoKHdyYXAobm9kZWxpc3RbaV0pKTsKKyAgICB9CisgICAgcmV0dXJu IHNldDsKK307CisKK2Z1bmN0aW9uIGFkZDJncm91cChsaXN0KSB7CisgICAg aWYgKCFpcyhsaXN0LCAiYXJyYXkiKSkgeworICAgICAgICBsaXN0ID0gQXJy YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTsKKyAgICB9 CisgICAgdmFyIGkgPSAwLAorICAgICAgICBqID0gMCwKKyAgICAgICAgbm9k ZSA9IHRoaXMubm9kZTsKKyAgICB3aGlsZSAodGhpc1tpXSkgZGVsZXRlIHRo aXNbaSsrXTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkr KykgeworICAgICAgICBpZiAobGlzdFtpXS50eXBlID09ICJzZXQiKSB7Cisg ICAgICAgICAgICBsaXN0W2ldLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7Cisg ICAgICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChlbC5ub2RlKTsKKyAg ICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg bm9kZS5hcHBlbmRDaGlsZChsaXN0W2ldLm5vZGUpOworICAgICAgICB9Cisg ICAgfQorICAgIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGROb2RlczsKKyAg ICBmb3IgKGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAg ICAgICAgdGhpc1tqKytdID0gd3JhcChjaGlsZHJlbltpXSk7CisgICAgfQor ICAgIHJldHVybiB0aGlzOworfQorLy8gSHViIGdhcmJhZ2UgY29sbGVjdG9y IGV2ZXJ5IDEwcworc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeworICAgIGZv ciAodmFyIGtleSBpbiBodWIpIGlmIChodWJbaGFzXShrZXkpKSB7CisgICAg ICAgIHZhciBlbCA9IGh1YltrZXldLAorICAgICAgICAgICAgbm9kZSA9IGVs Lm5vZGU7CisgICAgICAgIGlmIChlbC50eXBlICE9ICJzdmciICYmICFub2Rl Lm93bmVyU1ZHRWxlbWVudCB8fCBlbC50eXBlID09ICJzdmciICYmICghbm9k ZS5wYXJlbnROb2RlIHx8ICJvd25lclNWR0VsZW1lbnQiIGluIG5vZGUucGFy ZW50Tm9kZSAmJiAhbm9kZS5vd25lclNWR0VsZW1lbnQpKSB7CisgICAgICAg ICAgICBkZWxldGUgaHViW2tleV07CisgICAgICAgIH0KKyAgICB9Cit9LCAx ZTQpOworZnVuY3Rpb24gRWxlbWVudChlbCkgeworICAgIGlmIChlbC5zbmFw IGluIGh1YikgeworICAgICAgICByZXR1cm4gaHViW2VsLnNuYXBdOworICAg IH0KKyAgICB2YXIgc3ZnOworICAgIHRyeSB7CisgICAgICAgIHN2ZyA9IGVs Lm93bmVyU1ZHRWxlbWVudDsKKyAgICB9IGNhdGNoKGUpIHt9CisgICAgLypc CisgICAgICogRWxlbWVudC5ub2RlCisgICAgIFsgcHJvcGVydHkgKG9iamVj dCkgXQorICAgICAqKgorICAgICAqIEdpdmVzIHlvdSBhIHJlZmVyZW5jZSB0 byB0aGUgRE9NIG9iamVjdCwgc28geW91IGNhbiBhc3NpZ24gZXZlbnQgaGFu ZGxlcnMgb3IganVzdCBtZXNzIGFyb3VuZC4KKyAgICAgPiBVc2FnZQorICAg ICB8IC8vIGRyYXcgYSBjaXJjbGUgYXQgY29vcmRpbmF0ZSAxMCwxMCB3aXRo IHJhZGl1cyBvZiAxMAorICAgICB8IHZhciBjID0gcGFwZXIuY2lyY2xlKDEw LCAxMCwgMTApOworICAgICB8IGMubm9kZS5vbmNsaWNrID0gZnVuY3Rpb24g KCkgeworICAgICB8ICAgICBjLmF0dHIoImZpbGwiLCAicmVkIik7CisgICAg IHwgfTsKKyAgICBcKi8KKyAgICB0aGlzLm5vZGUgPSBlbDsKKyAgICBpZiAo c3ZnKSB7CisgICAgICAgIHRoaXMucGFwZXIgPSBuZXcgUGFwZXIoc3ZnKTsK KyAgICB9CisgICAgLypcCisgICAgICogRWxlbWVudC50eXBlCisgICAgIFsg cHJvcGVydHkgKHN0cmluZykgXQorICAgICAqKgorICAgICAqIFNWRyB0YWcg bmFtZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudC4KKyAgICBcKi8KKyAgICB0aGlz LnR5cGUgPSBlbC50YWdOYW1lIHx8IGVsLm5vZGVOYW1lOworICAgIHZhciBp ZCA9IHRoaXMuaWQgPSBJRCh0aGlzKTsKKyAgICB0aGlzLmFuaW1zID0ge307 CisgICAgdGhpcy5fID0geworICAgICAgICB0cmFuc2Zvcm06IFtdCisgICAg fTsKKyAgICBlbC5zbmFwID0gaWQ7CisgICAgaHViW2lkXSA9IHRoaXM7Cisg ICAgaWYgKHRoaXMudHlwZSA9PSAiZyIpIHsKKyAgICAgICAgdGhpcy5hZGQg PSBhZGQyZ3JvdXA7CisgICAgfQorICAgIGlmICh0aGlzLnR5cGUgaW4ge2c6 IDEsIG1hc2s6IDEsIHBhdHRlcm46IDEsIHN5bWJvbDogMX0pIHsKKyAgICAg ICAgZm9yICh2YXIgbWV0aG9kIGluIFBhcGVyLnByb3RvdHlwZSkgaWYgKFBh cGVyLnByb3RvdHlwZVtoYXNdKG1ldGhvZCkpIHsKKyAgICAgICAgICAgIHRo aXNbbWV0aG9kXSA9IFBhcGVyLnByb3RvdHlwZVttZXRob2RdOworICAgICAg ICB9CisgICAgfQorfQorICAgLypcCisgICAgICogRWxlbWVudC5hdHRyCisg ICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBHZXRzIG9yIHNldHMg Z2l2ZW4gYXR0cmlidXRlcyBvZiB0aGUgZWxlbWVudC4KKyAgICAgKioKKyAg ICAgLSBwYXJhbXMgKG9iamVjdCkgY29udGFpbnMga2V5LXZhbHVlIHBhaXJz IG9mIGF0dHJpYnV0ZXMgeW91IHdhbnQgdG8gc2V0CisgICAgICogb3IKKyAg ICAgLSBwYXJhbSAoc3RyaW5nKSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAg ICAgPSAoRWxlbWVudCkgdGhlIGN1cnJlbnQgZWxlbWVudAorICAgICAqIG9y CisgICAgID0gKHN0cmluZykgdmFsdWUgb2YgYXR0cmlidXRlCisgICAgID4g VXNhZ2UKKyAgICAgfCBlbC5hdHRyKHsKKyAgICAgfCAgICAgZmlsbDogIiNm YzAiLAorICAgICB8ICAgICBzdHJva2U6ICIjMDAwIiwKKyAgICAgfCAgICAg c3Ryb2tlV2lkdGg6IDIsIC8vIENhbWVsQ2FzZS4uLgorICAgICB8ICAgICAi ZmlsbC1vcGFjaXR5IjogMC41LCAvLyBvciBkYXNoLXNlcGFyYXRlZCBuYW1l cworICAgICB8ICAgICB3aWR0aDogIio9MiIgLy8gcHJlZml4ZWQgdmFsdWVz CisgICAgIHwgfSk7CisgICAgIHwgY29uc29sZS5sb2coZWwuYXR0cigiZmls bCIpKTsgLy8gI2ZjMAorICAgICAqIFByZWZpeGVkIHZhbHVlcyBpbiBmb3Jt YXQgYCIrPTEwImAgc3VwcG9ydGVkLiBBbGwgZm91ciBvcGVyYXRpb25zCisg ICAgICogKGArYCwgYC1gLCBgKmAgYW5kIGAvYCkgY291bGQgYmUgdXNlZC4g T3B0aW9uYWxseSB5b3UgY2FuIHVzZSB1bml0cyBmb3IgYCtgCisgICAgICog YW5kIGAtYDogYCIrPTJlbSJgLgorICAgIFwqLworICAgIEVsZW1lbnQucHJv dG90eXBlLmF0dHIgPSBmdW5jdGlvbiAocGFyYW1zLCB2YWx1ZSkgeworICAg ICAgICB2YXIgZWwgPSB0aGlzLAorICAgICAgICAgICAgbm9kZSA9IGVsLm5v ZGU7CisgICAgICAgIGlmICghcGFyYW1zKSB7CisgICAgICAgICAgICBpZiAo bm9kZS5ub2RlVHlwZSAhPSAxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu IHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dDogbm9kZS5ub2RlVmFsdWUK KyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfQorICAgICAgICAg ICAgdmFyIGF0dHIgPSBub2RlLmF0dHJpYnV0ZXMsCisgICAgICAgICAgICAg ICAgb3V0ID0ge307CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgaWkg PSBhdHRyLmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgICAg ICBvdXRbYXR0cltpXS5ub2RlTmFtZV0gPSBhdHRyW2ldLm5vZGVWYWx1ZTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvdXQ7CisgICAg ICAgIH0KKyAgICAgICAgaWYgKGlzKHBhcmFtcywgInN0cmluZyIpKSB7Cisg ICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHsKKyAgICAg ICAgICAgICAgICB2YXIganNvbiA9IHt9OworICAgICAgICAgICAgICAgIGpz b25bcGFyYW1zXSA9IHZhbHVlOworICAgICAgICAgICAgICAgIHBhcmFtcyA9 IGpzb247CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg IHJldHVybiBldmUoInNuYXAudXRpbC5nZXRhdHRyLiIgKyBwYXJhbXMsIGVs KS5maXJzdERlZmluZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgICAgICBmb3IgKHZhciBhdHQgaW4gcGFyYW1zKSB7CisgICAgICAgICAg ICBpZiAocGFyYW1zW2hhc10oYXR0KSkgeworICAgICAgICAgICAgICAgIGV2 ZSgic25hcC51dGlsLmF0dHIuIiArIGF0dCwgZWwsIHBhcmFtc1thdHRdKTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZWw7 CisgICAgfTsKKy8qXAorICogU25hcC5wYXJzZQorIFsgbWV0aG9kIF0KKyAq KgorICogUGFyc2VzIFNWRyBmcmFnbWVudCBhbmQgY29udmVydHMgaXQgaW50 byBhIEBGcmFnbWVudAorICoqCisgLSBzdmcgKHN0cmluZykgU1ZHIHN0cmlu ZworID0gKEZyYWdtZW50KSB0aGUgQEZyYWdtZW50CitcKi8KK1NuYXAucGFy c2UgPSBmdW5jdGlvbiAoc3ZnKSB7CisgICAgdmFyIGYgPSBnbG9iLmRvYy5j cmVhdGVEb2N1bWVudEZyYWdtZW50KCksCisgICAgICAgIGZ1bGwgPSB0cnVl LAorICAgICAgICBkaXYgPSBnbG9iLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYi KTsKKyAgICBzdmcgPSBTdHIoc3ZnKTsKKyAgICBpZiAoIXN2Zy5tYXRjaCgv XlxzKjxccypzdmcoPzpcc3w+KS8pKSB7CisgICAgICAgIHN2ZyA9ICI8c3Zn PiIgKyBzdmcgKyAiPC9zdmc+IjsKKyAgICAgICAgZnVsbCA9IGZhbHNlOwor ICAgIH0KKyAgICBkaXYuaW5uZXJIVE1MID0gc3ZnOworICAgIHN2ZyA9IGRp di5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3ZnIilbMF07CisgICAgaWYgKHN2 ZykgeworICAgICAgICBpZiAoZnVsbCkgeworICAgICAgICAgICAgZiA9IHN2 ZzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlIChzdmcu Zmlyc3RDaGlsZCkgeworICAgICAgICAgICAgICAgIGYuYXBwZW5kQ2hpbGQo c3ZnLmZpcnN0Q2hpbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg ICAgfQorICAgIHJldHVybiBuZXcgRnJhZ21lbnQoZik7Cit9OworZnVuY3Rp b24gRnJhZ21lbnQoZnJhZykgeworICAgIHRoaXMubm9kZSA9IGZyYWc7Cit9 CisvKlwKKyAqIFNuYXAuZnJhZ21lbnQKKyBbIG1ldGhvZCBdCisgKioKKyAq IENyZWF0ZXMgYSBET00gZnJhZ21lbnQgZnJvbSBhIGdpdmVuIGxpc3Qgb2Yg ZWxlbWVudHMgb3Igc3RyaW5ncworICoqCisgLSB2YXJhcmdzICjigKYpIFNW RyBzdHJpbmcKKyA9IChGcmFnbWVudCkgdGhlIEBGcmFnbWVudAorXCovCitT bmFwLmZyYWdtZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBhcmdzID0g QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKSwKKyAg ICAgICAgZiA9IGdsb2IuZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsK KyAgICBmb3IgKHZhciBpID0gMCwgaWkgPSBhcmdzLmxlbmd0aDsgaSA8IGlp OyBpKyspIHsKKyAgICAgICAgdmFyIGl0ZW0gPSBhcmdzW2ldOworICAgICAg ICBpZiAoaXRlbS5ub2RlICYmIGl0ZW0ubm9kZS5ub2RlVHlwZSkgeworICAg ICAgICAgICAgZi5hcHBlbmRDaGlsZChpdGVtLm5vZGUpOworICAgICAgICB9 CisgICAgICAgIGlmIChpdGVtLm5vZGVUeXBlKSB7CisgICAgICAgICAgICBm LmFwcGVuZENoaWxkKGl0ZW0pOworICAgICAgICB9CisgICAgICAgIGlmICh0 eXBlb2YgaXRlbSA9PSAic3RyaW5nIikgeworICAgICAgICAgICAgZi5hcHBl bmRDaGlsZChTbmFwLnBhcnNlKGl0ZW0pLm5vZGUpOworICAgICAgICB9Cisg ICAgfQorICAgIHJldHVybiBuZXcgRnJhZ21lbnQoZik7Cit9OworCitmdW5j dGlvbiBtYWtlKG5hbWUsIHBhcmVudCkgeworICAgIHZhciByZXMgPSAkKG5h bWUpOworICAgIHBhcmVudC5hcHBlbmRDaGlsZChyZXMpOworICAgIHZhciBl bCA9IHdyYXAocmVzKTsKKyAgICByZXR1cm4gZWw7Cit9CitmdW5jdGlvbiBQ YXBlcih3LCBoKSB7CisgICAgdmFyIHJlcywKKyAgICAgICAgZGVzYywKKyAg ICAgICAgZGVmcywKKyAgICAgICAgcHJvdG8gPSBQYXBlci5wcm90b3R5cGU7 CisgICAgaWYgKHcgJiYgdy50YWdOYW1lID09ICJzdmciKSB7CisgICAgICAg IGlmICh3LnNuYXAgaW4gaHViKSB7CisgICAgICAgICAgICByZXR1cm4gaHVi W3cuc25hcF07CisgICAgICAgIH0KKyAgICAgICAgdmFyIGRvYyA9IHcub3du ZXJEb2N1bWVudDsKKyAgICAgICAgcmVzID0gbmV3IEVsZW1lbnQodyk7Cisg ICAgICAgIGRlc2MgPSB3LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkZXNjIilb MF07CisgICAgICAgIGRlZnMgPSB3LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJk ZWZzIilbMF07CisgICAgICAgIGlmICghZGVzYykgeworICAgICAgICAgICAg ZGVzYyA9ICQoImRlc2MiKTsKKyAgICAgICAgICAgIGRlc2MuYXBwZW5kQ2hp bGQoZG9jLmNyZWF0ZVRleHROb2RlKCJDcmVhdGVkIHdpdGggU25hcCIpKTsK KyAgICAgICAgICAgIHJlcy5ub2RlLmFwcGVuZENoaWxkKGRlc2MpOworICAg ICAgICB9CisgICAgICAgIGlmICghZGVmcykgeworICAgICAgICAgICAgZGVm cyA9ICQoImRlZnMiKTsKKyAgICAgICAgICAgIHJlcy5ub2RlLmFwcGVuZENo aWxkKGRlZnMpOworICAgICAgICB9CisgICAgICAgIHJlcy5kZWZzID0gZGVm czsKKyAgICAgICAgZm9yICh2YXIga2V5IGluIHByb3RvKSBpZiAocHJvdG9b aGFzXShrZXkpKSB7CisgICAgICAgICAgICByZXNba2V5XSA9IHByb3RvW2tl eV07CisgICAgICAgIH0KKyAgICAgICAgcmVzLnBhcGVyID0gcmVzLnJvb3Qg PSByZXM7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzID0gbWFrZSgic3Zn IiwgZ2xvYi5kb2MuYm9keSk7CisgICAgICAgICQocmVzLm5vZGUsIHsKKyAg ICAgICAgICAgIGhlaWdodDogaCwKKyAgICAgICAgICAgIHZlcnNpb246IDEu MSwKKyAgICAgICAgICAgIHdpZHRoOiB3LAorICAgICAgICAgICAgeG1sbnM6 IHhtbG5zCisgICAgICAgIH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzOwor fQorZnVuY3Rpb24gd3JhcChkb20pIHsKKyAgICBpZiAoIWRvbSkgeworICAg ICAgICByZXR1cm4gZG9tOworICAgIH0KKyAgICBpZiAoZG9tIGluc3RhbmNl b2YgRWxlbWVudCB8fCBkb20gaW5zdGFuY2VvZiBGcmFnbWVudCkgeworICAg ICAgICByZXR1cm4gZG9tOworICAgIH0KKyAgICBpZiAoZG9tLnRhZ05hbWUg JiYgZG9tLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PSAic3ZnIikgeworICAg ICAgICByZXR1cm4gbmV3IFBhcGVyKGRvbSk7CisgICAgfQorICAgIGlmIChk b20udGFnTmFtZSAmJiBkb20udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICJv YmplY3QiICYmIGRvbS50eXBlID09ICJpbWFnZS9zdmcreG1sIikgeworICAg ICAgICByZXR1cm4gbmV3IFBhcGVyKGRvbS5jb250ZW50RG9jdW1lbnQuZ2V0 RWxlbWVudHNCeVRhZ05hbWUoInN2ZyIpWzBdKTsKKyAgICB9CisgICAgcmV0 dXJuIG5ldyBFbGVtZW50KGRvbSk7Cit9CisKK1NuYXAuXy5tYWtlID0gbWFr ZTsKK1NuYXAuXy53cmFwID0gd3JhcDsKKy8qXAorICogUGFwZXIuZWwKKyBb IG1ldGhvZCBdCisgKioKKyAqIENyZWF0ZXMgYW4gZWxlbWVudCBvbiBwYXBl ciB3aXRoIGEgZ2l2ZW4gbmFtZSBhbmQgbm8gYXR0cmlidXRlcworICoqCisg LSBuYW1lIChzdHJpbmcpIHRhZyBuYW1lCisgLSBhdHRyIChvYmplY3QpIGF0 dHJpYnV0ZXMKKyA9IChFbGVtZW50KSB0aGUgY3VycmVudCBlbGVtZW50Cisg PiBVc2FnZQorIHwgdmFyIGMgPSBwYXBlci5jaXJjbGUoMTAsIDEwLCAxMCk7 IC8vIGlzIHRoZSBzYW1lIGFzLi4uCisgfCB2YXIgYyA9IHBhcGVyLmVsKCJj aXJjbGUiKS5hdHRyKHsKKyB8ICAgICBjeDogMTAsCisgfCAgICAgY3k6IDEw LAorIHwgICAgIHI6IDEwCisgfCB9KTsKKyB8IC8vIGFuZCB0aGUgc2FtZSBh cworIHwgdmFyIGMgPSBwYXBlci5lbCgiY2lyY2xlIiwgeworIHwgICAgIGN4 OiAxMCwKKyB8ICAgICBjeTogMTAsCisgfCAgICAgcjogMTAKKyB8IH0pOwor XCovCitQYXBlci5wcm90b3R5cGUuZWwgPSBmdW5jdGlvbiAobmFtZSwgYXR0 cikgeworICAgIHZhciBlbCA9IG1ha2UobmFtZSwgdGhpcy5ub2RlKTsKKyAg ICBhdHRyICYmIGVsLmF0dHIoYXR0cik7CisgICAgcmV0dXJuIGVsOworfTsK Ky8qXAorICogRWxlbWVudC5jaGlsZHJlbgorIFsgbWV0aG9kIF0KKyAqKgor ICogUmV0dXJucyBhcnJheSBvZiBhbGwgdGhlIGNoaWxkcmVuIG9mIHRoZSBl bGVtZW50LgorID0gKGFycmF5KSBhcnJheSBvZiBFbGVtZW50cworXCovCitF bGVtZW50LnByb3RvdHlwZS5jaGlsZHJlbiA9IGZ1bmN0aW9uICgpIHsKKyAg ICB2YXIgb3V0ID0gW10sCisgICAgICAgIGNoID0gdGhpcy5ub2RlLmNoaWxk Tm9kZXM7CisgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gY2gubGVuZ3RoOyBp IDwgaWk7IGkrKykgeworICAgICAgICBvdXRbaV0gPSBTbmFwKGNoW2ldKTsK KyAgICB9CisgICAgcmV0dXJuIG91dDsKK307CitmdW5jdGlvbiBqc29uRmls bGVyKHJvb3QsIG8pIHsKKyAgICBmb3IgKHZhciBpID0gMCwgaWkgPSByb290 Lmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgdmFyIGl0ZW0gPSB7 CisgICAgICAgICAgICAgICAgdHlwZTogcm9vdFtpXS50eXBlLAorICAgICAg ICAgICAgICAgIGF0dHI6IHJvb3RbaV0uYXR0cigpCisgICAgICAgICAgICB9 LAorICAgICAgICAgICAgY2hpbGRyZW4gPSByb290W2ldLmNoaWxkcmVuKCk7 CisgICAgICAgIG8ucHVzaChpdGVtKTsKKyAgICAgICAgaWYgKGNoaWxkcmVu Lmxlbmd0aCkgeworICAgICAgICAgICAganNvbkZpbGxlcihjaGlsZHJlbiwg aXRlbS5jaGlsZE5vZGVzID0gW10pOworICAgICAgICB9CisgICAgfQorfQor LypcCisgKiBFbGVtZW50LnRvSlNPTgorIFsgbWV0aG9kIF0KKyAqKgorICog UmV0dXJucyBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGVs ZW1lbnQgYW5kIGFsbCBpdHMgY2hpbGRyZW4uCisgPSAob2JqZWN0KSBpbiBm b3JtYXQKKyBvIHsKKyBvICAgICB0eXBlIChzdHJpbmcpIHRoaXMudHlwZSwK KyBvICAgICBhdHRyIChvYmplY3QpIGF0dHJpYnV0ZXMgbWFwLAorIG8gICAg IGNoaWxkTm9kZXMgKGFycmF5KSBvcHRpb25hbCBhcnJheSBvZiBjaGlsZHJl biBpbiB0aGUgc2FtZSBmb3JtYXQKKyBvIH0KK1wqLworRWxlbWVudC5wcm90 b3R5cGUudG9KU09OID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBvdXQgPSBb XTsKKyAgICBqc29uRmlsbGVyKFt0aGlzXSwgb3V0KTsKKyAgICByZXR1cm4g b3V0WzBdOworfTsKKy8vIGRlZmF1bHQKK2V2ZS5vbigic25hcC51dGlsLmdl dGF0dHIiLCBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGF0dCA9IGV2ZS5udCgp OworICAgIGF0dCA9IGF0dC5zdWJzdHJpbmcoYXR0Lmxhc3RJbmRleE9mKCIu IikgKyAxKTsKKyAgICB2YXIgY3NzID0gYXR0LnJlcGxhY2UoL1tBLVpdL2cs IGZ1bmN0aW9uIChsZXR0ZXIpIHsKKyAgICAgICAgcmV0dXJuICItIiArIGxl dHRlci50b0xvd2VyQ2FzZSgpOworICAgIH0pOworICAgIGlmIChjc3NBdHRy W2hhc10oY3NzKSkgeworICAgICAgICByZXR1cm4gdGhpcy5ub2RlLm93bmVy RG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLm5v ZGUsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoY3NzKTsKKyAgICB9IGVsc2Ug eworICAgICAgICByZXR1cm4gJCh0aGlzLm5vZGUsIGF0dCk7CisgICAgfQor fSk7Cit2YXIgY3NzQXR0ciA9IHsKKyAgICAiYWxpZ25tZW50LWJhc2VsaW5l IjogMCwKKyAgICAiYmFzZWxpbmUtc2hpZnQiOiAwLAorICAgICJjbGlwIjog MCwKKyAgICAiY2xpcC1wYXRoIjogMCwKKyAgICAiY2xpcC1ydWxlIjogMCwK KyAgICAiY29sb3IiOiAwLAorICAgICJjb2xvci1pbnRlcnBvbGF0aW9uIjog MCwKKyAgICAiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIjogMCwKKyAg ICAiY29sb3ItcHJvZmlsZSI6IDAsCisgICAgImNvbG9yLXJlbmRlcmluZyI6 IDAsCisgICAgImN1cnNvciI6IDAsCisgICAgImRpcmVjdGlvbiI6IDAsCisg ICAgImRpc3BsYXkiOiAwLAorICAgICJkb21pbmFudC1iYXNlbGluZSI6IDAs CisgICAgImVuYWJsZS1iYWNrZ3JvdW5kIjogMCwKKyAgICAiZmlsbCI6IDAs CisgICAgImZpbGwtb3BhY2l0eSI6IDAsCisgICAgImZpbGwtcnVsZSI6IDAs CisgICAgImZpbHRlciI6IDAsCisgICAgImZsb29kLWNvbG9yIjogMCwKKyAg ICAiZmxvb2Qtb3BhY2l0eSI6IDAsCisgICAgImZvbnQiOiAwLAorICAgICJm b250LWZhbWlseSI6IDAsCisgICAgImZvbnQtc2l6ZSI6IDAsCisgICAgImZv bnQtc2l6ZS1hZGp1c3QiOiAwLAorICAgICJmb250LXN0cmV0Y2giOiAwLAor ICAgICJmb250LXN0eWxlIjogMCwKKyAgICAiZm9udC12YXJpYW50IjogMCwK KyAgICAiZm9udC13ZWlnaHQiOiAwLAorICAgICJnbHlwaC1vcmllbnRhdGlv bi1ob3Jpem9udGFsIjogMCwKKyAgICAiZ2x5cGgtb3JpZW50YXRpb24tdmVy dGljYWwiOiAwLAorICAgICJpbWFnZS1yZW5kZXJpbmciOiAwLAorICAgICJr ZXJuaW5nIjogMCwKKyAgICAibGV0dGVyLXNwYWNpbmciOiAwLAorICAgICJs aWdodGluZy1jb2xvciI6IDAsCisgICAgIm1hcmtlciI6IDAsCisgICAgIm1h cmtlci1lbmQiOiAwLAorICAgICJtYXJrZXItbWlkIjogMCwKKyAgICAibWFy a2VyLXN0YXJ0IjogMCwKKyAgICAibWFzayI6IDAsCisgICAgIm9wYWNpdHki OiAwLAorICAgICJvdmVyZmxvdyI6IDAsCisgICAgInBvaW50ZXItZXZlbnRz IjogMCwKKyAgICAic2hhcGUtcmVuZGVyaW5nIjogMCwKKyAgICAic3RvcC1j b2xvciI6IDAsCisgICAgInN0b3Atb3BhY2l0eSI6IDAsCisgICAgInN0cm9r ZSI6IDAsCisgICAgInN0cm9rZS1kYXNoYXJyYXkiOiAwLAorICAgICJzdHJv a2UtZGFzaG9mZnNldCI6IDAsCisgICAgInN0cm9rZS1saW5lY2FwIjogMCwK KyAgICAic3Ryb2tlLWxpbmVqb2luIjogMCwKKyAgICAic3Ryb2tlLW1pdGVy bGltaXQiOiAwLAorICAgICJzdHJva2Utb3BhY2l0eSI6IDAsCisgICAgInN0 cm9rZS13aWR0aCI6IDAsCisgICAgInRleHQtYW5jaG9yIjogMCwKKyAgICAi dGV4dC1kZWNvcmF0aW9uIjogMCwKKyAgICAidGV4dC1yZW5kZXJpbmciOiAw LAorICAgICJ1bmljb2RlLWJpZGkiOiAwLAorICAgICJ2aXNpYmlsaXR5Ijog MCwKKyAgICAid29yZC1zcGFjaW5nIjogMCwKKyAgICAid3JpdGluZy1tb2Rl IjogMAorfTsKKworZXZlLm9uKCJzbmFwLnV0aWwuYXR0ciIsIGZ1bmN0aW9u ICh2YWx1ZSkgeworICAgIHZhciBhdHQgPSBldmUubnQoKSwKKyAgICAgICAg YXR0ciA9IHt9OworICAgIGF0dCA9IGF0dC5zdWJzdHJpbmcoYXR0Lmxhc3RJ bmRleE9mKCIuIikgKyAxKTsKKyAgICBhdHRyW2F0dF0gPSB2YWx1ZTsKKyAg ICB2YXIgc3R5bGUgPSBhdHQucmVwbGFjZSgvLShcdykvZ2ksIGZ1bmN0aW9u IChhbGwsIGxldHRlcikgeworICAgICAgICAgICAgcmV0dXJuIGxldHRlci50 b1VwcGVyQ2FzZSgpOworICAgICAgICB9KSwKKyAgICAgICAgY3NzID0gYXR0 LnJlcGxhY2UoL1tBLVpdL2csIGZ1bmN0aW9uIChsZXR0ZXIpIHsKKyAgICAg ICAgICAgIHJldHVybiAiLSIgKyBsZXR0ZXIudG9Mb3dlckNhc2UoKTsKKyAg ICAgICAgfSk7CisgICAgaWYgKGNzc0F0dHJbaGFzXShjc3MpKSB7CisgICAg ICAgIHRoaXMubm9kZS5zdHlsZVtzdHlsZV0gPSB2YWx1ZSA9PSBudWxsID8g RSA6IHZhbHVlOworICAgIH0gZWxzZSB7CisgICAgICAgICQodGhpcy5ub2Rl LCBhdHRyKTsKKyAgICB9Cit9KTsKKyhmdW5jdGlvbiAocHJvdG8pIHt9KFBh cGVyLnByb3RvdHlwZSkpOworCisvLyBzaW1wbGUgYWpheAorLypcCisgKiBT bmFwLmFqYXgKKyBbIG1ldGhvZCBdCisgKioKKyAqIFNpbXBsZSBpbXBsZW1l bnRhdGlvbiBvZiBBamF4CisgKioKKyAtIHVybCAoc3RyaW5nKSBVUkwKKyAt IHBvc3REYXRhIChvYmplY3R8c3RyaW5nKSBkYXRhIGZvciBwb3N0IHJlcXVl c3QKKyAtIGNhbGxiYWNrIChmdW5jdGlvbikgY2FsbGJhY2sKKyAtIHNjb3Bl IChvYmplY3QpICNvcHRpb25hbCBzY29wZSBvZiBjYWxsYmFjaworICogb3IK KyAtIHVybCAoc3RyaW5nKSBVUkwKKyAtIGNhbGxiYWNrIChmdW5jdGlvbikg Y2FsbGJhY2sKKyAtIHNjb3BlIChvYmplY3QpICNvcHRpb25hbCBzY29wZSBv ZiBjYWxsYmFjaworID0gKFhNTEh0dHBSZXF1ZXN0KSB0aGUgWE1MSHR0cFJl cXVlc3Qgb2JqZWN0LCBqdXN0IGluIGNhc2UKK1wqLworU25hcC5hamF4ID0g ZnVuY3Rpb24gKHVybCwgcG9zdERhdGEsIGNhbGxiYWNrLCBzY29wZSl7Cisg ICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCwKKyAgICAgICAgaWQg PSBJRCgpOworICAgIGlmIChyZXEpIHsKKyAgICAgICAgaWYgKGlzKHBvc3RE YXRhLCAiZnVuY3Rpb24iKSkgeworICAgICAgICAgICAgc2NvcGUgPSBjYWxs YmFjazsKKyAgICAgICAgICAgIGNhbGxiYWNrID0gcG9zdERhdGE7CisgICAg ICAgICAgICBwb3N0RGF0YSA9IG51bGw7CisgICAgICAgIH0gZWxzZSBpZiAo aXMocG9zdERhdGEsICJvYmplY3QiKSkgeworICAgICAgICAgICAgdmFyIHBk ID0gW107CisgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gcG9zdERhdGEp IGlmIChwb3N0RGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CisgICAgICAg ICAgICAgICAgcGQucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICI9 IiArIGVuY29kZVVSSUNvbXBvbmVudChwb3N0RGF0YVtrZXldKSk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgICBwb3N0RGF0YSA9IHBkLmpvaW4oIiYi KTsKKyAgICAgICAgfQorICAgICAgICByZXEub3BlbigocG9zdERhdGEgPyAi UE9TVCIgOiAiR0VUIiksIHVybCwgdHJ1ZSk7CisgICAgICAgIGlmIChwb3N0 RGF0YSkgeworICAgICAgICAgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoIlgt UmVxdWVzdGVkLVdpdGgiLCAiWE1MSHR0cFJlcXVlc3QiKTsKKyAgICAgICAg ICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCAiYXBw bGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CisgICAgICAgIH0K KyAgICAgICAgaWYgKGNhbGxiYWNrKSB7CisgICAgICAgICAgICBldmUub25j ZSgic25hcC5hamF4LiIgKyBpZCArICIuMCIsIGNhbGxiYWNrKTsKKyAgICAg ICAgICAgIGV2ZS5vbmNlKCJzbmFwLmFqYXguIiArIGlkICsgIi4yMDAiLCBj YWxsYmFjayk7CisgICAgICAgICAgICBldmUub25jZSgic25hcC5hamF4LiIg KyBpZCArICIuMzA0IiwgY2FsbGJhY2spOworICAgICAgICB9CisgICAgICAg IHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKKyAgICAg ICAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSAhPSA0KSByZXR1cm47CisgICAg ICAgICAgICBldmUoInNuYXAuYWpheC4iICsgaWQgKyAiLiIgKyByZXEuc3Rh dHVzLCBzY29wZSwgcmVxKTsKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKHJl cS5yZWFkeVN0YXRlID09IDQpIHsKKyAgICAgICAgICAgIHJldHVybiByZXE7 CisgICAgICAgIH0KKyAgICAgICAgcmVxLnNlbmQocG9zdERhdGEpOworICAg ICAgICByZXR1cm4gcmVxOworICAgIH0KK307CisvKlwKKyAqIFNuYXAubG9h ZAorIFsgbWV0aG9kIF0KKyAqKgorICogTG9hZHMgZXh0ZXJuYWwgU1ZHIGZp bGUgYXMgYSBARnJhZ21lbnQgKHNlZSBAU25hcC5hamF4IGZvciBtb3JlIGFk dmFuY2VkIEFKQVgpCisgKioKKyAtIHVybCAoc3RyaW5nKSBVUkwKKyAtIGNh bGxiYWNrIChmdW5jdGlvbikgY2FsbGJhY2sKKyAtIHNjb3BlIChvYmplY3Qp ICNvcHRpb25hbCBzY29wZSBvZiBjYWxsYmFjaworXCovCitTbmFwLmxvYWQg PSBmdW5jdGlvbiAodXJsLCBjYWxsYmFjaywgc2NvcGUpIHsKKyAgICBTbmFw LmFqYXgodXJsLCBmdW5jdGlvbiAocmVxKSB7CisgICAgICAgIHZhciBmID0g U25hcC5wYXJzZShyZXEucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgc2NvcGUg PyBjYWxsYmFjay5jYWxsKHNjb3BlLCBmKSA6IGNhbGxiYWNrKGYpOworICAg IH0pOworfTsKK3ZhciBnZXRPZmZzZXQgPSBmdW5jdGlvbiAoZWxlbSkgewor ICAgIHZhciBib3ggPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLAor ICAgICAgICBkb2MgPSBlbGVtLm93bmVyRG9jdW1lbnQsCisgICAgICAgIGJv ZHkgPSBkb2MuYm9keSwKKyAgICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVu dEVsZW1lbnQsCisgICAgICAgIGNsaWVudFRvcCA9IGRvY0VsZW0uY2xpZW50 VG9wIHx8IGJvZHkuY2xpZW50VG9wIHx8IDAsIGNsaWVudExlZnQgPSBkb2NF bGVtLmNsaWVudExlZnQgfHwgYm9keS5jbGllbnRMZWZ0IHx8IDAsCisgICAg ICAgIHRvcCAgPSBib3gudG9wICArIChnLndpbi5wYWdlWU9mZnNldCB8fCBk b2NFbGVtLnNjcm9sbFRvcCB8fCBib2R5LnNjcm9sbFRvcCApIC0gY2xpZW50 VG9wLAorICAgICAgICBsZWZ0ID0gYm94LmxlZnQgKyAoZy53aW4ucGFnZVhP ZmZzZXQgfHwgZG9jRWxlbS5zY3JvbGxMZWZ0IHx8IGJvZHkuc2Nyb2xsTGVm dCkgLSBjbGllbnRMZWZ0OworICAgIHJldHVybiB7CisgICAgICAgIHk6IHRv cCwKKyAgICAgICAgeDogbGVmdAorICAgIH07Cit9OworLypcCisgKiBTbmFw LmdldEVsZW1lbnRCeVBvaW50CisgWyBtZXRob2QgXQorICoqCisgKiBSZXR1 cm5zIHlvdSB0b3Btb3N0IGVsZW1lbnQgdW5kZXIgZ2l2ZW4gcG9pbnQuCisg KioKKyA9IChvYmplY3QpIFNuYXAgZWxlbWVudCBvYmplY3QKKyAtIHggKG51 bWJlcikgeCBjb29yZGluYXRlIGZyb20gdGhlIHRvcCBsZWZ0IGNvcm5lciBv ZiB0aGUgd2luZG93CisgLSB5IChudW1iZXIpIHkgY29vcmRpbmF0ZSBmcm9t IHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIHdpbmRvdworID4gVXNhZ2UK KyB8IFNuYXAuZ2V0RWxlbWVudEJ5UG9pbnQobW91c2VYLCBtb3VzZVkpLmF0 dHIoe3N0cm9rZTogIiNmMDAifSk7CitcKi8KK1NuYXAuZ2V0RWxlbWVudEJ5 UG9pbnQgPSBmdW5jdGlvbiAoeCwgeSkgeworICAgIHZhciBwYXBlciA9IHRo aXMsCisgICAgICAgIHN2ZyA9IHBhcGVyLmNhbnZhcywKKyAgICAgICAgdGFy Z2V0ID0gZ2xvYi5kb2MuZWxlbWVudEZyb21Qb2ludCh4LCB5KTsKKyAgICBp ZiAoZ2xvYi53aW4ub3BlcmEgJiYgdGFyZ2V0LnRhZ05hbWUgPT0gInN2ZyIp IHsKKyAgICAgICAgdmFyIHNvID0gZ2V0T2Zmc2V0KHRhcmdldCksCisgICAg ICAgICAgICBzciA9IHRhcmdldC5jcmVhdGVTVkdSZWN0KCk7CisgICAgICAg IHNyLnggPSB4IC0gc28ueDsKKyAgICAgICAgc3IueSA9IHkgLSBzby55Owor ICAgICAgICBzci53aWR0aCA9IHNyLmhlaWdodCA9IDE7CisgICAgICAgIHZh ciBoaXRzID0gdGFyZ2V0LmdldEludGVyc2VjdGlvbkxpc3Qoc3IsIG51bGwp OworICAgICAgICBpZiAoaGl0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRh cmdldCA9IGhpdHNbaGl0cy5sZW5ndGggLSAxXTsKKyAgICAgICAgfQorICAg IH0KKyAgICBpZiAoIXRhcmdldCkgeworICAgICAgICByZXR1cm4gbnVsbDsK KyAgICB9CisgICAgcmV0dXJuIHdyYXAodGFyZ2V0KTsKK307CisvKlwKKyAq IFNuYXAucGx1Z2luCisgWyBtZXRob2QgXQorICoqCisgKiBMZXQgeW91IHdy aXRlIHBsdWdpbnMuIFlvdSBwYXNzIGluIGEgZnVuY3Rpb24gd2l0aCBmaXZl IGFyZ3VtZW50cywgbGlrZSB0aGlzOgorIHwgU25hcC5wbHVnaW4oZnVuY3Rp b24gKFNuYXAsIEVsZW1lbnQsIFBhcGVyLCBnbG9iYWwsIEZyYWdtZW50KSB7 CisgfCAgICAgU25hcC5uZXdtZXRob2QgPSBmdW5jdGlvbiAoKSB7fTsKKyB8 ICAgICBFbGVtZW50LnByb3RvdHlwZS5uZXdtZXRob2QgPSBmdW5jdGlvbiAo KSB7fTsKKyB8ICAgICBQYXBlci5wcm90b3R5cGUubmV3bWV0aG9kID0gZnVu Y3Rpb24gKCkge307CisgfCB9KTsKKyAqIEluc2lkZSB0aGUgZnVuY3Rpb24g eW91IGhhdmUgYWNjZXNzIHRvIGFsbCBtYWluIG9iamVjdHMgKGFuZCB0aGVp cgorICogcHJvdG90eXBlcykuIFRoaXMgYWxsb3cgeW91IHRvIGV4dGVuZCBh bnl0aGluZyB5b3Ugd2FudC4KKyAqKgorIC0gZiAoZnVuY3Rpb24pIHlvdXIg cGx1Z2luIGJvZHkKK1wqLworU25hcC5wbHVnaW4gPSBmdW5jdGlvbiAoZikg eworICAgIGYoU25hcCwgRWxlbWVudCwgUGFwZXIsIGdsb2IsIEZyYWdtZW50 KTsKK307CitnbG9iLndpbi5TbmFwID0gU25hcDsKK3JldHVybiBTbmFwOwor fSh3aW5kb3cgfHwgdGhpcykpOworCisvLyBDb3B5cmlnaHQgKGMpIDIwMTMg QWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl LCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5v dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhl IExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp Y2Vuc2UgYXQKKy8vCisvLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z ZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBw bGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJl CisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmli dXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5U SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNz IG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVj aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBs aW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK1NuYXAucGx1Z2luKGZ1 bmN0aW9uIChTbmFwLCBFbGVtZW50LCBQYXBlciwgZ2xvYiwgRnJhZ21lbnQp IHsKKyAgICB2YXIgZWxwcm90byA9IEVsZW1lbnQucHJvdG90eXBlLAorICAg ICAgICBpcyA9IFNuYXAuaXMsCisgICAgICAgIFN0ciA9IFN0cmluZywKKyAg ICAgICAgdW5pdDJweCA9IFNuYXAuX3VuaXQycHgsCisgICAgICAgICQgPSBT bmFwLl8uJCwKKyAgICAgICAgbWFrZSA9IFNuYXAuXy5tYWtlLAorICAgICAg ICBnZXRTb21lRGVmcyA9IFNuYXAuXy5nZXRTb21lRGVmcywKKyAgICAgICAg aGFzID0gImhhc093blByb3BlcnR5IiwKKyAgICAgICAgd3JhcCA9IFNuYXAu Xy53cmFwOworICAgIC8qXAorICAgICAqIEVsZW1lbnQuZ2V0QkJveAorICAg ICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmV0dXJucyB0aGUgYm91 bmRpbmcgYm94IGRlc2NyaXB0b3IgZm9yIHRoZSBnaXZlbiBlbGVtZW50Cisg ICAgICoqCisgICAgID0gKG9iamVjdCkgYm91bmRpbmcgYm94IGRlc2NyaXB0 b3I6CisgICAgIG8geworICAgICBvICAgICBjeDogKG51bWJlcikgeCBvZiB0 aGUgY2VudGVyLAorICAgICBvICAgICBjeTogKG51bWJlcikgeCBvZiB0aGUg Y2VudGVyLAorICAgICBvICAgICBoOiAobnVtYmVyKSBoZWlnaHQsCisgICAg IG8gICAgIGhlaWdodDogKG51bWJlcikgaGVpZ2h0LAorICAgICBvICAgICBw YXRoOiAoc3RyaW5nKSBwYXRoIGNvbW1hbmQgZm9yIHRoZSBib3gsCisgICAg IG8gICAgIHIwOiAobnVtYmVyKSByYWRpdXMgb2YgYSBjaXJjbGUgdGhhdCBm dWxseSBlbmNsb3NlcyB0aGUgYm94LAorICAgICBvICAgICByMTogKG51bWJl cikgcmFkaXVzIG9mIHRoZSBzbWFsbGVzdCBjaXJjbGUgdGhhdCBjYW4gYmUg ZW5jbG9zZWQsCisgICAgIG8gICAgIHIyOiAobnVtYmVyKSByYWRpdXMgb2Yg dGhlIGxhcmdlc3QgY2lyY2xlIHRoYXQgY2FuIGJlIGVuY2xvc2VkLAorICAg ICBvICAgICB2YjogKHN0cmluZykgYm94IGFzIGEgdmlld2JveCBjb21tYW5k LAorICAgICBvICAgICB3OiAobnVtYmVyKSB3aWR0aCwKKyAgICAgbyAgICAg d2lkdGg6IChudW1iZXIpIHdpZHRoLAorICAgICBvICAgICB4MjogKG51bWJl cikgeCBvZiB0aGUgcmlnaHQgc2lkZSwKKyAgICAgbyAgICAgeDogKG51bWJl cikgeCBvZiB0aGUgbGVmdCBzaWRlLAorICAgICBvICAgICB5MjogKG51bWJl cikgeSBvZiB0aGUgYm90dG9tIGVkZ2UsCisgICAgIG8gICAgIHk6IChudW1i ZXIpIHkgb2YgdGhlIHRvcCBlZGdlCisgICAgIG8gfQorICAgIFwqLworICAg IGVscHJvdG8uZ2V0QkJveCA9IGZ1bmN0aW9uIChpc1dpdGhvdXRUcmFuc2Zv cm0pIHsKKyAgICAgICAgaWYgKCFTbmFwLk1hdHJpeCB8fCAhU25hcC5wYXRo KSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5ub2RlLmdldEJCb3goKTsK KyAgICAgICAgfQorICAgICAgICB2YXIgZWwgPSB0aGlzLAorICAgICAgICAg ICAgbSA9IG5ldyBTbmFwLk1hdHJpeDsKKyAgICAgICAgaWYgKGVsLnJlbW92 ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBTbmFwLl8uYm94KCk7CisgICAg ICAgIH0KKyAgICAgICAgd2hpbGUgKGVsLnR5cGUgPT0gInVzZSIpIHsKKyAg ICAgICAgICAgIGlmICghaXNXaXRob3V0VHJhbnNmb3JtKSB7CisgICAgICAg ICAgICAgICAgbSA9IG0uYWRkKGVsLnRyYW5zZm9ybSgpLmxvY2FsTWF0cml4 LnRyYW5zbGF0ZShlbC5hdHRyKCJ4IikgfHwgMCwgZWwuYXR0cigieSIpIHx8 IDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbC5vcmln aW5hbCkgeworICAgICAgICAgICAgICAgIGVsID0gZWwub3JpZ2luYWw7Cisg ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBocmVm ID0gZWwuYXR0cigieGxpbms6aHJlZiIpOworICAgICAgICAgICAgICAgIGVs ID0gZWwub3JpZ2luYWwgPSBlbC5ub2RlLm93bmVyRG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoaHJlZi5zdWJzdHJpbmcoaHJlZi5pbmRleE9mKCIjIikgKyAx KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIF8g PSBlbC5fLAorICAgICAgICAgICAgcGF0aGZpbmRlciA9IFNuYXAucGF0aC5n ZXRbZWwudHlwZV0gfHwgU25hcC5wYXRoLmdldC5kZWZsdDsKKyAgICAgICAg dHJ5IHsKKyAgICAgICAgICAgIGlmIChpc1dpdGhvdXRUcmFuc2Zvcm0pIHsK KyAgICAgICAgICAgICAgICBfLmJib3h3dCA9IHBhdGhmaW5kZXIgPyBTbmFw LnBhdGguZ2V0QkJveChlbC5yZWFsUGF0aCA9IHBhdGhmaW5kZXIoZWwpKSA6 IFNuYXAuXy5ib3goZWwubm9kZS5nZXRCQm94KCkpOworICAgICAgICAgICAg ICAgIHJldHVybiBTbmFwLl8uYm94KF8uYmJveHd0KTsKKyAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZWwucmVhbFBhdGggPSBwYXRo ZmluZGVyKGVsKTsKKyAgICAgICAgICAgICAgICBlbC5tYXRyaXggPSBlbC50 cmFuc2Zvcm0oKS5sb2NhbE1hdHJpeDsKKyAgICAgICAgICAgICAgICBfLmJi b3ggPSBTbmFwLnBhdGguZ2V0QkJveChTbmFwLnBhdGgubWFwKGVsLnJlYWxQ YXRoLCBtLmFkZChlbC5tYXRyaXgpKSk7CisgICAgICAgICAgICAgICAgcmV0 dXJuIFNuYXAuXy5ib3goXy5iYm94KTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgLy8gRmlyZWZveCBkb2Vz buKAmXQgZ2l2ZSB5b3UgYmJveCBvZiBoaWRkZW4gZWxlbWVudAorICAgICAg ICAgICAgcmV0dXJuIFNuYXAuXy5ib3goKTsKKyAgICAgICAgfQorICAgIH07 CisgICAgdmFyIHByb3BTdHJpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgICAg IHJldHVybiB0aGlzLnN0cmluZzsKKyAgICB9OworICAgIGZ1bmN0aW9uIGV4 dHJhY3RUcmFuc2Zvcm0oZWwsIHRzdHIpIHsKKyAgICAgICAgaWYgKHRzdHIg PT0gbnVsbCkgeworICAgICAgICAgICAgdmFyIGRvUmV0dXJuID0gdHJ1ZTsK KyAgICAgICAgICAgIGlmIChlbC50eXBlID09ICJsaW5lYXJHcmFkaWVudCIg fHwgZWwudHlwZSA9PSAicmFkaWFsR3JhZGllbnQiKSB7CisgICAgICAgICAg ICAgICAgdHN0ciA9IGVsLm5vZGUuZ2V0QXR0cmlidXRlKCJncmFkaWVudFRy YW5zZm9ybSIpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlbC50eXBlID09 ICJwYXR0ZXJuIikgeworICAgICAgICAgICAgICAgIHRzdHIgPSBlbC5ub2Rl LmdldEF0dHJpYnV0ZSgicGF0dGVyblRyYW5zZm9ybSIpOworICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0c3RyID0gZWwubm9kZS5n ZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpOworICAgICAgICAgICAgfQorICAg ICAgICAgICAgaWYgKCF0c3RyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu IG5ldyBTbmFwLk1hdHJpeDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg IHRzdHIgPSBTbmFwLl8uc3ZnVHJhbnNmb3JtMnN0cmluZyh0c3RyKTsKKyAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghU25hcC5fLnJnVHJh bnNmb3JtLnRlc3QodHN0cikpIHsKKyAgICAgICAgICAgICAgICB0c3RyID0g U25hcC5fLnN2Z1RyYW5zZm9ybTJzdHJpbmcodHN0cik7CisgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRzdHIgPSBTdHIodHN0ciku cmVwbGFjZSgvXC57M318XHUyMDI2L2csIGVsLl8udHJhbnNmb3JtIHx8ICIi KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpcyh0c3RyLCAi YXJyYXkiKSkgeworICAgICAgICAgICAgICAgIHRzdHIgPSBTbmFwLnBhdGgg PyBTbmFwLnBhdGgudG9TdHJpbmcuY2FsbCh0c3RyKSA6IFN0cih0c3RyKTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsLl8udHJhbnNmb3JtID0g dHN0cjsKKyAgICAgICAgfQorICAgICAgICB2YXIgbSA9IFNuYXAuXy50cmFu c2Zvcm0ybWF0cml4KHRzdHIsIGVsLmdldEJCb3goMSkpOworICAgICAgICBp ZiAoZG9SZXR1cm4pIHsKKyAgICAgICAgICAgIHJldHVybiBtOworICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgZWwubWF0cml4ID0gbTsKKyAgICAg ICAgfQorICAgIH0KKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LnRyYW5zZm9y bQorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogR2V0cyBvciBz ZXRzIHRyYW5zZm9ybWF0aW9uIG9mIHRoZSBlbGVtZW50CisgICAgICoqCisg ICAgIC0gdHN0ciAoc3RyaW5nKSB0cmFuc2Zvcm0gc3RyaW5nIGluIFNuYXAg b3IgU1ZHIGZvcm1hdAorICAgICA9IChFbGVtZW50KSB0aGUgY3VycmVudCBl bGVtZW50CisgICAgICogb3IKKyAgICAgPSAob2JqZWN0KSB0cmFuc2Zvcm1h dGlvbiBkZXNjcmlwdG9yOgorICAgICBvIHsKKyAgICAgbyAgICAgc3RyaW5n IChzdHJpbmcpIHRyYW5zZm9ybSBzdHJpbmcsCisgICAgIG8gICAgIGdsb2Jh bE1hdHJpeCAoTWF0cml4KSBtYXRyaXggb2YgYWxsIHRyYW5zZm9ybWF0aW9u cyBhcHBsaWVkIHRvIGVsZW1lbnQgb3IgaXRzIHBhcmVudHMsCisgICAgIG8g ICAgIGxvY2FsTWF0cml4IChNYXRyaXgpIG1hdHJpeCBvZiB0cmFuc2Zvcm1h dGlvbnMgYXBwbGllZCBvbmx5IHRvIHRoZSBlbGVtZW50LAorICAgICBvICAg ICBkaWZmTWF0cml4IChNYXRyaXgpIG1hdHJpeCBvZiBkaWZmZXJlbmNlIGJl dHdlZW4gZ2xvYmFsIGFuZCBsb2NhbCB0cmFuc2Zvcm1hdGlvbnMsCisgICAg IG8gICAgIGdsb2JhbCAoc3RyaW5nKSBnbG9iYWwgdHJhbnNmb3JtYXRpb24g YXMgc3RyaW5nLAorICAgICBvICAgICBsb2NhbCAoc3RyaW5nKSBsb2NhbCB0 cmFuc2Zvcm1hdGlvbiBhcyBzdHJpbmcsCisgICAgIG8gICAgIHRvU3RyaW5n IChmdW5jdGlvbikgcmV0dXJucyBgc3RyaW5nYCBwcm9wZXJ0eQorICAgICBv IH0KKyAgICBcKi8KKyAgICBlbHByb3RvLnRyYW5zZm9ybSA9IGZ1bmN0aW9u ICh0c3RyKSB7CisgICAgICAgIHZhciBfID0gdGhpcy5fOworICAgICAgICBp ZiAodHN0ciA9PSBudWxsKSB7CisgICAgICAgICAgICB2YXIgcGFwYSA9IHRo aXMsCisgICAgICAgICAgICAgICAgZ2xvYmFsID0gbmV3IFNuYXAuTWF0cml4 KHRoaXMubm9kZS5nZXRDVE0oKSksCisgICAgICAgICAgICAgICAgbG9jYWwg PSBleHRyYWN0VHJhbnNmb3JtKHRoaXMpLAorICAgICAgICAgICAgICAgIG1z ID0gW2xvY2FsXSwKKyAgICAgICAgICAgICAgICBtID0gbmV3IFNuYXAuTWF0 cml4LAorICAgICAgICAgICAgICAgIGksCisgICAgICAgICAgICAgICAgbG9j YWxTdHJpbmcgPSBsb2NhbC50b1RyYW5zZm9ybVN0cmluZygpLAorICAgICAg ICAgICAgICAgIHN0cmluZyA9IFN0cihsb2NhbCkgPT0gU3RyKHRoaXMubWF0 cml4KSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyKF8udHJh bnNmb3JtKSA6IGxvY2FsU3RyaW5nOworICAgICAgICAgICAgd2hpbGUgKHBh cGEudHlwZSAhPSAic3ZnIiAmJiAocGFwYSA9IHBhcGEucGFyZW50KCkpKSB7 CisgICAgICAgICAgICAgICAgbXMucHVzaChleHRyYWN0VHJhbnNmb3JtKHBh cGEpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgPSBtcy5sZW5n dGg7CisgICAgICAgICAgICB3aGlsZSAoaS0tKSB7CisgICAgICAgICAgICAg ICAgbS5hZGQobXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAg cmV0dXJuIHsKKyAgICAgICAgICAgICAgICBzdHJpbmc6IHN0cmluZywKKyAg ICAgICAgICAgICAgICBnbG9iYWxNYXRyaXg6IGdsb2JhbCwKKyAgICAgICAg ICAgICAgICB0b3RhbE1hdHJpeDogbSwKKyAgICAgICAgICAgICAgICBsb2Nh bE1hdHJpeDogbG9jYWwsCisgICAgICAgICAgICAgICAgZGlmZk1hdHJpeDog Z2xvYmFsLmNsb25lKCkuYWRkKGxvY2FsLmludmVydCgpKSwKKyAgICAgICAg ICAgICAgICBnbG9iYWw6IGdsb2JhbC50b1RyYW5zZm9ybVN0cmluZygpLAor ICAgICAgICAgICAgICAgIHRvdGFsOiBtLnRvVHJhbnNmb3JtU3RyaW5nKCks CisgICAgICAgICAgICAgICAgbG9jYWw6IGxvY2FsU3RyaW5nLAorICAgICAg ICAgICAgICAgIHRvU3RyaW5nOiBwcm9wU3RyaW5nCisgICAgICAgICAgICB9 OworICAgICAgICB9CisgICAgICAgIGlmICh0c3RyIGluc3RhbmNlb2YgU25h cC5NYXRyaXgpIHsKKyAgICAgICAgICAgIHRoaXMubWF0cml4ID0gdHN0cjsK KyAgICAgICAgICAgIHRoaXMuXy50cmFuc2Zvcm0gPSB0c3RyLnRvVHJhbnNm b3JtU3RyaW5nKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBl eHRyYWN0VHJhbnNmb3JtKHRoaXMsIHRzdHIpOworICAgICAgICB9CisKKyAg ICAgICAgaWYgKHRoaXMubm9kZSkgeworICAgICAgICAgICAgaWYgKHRoaXMu dHlwZSA9PSAibGluZWFyR3JhZGllbnQiIHx8IHRoaXMudHlwZSA9PSAicmFk aWFsR3JhZGllbnQiKSB7CisgICAgICAgICAgICAgICAgJCh0aGlzLm5vZGUs IHtncmFkaWVudFRyYW5zZm9ybTogdGhpcy5tYXRyaXh9KTsKKyAgICAgICAg ICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09ICJwYXR0ZXJuIikgeworICAg ICAgICAgICAgICAgICQodGhpcy5ub2RlLCB7cGF0dGVyblRyYW5zZm9ybTog dGhpcy5tYXRyaXh9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAgICAgJCh0aGlzLm5vZGUsIHt0cmFuc2Zvcm06IHRoaXMubWF0cml4 fSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1 cm4gdGhpczsKKyAgICB9OworICAgIC8qXAorICAgICAqIEVsZW1lbnQucGFy ZW50CisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBSZXR1cm5z IHRoZSBlbGVtZW50J3MgcGFyZW50CisgICAgICoqCisgICAgID0gKEVsZW1l bnQpIHRoZSBwYXJlbnQgZWxlbWVudAorICAgIFwqLworICAgIGVscHJvdG8u cGFyZW50ID0gZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gd3JhcCh0 aGlzLm5vZGUucGFyZW50Tm9kZSk7CisgICAgfTsKKyAgICAvKlwKKyAgICAg KiBFbGVtZW50LmFwcGVuZAorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisg ICAgICogQXBwZW5kcyB0aGUgZ2l2ZW4gZWxlbWVudCB0byBjdXJyZW50IG9u ZQorICAgICAqKgorICAgICAtIGVsIChFbGVtZW50fFNldCkgZWxlbWVudCB0 byBhcHBlbmQKKyAgICAgPSAoRWxlbWVudCkgdGhlIHBhcmVudCBlbGVtZW50 CisgICAgXCovCisgICAgLypcCisgICAgICogRWxlbWVudC5hZGQKKyAgICAg WyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFNlZSBARWxlbWVudC5hcHBl bmQKKyAgICBcKi8KKyAgICBlbHByb3RvLmFwcGVuZCA9IGVscHJvdG8uYWRk ID0gZnVuY3Rpb24gKGVsKSB7CisgICAgICAgIGlmIChlbCkgeworICAgICAg ICAgICAgaWYgKGVsLnR5cGUgPT0gInNldCIpIHsKKyAgICAgICAgICAgICAg ICB2YXIgaXQgPSB0aGlzOworICAgICAgICAgICAgICAgIGVsLmZvckVhY2go ZnVuY3Rpb24gKGVsKSB7CisgICAgICAgICAgICAgICAgICAgIGl0LmFkZChl bCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgcmV0 dXJuIHRoaXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbCA9IHdy YXAoZWwpOworICAgICAgICAgICAgdGhpcy5ub2RlLmFwcGVuZENoaWxkKGVs Lm5vZGUpOworICAgICAgICAgICAgZWwucGFwZXIgPSB0aGlzLnBhcGVyOwor ICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH07CisgICAg LypcCisgICAgICogRWxlbWVudC5hcHBlbmRUbworICAgICBbIG1ldGhvZCBd CisgICAgICoqCisgICAgICogQXBwZW5kcyB0aGUgY3VycmVudCBlbGVtZW50 IHRvIHRoZSBnaXZlbiBvbmUKKyAgICAgKioKKyAgICAgLSBlbCAoRWxlbWVu dCkgcGFyZW50IGVsZW1lbnQgdG8gYXBwZW5kIHRvCisgICAgID0gKEVsZW1l bnQpIHRoZSBjaGlsZCBlbGVtZW50CisgICAgXCovCisgICAgZWxwcm90by5h cHBlbmRUbyA9IGZ1bmN0aW9uIChlbCkgeworICAgICAgICBpZiAoZWwpIHsK KyAgICAgICAgICAgIGVsID0gd3JhcChlbCk7CisgICAgICAgICAgICBlbC5h cHBlbmQodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7 CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LnByZXBlbmQKKyAg ICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFByZXBlbmRzIHRoZSBn aXZlbiBlbGVtZW50IHRvIHRoZSBjdXJyZW50IG9uZQorICAgICAqKgorICAg ICAtIGVsIChFbGVtZW50KSBlbGVtZW50IHRvIHByZXBlbmQKKyAgICAgPSAo RWxlbWVudCkgdGhlIHBhcmVudCBlbGVtZW50CisgICAgXCovCisgICAgZWxw cm90by5wcmVwZW5kID0gZnVuY3Rpb24gKGVsKSB7CisgICAgICAgIGlmIChl bCkgeworICAgICAgICAgICAgaWYgKGVsLnR5cGUgPT0gInNldCIpIHsKKyAg ICAgICAgICAgICAgICB2YXIgaXQgPSB0aGlzLAorICAgICAgICAgICAgICAg ICAgICBmaXJzdDsKKyAgICAgICAgICAgICAgICBlbC5mb3JFYWNoKGZ1bmN0 aW9uIChlbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3QpIHsK KyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LmFmdGVyKGVsKTsKKyAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgIGl0LnByZXBlbmQoZWwpOworICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZWw7CisgICAgICAgICAg ICAgICAgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAg ICAgICAgICB9CisgICAgICAgICAgICBlbCA9IHdyYXAoZWwpOworICAgICAg ICAgICAgdmFyIHBhcmVudCA9IGVsLnBhcmVudCgpOworICAgICAgICAgICAg dGhpcy5ub2RlLmluc2VydEJlZm9yZShlbC5ub2RlLCB0aGlzLm5vZGUuZmly c3RDaGlsZCk7CisgICAgICAgICAgICB0aGlzLmFkZCAmJiB0aGlzLmFkZCgp OworICAgICAgICAgICAgZWwucGFwZXIgPSB0aGlzLnBhcGVyOworICAgICAg ICAgICAgdGhpcy5wYXJlbnQoKSAmJiB0aGlzLnBhcmVudCgpLmFkZCgpOwor ICAgICAgICAgICAgcGFyZW50ICYmIHBhcmVudC5hZGQoKTsKKyAgICAgICAg fQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9OworICAgIC8qXAorICAg ICAqIEVsZW1lbnQucHJlcGVuZFRvCisgICAgIFsgbWV0aG9kIF0KKyAgICAg KioKKyAgICAgKiBQcmVwZW5kcyB0aGUgY3VycmVudCBlbGVtZW50IHRvIHRo ZSBnaXZlbiBvbmUKKyAgICAgKioKKyAgICAgLSBlbCAoRWxlbWVudCkgcGFy ZW50IGVsZW1lbnQgdG8gcHJlcGVuZCB0bworICAgICA9IChFbGVtZW50KSB0 aGUgY2hpbGQgZWxlbWVudAorICAgIFwqLworICAgIGVscHJvdG8ucHJlcGVu ZFRvID0gZnVuY3Rpb24gKGVsKSB7CisgICAgICAgIGVsID0gd3JhcChlbCk7 CisgICAgICAgIGVsLnByZXBlbmQodGhpcyk7CisgICAgICAgIHJldHVybiB0 aGlzOworICAgIH07CisgICAgLypcCisgICAgICogRWxlbWVudC5iZWZvcmUK KyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEluc2VydHMgZ2l2 ZW4gZWxlbWVudCBiZWZvcmUgdGhlIGN1cnJlbnQgb25lCisgICAgICoqCisg ICAgIC0gZWwgKEVsZW1lbnQpIGVsZW1lbnQgdG8gaW5zZXJ0CisgICAgID0g KEVsZW1lbnQpIHRoZSBwYXJlbnQgZWxlbWVudAorICAgIFwqLworICAgIGVs cHJvdG8uYmVmb3JlID0gZnVuY3Rpb24gKGVsKSB7CisgICAgICAgIGlmIChl bC50eXBlID09ICJzZXQiKSB7CisgICAgICAgICAgICB2YXIgaXQgPSB0aGlz OworICAgICAgICAgICAgZWwuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsKKyAg ICAgICAgICAgICAgICB2YXIgcGFyZW50ID0gZWwucGFyZW50KCk7CisgICAg ICAgICAgICAgICAgaXQubm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShl bC5ub2RlLCBpdC5ub2RlKTsKKyAgICAgICAgICAgICAgICBwYXJlbnQgJiYg cGFyZW50LmFkZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0 aGlzLnBhcmVudCgpLmFkZCgpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7 CisgICAgICAgIH0KKyAgICAgICAgZWwgPSB3cmFwKGVsKTsKKyAgICAgICAg dmFyIHBhcmVudCA9IGVsLnBhcmVudCgpOworICAgICAgICB0aGlzLm5vZGUu cGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWwubm9kZSwgdGhpcy5ub2RlKTsK KyAgICAgICAgdGhpcy5wYXJlbnQoKSAmJiB0aGlzLnBhcmVudCgpLmFkZCgp OworICAgICAgICBwYXJlbnQgJiYgcGFyZW50LmFkZCgpOworICAgICAgICBl bC5wYXBlciA9IHRoaXMucGFwZXI7CisgICAgICAgIHJldHVybiB0aGlzOwor ICAgIH07CisgICAgLypcCisgICAgICogRWxlbWVudC5hZnRlcgorICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogSW5zZXJ0cyBnaXZlbiBlbGVt ZW50IGFmdGVyIHRoZSBjdXJyZW50IG9uZQorICAgICAqKgorICAgICAtIGVs IChFbGVtZW50KSBlbGVtZW50IHRvIGluc2VydAorICAgICA9IChFbGVtZW50 KSB0aGUgcGFyZW50IGVsZW1lbnQKKyAgICBcKi8KKyAgICBlbHByb3RvLmFm dGVyID0gZnVuY3Rpb24gKGVsKSB7CisgICAgICAgIGVsID0gd3JhcChlbCk7 CisgICAgICAgIHZhciBwYXJlbnQgPSBlbC5wYXJlbnQoKTsKKyAgICAgICAg aWYgKHRoaXMubm9kZS5uZXh0U2libGluZykgeworICAgICAgICAgICAgdGhp cy5ub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsLm5vZGUsIHRoaXMu bm9kZS5uZXh0U2libGluZyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICB0aGlzLm5vZGUucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChlbC5ub2Rl KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnBhcmVudCgpICYmIHRoaXMu cGFyZW50KCkuYWRkKCk7CisgICAgICAgIHBhcmVudCAmJiBwYXJlbnQuYWRk KCk7CisgICAgICAgIGVsLnBhcGVyID0gdGhpcy5wYXBlcjsKKyAgICAgICAg cmV0dXJuIHRoaXM7CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50 Lmluc2VydEJlZm9yZQorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAg ICogSW5zZXJ0cyB0aGUgZWxlbWVudCBhZnRlciB0aGUgZ2l2ZW4gb25lCisg ICAgICoqCisgICAgIC0gZWwgKEVsZW1lbnQpIGVsZW1lbnQgbmV4dCB0byB3 aG9tIGluc2VydCB0bworICAgICA9IChFbGVtZW50KSB0aGUgcGFyZW50IGVs ZW1lbnQKKyAgICBcKi8KKyAgICBlbHByb3RvLmluc2VydEJlZm9yZSA9IGZ1 bmN0aW9uIChlbCkgeworICAgICAgICBlbCA9IHdyYXAoZWwpOworICAgICAg ICB2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnQoKTsKKyAgICAgICAgZWwubm9k ZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLm5vZGUsIGVsLm5vZGUp OworICAgICAgICB0aGlzLnBhcGVyID0gZWwucGFwZXI7CisgICAgICAgIHBh cmVudCAmJiBwYXJlbnQuYWRkKCk7CisgICAgICAgIGVsLnBhcmVudCgpICYm IGVsLnBhcmVudCgpLmFkZCgpOworICAgICAgICByZXR1cm4gdGhpczsKKyAg ICB9OworICAgIC8qXAorICAgICAqIEVsZW1lbnQuaW5zZXJ0QWZ0ZXIKKyAg ICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEluc2VydHMgdGhlIGVs ZW1lbnQgYWZ0ZXIgdGhlIGdpdmVuIG9uZQorICAgICAqKgorICAgICAtIGVs IChFbGVtZW50KSBlbGVtZW50IG5leHQgdG8gd2hvbSBpbnNlcnQgdG8KKyAg ICAgPSAoRWxlbWVudCkgdGhlIHBhcmVudCBlbGVtZW50CisgICAgXCovCisg ICAgZWxwcm90by5pbnNlcnRBZnRlciA9IGZ1bmN0aW9uIChlbCkgeworICAg ICAgICBlbCA9IHdyYXAoZWwpOworICAgICAgICB2YXIgcGFyZW50ID0gdGhp cy5wYXJlbnQoKTsKKyAgICAgICAgZWwubm9kZS5wYXJlbnROb2RlLmluc2Vy dEJlZm9yZSh0aGlzLm5vZGUsIGVsLm5vZGUubmV4dFNpYmxpbmcpOworICAg ICAgICB0aGlzLnBhcGVyID0gZWwucGFwZXI7CisgICAgICAgIHBhcmVudCAm JiBwYXJlbnQuYWRkKCk7CisgICAgICAgIGVsLnBhcmVudCgpICYmIGVsLnBh cmVudCgpLmFkZCgpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Owor ICAgIC8qXAorICAgICAqIEVsZW1lbnQucmVtb3ZlCisgICAgIFsgbWV0aG9k IF0KKyAgICAgKioKKyAgICAgKiBSZW1vdmVzIGVsZW1lbnQgZnJvbSB0aGUg RE9NCisgICAgID0gKEVsZW1lbnQpIHRoZSBkZXRhY2hlZCBlbGVtZW50Cisg ICAgXCovCisgICAgZWxwcm90by5yZW1vdmUgPSBmdW5jdGlvbiAoKSB7Cisg ICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudCgpOworICAgICAgICB0 aGlzLm5vZGUucGFyZW50Tm9kZSAmJiB0aGlzLm5vZGUucGFyZW50Tm9kZS5y ZW1vdmVDaGlsZCh0aGlzLm5vZGUpOworICAgICAgICBkZWxldGUgdGhpcy5w YXBlcjsKKyAgICAgICAgdGhpcy5yZW1vdmVkID0gdHJ1ZTsKKyAgICAgICAg cGFyZW50ICYmIHBhcmVudC5hZGQoKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7 CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LnNlbGVjdAorICAg ICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogR2F0aGVycyB0aGUgbmVz dGVkIEBFbGVtZW50IG1hdGNoaW5nIHRoZSBnaXZlbiBzZXQgb2YgQ1NTIHNl bGVjdG9ycworICAgICAqKgorICAgICAtIHF1ZXJ5IChzdHJpbmcpIENTUyBz ZWxlY3RvcgorICAgICA9IChFbGVtZW50KSByZXN1bHQgb2YgcXVlcnkgc2Vs ZWN0aW9uCisgICAgXCovCisgICAgZWxwcm90by5zZWxlY3QgPSBmdW5jdGlv biAocXVlcnkpIHsKKyAgICAgICAgcmV0dXJuIHdyYXAodGhpcy5ub2RlLnF1 ZXJ5U2VsZWN0b3IocXVlcnkpKTsKKyAgICB9OworICAgIC8qXAorICAgICAq IEVsZW1lbnQuc2VsZWN0QWxsCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioK KyAgICAgKiBHYXRoZXJzIG5lc3RlZCBARWxlbWVudCBvYmplY3RzIG1hdGNo aW5nIHRoZSBnaXZlbiBzZXQgb2YgQ1NTIHNlbGVjdG9ycworICAgICAqKgor ICAgICAtIHF1ZXJ5IChzdHJpbmcpIENTUyBzZWxlY3RvcgorICAgICA9IChT ZXR8YXJyYXkpIHJlc3VsdCBvZiBxdWVyeSBzZWxlY3Rpb24KKyAgICBcKi8K KyAgICBlbHByb3RvLnNlbGVjdEFsbCA9IGZ1bmN0aW9uIChxdWVyeSkgewor ICAgICAgICB2YXIgbm9kZWxpc3QgPSB0aGlzLm5vZGUucXVlcnlTZWxlY3Rv ckFsbChxdWVyeSksCisgICAgICAgICAgICBzZXQgPSAoU25hcC5zZXQgfHwg QXJyYXkpKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZWxp c3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHNldC5wdXNoKHdyYXAo bm9kZWxpc3RbaV0pKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0 OworICAgIH07CisgICAgLypcCisgICAgICogRWxlbWVudC5hc1BYCisgICAg IFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBSZXR1cm5zIGdpdmVuIGF0 dHJpYnV0ZSBvZiB0aGUgZWxlbWVudCBhcyBhIGBweGAgdmFsdWUgKG5vdCAl LCBlbSwgZXRjLikKKyAgICAgKioKKyAgICAgLSBhdHRyIChzdHJpbmcpIGF0 dHJpYnV0ZSBuYW1lCisgICAgIC0gdmFsdWUgKHN0cmluZykgI29wdGlvbmFs IGF0dHJpYnV0ZSB2YWx1ZQorICAgICA9IChFbGVtZW50KSByZXN1bHQgb2Yg cXVlcnkgc2VsZWN0aW9uCisgICAgXCovCisgICAgZWxwcm90by5hc1BYID0g ZnVuY3Rpb24gKGF0dHIsIHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9 PSBudWxsKSB7CisgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuYXR0cihhdHRy KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gK3VuaXQycHgodGhpcywg YXR0ciwgdmFsdWUpOworICAgIH07CisgICAgLy8gU0lFUlJBIEVsZW1lbnQu dXNlKCk6IEkgc3VnZ2VzdCBhZGRpbmcgYSBub3RlIGFib3V0IGhvdyB0byBh Y2Nlc3MgdGhlIG9yaWdpbmFsIGVsZW1lbnQgdGhlIHJldHVybmVkIDx1c2U+ IGluc3RhbnRpYXRlcy4gSXQncyBhIHBhcnQgb2YgU1ZHIHdpdGggd2hpY2gg b3JkaW5hcnkgd2ViIGRldmVsb3BlcnMgbWF5IGJlIGxlYXN0IGZhbWlsaWFy LgorICAgIC8qXAorICAgICAqIEVsZW1lbnQudXNlCisgICAgIFsgbWV0aG9k IF0KKyAgICAgKioKKyAgICAgKiBDcmVhdGVzIGEgYDx1c2U+YCBlbGVtZW50 IGxpbmtlZCB0byB0aGUgY3VycmVudCBlbGVtZW50CisgICAgICoqCisgICAg ID0gKEVsZW1lbnQpIHRoZSBgPHVzZT5gIGVsZW1lbnQKKyAgICBcKi8KKyAg ICBlbHByb3RvLnVzZSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHVz ZSwKKyAgICAgICAgICAgIGlkID0gdGhpcy5ub2RlLmlkOworICAgICAgICBp ZiAoIWlkKSB7CisgICAgICAgICAgICBpZCA9IHRoaXMuaWQ7CisgICAgICAg ICAgICAkKHRoaXMubm9kZSwgeworICAgICAgICAgICAgICAgIGlkOiBpZAor ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMu dHlwZSA9PSAibGluZWFyR3JhZGllbnQiIHx8IHRoaXMudHlwZSA9PSAicmFk aWFsR3JhZGllbnQiIHx8CisgICAgICAgICAgICB0aGlzLnR5cGUgPT0gInBh dHRlcm4iKSB7CisgICAgICAgICAgICB1c2UgPSBtYWtlKHRoaXMudHlwZSwg dGhpcy5ub2RlLnBhcmVudE5vZGUpOworICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgdXNlID0gbWFrZSgidXNlIiwgdGhpcy5ub2RlLnBhcmVudE5v ZGUpOworICAgICAgICB9CisgICAgICAgICQodXNlLm5vZGUsIHsKKyAgICAg ICAgICAgICJ4bGluazpocmVmIjogIiMiICsgaWQKKyAgICAgICAgfSk7Cisg ICAgICAgIHVzZS5vcmlnaW5hbCA9IHRoaXM7CisgICAgICAgIHJldHVybiB1 c2U7CisgICAgfTsKKyAgICBmdW5jdGlvbiBmaXhpZHMoZWwpIHsKKyAgICAg ICAgdmFyIGVscyA9IGVsLnNlbGVjdEFsbCgiKiIpLAorICAgICAgICAgICAg aXQsCisgICAgICAgICAgICB1cmwgPSAvXlxzKnVybFwoKCJ8J3wpKC4qKVwx XClccyokLywKKyAgICAgICAgICAgIGlkcyA9IFtdLAorICAgICAgICAgICAg dXNlcyA9IHt9OworICAgICAgICBmdW5jdGlvbiB1cmx0ZXN0KGl0LCBuYW1l KSB7CisgICAgICAgICAgICB2YXIgdmFsID0gJChpdC5ub2RlLCBuYW1lKTsK KyAgICAgICAgICAgIHZhbCA9IHZhbCAmJiB2YWwubWF0Y2godXJsKTsKKyAg ICAgICAgICAgIHZhbCA9IHZhbCAmJiB2YWxbMl07CisgICAgICAgICAgICBp ZiAodmFsICYmIHZhbC5jaGFyQXQoKSA9PSAiIyIpIHsKKyAgICAgICAgICAg ICAgICB2YWwgPSB2YWwuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9 CisgICAgICAgICAgICBpZiAodmFsKSB7CisgICAgICAgICAgICAgICAgdXNl c1t2YWxdID0gKHVzZXNbdmFsXSB8fCBbXSkuY29uY2F0KGZ1bmN0aW9uIChp ZCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IHt9OworICAg ICAgICAgICAgICAgICAgICBhdHRyW25hbWVdID0gVVJMKGlkKTsKKyAgICAg ICAgICAgICAgICAgICAgJChpdC5ub2RlLCBhdHRyKTsKKyAgICAgICAgICAg ICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBm dW5jdGlvbiBsaW5rdGVzdChpdCkgeworICAgICAgICAgICAgdmFyIHZhbCA9 ICQoaXQubm9kZSwgInhsaW5rOmhyZWYiKTsKKyAgICAgICAgICAgIGlmICh2 YWwgJiYgdmFsLmNoYXJBdCgpID09ICIjIikgeworICAgICAgICAgICAgICAg IHZhbCA9IHZhbC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIGlmICh2YWwpIHsKKyAgICAgICAgICAgICAgICB1c2VzW3Zh bF0gPSAodXNlc1t2YWxdIHx8IFtdKS5jb25jYXQoZnVuY3Rpb24gKGlkKSB7 CisgICAgICAgICAgICAgICAgICAgIGl0LmF0dHIoInhsaW5rOmhyZWYiLCAi IyIgKyBpZCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9 CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gZWxz Lmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgIGl0ID0gZWxz W2ldOworICAgICAgICAgICAgdXJsdGVzdChpdCwgImZpbGwiKTsKKyAgICAg ICAgICAgIHVybHRlc3QoaXQsICJzdHJva2UiKTsKKyAgICAgICAgICAgIHVy bHRlc3QoaXQsICJmaWx0ZXIiKTsKKyAgICAgICAgICAgIHVybHRlc3QoaXQs ICJtYXNrIik7CisgICAgICAgICAgICB1cmx0ZXN0KGl0LCAiY2xpcC1wYXRo Iik7CisgICAgICAgICAgICBsaW5rdGVzdChpdCk7CisgICAgICAgICAgICB2 YXIgb2xkaWQgPSAkKGl0Lm5vZGUsICJpZCIpOworICAgICAgICAgICAgaWYg KG9sZGlkKSB7CisgICAgICAgICAgICAgICAgJChpdC5ub2RlLCB7aWQ6IGl0 LmlkfSk7CisgICAgICAgICAgICAgICAgaWRzLnB1c2goeworICAgICAgICAg ICAgICAgICAgICBvbGQ6IG9sZGlkLAorICAgICAgICAgICAgICAgICAgICBp ZDogaXQuaWQKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwLCBpaSA9IGlkcy5sZW5n dGg7IGkgPCBpaTsgaSsrKSB7CisgICAgICAgICAgICB2YXIgZnMgPSB1c2Vz W2lkc1tpXS5vbGRdOworICAgICAgICAgICAgaWYgKGZzKSB7CisgICAgICAg ICAgICAgICAgZm9yICh2YXIgaiA9IDAsIGpqID0gZnMubGVuZ3RoOyBqIDwg amo7IGorKykgeworICAgICAgICAgICAgICAgICAgICBmc1tqXShpZHNbaV0u aWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg ICAgfQorICAgIH0KKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LmNsb25lCisg ICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBDcmVhdGVzIGEgY2xv bmUgb2YgdGhlIGVsZW1lbnQgYW5kIGluc2VydHMgaXQgYWZ0ZXIgdGhlIGVs ZW1lbnQKKyAgICAgKioKKyAgICAgPSAoRWxlbWVudCkgdGhlIGNsb25lCisg ICAgXCovCisgICAgZWxwcm90by5jbG9uZSA9IGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgdmFyIGNsb25lID0gd3JhcCh0aGlzLm5vZGUuY2xvbmVOb2RlKHRy dWUpKTsKKyAgICAgICAgaWYgKCQoY2xvbmUubm9kZSwgImlkIikpIHsKKyAg ICAgICAgICAgICQoY2xvbmUubm9kZSwge2lkOiBjbG9uZS5pZH0pOworICAg ICAgICB9CisgICAgICAgIGZpeGlkcyhjbG9uZSk7CisgICAgICAgIGNsb25l Lmluc2VydEFmdGVyKHRoaXMpOworICAgICAgICByZXR1cm4gY2xvbmU7Cisg ICAgfTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LnRvRGVmcworICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogTW92ZXMgZWxlbWVudCB0byB0 aGUgc2hhcmVkIGA8ZGVmcz5gIGFyZWEKKyAgICAgKioKKyAgICAgPSAoRWxl bWVudCkgdGhlIGVsZW1lbnQKKyAgICBcKi8KKyAgICBlbHByb3RvLnRvRGVm cyA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGRlZnMgPSBnZXRTb21l RGVmcyh0aGlzKTsKKyAgICAgICAgZGVmcy5hcHBlbmRDaGlsZCh0aGlzLm5v ZGUpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9OworICAgIC8qXAor ICAgICAqIEVsZW1lbnQudG9QYXR0ZXJuCisgICAgIFsgbWV0aG9kIF0KKyAg ICAgKioKKyAgICAgKiBDcmVhdGVzIGEgYDxwYXR0ZXJuPmAgZWxlbWVudCBm cm9tIHRoZSBjdXJyZW50IGVsZW1lbnQKKyAgICAgKioKKyAgICAgKiBUbyBj cmVhdGUgYSBwYXR0ZXJuIHlvdSBoYXZlIHRvIHNwZWNpZnkgdGhlIHBhdHRl cm4gcmVjdDoKKyAgICAgLSB4IChzdHJpbmd8bnVtYmVyKQorICAgICAtIHkg KHN0cmluZ3xudW1iZXIpCisgICAgIC0gd2lkdGggKHN0cmluZ3xudW1iZXIp CisgICAgIC0gaGVpZ2h0IChzdHJpbmd8bnVtYmVyKQorICAgICA9IChFbGVt ZW50KSB0aGUgYDxwYXR0ZXJuPmAgZWxlbWVudAorICAgICAqIFlvdSBjYW4g dXNlIHBhdHRlcm4gbGF0ZXIgb24gYXMgYW4gYXJndW1lbnQgZm9yIGBmaWxs YCBhdHRyaWJ1dGU6CisgICAgIHwgdmFyIHAgPSBwYXBlci5wYXRoKCJNMTAt NS0xMCwxNU0xNSwwLDAsMTVNMC01LTIwLDE1IikuYXR0cih7CisgICAgIHwg ICAgICAgICBmaWxsOiAibm9uZSIsCisgICAgIHwgICAgICAgICBzdHJva2U6 ICIjYmFkYTU1IiwKKyAgICAgfCAgICAgICAgIHN0cm9rZVdpZHRoOiA1Cisg ICAgIHwgICAgIH0pLnBhdHRlcm4oMCwgMCwgMTAsIDEwKSwKKyAgICAgfCAg ICAgYyA9IHBhcGVyLmNpcmNsZSgyMDAsIDIwMCwgMTAwKTsKKyAgICAgfCBj LmF0dHIoeworICAgICB8ICAgICBmaWxsOiBwCisgICAgIHwgfSk7CisgICAg XCovCisgICAgZWxwcm90by5wYXR0ZXJuID0gZWxwcm90by50b1BhdHRlcm4g PSBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCkgeworICAgICAgICB2 YXIgcCA9IG1ha2UoInBhdHRlcm4iLCBnZXRTb21lRGVmcyh0aGlzKSk7Cisg ICAgICAgIGlmICh4ID09IG51bGwpIHsKKyAgICAgICAgICAgIHggPSB0aGlz LmdldEJCb3goKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXMoeCwgIm9i amVjdCIpICYmICJ4IiBpbiB4KSB7CisgICAgICAgICAgICB5ID0geC55Owor ICAgICAgICAgICAgd2lkdGggPSB4LndpZHRoOworICAgICAgICAgICAgaGVp Z2h0ID0geC5oZWlnaHQ7CisgICAgICAgICAgICB4ID0geC54OworICAgICAg ICB9CisgICAgICAgICQocC5ub2RlLCB7CisgICAgICAgICAgICB4OiB4LAor ICAgICAgICAgICAgeTogeSwKKyAgICAgICAgICAgIHdpZHRoOiB3aWR0aCwK KyAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LAorICAgICAgICAgICAgcGF0 dGVyblVuaXRzOiAidXNlclNwYWNlT25Vc2UiLAorICAgICAgICAgICAgaWQ6 IHAuaWQsCisgICAgICAgICAgICB2aWV3Qm94OiBbeCwgeSwgd2lkdGgsIGhl aWdodF0uam9pbigiICIpCisgICAgICAgIH0pOworICAgICAgICBwLm5vZGUu YXBwZW5kQ2hpbGQodGhpcy5ub2RlKTsKKyAgICAgICAgcmV0dXJuIHA7Cisg ICAgfTsKKy8vIFNJRVJSQSBFbGVtZW50Lm1hcmtlcigpOiBjbGFyaWZ5IHdo YXQgYSByZWZlcmVuY2UgcG9pbnQgaXMuIEUuZy4sIGhlbHBzIHlvdSBvZmZz ZXQgdGhlIG9iamVjdCBmcm9tIGl0cyBlZGdlIHN1Y2ggYXMgd2hlbiBjZW50 ZXJpbmcgaXQgb3ZlciBhIHBhdGguCisvLyBTSUVSUkEgRWxlbWVudC5tYXJr ZXIoKTogSSBzdWdnZXN0IHRoZSBtZXRob2Qgc2hvdWxkIGFjY2VwdCBkZWZh dWx0IHJlZmVyZW5jZSBwb2ludCB2YWx1ZXMuICBQZXJoYXBzIGNlbnRlcmVk IHdpdGggKHJlZlggPSB3aWR0aC8yKSBhbmQgKHJlZlkgPSBoZWlnaHQvMik/ IEFsc28sIGNvdWxkbid0IGl0IGFzc3VtZSB0aGUgZWxlbWVudCdzIGN1cnJl bnQgX3dpZHRoXyBhbmQgX2hlaWdodF8/IEFuZCBwbGVhc2Ugc3BlY2lmeSB3 aGF0IF94XyBhbmQgX3lfIG1lYW46IG9mZnNldHM/IElmIHNvLCBmcm9tIHdo ZXJlPyAgQ291bGRuJ3QgdGhleSBhbHNvIGJlIGFzc2lnbmVkIGRlZmF1bHQg dmFsdWVzPworICAgIC8qXAorICAgICAqIEVsZW1lbnQubWFya2VyCisgICAg IFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBDcmVhdGVzIGEgYDxtYXJr ZXI+YCBlbGVtZW50IGZyb20gdGhlIGN1cnJlbnQgZWxlbWVudAorICAgICAq KgorICAgICAqIFRvIGNyZWF0ZSBhIG1hcmtlciB5b3UgaGF2ZSB0byBzcGVj aWZ5IHRoZSBib3VuZGluZyByZWN0IGFuZCByZWZlcmVuY2UgcG9pbnQ6Cisg ICAgIC0geCAobnVtYmVyKQorICAgICAtIHkgKG51bWJlcikKKyAgICAgLSB3 aWR0aCAobnVtYmVyKQorICAgICAtIGhlaWdodCAobnVtYmVyKQorICAgICAt IHJlZlggKG51bWJlcikKKyAgICAgLSByZWZZIChudW1iZXIpCisgICAgID0g KEVsZW1lbnQpIHRoZSBgPG1hcmtlcj5gIGVsZW1lbnQKKyAgICAgKiBZb3Ug Y2FuIHNwZWNpZnkgdGhlIG1hcmtlciBsYXRlciBhcyBhbiBhcmd1bWVudCBm b3IgYG1hcmtlci1zdGFydGAsIGBtYXJrZXItZW5kYCwgYG1hcmtlci1taWRg LCBhbmQgYG1hcmtlcmAgYXR0cmlidXRlcy4gVGhlIGBtYXJrZXJgIGF0dHJp YnV0ZSBwbGFjZXMgdGhlIG1hcmtlciBhdCBldmVyeSBwb2ludCBhbG9uZyB0 aGUgcGF0aCwgYW5kIGBtYXJrZXItbWlkYCBwbGFjZXMgdGhlbSBhdCBldmVy eSBwb2ludCBleGNlcHQgdGhlIHN0YXJ0IGFuZCBlbmQuCisgICAgXCovCisg ICAgLy8gVE9ETyBhZGQgdXNhZ2UgZm9yIG1hcmtlcnMKKyAgICBlbHByb3Rv Lm1hcmtlciA9IGZ1bmN0aW9uICh4LCB5LCB3aWR0aCwgaGVpZ2h0LCByZWZY LCByZWZZKSB7CisgICAgICAgIHZhciBwID0gbWFrZSgibWFya2VyIiwgZ2V0 U29tZURlZnModGhpcykpOworICAgICAgICBpZiAoeCA9PSBudWxsKSB7Cisg ICAgICAgICAgICB4ID0gdGhpcy5nZXRCQm94KCk7CisgICAgICAgIH0KKyAg ICAgICAgaWYgKGlzKHgsICJvYmplY3QiKSAmJiAieCIgaW4geCkgeworICAg ICAgICAgICAgeSA9IHgueTsKKyAgICAgICAgICAgIHdpZHRoID0geC53aWR0 aDsKKyAgICAgICAgICAgIGhlaWdodCA9IHguaGVpZ2h0OworICAgICAgICAg ICAgcmVmWCA9IHgucmVmWCB8fCB4LmN4OworICAgICAgICAgICAgcmVmWSA9 IHgucmVmWSB8fCB4LmN5OworICAgICAgICAgICAgeCA9IHgueDsKKyAgICAg ICAgfQorICAgICAgICAkKHAubm9kZSwgeworICAgICAgICAgICAgdmlld0Jv eDogW3gsIHksIHdpZHRoLCBoZWlnaHRdLmpvaW4oIiAiKSwKKyAgICAgICAg ICAgIG1hcmtlcldpZHRoOiB3aWR0aCwKKyAgICAgICAgICAgIG1hcmtlckhl aWdodDogaGVpZ2h0LAorICAgICAgICAgICAgb3JpZW50OiAiYXV0byIsCisg ICAgICAgICAgICByZWZYOiByZWZYIHx8IDAsCisgICAgICAgICAgICByZWZZ OiByZWZZIHx8IDAsCisgICAgICAgICAgICBpZDogcC5pZAorICAgICAgICB9 KTsKKyAgICAgICAgcC5ub2RlLmFwcGVuZENoaWxkKHRoaXMubm9kZSk7Cisg ICAgICAgIHJldHVybiBwOworICAgIH07CisgICAgLy8gYW5pbWF0aW9uCisg ICAgZnVuY3Rpb24gc2xpY2UoZnJvbSwgdG8sIGYpIHsKKyAgICAgICAgcmV0 dXJuIGZ1bmN0aW9uIChhcnIpIHsKKyAgICAgICAgICAgIHZhciByZXMgPSBh cnIuc2xpY2UoZnJvbSwgdG8pOworICAgICAgICAgICAgaWYgKHJlcy5sZW5n dGggPT0gMSkgeworICAgICAgICAgICAgICAgIHJlcyA9IHJlc1swXTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmID8gZihyZXMpIDog cmVzOworICAgICAgICB9OworICAgIH0KKyAgICB2YXIgQW5pbWF0aW9uID0g ZnVuY3Rpb24gKGF0dHIsIG1zLCBlYXNpbmcsIGNhbGxiYWNrKSB7CisgICAg ICAgIGlmICh0eXBlb2YgZWFzaW5nID09ICJmdW5jdGlvbiIgJiYgIWVhc2lu Zy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrID0gZWFzaW5nOwor ICAgICAgICAgICAgZWFzaW5nID0gbWluYS5saW5lYXI7CisgICAgICAgIH0K KyAgICAgICAgdGhpcy5hdHRyID0gYXR0cjsKKyAgICAgICAgdGhpcy5kdXIg PSBtczsKKyAgICAgICAgZWFzaW5nICYmICh0aGlzLmVhc2luZyA9IGVhc2lu Zyk7CisgICAgICAgIGNhbGxiYWNrICYmICh0aGlzLmNhbGxiYWNrID0gY2Fs bGJhY2spOworICAgIH07CisgICAgU25hcC5fLkFuaW1hdGlvbiA9IEFuaW1h dGlvbjsKKyAgICAvKlwKKyAgICAgKiBTbmFwLmFuaW1hdGlvbgorICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogQ3JlYXRlcyBhbiBhbmltYXRp b24gb2JqZWN0CisgICAgICoqCisgICAgIC0gYXR0ciAob2JqZWN0KSBhdHRy aWJ1dGVzIG9mIGZpbmFsIGRlc3RpbmF0aW9uCisgICAgIC0gZHVyYXRpb24g KG51bWJlcikgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbiwgaW4gbWlsbGlz ZWNvbmRzCisgICAgIC0gZWFzaW5nIChmdW5jdGlvbikgI29wdGlvbmFsIG9u ZSBvZiBlYXNpbmcgZnVuY3Rpb25zIG9mIEBtaW5hIG9yIGN1c3RvbSBvbmUK KyAgICAgLSBjYWxsYmFjayAoZnVuY3Rpb24pICNvcHRpb25hbCBjYWxsYmFj ayBmdW5jdGlvbiB0aGF0IGZpcmVzIHdoZW4gYW5pbWF0aW9uIGVuZHMKKyAg ICAgPSAob2JqZWN0KSBhbmltYXRpb24gb2JqZWN0CisgICAgXCovCisgICAg U25hcC5hbmltYXRpb24gPSBmdW5jdGlvbiAoYXR0ciwgbXMsIGVhc2luZywg Y2FsbGJhY2spIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbmltYXRpb24oYXR0 ciwgbXMsIGVhc2luZywgY2FsbGJhY2spOworICAgIH07CisgICAgLypcCisg ICAgICogRWxlbWVudC5pbkFuaW0KKyAgICAgWyBtZXRob2QgXQorICAgICAq KgorICAgICAqIFJldHVybnMgYSBzZXQgb2YgYW5pbWF0aW9ucyB0aGF0IG1h eSBiZSBhYmxlIHRvIG1hbmlwdWxhdGUgdGhlIGN1cnJlbnQgZWxlbWVudAor ICAgICAqKgorICAgICA9IChvYmplY3QpIGluIGZvcm1hdDoKKyAgICAgbyB7 CisgICAgIG8gICAgIGFuaW0gKG9iamVjdCkgYW5pbWF0aW9uIG9iamVjdCwK KyAgICAgbyAgICAgbWluYSAob2JqZWN0KSBAbWluYSBvYmplY3QsCisgICAg IG8gICAgIGN1clN0YXR1cyAobnVtYmVyKSAwLi4xIOKAlCBzdGF0dXMgb2Yg dGhlIGFuaW1hdGlvbjogMCDigJQganVzdCBzdGFydGVkLCAxIOKAlCBqdXN0 IGZpbmlzaGVkLAorICAgICBvICAgICBzdGF0dXMgKGZ1bmN0aW9uKSBnZXRz IG9yIHNldHMgdGhlIHN0YXR1cyBvZiB0aGUgYW5pbWF0aW9uLAorICAgICBv ICAgICBzdG9wIChmdW5jdGlvbikgc3RvcHMgdGhlIGFuaW1hdGlvbgorICAg ICBvIH0KKyAgICBcKi8KKyAgICBlbHByb3RvLmluQW5pbSA9IGZ1bmN0aW9u ICgpIHsKKyAgICAgICAgdmFyIGVsID0gdGhpcywKKyAgICAgICAgICAgIHJl cyA9IFtdOworICAgICAgICBmb3IgKHZhciBpZCBpbiBlbC5hbmltcykgaWYg KGVsLmFuaW1zW2hhc10oaWQpKSB7CisgICAgICAgICAgICAoZnVuY3Rpb24g KGEpIHsKKyAgICAgICAgICAgICAgICByZXMucHVzaCh7CisgICAgICAgICAg ICAgICAgICAgIGFuaW06IG5ldyBBbmltYXRpb24oYS5fYXR0cnMsIGEuZHVy LCBhLmVhc2luZywgYS5fY2FsbGJhY2spLAorICAgICAgICAgICAgICAgICAg ICBtaW5hOiBhLAorICAgICAgICAgICAgICAgICAgICBjdXJTdGF0dXM6IGEu c3RhdHVzKCksCisgICAgICAgICAgICAgICAgICAgIHN0YXR1czogZnVuY3Rp b24gKHZhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEu c3RhdHVzKHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICAgICAgICAgIHN0b3A6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGEuc3RvcCgpOworICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KGVsLmFuaW1z W2lkXSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXM7CisgICAg fTsKKyAgICAvKlwKKyAgICAgKiBTbmFwLmFuaW1hdGUKKyAgICAgWyBtZXRo b2QgXQorICAgICAqKgorICAgICAqIFJ1bnMgZ2VuZXJpYyBhbmltYXRpb24g b2Ygb25lIG51bWJlciBpbnRvIGFub3RoZXIgd2l0aCBhIGNhcmluZyBmdW5j dGlvbgorICAgICAqKgorICAgICAtIGZyb20gKG51bWJlcnxhcnJheSkgbnVt YmVyIG9yIGFycmF5IG9mIG51bWJlcnMKKyAgICAgLSB0byAobnVtYmVyfGFy cmF5KSBudW1iZXIgb3IgYXJyYXkgb2YgbnVtYmVycworICAgICAtIHNldHRl ciAoZnVuY3Rpb24pIGNhcmluZyBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgb25l IG51bWJlciBhcmd1bWVudAorICAgICAtIGR1cmF0aW9uIChudW1iZXIpIGR1 cmF0aW9uLCBpbiBtaWxsaXNlY29uZHMKKyAgICAgLSBlYXNpbmcgKGZ1bmN0 aW9uKSAjb3B0aW9uYWwgZWFzaW5nIGZ1bmN0aW9uIGZyb20gQG1pbmEgb3Ig Y3VzdG9tCisgICAgIC0gY2FsbGJhY2sgKGZ1bmN0aW9uKSAjb3B0aW9uYWwg Y2FsbGJhY2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIGFuaW1hdGlvbiBl bmRzCisgICAgID0gKG9iamVjdCkgYW5pbWF0aW9uIG9iamVjdCBpbiBAbWlu YSBmb3JtYXQKKyAgICAgbyB7CisgICAgIG8gICAgIGlkIChzdHJpbmcpIGFu aW1hdGlvbiBpZCwgY29uc2lkZXIgaXQgcmVhZC1vbmx5LAorICAgICBvICAg ICBkdXJhdGlvbiAoZnVuY3Rpb24pIGdldHMgb3Igc2V0cyB0aGUgZHVyYXRp b24gb2YgdGhlIGFuaW1hdGlvbiwKKyAgICAgbyAgICAgZWFzaW5nIChmdW5j dGlvbikgZWFzaW5nLAorICAgICBvICAgICBzcGVlZCAoZnVuY3Rpb24pIGdl dHMgb3Igc2V0cyB0aGUgc3BlZWQgb2YgdGhlIGFuaW1hdGlvbiwKKyAgICAg byAgICAgc3RhdHVzIChmdW5jdGlvbikgZ2V0cyBvciBzZXRzIHRoZSBzdGF0 dXMgb2YgdGhlIGFuaW1hdGlvbiwKKyAgICAgbyAgICAgc3RvcCAoZnVuY3Rp b24pIHN0b3BzIHRoZSBhbmltYXRpb24KKyAgICAgbyB9CisgICAgIHwgdmFy IHJlY3QgPSBTbmFwKCkucmVjdCgwLCAwLCAxMCwgMTApOworICAgICB8IFNu YXAuYW5pbWF0ZSgwLCAxMCwgZnVuY3Rpb24gKHZhbCkgeworICAgICB8ICAg ICByZWN0LmF0dHIoeworICAgICB8ICAgICAgICAgeDogdmFsCisgICAgIHwg ICAgIH0pOworICAgICB8IH0sIDEwMDApOworICAgICB8IC8vIGluIGdpdmVu IGNvbnRleHQgaXMgZXF1aXZhbGVudCB0bworICAgICB8IHJlY3QuYW5pbWF0 ZSh7eDogMTB9LCAxMDAwKTsKKyAgICBcKi8KKyAgICBTbmFwLmFuaW1hdGUg PSBmdW5jdGlvbiAoZnJvbSwgdG8sIHNldHRlciwgbXMsIGVhc2luZywgY2Fs bGJhY2spIHsKKyAgICAgICAgaWYgKHR5cGVvZiBlYXNpbmcgPT0gImZ1bmN0 aW9uIiAmJiAhZWFzaW5nLmxlbmd0aCkgeworICAgICAgICAgICAgY2FsbGJh Y2sgPSBlYXNpbmc7CisgICAgICAgICAgICBlYXNpbmcgPSBtaW5hLmxpbmVh cjsKKyAgICAgICAgfQorICAgICAgICB2YXIgbm93ID0gbWluYS50aW1lKCks CisgICAgICAgICAgICBhbmltID0gbWluYShmcm9tLCB0bywgbm93LCBub3cg KyBtcywgbWluYS50aW1lLCBzZXR0ZXIsIGVhc2luZyk7CisgICAgICAgIGNh bGxiYWNrICYmIGV2ZS5vbmNlKCJtaW5hLmZpbmlzaC4iICsgYW5pbS5pZCwg Y2FsbGJhY2spOworICAgICAgICByZXR1cm4gYW5pbTsKKyAgICB9OworICAg IC8qXAorICAgICAqIEVsZW1lbnQuc3RvcAorICAgICBbIG1ldGhvZCBdCisg ICAgICoqCisgICAgICogU3RvcHMgYWxsIHRoZSBhbmltYXRpb25zIGZvciB0 aGUgY3VycmVudCBlbGVtZW50CisgICAgICoqCisgICAgID0gKEVsZW1lbnQp IHRoZSBjdXJyZW50IGVsZW1lbnQKKyAgICBcKi8KKyAgICBlbHByb3RvLnN0 b3AgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBhbmltcyA9IHRoaXMu aW5BbmltKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBpaSA9IGFuaW1z Lmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgIGFuaW1zW2ld LnN0b3AoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAg ICB9OworICAgIC8qXAorICAgICAqIEVsZW1lbnQuYW5pbWF0ZQorICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogQW5pbWF0ZXMgdGhlIGdpdmVu IGF0dHJpYnV0ZXMgb2YgdGhlIGVsZW1lbnQKKyAgICAgKioKKyAgICAgLSBh dHRycyAob2JqZWN0KSBrZXktdmFsdWUgcGFpcnMgb2YgZGVzdGluYXRpb24g YXR0cmlidXRlcworICAgICAtIGR1cmF0aW9uIChudW1iZXIpIGR1cmF0aW9u IG9mIHRoZSBhbmltYXRpb24gaW4gbWlsbGlzZWNvbmRzCisgICAgIC0gZWFz aW5nIChmdW5jdGlvbikgI29wdGlvbmFsIGVhc2luZyBmdW5jdGlvbiBmcm9t IEBtaW5hIG9yIGN1c3RvbQorICAgICAtIGNhbGxiYWNrIChmdW5jdGlvbikg I29wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgZXhlY3V0ZXMgd2hl biB0aGUgYW5pbWF0aW9uIGVuZHMKKyAgICAgPSAoRWxlbWVudCkgdGhlIGN1 cnJlbnQgZWxlbWVudAorICAgIFwqLworICAgIGVscHJvdG8uYW5pbWF0ZSA9 IGZ1bmN0aW9uIChhdHRycywgbXMsIGVhc2luZywgY2FsbGJhY2spIHsKKyAg ICAgICAgaWYgKHR5cGVvZiBlYXNpbmcgPT0gImZ1bmN0aW9uIiAmJiAhZWFz aW5nLmxlbmd0aCkgeworICAgICAgICAgICAgY2FsbGJhY2sgPSBlYXNpbmc7 CisgICAgICAgICAgICBlYXNpbmcgPSBtaW5hLmxpbmVhcjsKKyAgICAgICAg fQorICAgICAgICBpZiAoYXR0cnMgaW5zdGFuY2VvZiBBbmltYXRpb24pIHsK KyAgICAgICAgICAgIGNhbGxiYWNrID0gYXR0cnMuY2FsbGJhY2s7CisgICAg ICAgICAgICBlYXNpbmcgPSBhdHRycy5lYXNpbmc7CisgICAgICAgICAgICBt cyA9IGF0dHJzLmR1cjsKKyAgICAgICAgICAgIGF0dHJzID0gYXR0cnMuYXR0 cjsKKyAgICAgICAgfQorICAgICAgICB2YXIgZmtleXMgPSBbXSwgdGtleXMg PSBbXSwga2V5cyA9IHt9LCBmcm9tLCB0bywgZiwgZXEsCisgICAgICAgICAg ICBlbCA9IHRoaXM7CisgICAgICAgIGZvciAodmFyIGtleSBpbiBhdHRycykg aWYgKGF0dHJzW2hhc10oa2V5KSkgeworICAgICAgICAgICAgaWYgKGVsLmVx dWFsKSB7CisgICAgICAgICAgICAgICAgZXEgPSBlbC5lcXVhbChrZXksIFN0 cihhdHRyc1trZXldKSk7CisgICAgICAgICAgICAgICAgZnJvbSA9IGVxLmZy b207CisgICAgICAgICAgICAgICAgdG8gPSBlcS50bzsKKyAgICAgICAgICAg ICAgICBmID0gZXEuZjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAgICAgZnJvbSA9ICtlbC5hdHRyKGtleSk7CisgICAgICAgICAgICAg ICAgdG8gPSArYXR0cnNba2V5XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIHZhciBsZW4gPSBpcyhmcm9tLCAiYXJyYXkiKSA/IGZyb20ubGVuZ3Ro IDogMTsKKyAgICAgICAgICAgIGtleXNba2V5XSA9IHNsaWNlKGZrZXlzLmxl bmd0aCwgZmtleXMubGVuZ3RoICsgbGVuLCBmKTsKKyAgICAgICAgICAgIGZr ZXlzID0gZmtleXMuY29uY2F0KGZyb20pOworICAgICAgICAgICAgdGtleXMg PSB0a2V5cy5jb25jYXQodG8pOworICAgICAgICB9CisgICAgICAgIHZhciBu b3cgPSBtaW5hLnRpbWUoKSwKKyAgICAgICAgICAgIGFuaW0gPSBtaW5hKGZr ZXlzLCB0a2V5cywgbm93LCBub3cgKyBtcywgbWluYS50aW1lLCBmdW5jdGlv biAodmFsKSB7CisgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSB7fTsKKyAg ICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4ga2V5cykgaWYgKGtleXNb aGFzXShrZXkpKSB7CisgICAgICAgICAgICAgICAgICAgIGF0dHJba2V5XSA9 IGtleXNba2V5XSh2YWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICBlbC5hdHRyKGF0dHIpOworICAgICAgICAgICAgfSwgZWFzaW5n KTsKKyAgICAgICAgZWwuYW5pbXNbYW5pbS5pZF0gPSBhbmltOworICAgICAg ICBhbmltLl9hdHRycyA9IGF0dHJzOworICAgICAgICBhbmltLl9jYWxsYmFj ayA9IGNhbGxiYWNrOworICAgICAgICBldmUoInNuYXAuYW5pbWNyZWF0ZWQu IiArIGVsLmlkLCBhbmltKTsKKyAgICAgICAgZXZlLm9uY2UoIm1pbmEuZmlu aXNoLiIgKyBhbmltLmlkLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBk ZWxldGUgZWwuYW5pbXNbYW5pbS5pZF07CisgICAgICAgICAgICBjYWxsYmFj ayAmJiBjYWxsYmFjay5jYWxsKGVsKTsKKyAgICAgICAgfSk7CisgICAgICAg IGV2ZS5vbmNlKCJtaW5hLnN0b3AuIiArIGFuaW0uaWQsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICAgIGRlbGV0ZSBlbC5hbmltc1thbmltLmlkXTsKKyAg ICAgICAgfSk7CisgICAgICAgIHJldHVybiBlbDsKKyAgICB9OworICAgIHZh ciBlbGRhdGEgPSB7fTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LmRhdGEK KyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEFkZHMgb3IgcmV0 cmlldmVzIGdpdmVuIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBnaXZlbiBrZXku IChEb27igJl0IGNvbmZ1c2UKKyAgICAgKiB3aXRoIGBkYXRhLWAgYXR0cmli dXRlcykKKyAgICAgKgorICAgICAqIFNlZSBhbHNvIEBFbGVtZW50LnJlbW92 ZURhdGEKKyAgICAgLSBrZXkgKHN0cmluZykga2V5IHRvIHN0b3JlIGRhdGEK KyAgICAgLSB2YWx1ZSAoYW55KSAjb3B0aW9uYWwgdmFsdWUgdG8gc3RvcmUK KyAgICAgPSAob2JqZWN0KSBARWxlbWVudAorICAgICAqIG9yLCBpZiB2YWx1 ZSBpcyBub3Qgc3BlY2lmaWVkOgorICAgICA9IChhbnkpIHZhbHVlCisgICAg ID4gVXNhZ2UKKyAgICAgfCBmb3IgKHZhciBpID0gMCwgaSA8IDUsIGkrKykg eworICAgICB8ICAgICBwYXBlci5jaXJjbGUoMTAgKyAxNSAqIGksIDEwLCAx MCkKKyAgICAgfCAgICAgICAgICAuYXR0cih7ZmlsbDogIiMwMDAifSkKKyAg ICAgfCAgICAgICAgICAuZGF0YSgiaSIsIGkpCisgICAgIHwgICAgICAgICAg LmNsaWNrKGZ1bmN0aW9uICgpIHsKKyAgICAgfCAgICAgICAgICAgICBhbGVy dCh0aGlzLmRhdGEoImkiKSk7CisgICAgIHwgICAgICAgICAgfSk7CisgICAg IHwgfQorICAgIFwqLworICAgIGVscHJvdG8uZGF0YSA9IGZ1bmN0aW9uIChr ZXksIHZhbHVlKSB7CisgICAgICAgIHZhciBkYXRhID0gZWxkYXRhW3RoaXMu aWRdID0gZWxkYXRhW3RoaXMuaWRdIHx8IHt9OworICAgICAgICBpZiAoYXJn dW1lbnRzLmxlbmd0aCA9PSAwKXsKKyAgICAgICAgICAgIGV2ZSgic25hcC5k YXRhLmdldC4iICsgdGhpcy5pZCwgdGhpcywgZGF0YSwgbnVsbCk7CisgICAg ICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgfQorICAgICAgICBpZiAo YXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICBpZiAoU25h cC5pcyhrZXksICJvYmplY3QiKSkgeworICAgICAgICAgICAgICAgIGZvciAo dmFyIGkgaW4ga2V5KSBpZiAoa2V5W2hhc10oaSkpIHsKKyAgICAgICAgICAg ICAgICAgICAgdGhpcy5kYXRhKGksIGtleVtpXSk7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAg ICAgfQorICAgICAgICAgICAgZXZlKCJzbmFwLmRhdGEuZ2V0LiIgKyB0aGlz LmlkLCB0aGlzLCBkYXRhW2tleV0sIGtleSk7CisgICAgICAgICAgICByZXR1 cm4gZGF0YVtrZXldOworICAgICAgICB9CisgICAgICAgIGRhdGFba2V5XSA9 IHZhbHVlOworICAgICAgICBldmUoInNuYXAuZGF0YS5zZXQuIiArIHRoaXMu aWQsIHRoaXMsIHZhbHVlLCBrZXkpOworICAgICAgICByZXR1cm4gdGhpczsK KyAgICB9OworICAgIC8qXAorICAgICAqIEVsZW1lbnQucmVtb3ZlRGF0YQor ICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmVtb3ZlcyB2YWx1 ZSBhc3NvY2lhdGVkIHdpdGggYW4gZWxlbWVudCBieSBnaXZlbiBrZXkuCisg ICAgICogSWYga2V5IGlzIG5vdCBwcm92aWRlZCwgcmVtb3ZlcyBhbGwgdGhl IGRhdGEgb2YgdGhlIGVsZW1lbnQuCisgICAgIC0ga2V5IChzdHJpbmcpICNv cHRpb25hbCBrZXkKKyAgICAgPSAob2JqZWN0KSBARWxlbWVudAorICAgIFwq LworICAgIGVscHJvdG8ucmVtb3ZlRGF0YSA9IGZ1bmN0aW9uIChrZXkpIHsK KyAgICAgICAgaWYgKGtleSA9PSBudWxsKSB7CisgICAgICAgICAgICBlbGRh dGFbdGhpcy5pZF0gPSB7fTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgIGVsZGF0YVt0aGlzLmlkXSAmJiBkZWxldGUgZWxkYXRhW3RoaXMuaWRd W2tleV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAg fTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50Lm91dGVyU1ZHCisgICAgIFsg bWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBSZXR1cm5zIFNWRyBjb2RlIGZv ciB0aGUgZWxlbWVudCwgZXF1aXZhbGVudCB0byBIVE1MJ3MgYG91dGVySFRN TGAuCisgICAgICoKKyAgICAgKiBTZWUgYWxzbyBARWxlbWVudC5pbm5lclNW RworICAgICA9IChzdHJpbmcpIFNWRyBjb2RlIGZvciB0aGUgZWxlbWVudAor ICAgIFwqLworICAgIC8qXAorICAgICAqIEVsZW1lbnQudG9TdHJpbmcKKyAg ICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFNlZSBARWxlbWVudC5v dXRlclNWRworICAgIFwqLworICAgIGVscHJvdG8ub3V0ZXJTVkcgPSBlbHBy b3RvLnRvU3RyaW5nID0gdG9TdHJpbmcoMSk7CisgICAgLypcCisgICAgICog RWxlbWVudC5pbm5lclNWRworICAgICBbIG1ldGhvZCBdCisgICAgICoqCisg ICAgICogUmV0dXJucyBTVkcgY29kZSBmb3IgdGhlIGVsZW1lbnQncyBjb250 ZW50cywgZXF1aXZhbGVudCB0byBIVE1MJ3MgYGlubmVySFRNTGAKKyAgICAg PSAoc3RyaW5nKSBTVkcgY29kZSBmb3IgdGhlIGVsZW1lbnQKKyAgICBcKi8K KyAgICBlbHByb3RvLmlubmVyU1ZHID0gdG9TdHJpbmcoKTsKKyAgICBmdW5j dGlvbiB0b1N0cmluZyh0eXBlKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlv biAoKSB7CisgICAgICAgICAgICB2YXIgcmVzID0gdHlwZSA/ICI8IiArIHRo aXMudHlwZSA6ICIiLAorICAgICAgICAgICAgICAgIGF0dHIgPSB0aGlzLm5v ZGUuYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICBjaGxkID0gdGhpcy5u b2RlLmNoaWxkTm9kZXM7CisgICAgICAgICAgICBpZiAodHlwZSkgeworICAg ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBpaSA9IGF0dHIubGVuZ3Ro OyBpIDwgaWk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICByZXMgKz0g IiAiICsgYXR0cltpXS5uYW1lICsgJz0iJyArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXR0cltpXS52YWx1ZS5yZXBsYWNlKC8iL2csICdcXCIn KSArICciJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBpZiAoY2hsZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAg ICB0eXBlICYmIChyZXMgKz0gIj4iKTsKKyAgICAgICAgICAgICAgICBmb3Ig KGkgPSAwLCBpaSA9IGNobGQubGVuZ3RoOyBpIDwgaWk7IGkrKykgeworICAg ICAgICAgICAgICAgICAgICBpZiAoY2hsZFtpXS5ub2RlVHlwZSA9PSAzKSB7 CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgKz0gY2hsZFtpXS5ub2Rl VmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hsZFtp XS5ub2RlVHlwZSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy ZXMgKz0gd3JhcChjaGxkW2ldKS50b1N0cmluZygpOworICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg IHR5cGUgJiYgKHJlcyArPSAiPC8iICsgdGhpcy50eXBlICsgIj4iKTsKKyAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdHlwZSAmJiAo cmVzICs9ICIvPiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0 dXJuIHJlczsKKyAgICAgICAgfTsKKyAgICB9CisgICAgZWxwcm90by50b0Rh dGFVUkwgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIGlmICh3aW5kb3cgJiYg d2luZG93LmJ0b2EpIHsKKyAgICAgICAgICAgIHZhciBiYiA9IHRoaXMuZ2V0 QkJveCgpLAorICAgICAgICAgICAgICAgIHN2ZyA9IFNuYXAuZm9ybWF0KCc8 c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94 bGluayIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iIHZpZXdC b3g9Int4fSB7eX0ge3dpZHRofSB7aGVpZ2h0fSI+e2NvbnRlbnRzfTwvc3Zn PicsIHsKKyAgICAgICAgICAgICAgICB4OiArYmIueC50b0ZpeGVkKDMpLAor ICAgICAgICAgICAgICAgIHk6ICtiYi55LnRvRml4ZWQoMyksCisgICAgICAg ICAgICAgICAgd2lkdGg6ICtiYi53aWR0aC50b0ZpeGVkKDMpLAorICAgICAg ICAgICAgICAgIGhlaWdodDogK2JiLmhlaWdodC50b0ZpeGVkKDMpLAorICAg ICAgICAgICAgICAgIGNvbnRlbnRzOiB0aGlzLm91dGVyU1ZHKCkKKyAgICAg ICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuICJkYXRhOmltYWdlL3N2 Zyt4bWw7YmFzZTY0LCIgKyBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBv bmVudChzdmcpKSk7CisgICAgICAgIH0KKyAgICB9OworICAgIC8qXAorICAg ICAqIEZyYWdtZW50LnNlbGVjdAorICAgICBbIG1ldGhvZCBdCisgICAgICoq CisgICAgICogU2VlIEBFbGVtZW50LnNlbGVjdAorICAgIFwqLworICAgIEZy YWdtZW50LnByb3RvdHlwZS5zZWxlY3QgPSBlbHByb3RvLnNlbGVjdDsKKyAg ICAvKlwKKyAgICAgKiBGcmFnbWVudC5zZWxlY3RBbGwKKyAgICAgWyBtZXRo b2QgXQorICAgICAqKgorICAgICAqIFNlZSBARWxlbWVudC5zZWxlY3RBbGwK KyAgICBcKi8KKyAgICBGcmFnbWVudC5wcm90b3R5cGUuc2VsZWN0QWxsID0g ZWxwcm90by5zZWxlY3RBbGw7Cit9KTsKKworLy8gQ29weXJpZ2h0IChjKSAy MDEzIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJl c2VydmVkLgorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGlj ZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1h eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRo IHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo ZSBMaWNlbnNlIGF0CisvLworLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp Y2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5 IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0 d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlz dHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FS UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhw cmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUg c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAor Ly8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCitTbmFwLnBsdWdp bihmdW5jdGlvbiAoU25hcCwgRWxlbWVudCwgUGFwZXIsIGdsb2IsIEZyYWdt ZW50KSB7CisgICAgdmFyIG9iamVjdFRvU3RyaW5nID0gT2JqZWN0LnByb3Rv dHlwZS50b1N0cmluZywKKyAgICAgICAgU3RyID0gU3RyaW5nLAorICAgICAg ICBtYXRoID0gTWF0aCwKKyAgICAgICAgRSA9ICIiOworICAgIGZ1bmN0aW9u IE1hdHJpeChhLCBiLCBjLCBkLCBlLCBmKSB7CisgICAgICAgIGlmIChiID09 IG51bGwgJiYgb2JqZWN0VG9TdHJpbmcuY2FsbChhKSA9PSAiW29iamVjdCBT VkdNYXRyaXhdIikgeworICAgICAgICAgICAgdGhpcy5hID0gYS5hOworICAg ICAgICAgICAgdGhpcy5iID0gYS5iOworICAgICAgICAgICAgdGhpcy5jID0g YS5jOworICAgICAgICAgICAgdGhpcy5kID0gYS5kOworICAgICAgICAgICAg dGhpcy5lID0gYS5lOworICAgICAgICAgICAgdGhpcy5mID0gYS5mOworICAg ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChhICE9 IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuYSA9ICthOworICAgICAgICAg ICAgdGhpcy5iID0gK2I7CisgICAgICAgICAgICB0aGlzLmMgPSArYzsKKyAg ICAgICAgICAgIHRoaXMuZCA9ICtkOworICAgICAgICAgICAgdGhpcy5lID0g K2U7CisgICAgICAgICAgICB0aGlzLmYgPSArZjsKKyAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgIHRoaXMuYSA9IDE7CisgICAgICAgICAgICB0aGlz LmIgPSAwOworICAgICAgICAgICAgdGhpcy5jID0gMDsKKyAgICAgICAgICAg IHRoaXMuZCA9IDE7CisgICAgICAgICAgICB0aGlzLmUgPSAwOworICAgICAg ICAgICAgdGhpcy5mID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAoZnVu Y3Rpb24gKG1hdHJpeHByb3RvKSB7CisgICAgICAgIC8qXAorICAgICAgICAg KiBNYXRyaXguYWRkCisgICAgICAgICBbIG1ldGhvZCBdCisgICAgICAgICAq KgorICAgICAgICAgKiBBZGRzIHRoZSBnaXZlbiBtYXRyaXggdG8gZXhpc3Rp bmcgb25lCisgICAgICAgICAtIGEgKG51bWJlcikKKyAgICAgICAgIC0gYiAo bnVtYmVyKQorICAgICAgICAgLSBjIChudW1iZXIpCisgICAgICAgICAtIGQg KG51bWJlcikKKyAgICAgICAgIC0gZSAobnVtYmVyKQorICAgICAgICAgLSBm IChudW1iZXIpCisgICAgICAgICAqIG9yCisgICAgICAgICAtIG1hdHJpeCAo b2JqZWN0KSBATWF0cml4CisgICAgICAgIFwqLworICAgICAgICBtYXRyaXhw cm90by5hZGQgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgZSwgZikgeworICAg ICAgICAgICAgdmFyIG91dCA9IFtbXSwgW10sIFtdXSwKKyAgICAgICAgICAg ICAgICBtID0gW1t0aGlzLmEsIHRoaXMuYywgdGhpcy5lXSwgW3RoaXMuYiwg dGhpcy5kLCB0aGlzLmZdLCBbMCwgMCwgMV1dLAorICAgICAgICAgICAgICAg IG1hdHJpeCA9IFtbYSwgYywgZV0sIFtiLCBkLCBmXSwgWzAsIDAsIDFdXSwK KyAgICAgICAgICAgICAgICB4LCB5LCB6LCByZXM7CisKKyAgICAgICAgICAg IGlmIChhICYmIGEgaW5zdGFuY2VvZiBNYXRyaXgpIHsKKyAgICAgICAgICAg ICAgICBtYXRyaXggPSBbW2EuYSwgYS5jLCBhLmVdLCBbYS5iLCBhLmQsIGEu Zl0sIFswLCAwLCAxXV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg IGZvciAoeCA9IDA7IHggPCAzOyB4KyspIHsKKyAgICAgICAgICAgICAgICBm b3IgKHkgPSAwOyB5IDwgMzsgeSsrKSB7CisgICAgICAgICAgICAgICAgICAg IHJlcyA9IDA7CisgICAgICAgICAgICAgICAgICAgIGZvciAoeiA9IDA7IHog PCAzOyB6KyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyArPSBt W3hdW3pdICogbWF0cml4W3pdW3ldOworICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgICAgIG91dFt4XVt5XSA9IHJlczsKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlz LmEgPSBvdXRbMF1bMF07CisgICAgICAgICAgICB0aGlzLmIgPSBvdXRbMV1b MF07CisgICAgICAgICAgICB0aGlzLmMgPSBvdXRbMF1bMV07CisgICAgICAg ICAgICB0aGlzLmQgPSBvdXRbMV1bMV07CisgICAgICAgICAgICB0aGlzLmUg PSBvdXRbMF1bMl07CisgICAgICAgICAgICB0aGlzLmYgPSBvdXRbMV1bMl07 CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfTsKKyAgICAg ICAgLypcCisgICAgICAgICAqIE1hdHJpeC5pbnZlcnQKKyAgICAgICAgIFsg bWV0aG9kIF0KKyAgICAgICAgICoqCisgICAgICAgICAqIFJldHVybnMgYW4g aW52ZXJ0ZWQgdmVyc2lvbiBvZiB0aGUgbWF0cml4CisgICAgICAgICA9IChv YmplY3QpIEBNYXRyaXgKKyAgICAgICAgXCovCisgICAgICAgIG1hdHJpeHBy b3RvLmludmVydCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBt ZSA9IHRoaXMsCisgICAgICAgICAgICAgICAgeCA9IG1lLmEgKiBtZS5kIC0g bWUuYiAqIG1lLmM7CisgICAgICAgICAgICByZXR1cm4gbmV3IE1hdHJpeCht ZS5kIC8geCwgLW1lLmIgLyB4LCAtbWUuYyAvIHgsIG1lLmEgLyB4LCAobWUu YyAqIG1lLmYgLSBtZS5kICogbWUuZSkgLyB4LCAobWUuYiAqIG1lLmUgLSBt ZS5hICogbWUuZikgLyB4KTsKKyAgICAgICAgfTsKKyAgICAgICAgLypcCisg ICAgICAgICAqIE1hdHJpeC5jbG9uZQorICAgICAgICAgWyBtZXRob2QgXQor ICAgICAgICAgKioKKyAgICAgICAgICogUmV0dXJucyBhIGNvcHkgb2YgdGhl IG1hdHJpeAorICAgICAgICAgPSAob2JqZWN0KSBATWF0cml4CisgICAgICAg IFwqLworICAgICAgICBtYXRyaXhwcm90by5jbG9uZSA9IGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWF0cml4KHRoaXMuYSwgdGhp cy5iLCB0aGlzLmMsIHRoaXMuZCwgdGhpcy5lLCB0aGlzLmYpOworICAgICAg ICB9OworICAgICAgICAvKlwKKyAgICAgICAgICogTWF0cml4LnRyYW5zbGF0 ZQorICAgICAgICAgWyBtZXRob2QgXQorICAgICAgICAgKioKKyAgICAgICAg ICogVHJhbnNsYXRlIHRoZSBtYXRyaXgKKyAgICAgICAgIC0geCAobnVtYmVy KSBob3Jpem9udGFsIG9mZnNldCBkaXN0YW5jZQorICAgICAgICAgLSB5IChu dW1iZXIpIHZlcnRpY2FsIG9mZnNldCBkaXN0YW5jZQorICAgICAgICBcKi8K KyAgICAgICAgbWF0cml4cHJvdG8udHJhbnNsYXRlID0gZnVuY3Rpb24gKHgs IHkpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZCgxLCAwLCAwLCAx LCB4LCB5KTsKKyAgICAgICAgfTsKKyAgICAgICAgLypcCisgICAgICAgICAq IE1hdHJpeC5zY2FsZQorICAgICAgICAgWyBtZXRob2QgXQorICAgICAgICAg KioKKyAgICAgICAgICogU2NhbGVzIHRoZSBtYXRyaXgKKyAgICAgICAgIC0g eCAobnVtYmVyKSBhbW91bnQgdG8gYmUgc2NhbGVkLCB3aXRoIGAxYCByZXN1 bHRpbmcgaW4gbm8gY2hhbmdlCisgICAgICAgICAtIHkgKG51bWJlcikgI29w dGlvbmFsIGFtb3VudCB0byBzY2FsZSBhbG9uZyB0aGUgdmVydGljYWwgYXhp cy4gKE90aGVyd2lzZSBgeGAgYXBwbGllcyB0byBib3RoIGF4ZXMuKQorICAg ICAgICAgLSBjeCAobnVtYmVyKSAjb3B0aW9uYWwgaG9yaXpvbnRhbCBvcmln aW4gcG9pbnQgZnJvbSB3aGljaCB0byBzY2FsZQorICAgICAgICAgLSBjeSAo bnVtYmVyKSAjb3B0aW9uYWwgdmVydGljYWwgb3JpZ2luIHBvaW50IGZyb20g d2hpY2ggdG8gc2NhbGUKKyAgICAgICAgICogRGVmYXVsdCBjeCwgY3kgaXMg dGhlIG1pZGRsZSBwb2ludCBvZiB0aGUgZWxlbWVudC4KKyAgICAgICAgXCov CisgICAgICAgIG1hdHJpeHByb3RvLnNjYWxlID0gZnVuY3Rpb24gKHgsIHks IGN4LCBjeSkgeworICAgICAgICAgICAgeSA9PSBudWxsICYmICh5ID0geCk7 CisgICAgICAgICAgICAoY3ggfHwgY3kpICYmIHRoaXMuYWRkKDEsIDAsIDAs IDEsIGN4LCBjeSk7CisgICAgICAgICAgICB0aGlzLmFkZCh4LCAwLCAwLCB5 LCAwLCAwKTsKKyAgICAgICAgICAgIChjeCB8fCBjeSkgJiYgdGhpcy5hZGQo MSwgMCwgMCwgMSwgLWN4LCAtY3kpOworICAgICAgICAgICAgcmV0dXJuIHRo aXM7CisgICAgICAgIH07CisgICAgICAgIC8qXAorICAgICAgICAgKiBNYXRy aXgucm90YXRlCisgICAgICAgICBbIG1ldGhvZCBdCisgICAgICAgICAqKgor ICAgICAgICAgKiBSb3RhdGVzIHRoZSBtYXRyaXgKKyAgICAgICAgIC0gYSAo bnVtYmVyKSBhbmdsZSBvZiByb3RhdGlvbiwgaW4gZGVncmVlcworICAgICAg ICAgLSB4IChudW1iZXIpIGhvcml6b250YWwgb3JpZ2luIHBvaW50IGZyb20g d2hpY2ggdG8gcm90YXRlCisgICAgICAgICAtIHkgKG51bWJlcikgdmVydGlj YWwgb3JpZ2luIHBvaW50IGZyb20gd2hpY2ggdG8gcm90YXRlCisgICAgICAg IFwqLworICAgICAgICBtYXRyaXhwcm90by5yb3RhdGUgPSBmdW5jdGlvbiAo YSwgeCwgeSkgeworICAgICAgICAgICAgYSA9IFNuYXAucmFkKGEpOworICAg ICAgICAgICAgeCA9IHggfHwgMDsKKyAgICAgICAgICAgIHkgPSB5IHx8IDA7 CisgICAgICAgICAgICB2YXIgY29zID0gK21hdGguY29zKGEpLnRvRml4ZWQo OSksCisgICAgICAgICAgICAgICAgc2luID0gK21hdGguc2luKGEpLnRvRml4 ZWQoOSk7CisgICAgICAgICAgICB0aGlzLmFkZChjb3MsIHNpbiwgLXNpbiwg Y29zLCB4LCB5KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZCgxLCAw LCAwLCAxLCAteCwgLXkpOworICAgICAgICB9OworICAgICAgICAvKlwKKyAg ICAgICAgICogTWF0cml4LngKKyAgICAgICAgIFsgbWV0aG9kIF0KKyAgICAg ICAgICoqCisgICAgICAgICAqIFJldHVybnMgeCBjb29yZGluYXRlIGZvciBn aXZlbiBwb2ludCBhZnRlciB0cmFuc2Zvcm1hdGlvbiBkZXNjcmliZWQgYnkg dGhlIG1hdHJpeC4gU2VlIGFsc28gQE1hdHJpeC55CisgICAgICAgICAtIHgg KG51bWJlcikKKyAgICAgICAgIC0geSAobnVtYmVyKQorICAgICAgICAgPSAo bnVtYmVyKSB4CisgICAgICAgIFwqLworICAgICAgICBtYXRyaXhwcm90by54 ID0gZnVuY3Rpb24gKHgsIHkpIHsKKyAgICAgICAgICAgIHJldHVybiB4ICog dGhpcy5hICsgeSAqIHRoaXMuYyArIHRoaXMuZTsKKyAgICAgICAgfTsKKyAg ICAgICAgLypcCisgICAgICAgICAqIE1hdHJpeC55CisgICAgICAgICBbIG1l dGhvZCBdCisgICAgICAgICAqKgorICAgICAgICAgKiBSZXR1cm5zIHkgY29v cmRpbmF0ZSBmb3IgZ2l2ZW4gcG9pbnQgYWZ0ZXIgdHJhbnNmb3JtYXRpb24g ZGVzY3JpYmVkIGJ5IHRoZSBtYXRyaXguIFNlZSBhbHNvIEBNYXRyaXgueAor ICAgICAgICAgLSB4IChudW1iZXIpCisgICAgICAgICAtIHkgKG51bWJlcikK KyAgICAgICAgID0gKG51bWJlcikgeQorICAgICAgICBcKi8KKyAgICAgICAg bWF0cml4cHJvdG8ueSA9IGZ1bmN0aW9uICh4LCB5KSB7CisgICAgICAgICAg ICByZXR1cm4geCAqIHRoaXMuYiArIHkgKiB0aGlzLmQgKyB0aGlzLmY7Cisg ICAgICAgIH07CisgICAgICAgIG1hdHJpeHByb3RvLmdldCA9IGZ1bmN0aW9u IChpKSB7CisgICAgICAgICAgICByZXR1cm4gK3RoaXNbU3RyLmZyb21DaGFy Q29kZSg5NyArIGkpXS50b0ZpeGVkKDQpOworICAgICAgICB9OworICAgICAg ICBtYXRyaXhwcm90by50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHsKKyAgICAg ICAgICAgIHJldHVybiAibWF0cml4KCIgKyBbdGhpcy5nZXQoMCksIHRoaXMu Z2V0KDEpLCB0aGlzLmdldCgyKSwgdGhpcy5nZXQoMyksIHRoaXMuZ2V0KDQp LCB0aGlzLmdldCg1KV0uam9pbigpICsgIikiOworICAgICAgICB9OworICAg ICAgICBtYXRyaXhwcm90by5vZmZzZXQgPSBmdW5jdGlvbiAoKSB7CisgICAg ICAgICAgICByZXR1cm4gW3RoaXMuZS50b0ZpeGVkKDQpLCB0aGlzLmYudG9G aXhlZCg0KV07CisgICAgICAgIH07CisgICAgICAgIGZ1bmN0aW9uIG5vcm0o YSkgeworICAgICAgICAgICAgcmV0dXJuIGFbMF0gKiBhWzBdICsgYVsxXSAq IGFbMV07CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gbm9ybWFsaXpl KGEpIHsKKyAgICAgICAgICAgIHZhciBtYWcgPSBtYXRoLnNxcnQobm9ybShh KSk7CisgICAgICAgICAgICBhWzBdICYmIChhWzBdIC89IG1hZyk7CisgICAg ICAgICAgICBhWzFdICYmIChhWzFdIC89IG1hZyk7CisgICAgICAgIH0KKyAg ICAgICAgLypcCisgICAgICAgICAqIE1hdHJpeC5kZXRlcm1pbmFudAorICAg ICAgICAgWyBtZXRob2QgXQorICAgICAgICAgKioKKyAgICAgICAgICogRmlu ZHMgZGV0ZXJtaW5hbnQgb2YgdGhlIGdpdmVuIG1hdHJpeC4KKyAgICAgICAg ID0gKG51bWJlcikgZGV0ZXJtaW5hbnQKKyAgICAgICAgXCovCisgICAgICAg IG1hdHJpeHByb3RvLmRldGVybWluYW50ID0gZnVuY3Rpb24gKCkgeworICAg ICAgICAgICAgcmV0dXJuIHRoaXMuYSAqIHRoaXMuZCAtIHRoaXMuYiAqIHRo aXMuYzsKKyAgICAgICAgfTsKKyAgICAgICAgLypcCisgICAgICAgICAqIE1h dHJpeC5zcGxpdAorICAgICAgICAgWyBtZXRob2QgXQorICAgICAgICAgKioK KyAgICAgICAgICogU3BsaXRzIG1hdHJpeCBpbnRvIHByaW1pdGl2ZSB0cmFu c2Zvcm1hdGlvbnMKKyAgICAgICAgID0gKG9iamVjdCkgaW4gZm9ybWF0Ogor ICAgICAgICAgbyBkeCAobnVtYmVyKSB0cmFuc2xhdGlvbiBieSB4CisgICAg ICAgICBvIGR5IChudW1iZXIpIHRyYW5zbGF0aW9uIGJ5IHkKKyAgICAgICAg IG8gc2NhbGV4IChudW1iZXIpIHNjYWxlIGJ5IHgKKyAgICAgICAgIG8gc2Nh bGV5IChudW1iZXIpIHNjYWxlIGJ5IHkKKyAgICAgICAgIG8gc2hlYXIgKG51 bWJlcikgc2hlYXIKKyAgICAgICAgIG8gcm90YXRlIChudW1iZXIpIHJvdGF0 aW9uIGluIGRlZworICAgICAgICAgbyBpc1NpbXBsZSAoYm9vbGVhbikgY291 bGQgaXQgYmUgcmVwcmVzZW50ZWQgdmlhIHNpbXBsZSB0cmFuc2Zvcm1hdGlv bnMKKyAgICAgICAgXCovCisgICAgICAgIG1hdHJpeHByb3RvLnNwbGl0ID0g ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdmFyIG91dCA9IHt9OworICAg ICAgICAgICAgLy8gdHJhbnNsYXRpb24KKyAgICAgICAgICAgIG91dC5keCA9 IHRoaXMuZTsKKyAgICAgICAgICAgIG91dC5keSA9IHRoaXMuZjsKKworICAg ICAgICAgICAgLy8gc2NhbGUgYW5kIHNoZWFyCisgICAgICAgICAgICB2YXIg cm93ID0gW1t0aGlzLmEsIHRoaXMuY10sIFt0aGlzLmIsIHRoaXMuZF1dOwor ICAgICAgICAgICAgb3V0LnNjYWxleCA9IG1hdGguc3FydChub3JtKHJvd1sw XSkpOworICAgICAgICAgICAgbm9ybWFsaXplKHJvd1swXSk7CisKKyAgICAg ICAgICAgIG91dC5zaGVhciA9IHJvd1swXVswXSAqIHJvd1sxXVswXSArIHJv d1swXVsxXSAqIHJvd1sxXVsxXTsKKyAgICAgICAgICAgIHJvd1sxXSA9IFty b3dbMV1bMF0gLSByb3dbMF1bMF0gKiBvdXQuc2hlYXIsIHJvd1sxXVsxXSAt IHJvd1swXVsxXSAqIG91dC5zaGVhcl07CisKKyAgICAgICAgICAgIG91dC5z Y2FsZXkgPSBtYXRoLnNxcnQobm9ybShyb3dbMV0pKTsKKyAgICAgICAgICAg IG5vcm1hbGl6ZShyb3dbMV0pOworICAgICAgICAgICAgb3V0LnNoZWFyIC89 IG91dC5zY2FsZXk7CisKKyAgICAgICAgICAgIGlmICh0aGlzLmRldGVybWlu YW50KCkgPCAwKSB7CisgICAgICAgICAgICAgICAgb3V0LnNjYWxleCA9IC1v dXQuc2NhbGV4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBy b3RhdGlvbgorICAgICAgICAgICAgdmFyIHNpbiA9IC1yb3dbMF1bMV0sCisg ICAgICAgICAgICAgICAgY29zID0gcm93WzFdWzFdOworICAgICAgICAgICAg aWYgKGNvcyA8IDApIHsKKyAgICAgICAgICAgICAgICBvdXQucm90YXRlID0g U25hcC5kZWcobWF0aC5hY29zKGNvcykpOworICAgICAgICAgICAgICAgIGlm IChzaW4gPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5yb3RhdGUg PSAzNjAgLSBvdXQucm90YXRlOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgb3V0LnJvdGF0ZSA9 IFNuYXAuZGVnKG1hdGguYXNpbihzaW4pKTsKKyAgICAgICAgICAgIH0KKwor ICAgICAgICAgICAgb3V0LmlzU2ltcGxlID0gIStvdXQuc2hlYXIudG9GaXhl ZCg5KSAmJiAob3V0LnNjYWxleC50b0ZpeGVkKDkpID09IG91dC5zY2FsZXku dG9GaXhlZCg5KSB8fCAhb3V0LnJvdGF0ZSk7CisgICAgICAgICAgICBvdXQu aXNTdXBlclNpbXBsZSA9ICErb3V0LnNoZWFyLnRvRml4ZWQoOSkgJiYgb3V0 LnNjYWxleC50b0ZpeGVkKDkpID09IG91dC5zY2FsZXkudG9GaXhlZCg5KSAm JiAhb3V0LnJvdGF0ZTsKKyAgICAgICAgICAgIG91dC5ub1JvdGF0aW9uID0g IStvdXQuc2hlYXIudG9GaXhlZCg5KSAmJiAhb3V0LnJvdGF0ZTsKKyAgICAg ICAgICAgIHJldHVybiBvdXQ7CisgICAgICAgIH07CisgICAgICAgIC8qXAor ICAgICAgICAgKiBNYXRyaXgudG9UcmFuc2Zvcm1TdHJpbmcKKyAgICAgICAg IFsgbWV0aG9kIF0KKyAgICAgICAgICoqCisgICAgICAgICAqIFJldHVybnMg dHJhbnNmb3JtIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgZ2l2ZW4gbWF0cml4 CisgICAgICAgICA9IChzdHJpbmcpIHRyYW5zZm9ybSBzdHJpbmcKKyAgICAg ICAgXCovCisgICAgICAgIG1hdHJpeHByb3RvLnRvVHJhbnNmb3JtU3RyaW5n ID0gZnVuY3Rpb24gKHNob3J0ZXIpIHsKKyAgICAgICAgICAgIHZhciBzID0g c2hvcnRlciB8fCB0aGlzLnNwbGl0KCk7CisgICAgICAgICAgICBpZiAoIStz LnNoZWFyLnRvRml4ZWQoOSkpIHsKKyAgICAgICAgICAgICAgICBzLnNjYWxl eCA9ICtzLnNjYWxleC50b0ZpeGVkKDQpOworICAgICAgICAgICAgICAgIHMu c2NhbGV5ID0gK3Muc2NhbGV5LnRvRml4ZWQoNCk7CisgICAgICAgICAgICAg ICAgcy5yb3RhdGUgPSArcy5yb3RhdGUudG9GaXhlZCg0KTsKKyAgICAgICAg ICAgICAgICByZXR1cm4gIChzLmR4IHx8IHMuZHkgPyAidCIgKyBbK3MuZHgu dG9GaXhlZCg0KSwgK3MuZHkudG9GaXhlZCg0KV0gOiBFKSArCisgICAgICAg ICAgICAgICAgICAgICAgICAocy5zY2FsZXggIT0gMSB8fCBzLnNjYWxleSAh PSAxID8gInMiICsgW3Muc2NhbGV4LCBzLnNjYWxleSwgMCwgMF0gOiBFKSAr CisgICAgICAgICAgICAgICAgICAgICAgICAocy5yb3RhdGUgPyAiciIgKyBb K3Mucm90YXRlLnRvRml4ZWQoNCksIDAsIDBdIDogRSk7CisgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAibSIgKyBbdGhp cy5nZXQoMCksIHRoaXMuZ2V0KDEpLCB0aGlzLmdldCgyKSwgdGhpcy5nZXQo MyksIHRoaXMuZ2V0KDQpLCB0aGlzLmdldCg1KV07CisgICAgICAgICAgICB9 CisgICAgICAgIH07CisgICAgfSkoTWF0cml4LnByb3RvdHlwZSk7CisgICAg LypcCisgICAgICogU25hcC5NYXRyaXgKKyAgICAgWyBtZXRob2QgXQorICAg ICAqKgorICAgICAqIE1hdHJpeCBjb25zdHJ1Y3RvciwgZXh0ZW5kIG9uIHlv dXIgb3duIHJpc2suCisgICAgICogVG8gY3JlYXRlIG1hdHJpY2VzIHVzZSBA U25hcC5tYXRyaXguCisgICAgXCovCisgICAgU25hcC5NYXRyaXggPSBNYXRy aXg7CisgICAgLypcCisgICAgICogU25hcC5tYXRyaXgKKyAgICAgWyBtZXRo b2QgXQorICAgICAqKgorICAgICAqIFV0aWxpdHkgbWV0aG9kCisgICAgICoq CisgICAgICogUmV0dXJucyBhIG1hdHJpeCBiYXNlZCBvbiB0aGUgZ2l2ZW4g cGFyYW1ldGVycworICAgICAtIGEgKG51bWJlcikKKyAgICAgLSBiIChudW1i ZXIpCisgICAgIC0gYyAobnVtYmVyKQorICAgICAtIGQgKG51bWJlcikKKyAg ICAgLSBlIChudW1iZXIpCisgICAgIC0gZiAobnVtYmVyKQorICAgICAqIG9y CisgICAgIC0gc3ZnTWF0cml4IChTVkdNYXRyaXgpCisgICAgID0gKG9iamVj dCkgQE1hdHJpeAorICAgIFwqLworICAgIFNuYXAubWF0cml4ID0gZnVuY3Rp b24gKGEsIGIsIGMsIGQsIGUsIGYpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBN YXRyaXgoYSwgYiwgYywgZCwgZSwgZik7CisgICAgfTsKK30pOworLy8gQ29w eXJpZ2h0IChjKSAyMDEzIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBB bGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRo ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIp OworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t cGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4g YSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gaHR0cDovL3d3dy5h cGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNz IHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3 cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8v IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5E LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNl bnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p c3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2Uu CitTbmFwLnBsdWdpbihmdW5jdGlvbiAoU25hcCwgRWxlbWVudCwgUGFwZXIs IGdsb2IsIEZyYWdtZW50KSB7CisgICAgdmFyIGhhcyA9ICJoYXNPd25Qcm9w ZXJ0eSIsCisgICAgICAgIG1ha2UgPSBTbmFwLl8ubWFrZSwKKyAgICAgICAg d3JhcCA9IFNuYXAuXy53cmFwLAorICAgICAgICBpcyA9IFNuYXAuaXMsCisg ICAgICAgIGdldFNvbWVEZWZzID0gU25hcC5fLmdldFNvbWVEZWZzLAorICAg ICAgICByZVVSTFZhbHVlID0gL151cmxcKCM/KFteKV0rKVwpJC8sCisgICAg ICAgICQgPSBTbmFwLl8uJCwKKyAgICAgICAgVVJMID0gU25hcC51cmwsCisg ICAgICAgIFN0ciA9IFN0cmluZywKKyAgICAgICAgc2VwYXJhdG9yID0gU25h cC5fLnNlcGFyYXRvciwKKyAgICAgICAgRSA9ICIiOworICAgIC8vIEF0dHJp YnV0ZXMgZXZlbnQgaGFuZGxlcnMKKyAgICBldmUub24oInNuYXAudXRpbC5h dHRyLm1hc2siLCBmdW5jdGlvbiAodmFsdWUpIHsKKyAgICAgICAgaWYgKHZh bHVlIGluc3RhbmNlb2YgRWxlbWVudCB8fCB2YWx1ZSBpbnN0YW5jZW9mIEZy YWdtZW50KSB7CisgICAgICAgICAgICBldmUuc3RvcCgpOworICAgICAgICAg ICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnJhZ21lbnQgJiYgdmFsdWUubm9k ZS5jaGlsZE5vZGVzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICAgICAg dmFsdWUgPSB2YWx1ZS5ub2RlLmZpcnN0Q2hpbGQ7CisgICAgICAgICAgICAg ICAgZ2V0U29tZURlZnModGhpcykuYXBwZW5kQ2hpbGQodmFsdWUpOworICAg ICAgICAgICAgICAgIHZhbHVlID0gd3JhcCh2YWx1ZSk7CisgICAgICAgICAg ICB9CisgICAgICAgICAgICBpZiAodmFsdWUudHlwZSA9PSAibWFzayIpIHsK KyAgICAgICAgICAgICAgICB2YXIgbWFzayA9IHZhbHVlOworICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtYXNrID0gbWFrZSgibWFz ayIsIGdldFNvbWVEZWZzKHRoaXMpKTsKKyAgICAgICAgICAgICAgICBtYXNr Lm5vZGUuYXBwZW5kQ2hpbGQodmFsdWUubm9kZSk7CisgICAgICAgICAgICB9 CisgICAgICAgICAgICAhbWFzay5ub2RlLmlkICYmICQobWFzay5ub2RlLCB7 CisgICAgICAgICAgICAgICAgaWQ6IG1hc2suaWQKKyAgICAgICAgICAgIH0p OworICAgICAgICAgICAgJCh0aGlzLm5vZGUsIHsKKyAgICAgICAgICAgICAg ICBtYXNrOiBVUkwobWFzay5pZCkKKyAgICAgICAgICAgIH0pOworICAgICAg ICB9CisgICAgfSk7CisgICAgKGZ1bmN0aW9uIChjbGlwSXQpIHsKKyAgICAg ICAgZXZlLm9uKCJzbmFwLnV0aWwuYXR0ci5jbGlwIiwgY2xpcEl0KTsKKyAg ICAgICAgZXZlLm9uKCJzbmFwLnV0aWwuYXR0ci5jbGlwLXBhdGgiLCBjbGlw SXQpOworICAgICAgICBldmUub24oInNuYXAudXRpbC5hdHRyLmNsaXBQYXRo IiwgY2xpcEl0KTsKKyAgICB9KGZ1bmN0aW9uICh2YWx1ZSkgeworICAgICAg ICBpZiAodmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50IHx8IHZhbHVlIGluc3Rh bmNlb2YgRnJhZ21lbnQpIHsKKyAgICAgICAgICAgIGV2ZS5zdG9wKCk7Cisg ICAgICAgICAgICBpZiAodmFsdWUudHlwZSA9PSAiY2xpcFBhdGgiKSB7Cisg ICAgICAgICAgICAgICAgdmFyIGNsaXAgPSB2YWx1ZTsKKyAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2xpcCA9IG1ha2UoImNsaXBQ YXRoIiwgZ2V0U29tZURlZnModGhpcykpOworICAgICAgICAgICAgICAgIGNs aXAubm9kZS5hcHBlbmRDaGlsZCh2YWx1ZS5ub2RlKTsKKyAgICAgICAgICAg ICAgICAhY2xpcC5ub2RlLmlkICYmICQoY2xpcC5ub2RlLCB7CisgICAgICAg ICAgICAgICAgICAgIGlkOiBjbGlwLmlkCisgICAgICAgICAgICAgICAgfSk7 CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkKHRoaXMubm9kZSwgewor ICAgICAgICAgICAgICAgICJjbGlwLXBhdGgiOiBVUkwoY2xpcC5ub2RlLmlk IHx8IGNsaXAuaWQpCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg IH0pKTsKKyAgICBmdW5jdGlvbiBmaWxsU3Ryb2tlKG5hbWUpIHsKKyAgICAg ICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSkgeworICAgICAgICAgICAgZXZl LnN0b3AoKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZy YWdtZW50ICYmIHZhbHVlLm5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMSAm JgorICAgICAgICAgICAgICAgICh2YWx1ZS5ub2RlLmZpcnN0Q2hpbGQudGFn TmFtZSA9PSAicmFkaWFsR3JhZGllbnQiIHx8CisgICAgICAgICAgICAgICAg dmFsdWUubm9kZS5maXJzdENoaWxkLnRhZ05hbWUgPT0gImxpbmVhckdyYWRp ZW50IiB8fAorICAgICAgICAgICAgICAgIHZhbHVlLm5vZGUuZmlyc3RDaGls ZC50YWdOYW1lID09ICJwYXR0ZXJuIikpIHsKKyAgICAgICAgICAgICAgICB2 YWx1ZSA9IHZhbHVlLm5vZGUuZmlyc3RDaGlsZDsKKyAgICAgICAgICAgICAg ICBnZXRTb21lRGVmcyh0aGlzKS5hcHBlbmRDaGlsZCh2YWx1ZSk7CisgICAg ICAgICAgICAgICAgdmFsdWUgPSB3cmFwKHZhbHVlKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQp IHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUudHlwZSA9PSAicmFkaWFs R3JhZGllbnQiIHx8IHZhbHVlLnR5cGUgPT0gImxpbmVhckdyYWRpZW50Igor ICAgICAgICAgICAgICAgICAgIHx8IHZhbHVlLnR5cGUgPT0gInBhdHRlcm4i KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUubm9kZS5pZCkg eworICAgICAgICAgICAgICAgICAgICAgICAgJCh2YWx1ZS5ub2RlLCB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHZhbHVlLmlkCisgICAg ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICB2YXIgZmlsbCA9IFVSTCh2YWx1ZS5u b2RlLmlkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgICAgICAgICBmaWxsID0gdmFsdWUuYXR0cihuYW1lKTsKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg ICAgIGZpbGwgPSBTbmFwLmNvbG9yKHZhbHVlKTsKKyAgICAgICAgICAgICAg ICBpZiAoZmlsbC5lcnJvcikgeworICAgICAgICAgICAgICAgICAgICB2YXIg Z3JhZCA9IFNuYXAoZ2V0U29tZURlZnModGhpcykub3duZXJTVkdFbGVtZW50 KS5ncmFkaWVudCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChn cmFkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdyYWQubm9k ZS5pZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZ3JhZC5u b2RlLCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBn cmFkLmlkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ICBmaWxsID0gVVJMKGdyYWQubm9kZS5pZCk7CisgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaWxsID0g dmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmaWxsID0gU3RyKGZp bGwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIHZhciBhdHRycyA9IHt9OworICAgICAgICAgICAgYXR0cnNbbmFt ZV0gPSBmaWxsOworICAgICAgICAgICAgJCh0aGlzLm5vZGUsIGF0dHJzKTsK KyAgICAgICAgICAgIHRoaXMubm9kZS5zdHlsZVtuYW1lXSA9IEU7CisgICAg ICAgIH07CisgICAgfQorICAgIGV2ZS5vbigic25hcC51dGlsLmF0dHIuZmls bCIsIGZpbGxTdHJva2UoImZpbGwiKSk7CisgICAgZXZlLm9uKCJzbmFwLnV0 aWwuYXR0ci5zdHJva2UiLCBmaWxsU3Ryb2tlKCJzdHJva2UiKSk7CisgICAg dmFyIGdyYWRyZyA9IC9eKFtscl0pKD86XCgoW14pXSopXCkpPyguKikkL2k7 CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuZ3JhZC5wYXJzZSIsIGZ1bmN0aW9u IHBhcnNlR3JhZChzdHJpbmcpIHsKKyAgICAgICAgc3RyaW5nID0gU3RyKHN0 cmluZyk7CisgICAgICAgIHZhciB0b2tlbnMgPSBzdHJpbmcubWF0Y2goZ3Jh ZHJnKTsKKyAgICAgICAgaWYgKCF0b2tlbnMpIHsKKyAgICAgICAgICAgIHJl dHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHZhciB0eXBlID0gdG9r ZW5zWzFdLAorICAgICAgICAgICAgcGFyYW1zID0gdG9rZW5zWzJdLAorICAg ICAgICAgICAgc3RvcHMgPSB0b2tlbnNbM107CisgICAgICAgIHBhcmFtcyA9 IHBhcmFtcy5zcGxpdCgvXHMqLFxzKi8pLm1hcChmdW5jdGlvbiAoZWwpIHsK KyAgICAgICAgICAgIHJldHVybiArZWwgPT0gZWwgPyArZWwgOiBlbDsKKyAg ICAgICAgfSk7CisgICAgICAgIGlmIChwYXJhbXMubGVuZ3RoID09IDEgJiYg cGFyYW1zWzBdID09IDApIHsKKyAgICAgICAgICAgIHBhcmFtcyA9IFtdOwor ICAgICAgICB9CisgICAgICAgIHN0b3BzID0gc3RvcHMuc3BsaXQoIi0iKTsK KyAgICAgICAgc3RvcHMgPSBzdG9wcy5tYXAoZnVuY3Rpb24gKGVsKSB7Cisg ICAgICAgICAgICBlbCA9IGVsLnNwbGl0KCI6Iik7CisgICAgICAgICAgICB2 YXIgb3V0ID0geworICAgICAgICAgICAgICAgIGNvbG9yOiBlbFswXQorICAg ICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmIChlbFsxXSkgeworICAgICAg ICAgICAgICAgIG91dC5vZmZzZXQgPSBwYXJzZUZsb2F0KGVsWzFdKTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvdXQ7CisgICAgICAg IH0pOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdHlwZTogdHlw ZSwKKyAgICAgICAgICAgIHBhcmFtczogcGFyYW1zLAorICAgICAgICAgICAg c3RvcHM6IHN0b3BzCisgICAgICAgIH07CisgICAgfSk7CisKKyAgICBldmUu b24oInNuYXAudXRpbC5hdHRyLmQiLCBmdW5jdGlvbiAodmFsdWUpIHsKKyAg ICAgICAgZXZlLnN0b3AoKTsKKyAgICAgICAgaWYgKGlzKHZhbHVlLCAiYXJy YXkiKSAmJiBpcyh2YWx1ZVswXSwgImFycmF5IikpIHsKKyAgICAgICAgICAg IHZhbHVlID0gU25hcC5wYXRoLnRvU3RyaW5nLmNhbGwodmFsdWUpOworICAg ICAgICB9CisgICAgICAgIHZhbHVlID0gU3RyKHZhbHVlKTsKKyAgICAgICAg aWYgKHZhbHVlLm1hdGNoKC9bcnVvXS9pKSkgeworICAgICAgICAgICAgdmFs dWUgPSBTbmFwLnBhdGgudG9BYnNvbHV0ZSh2YWx1ZSk7CisgICAgICAgIH0K KyAgICAgICAgJCh0aGlzLm5vZGUsIHtkOiB2YWx1ZX0pOworICAgIH0pKC0x KTsKKyAgICBldmUub24oInNuYXAudXRpbC5hdHRyLiN0ZXh0IiwgZnVuY3Rp b24gKHZhbHVlKSB7CisgICAgICAgIGV2ZS5zdG9wKCk7CisgICAgICAgIHZh bHVlID0gU3RyKHZhbHVlKTsKKyAgICAgICAgdmFyIHR4dCA9IGdsb2IuZG9j LmNyZWF0ZVRleHROb2RlKHZhbHVlKTsKKyAgICAgICAgd2hpbGUgKHRoaXMu bm9kZS5maXJzdENoaWxkKSB7CisgICAgICAgICAgICB0aGlzLm5vZGUucmVt b3ZlQ2hpbGQodGhpcy5ub2RlLmZpcnN0Q2hpbGQpOworICAgICAgICB9Cisg ICAgICAgIHRoaXMubm9kZS5hcHBlbmRDaGlsZCh0eHQpOworICAgIH0pKC0x KTsKKyAgICBldmUub24oInNuYXAudXRpbC5hdHRyLnBhdGgiLCBmdW5jdGlv biAodmFsdWUpIHsKKyAgICAgICAgZXZlLnN0b3AoKTsKKyAgICAgICAgdGhp cy5hdHRyKHtkOiB2YWx1ZX0pOworICAgIH0pKC0xKTsKKyAgICBldmUub24o InNuYXAudXRpbC5hdHRyLmNsYXNzIiwgZnVuY3Rpb24gKHZhbHVlKSB7Cisg ICAgICAgIGV2ZS5zdG9wKCk7CisgICAgICAgIHRoaXMubm9kZS5jbGFzc05h bWUuYmFzZVZhbCA9IHZhbHVlOworICAgIH0pKC0xKTsKKyAgICBldmUub24o InNuYXAudXRpbC5hdHRyLnZpZXdCb3giLCBmdW5jdGlvbiAodmFsdWUpIHsK KyAgICAgICAgdmFyIHZiOworICAgICAgICBpZiAoaXModmFsdWUsICJvYmpl Y3QiKSAmJiAieCIgaW4gdmFsdWUpIHsKKyAgICAgICAgICAgIHZiID0gW3Zh bHVlLngsIHZhbHVlLnksIHZhbHVlLndpZHRoLCB2YWx1ZS5oZWlnaHRdLmpv aW4oIiAiKTsKKyAgICAgICAgfSBlbHNlIGlmIChpcyh2YWx1ZSwgImFycmF5 IikpIHsKKyAgICAgICAgICAgIHZiID0gdmFsdWUuam9pbigiICIpOworICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmIgPSB2YWx1ZTsKKyAgICAg ICAgfQorICAgICAgICAkKHRoaXMubm9kZSwgeworICAgICAgICAgICAgdmll d0JveDogdmIKKyAgICAgICAgfSk7CisgICAgICAgIGV2ZS5zdG9wKCk7Cisg ICAgfSkoLTEpOworICAgIGV2ZS5vbigic25hcC51dGlsLmF0dHIudHJhbnNm b3JtIiwgZnVuY3Rpb24gKHZhbHVlKSB7CisgICAgICAgIHRoaXMudHJhbnNm b3JtKHZhbHVlKTsKKyAgICAgICAgZXZlLnN0b3AoKTsKKyAgICB9KSgtMSk7 CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuYXR0ci5yIiwgZnVuY3Rpb24gKHZh bHVlKSB7CisgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gInJlY3QiKSB7Cisg ICAgICAgICAgICBldmUuc3RvcCgpOworICAgICAgICAgICAgJCh0aGlzLm5v ZGUsIHsKKyAgICAgICAgICAgICAgICByeDogdmFsdWUsCisgICAgICAgICAg ICAgICAgcnk6IHZhbHVlCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor ICAgIH0pKC0xKTsKKyAgICBldmUub24oInNuYXAudXRpbC5hdHRyLnRleHRw YXRoIiwgZnVuY3Rpb24gKHZhbHVlKSB7CisgICAgICAgIGV2ZS5zdG9wKCk7 CisgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gInRleHQiKSB7CisgICAgICAg ICAgICB2YXIgaWQsIHRwLCBub2RlOworICAgICAgICAgICAgaWYgKCF2YWx1 ZSAmJiB0aGlzLnRleHRQYXRoKSB7CisgICAgICAgICAgICAgICAgdHAgPSB0 aGlzLnRleHRQYXRoOworICAgICAgICAgICAgICAgIHdoaWxlICh0cC5ub2Rl LmZpcnN0Q2hpbGQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2Rl LmFwcGVuZENoaWxkKHRwLm5vZGUuZmlyc3RDaGlsZCk7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIHRwLnJlbW92ZSgpOworICAgICAg ICAgICAgICAgIGRlbGV0ZSB0aGlzLnRleHRQYXRoOworICAgICAgICAgICAg ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChp cyh2YWx1ZSwgInN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgdmFyIGRl ZnMgPSBnZXRTb21lRGVmcyh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICAg cGF0aCA9IHdyYXAoZGVmcy5wYXJlbnROb2RlKS5wYXRoKHZhbHVlKTsKKyAg ICAgICAgICAgICAgICBkZWZzLmFwcGVuZENoaWxkKHBhdGgubm9kZSk7Cisg ICAgICAgICAgICAgICAgaWQgPSBwYXRoLmlkOworICAgICAgICAgICAgICAg IHBhdGguYXR0cih7aWQ6IGlkfSk7CisgICAgICAgICAgICB9IGVsc2Ugewor ICAgICAgICAgICAgICAgIHZhbHVlID0gd3JhcCh2YWx1ZSk7CisgICAgICAg ICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudCkgeworICAg ICAgICAgICAgICAgICAgICBpZCA9IHZhbHVlLmF0dHIoImlkIik7CisgICAg ICAgICAgICAgICAgICAgIGlmICghaWQpIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgIGlkID0gdmFsdWUuaWQ7CisgICAgICAgICAgICAgICAgICAgICAg ICB2YWx1ZS5hdHRyKHtpZDogaWR9KTsKKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIGlmIChpZCkgeworICAgICAgICAgICAgICAgIHRwID0gdGhpcy50ZXh0 UGF0aDsKKyAgICAgICAgICAgICAgICBub2RlID0gdGhpcy5ub2RlOworICAg ICAgICAgICAgICAgIGlmICh0cCkgeworICAgICAgICAgICAgICAgICAgICB0 cC5hdHRyKHsieGxpbms6aHJlZiI6ICIjIiArIGlkfSk7CisgICAgICAgICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdHAgPSAkKCJ0 ZXh0UGF0aCIsIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bGluazpo cmVmIjogIiMiICsgaWQKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg ICAgICAgICAgICAgICAgIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQpIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIHRwLmFwcGVuZENoaWxkKG5vZGUuZmly c3RDaGlsZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZCh0cCk7CisgICAgICAgICAgICAg ICAgICAgIHRoaXMudGV4dFBhdGggPSB3cmFwKHRwKTsKKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KSgtMSk7 CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuYXR0ci50ZXh0IiwgZnVuY3Rpb24g KHZhbHVlKSB7CisgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gInRleHQiKSB7 CisgICAgICAgICAgICB2YXIgaSA9IDAsCisgICAgICAgICAgICAgICAgbm9k ZSA9IHRoaXMubm9kZSwKKyAgICAgICAgICAgICAgICB0dW5lciA9IGZ1bmN0 aW9uIChjaHVuaykgeworICAgICAgICAgICAgICAgICAgICB2YXIgb3V0ID0g JCgidHNwYW4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzKGNodW5r LCAiYXJyYXkiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2 YXIgaSA9IDA7IGkgPCBjaHVuay5sZW5ndGg7IGkrKykgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmRDaGlsZCh0dW5lcihjaHVu a1tpXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAg b3V0LmFwcGVuZENoaWxkKGdsb2IuZG9jLmNyZWF0ZVRleHROb2RlKGNodW5r KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgb3V0Lm5vcm1hbGl6ZSAmJiBvdXQubm9ybWFsaXplKCk7CisgICAgICAg ICAgICAgICAgICAgIHJldHVybiBvdXQ7CisgICAgICAgICAgICAgICAgfTsK KyAgICAgICAgICAgIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQpIHsKKyAgICAg ICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7 CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgdHVuZWQgPSB0dW5l cih2YWx1ZSk7CisgICAgICAgICAgICB3aGlsZSAodHVuZWQuZmlyc3RDaGls ZCkgeworICAgICAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQodHVuZWQu Zmlyc3RDaGlsZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg ICAgZXZlLnN0b3AoKTsKKyAgICB9KSgtMSk7CisgICAgZnVuY3Rpb24gc2V0 Rm9udFNpemUodmFsdWUpIHsKKyAgICAgICAgZXZlLnN0b3AoKTsKKyAgICAg ICAgaWYgKHZhbHVlID09ICt2YWx1ZSkgeworICAgICAgICAgICAgdmFsdWUg Kz0gInB4IjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLm5vZGUuc3R5bGUu Zm9udFNpemUgPSB2YWx1ZTsKKyAgICB9CisgICAgZXZlLm9uKCJzbmFwLnV0 aWwuYXR0ci5mb250U2l6ZSIsIHNldEZvbnRTaXplKSgtMSk7CisgICAgZXZl Lm9uKCJzbmFwLnV0aWwuYXR0ci5mb250LXNpemUiLCBzZXRGb250U2l6ZSko LTEpOworCisKKyAgICBldmUub24oInNuYXAudXRpbC5nZXRhdHRyLnRyYW5z Zm9ybSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZXZlLnN0b3AoKTsKKyAg ICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtKCk7CisgICAgfSkoLTEpOwor ICAgIGV2ZS5vbigic25hcC51dGlsLmdldGF0dHIudGV4dHBhdGgiLCBmdW5j dGlvbiAoKSB7CisgICAgICAgIGV2ZS5zdG9wKCk7CisgICAgICAgIHJldHVy biB0aGlzLnRleHRQYXRoOworICAgIH0pKC0xKTsKKyAgICAvLyBNYXJrZXJz CisgICAgKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZnVuY3Rpb24gZ2V0dGVy KGVuZCkgeworICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgICAgICAgICBldmUuc3RvcCgpOworICAgICAgICAgICAgICAgIHZh ciBzdHlsZSA9IGdsb2IuZG9jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5 bGUodGhpcy5ub2RlLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJrZXIt IiArIGVuZCk7CisgICAgICAgICAgICAgICAgaWYgKHN0eWxlID09ICJub25l IikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGU7CisgICAg ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFNuYXAoZ2xvYi5kb2MuZ2V0RWxlbWVudEJ5SWQoc3R5bGUubWF0Y2go cmVVUkxWYWx1ZSlbMV0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICB9OworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIHNldHRlcihl bmQpIHsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHsK KyAgICAgICAgICAgICAgICBldmUuc3RvcCgpOworICAgICAgICAgICAgICAg IHZhciBuYW1lID0gIm1hcmtlciIgKyBlbmQuY2hhckF0KDApLnRvVXBwZXJD YXNlKCkgKyBlbmQuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgIGlm ICh2YWx1ZSA9PSAiIiB8fCAhdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAg ICAgdGhpcy5ub2RlLnN0eWxlW25hbWVdID0gIm5vbmUiOworICAgICAgICAg ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgIGlmICh2YWx1ZS50eXBlID09ICJtYXJrZXIiKSB7CisgICAg ICAgICAgICAgICAgICAgIHZhciBpZCA9IHZhbHVlLm5vZGUuaWQ7CisgICAg ICAgICAgICAgICAgICAgIGlmICghaWQpIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICQodmFsdWUubm9kZSwge2lkOiB2YWx1ZS5pZH0pOworICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRoaXMubm9k ZS5zdHlsZVtuYW1lXSA9IFVSTChpZCk7CisgICAgICAgICAgICAgICAgICAg IHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Owor ICAgICAgICB9CisgICAgICAgIGV2ZS5vbigic25hcC51dGlsLmdldGF0dHIu bWFya2VyLWVuZCIsIGdldHRlcigiZW5kIikpKC0xKTsKKyAgICAgICAgZXZl Lm9uKCJzbmFwLnV0aWwuZ2V0YXR0ci5tYXJrZXJFbmQiLCBnZXR0ZXIoImVu ZCIpKSgtMSk7CisgICAgICAgIGV2ZS5vbigic25hcC51dGlsLmdldGF0dHIu bWFya2VyLXN0YXJ0IiwgZ2V0dGVyKCJzdGFydCIpKSgtMSk7CisgICAgICAg IGV2ZS5vbigic25hcC51dGlsLmdldGF0dHIubWFya2VyU3RhcnQiLCBnZXR0 ZXIoInN0YXJ0IikpKC0xKTsKKyAgICAgICAgZXZlLm9uKCJzbmFwLnV0aWwu Z2V0YXR0ci5tYXJrZXItbWlkIiwgZ2V0dGVyKCJtaWQiKSkoLTEpOworICAg ICAgICBldmUub24oInNuYXAudXRpbC5nZXRhdHRyLm1hcmtlck1pZCIsIGdl dHRlcigibWlkIikpKC0xKTsKKyAgICAgICAgZXZlLm9uKCJzbmFwLnV0aWwu YXR0ci5tYXJrZXItZW5kIiwgc2V0dGVyKCJlbmQiKSkoLTEpOworICAgICAg ICBldmUub24oInNuYXAudXRpbC5hdHRyLm1hcmtlckVuZCIsIHNldHRlcigi ZW5kIikpKC0xKTsKKyAgICAgICAgZXZlLm9uKCJzbmFwLnV0aWwuYXR0ci5t YXJrZXItc3RhcnQiLCBzZXR0ZXIoInN0YXJ0IikpKC0xKTsKKyAgICAgICAg ZXZlLm9uKCJzbmFwLnV0aWwuYXR0ci5tYXJrZXJTdGFydCIsIHNldHRlcigi c3RhcnQiKSkoLTEpOworICAgICAgICBldmUub24oInNuYXAudXRpbC5hdHRy Lm1hcmtlci1taWQiLCBzZXR0ZXIoIm1pZCIpKSgtMSk7CisgICAgICAgIGV2 ZS5vbigic25hcC51dGlsLmF0dHIubWFya2VyTWlkIiwgc2V0dGVyKCJtaWQi KSkoLTEpOworICAgIH0oKSk7CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuZ2V0 YXR0ci5yIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAodGhpcy50eXBl ID09ICJyZWN0IiAmJiAkKHRoaXMubm9kZSwgInJ4IikgPT0gJCh0aGlzLm5v ZGUsICJyeSIpKSB7CisgICAgICAgICAgICBldmUuc3RvcCgpOworICAgICAg ICAgICAgcmV0dXJuICQodGhpcy5ub2RlLCAicngiKTsKKyAgICAgICAgfQor ICAgIH0pKC0xKTsKKyAgICBmdW5jdGlvbiB0ZXh0RXh0cmFjdChub2RlKSB7 CisgICAgICAgIHZhciBvdXQgPSBbXTsKKyAgICAgICAgdmFyIGNoaWxkcmVu ID0gbm9kZS5jaGlsZE5vZGVzOworICAgICAgICBmb3IgKHZhciBpID0gMCwg aWkgPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBpaTsgaSsrKSB7CisgICAgICAg ICAgICB2YXIgY2hpID0gY2hpbGRyZW5baV07CisgICAgICAgICAgICBpZiAo Y2hpLm5vZGVUeXBlID09IDMpIHsKKyAgICAgICAgICAgICAgICBvdXQucHVz aChjaGkubm9kZVZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg IGlmIChjaGkudGFnTmFtZSA9PSAidHNwYW4iKSB7CisgICAgICAgICAgICAg ICAgaWYgKGNoaS5jaGlsZE5vZGVzLmxlbmd0aCA9PSAxICYmIGNoaS5maXJz dENoaWxkLm5vZGVUeXBlID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAg b3V0LnB1c2goY2hpLmZpcnN0Q2hpbGQubm9kZVZhbHVlKTsKKyAgICAgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvdXQucHVz aCh0ZXh0RXh0cmFjdChjaGkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG91dDsKKyAg ICB9CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuZ2V0YXR0ci50ZXh0IiwgZnVu Y3Rpb24gKCkgeworICAgICAgICBpZiAodGhpcy50eXBlID09ICJ0ZXh0IiB8 fCB0aGlzLnR5cGUgPT0gInRzcGFuIikgeworICAgICAgICAgICAgZXZlLnN0 b3AoKTsKKyAgICAgICAgICAgIHZhciBvdXQgPSB0ZXh0RXh0cmFjdCh0aGlz Lm5vZGUpOworICAgICAgICAgICAgcmV0dXJuIG91dC5sZW5ndGggPT0gMSA/ IG91dFswXSA6IG91dDsKKyAgICAgICAgfQorICAgIH0pKC0xKTsKKyAgICBl dmUub24oInNuYXAudXRpbC5nZXRhdHRyLiN0ZXh0IiwgZnVuY3Rpb24gKCkg eworICAgICAgICByZXR1cm4gdGhpcy5ub2RlLnRleHRDb250ZW50OworICAg IH0pKC0xKTsKKyAgICBldmUub24oInNuYXAudXRpbC5nZXRhdHRyLnZpZXdC b3giLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGV2ZS5zdG9wKCk7CisgICAg ICAgIHZhciB2YiA9ICQodGhpcy5ub2RlLCAidmlld0JveCIpOworICAgICAg ICBpZiAodmIpIHsKKyAgICAgICAgICAgIHZiID0gdmIuc3BsaXQoc2VwYXJh dG9yKTsKKyAgICAgICAgICAgIHJldHVybiBTbmFwLl8uYm94KCt2YlswXSwg K3ZiWzFdLCArdmJbMl0sICt2YlszXSk7CisgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9KSgtMSk7Cisg ICAgZXZlLm9uKCJzbmFwLnV0aWwuZ2V0YXR0ci5wb2ludHMiLCBmdW5jdGlv biAoKSB7CisgICAgICAgIHZhciBwID0gJCh0aGlzLm5vZGUsICJwb2ludHMi KTsKKyAgICAgICAgZXZlLnN0b3AoKTsKKyAgICAgICAgaWYgKHApIHsKKyAg ICAgICAgICAgIHJldHVybiBwLnNwbGl0KHNlcGFyYXRvcik7CisgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg ICB9KSgtMSk7CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuZ2V0YXR0ci5wYXRo IiwgZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgcCA9ICQodGhpcy5ub2Rl LCAiZCIpOworICAgICAgICBldmUuc3RvcCgpOworICAgICAgICByZXR1cm4g cDsKKyAgICB9KSgtMSk7CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuZ2V0YXR0 ci5jbGFzcyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu bm9kZS5jbGFzc05hbWUuYmFzZVZhbDsKKyAgICB9KSgtMSk7CisgICAgZnVu Y3Rpb24gZ2V0Rm9udFNpemUoKSB7CisgICAgICAgIGV2ZS5zdG9wKCk7Cisg ICAgICAgIHJldHVybiB0aGlzLm5vZGUuc3R5bGUuZm9udFNpemU7CisgICAg fQorICAgIGV2ZS5vbigic25hcC51dGlsLmdldGF0dHIuZm9udFNpemUiLCBn ZXRGb250U2l6ZSkoLTEpOworICAgIGV2ZS5vbigic25hcC51dGlsLmdldGF0 dHIuZm9udC1zaXplIiwgZ2V0Rm9udFNpemUpKC0xKTsKK30pOworCisvLyBD b3B5cmlnaHQgKGMpIDIwMTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gTGljZW5zZWQgdW5kZXIg dGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNl Iik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBj b21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFp biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyBodHRwOi8vd3d3 LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxl c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu IHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUg TGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAor Ly8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJ TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExp Y2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy bWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5z ZS4KK1NuYXAucGx1Z2luKGZ1bmN0aW9uIChTbmFwLCBFbGVtZW50LCBQYXBl ciwgZ2xvYiwgRnJhZ21lbnQpIHsKKyAgICB2YXIgcmdOb3RTcGFjZSA9IC9c UysvZywKKyAgICAgICAgcmdCYWRTcGFjZSA9IC9bXHRcclxuXGZdL2csCisg ICAgICAgIHJnVHJpbSA9IC8oXlxzK3xccyskKS9nLAorICAgICAgICBTdHIg PSBTdHJpbmcsCisgICAgICAgIGVscHJvdG8gPSBFbGVtZW50LnByb3RvdHlw ZTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LmFkZENsYXNzCisgICAgIFsg bWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBBZGRzIGdpdmVuIGNsYXNzIG5h bWUgb3IgbGlzdCBvZiBjbGFzcyBuYW1lcyB0byB0aGUgZWxlbWVudC4KKyAg ICAgLSB2YWx1ZSAoc3RyaW5nKSBjbGFzcyBuYW1lIG9yIHNwYWNlIHNlcGFy YXRlZCBsaXN0IG9mIGNsYXNzIG5hbWVzCisgICAgICoqCisgICAgID0gKEVs ZW1lbnQpIG9yaWdpbmFsIGVsZW1lbnQuCisgICAgXCovCisgICAgZWxwcm90 by5hZGRDbGFzcyA9IGZ1bmN0aW9uICh2YWx1ZSkgeworICAgICAgICB2YXIg Y2xhc3NlcyA9IFN0cih2YWx1ZSB8fCAiIikubWF0Y2gocmdOb3RTcGFjZSkg fHwgW10sCisgICAgICAgICAgICBlbGVtID0gdGhpcy5ub2RlLAorICAgICAg ICAgICAgY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUuYmFzZVZhbCwKKyAg ICAgICAgICAgIGN1ckNsYXNzZXMgPSBjbGFzc05hbWUubWF0Y2gocmdOb3RT cGFjZSkgfHwgW10sCisgICAgICAgICAgICBqLAorICAgICAgICAgICAgcG9z LAorICAgICAgICAgICAgY2xhenosCisgICAgICAgICAgICBmaW5hbFZhbHVl OworCisgICAgICAgIGlmIChjbGFzc2VzLmxlbmd0aCkgeworICAgICAgICAg ICAgaiA9IDA7CisgICAgICAgICAgICB3aGlsZSAoKGNsYXp6ID0gY2xhc3Nl c1tqKytdKSkgeworICAgICAgICAgICAgICAgIHBvcyA9IGN1ckNsYXNzZXMu aW5kZXhPZihjbGF6eik7CisgICAgICAgICAgICAgICAgaWYgKCF+cG9zKSB7 CisgICAgICAgICAgICAgICAgICAgIGN1ckNsYXNzZXMucHVzaChjbGF6eik7 CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg ICAgICBmaW5hbFZhbHVlID0gY3VyQ2xhc3Nlcy5qb2luKCIgIik7CisgICAg ICAgICAgICBpZiAoY2xhc3NOYW1lICE9IGZpbmFsVmFsdWUpIHsKKyAgICAg ICAgICAgICAgICBlbGVtLmNsYXNzTmFtZS5iYXNlVmFsID0gZmluYWxWYWx1 ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4g dGhpczsKKyAgICB9OworICAgIC8qXAorICAgICAqIEVsZW1lbnQucmVtb3Zl Q2xhc3MKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFJlbW92 ZXMgZ2l2ZW4gY2xhc3MgbmFtZSBvciBsaXN0IG9mIGNsYXNzIG5hbWVzIGZy b20gdGhlIGVsZW1lbnQuCisgICAgIC0gdmFsdWUgKHN0cmluZykgY2xhc3Mg bmFtZSBvciBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBjbGFzcyBuYW1lcwor ICAgICAqKgorICAgICA9IChFbGVtZW50KSBvcmlnaW5hbCBlbGVtZW50Lgor ICAgIFwqLworICAgIGVscHJvdG8ucmVtb3ZlQ2xhc3MgPSBmdW5jdGlvbiAo dmFsdWUpIHsKKyAgICAgICAgdmFyIGNsYXNzZXMgPSBTdHIodmFsdWUgfHwg IiIpLm1hdGNoKHJnTm90U3BhY2UpIHx8IFtdLAorICAgICAgICAgICAgZWxl bSA9IHRoaXMubm9kZSwKKyAgICAgICAgICAgIGNsYXNzTmFtZSA9IGVsZW0u Y2xhc3NOYW1lLmJhc2VWYWwsCisgICAgICAgICAgICBjdXJDbGFzc2VzID0g Y2xhc3NOYW1lLm1hdGNoKHJnTm90U3BhY2UpIHx8IFtdLAorICAgICAgICAg ICAgaiwKKyAgICAgICAgICAgIHBvcywKKyAgICAgICAgICAgIGNsYXp6LAor ICAgICAgICAgICAgZmluYWxWYWx1ZTsKKyAgICAgICAgaWYgKGN1ckNsYXNz ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBqID0gMDsKKyAgICAgICAgICAg IHdoaWxlICgoY2xhenogPSBjbGFzc2VzW2orK10pKSB7CisgICAgICAgICAg ICAgICAgcG9zID0gY3VyQ2xhc3Nlcy5pbmRleE9mKGNsYXp6KTsKKyAgICAg ICAgICAgICAgICBpZiAofnBvcykgeworICAgICAgICAgICAgICAgICAgICBj dXJDbGFzc2VzLnNwbGljZShwb3MsIDEpOworICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmluYWxWYWx1ZSA9IGN1 ckNsYXNzZXMuam9pbigiICIpOworICAgICAgICAgICAgaWYgKGNsYXNzTmFt ZSAhPSBmaW5hbFZhbHVlKSB7CisgICAgICAgICAgICAgICAgZWxlbS5jbGFz c05hbWUuYmFzZVZhbCA9IGZpbmFsVmFsdWU7CisgICAgICAgICAgICB9Cisg ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfTsKKyAgICAv KlwKKyAgICAgKiBFbGVtZW50Lmhhc0NsYXNzCisgICAgIFsgbWV0aG9kIF0K KyAgICAgKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGVsZW1lbnQgaGFzIGEg Z2l2ZW4gY2xhc3MgbmFtZSBpbiB0aGUgbGlzdCBvZiBjbGFzcyBuYW1lcyBh cHBsaWVkIHRvIGl0LgorICAgICAtIHZhbHVlIChzdHJpbmcpIGNsYXNzIG5h bWUKKyAgICAgKioKKyAgICAgPSAoYm9vbGVhbikgYHRydWVgIGlmIHRoZSBl bGVtZW50IGhhcyBnaXZlbiBjbGFzcworICAgIFwqLworICAgIGVscHJvdG8u aGFzQ2xhc3MgPSBmdW5jdGlvbiAodmFsdWUpIHsKKyAgICAgICAgdmFyIGVs ZW0gPSB0aGlzLm5vZGUsCisgICAgICAgICAgICBjbGFzc05hbWUgPSBlbGVt LmNsYXNzTmFtZS5iYXNlVmFsLAorICAgICAgICAgICAgY3VyQ2xhc3NlcyA9 IGNsYXNzTmFtZS5tYXRjaChyZ05vdFNwYWNlKSB8fCBbXTsKKyAgICAgICAg cmV0dXJuICEhfmN1ckNsYXNzZXMuaW5kZXhPZih2YWx1ZSk7CisgICAgfTsK KyAgICAvKlwKKyAgICAgKiBFbGVtZW50LnRvZ2dsZUNsYXNzCisgICAgIFsg bWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBBZGQgb3IgcmVtb3ZlIG9uZSBv ciBtb3JlIGNsYXNzZXMgZnJvbSB0aGUgZWxlbWVudCwgZGVwZW5kaW5nIG9u IGVpdGhlcgorICAgICAqIHRoZSBjbGFzc+KAmXMgcHJlc2VuY2Ugb3IgdGhl IHZhbHVlIG9mIHRoZSBgZmxhZ2AgYXJndW1lbnQuCisgICAgIC0gdmFsdWUg KHN0cmluZykgY2xhc3MgbmFtZSBvciBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBv ZiBjbGFzcyBuYW1lcworICAgICAtIGZsYWcgKGJvb2xlYW4pIHZhbHVlIHRv IGRldGVybWluZSB3aGV0aGVyIHRoZSBjbGFzcyBzaG91bGQgYmUgYWRkZWQg b3IgcmVtb3ZlZAorICAgICAqKgorICAgICA9IChFbGVtZW50KSBvcmlnaW5h bCBlbGVtZW50LgorICAgIFwqLworICAgIGVscHJvdG8udG9nZ2xlQ2xhc3Mg PSBmdW5jdGlvbiAodmFsdWUsIGZsYWcpIHsKKyAgICAgICAgaWYgKGZsYWcg IT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGZsYWcpIHsKKyAgICAgICAg ICAgICAgICByZXR1cm4gdGhpcy5hZGRDbGFzcyh2YWx1ZSk7CisgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJl bW92ZUNsYXNzKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgICAgICB2YXIgY2xhc3NlcyA9ICh2YWx1ZSB8fCAiIikubWF0Y2gocmdO b3RTcGFjZSkgfHwgW10sCisgICAgICAgICAgICBlbGVtID0gdGhpcy5ub2Rl LAorICAgICAgICAgICAgY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUuYmFz ZVZhbCwKKyAgICAgICAgICAgIGN1ckNsYXNzZXMgPSBjbGFzc05hbWUubWF0 Y2gocmdOb3RTcGFjZSkgfHwgW10sCisgICAgICAgICAgICBqLAorICAgICAg ICAgICAgcG9zLAorICAgICAgICAgICAgY2xhenosCisgICAgICAgICAgICBm aW5hbFZhbHVlOworICAgICAgICBqID0gMDsKKyAgICAgICAgd2hpbGUgKChj bGF6eiA9IGNsYXNzZXNbaisrXSkpIHsKKyAgICAgICAgICAgIHBvcyA9IGN1 ckNsYXNzZXMuaW5kZXhPZihjbGF6eik7CisgICAgICAgICAgICBpZiAofnBv cykgeworICAgICAgICAgICAgICAgIGN1ckNsYXNzZXMuc3BsaWNlKHBvcywg MSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGN1 ckNsYXNzZXMucHVzaChjbGF6eik7CisgICAgICAgICAgICB9CisgICAgICAg IH0KKworICAgICAgICBmaW5hbFZhbHVlID0gY3VyQ2xhc3Nlcy5qb2luKCIg Iik7CisgICAgICAgIGlmIChjbGFzc05hbWUgIT0gZmluYWxWYWx1ZSkgewor ICAgICAgICAgICAgZWxlbS5jbGFzc05hbWUuYmFzZVZhbCA9IGZpbmFsVmFs dWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfTsK K30pOworCisvLyBDb3B5cmlnaHQgKGMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJ bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gTGlj ZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo dGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxl IGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZ b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisv LyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK Ky8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3Ig YWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRl ZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMg SVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP TlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisv LyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBn b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRl ciB0aGUgTGljZW5zZS4KK1NuYXAucGx1Z2luKGZ1bmN0aW9uIChTbmFwLCBF bGVtZW50LCBQYXBlciwgZ2xvYiwgRnJhZ21lbnQpIHsKKyAgICB2YXIgb3Bl cmF0b3JzID0geworICAgICAgICAgICAgIisiOiBmdW5jdGlvbiAoeCwgeSkg eworICAgICAgICAgICAgICAgICAgICByZXR1cm4geCArIHk7CisgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICItIjogZnVuY3Rpb24gKHgsIHkp IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHggLSB5OworICAgICAg ICAgICAgICAgIH0sCisgICAgICAgICAgICAiLyI6IGZ1bmN0aW9uICh4LCB5 KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB4IC8geTsKKyAgICAg ICAgICAgICAgICB9LAorICAgICAgICAgICAgIioiOiBmdW5jdGlvbiAoeCwg eSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4geCAqIHk7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICBTdHIgPSBTdHJp bmcsCisgICAgICAgIHJlVW5pdCA9IC9bYS16XSskL2ksCisgICAgICAgIHJl QWRkb24gPSAvXlxzKihbK1wtXC8qXSlccyo9XHMqKFtcZC5lRStcLV0rKVxz KihbXlxkXHNdKyk/XHMqJC87CisgICAgZnVuY3Rpb24gZ2V0TnVtYmVyKHZh bCkgeworICAgICAgICByZXR1cm4gdmFsOworICAgIH0KKyAgICBmdW5jdGlv biBnZXRVbml0KHVuaXQpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2 YWwpIHsKKyAgICAgICAgICAgIHJldHVybiArdmFsLnRvRml4ZWQoMykgKyB1 bml0OworICAgICAgICB9OworICAgIH0KKyAgICBldmUub24oInNuYXAudXRp bC5hdHRyIiwgZnVuY3Rpb24gKHZhbCkgeworICAgICAgICB2YXIgcGx1cyA9 IFN0cih2YWwpLm1hdGNoKHJlQWRkb24pOworICAgICAgICBpZiAocGx1cykg eworICAgICAgICAgICAgdmFyIGV2bnQgPSBldmUubnQoKSwKKyAgICAgICAg ICAgICAgICBuYW1lID0gZXZudC5zdWJzdHJpbmcoZXZudC5sYXN0SW5kZXhP ZigiLiIpICsgMSksCisgICAgICAgICAgICAgICAgYSA9IHRoaXMuYXR0cihu YW1lKSwKKyAgICAgICAgICAgICAgICBhdHIgPSB7fTsKKyAgICAgICAgICAg IGV2ZS5zdG9wKCk7CisgICAgICAgICAgICB2YXIgdW5pdCA9IHBsdXNbM10g fHwgIiIsCisgICAgICAgICAgICAgICAgYVVuaXQgPSBhLm1hdGNoKHJlVW5p dCksCisgICAgICAgICAgICAgICAgb3AgPSBvcGVyYXRvcnNbcGx1c1sxXV07 CisgICAgICAgICAgICBpZiAoYVVuaXQgJiYgYVVuaXQgPT0gdW5pdCkgewor ICAgICAgICAgICAgICAgIHZhbCA9IG9wKHBhcnNlRmxvYXQoYSksICtwbHVz WzJdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg YSA9IHRoaXMuYXNQWChuYW1lKTsKKyAgICAgICAgICAgICAgICB2YWwgPSBv cCh0aGlzLmFzUFgobmFtZSksIHRoaXMuYXNQWChuYW1lLCBwbHVzWzJdICsg dW5pdCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzTmFO KGEpIHx8IGlzTmFOKHZhbCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47 CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhdHJbbmFtZV0gPSB2YWw7 CisgICAgICAgICAgICB0aGlzLmF0dHIoYXRyKTsKKyAgICAgICAgfQorICAg IH0pKC0xMCk7CisgICAgZXZlLm9uKCJzbmFwLnV0aWwuZXF1YWwiLCBmdW5j dGlvbiAobmFtZSwgYikgeworICAgICAgICB2YXIgQSwgQiwgYSA9IFN0cih0 aGlzLmF0dHIobmFtZSkgfHwgIiIpLAorICAgICAgICAgICAgZWwgPSB0aGlz LAorICAgICAgICAgICAgYnBsdXMgPSBTdHIoYikubWF0Y2gocmVBZGRvbik7 CisgICAgICAgIGlmIChicGx1cykgeworICAgICAgICAgICAgZXZlLnN0b3Ao KTsKKyAgICAgICAgICAgIHZhciB1bml0ID0gYnBsdXNbM10gfHwgIiIsCisg ICAgICAgICAgICAgICAgYVVuaXQgPSBhLm1hdGNoKHJlVW5pdCksCisgICAg ICAgICAgICAgICAgb3AgPSBvcGVyYXRvcnNbYnBsdXNbMV1dOworICAgICAg ICAgICAgaWYgKGFVbml0ICYmIGFVbml0ID09IHVuaXQpIHsKKyAgICAgICAg ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICBmcm9tOiBw YXJzZUZsb2F0KGEpLAorICAgICAgICAgICAgICAgICAgICB0bzogb3AocGFy c2VGbG9hdChhKSwgK2JwbHVzWzJdKSwKKyAgICAgICAgICAgICAgICAgICAg ZjogZ2V0VW5pdChhVW5pdCkKKyAgICAgICAgICAgICAgICB9OworICAgICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhID0gdGhpcy5hc1BY KG5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg ICAgICAgICAgIGZyb206IGEsCisgICAgICAgICAgICAgICAgICAgIHRvOiBv cChhLCB0aGlzLmFzUFgobmFtZSwgYnBsdXNbMl0gKyB1bml0KSksCisgICAg ICAgICAgICAgICAgICAgIGY6IGdldE51bWJlcgorICAgICAgICAgICAgICAg IH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KSgtMTApOwor fSk7CisvLyBDb3B5cmlnaHQgKGMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJbmNv cnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gTGljZW5z ZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl ICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4 Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3Ug bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyBo dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8v CisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdy ZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1 bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMi IEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg T0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBT ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl cm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0 aGUgTGljZW5zZS4KK1NuYXAucGx1Z2luKGZ1bmN0aW9uIChTbmFwLCBFbGVt ZW50LCBQYXBlciwgZ2xvYiwgRnJhZ21lbnQpIHsKKyAgICB2YXIgcHJvdG8g PSBQYXBlci5wcm90b3R5cGUsCisgICAgICAgIGlzID0gU25hcC5pczsKKyAg ICAvKlwKKyAgICAgKiBQYXBlci5yZWN0CisgICAgIFsgbWV0aG9kIF0KKyAg ICAgKgorICAgICAqIERyYXdzIGEgcmVjdGFuZ2xlCisgICAgICoqCisgICAg IC0geCAobnVtYmVyKSB4IGNvb3JkaW5hdGUgb2YgdGhlIHRvcCBsZWZ0IGNv cm5lcgorICAgICAtIHkgKG51bWJlcikgeSBjb29yZGluYXRlIG9mIHRoZSB0 b3AgbGVmdCBjb3JuZXIKKyAgICAgLSB3aWR0aCAobnVtYmVyKSB3aWR0aAor ICAgICAtIGhlaWdodCAobnVtYmVyKSBoZWlnaHQKKyAgICAgLSByeCAobnVt YmVyKSAjb3B0aW9uYWwgaG9yaXpvbnRhbCByYWRpdXMgZm9yIHJvdW5kZWQg Y29ybmVycywgZGVmYXVsdCBpcyAwCisgICAgIC0gcnkgKG51bWJlcikgI29w dGlvbmFsIHZlcnRpY2FsIHJhZGl1cyBmb3Igcm91bmRlZCBjb3JuZXJzLCBk ZWZhdWx0IGlzIHJ4IG9yIDAKKyAgICAgPSAob2JqZWN0KSB0aGUgYHJlY3Rg IGVsZW1lbnQKKyAgICAgKioKKyAgICAgPiBVc2FnZQorICAgICB8IC8vIHJl Z3VsYXIgcmVjdGFuZ2xlCisgICAgIHwgdmFyIGMgPSBwYXBlci5yZWN0KDEw LCAxMCwgNTAsIDUwKTsKKyAgICAgfCAvLyByZWN0YW5nbGUgd2l0aCByb3Vu ZGVkIGNvcm5lcnMKKyAgICAgfCB2YXIgYyA9IHBhcGVyLnJlY3QoNDAsIDQw LCA1MCwgNTAsIDEwKTsKKyAgICBcKi8KKyAgICBwcm90by5yZWN0ID0gZnVu Y3Rpb24gKHgsIHksIHcsIGgsIHJ4LCByeSkgeworICAgICAgICB2YXIgYXR0 cjsKKyAgICAgICAgaWYgKHJ5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJ5 ID0gcng7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzKHgsICJvYmplY3Qi KSAmJiB4ID09ICJbb2JqZWN0IE9iamVjdF0iKSB7CisgICAgICAgICAgICBh dHRyID0geDsKKyAgICAgICAgfSBlbHNlIGlmICh4ICE9IG51bGwpIHsKKyAg ICAgICAgICAgIGF0dHIgPSB7CisgICAgICAgICAgICAgICAgeDogeCwKKyAg ICAgICAgICAgICAgICB5OiB5LAorICAgICAgICAgICAgICAgIHdpZHRoOiB3 LAorICAgICAgICAgICAgICAgIGhlaWdodDogaAorICAgICAgICAgICAgfTsK KyAgICAgICAgICAgIGlmIChyeCAhPSBudWxsKSB7CisgICAgICAgICAgICAg ICAgYXR0ci5yeCA9IHJ4OworICAgICAgICAgICAgICAgIGF0dHIucnkgPSBy eTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4g dGhpcy5lbCgicmVjdCIsIGF0dHIpOworICAgIH07CisgICAgLypcCisgICAg ICogUGFwZXIuY2lyY2xlCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAg ICAgKiBEcmF3cyBhIGNpcmNsZQorICAgICAqKgorICAgICAtIHggKG51bWJl cikgeCBjb29yZGluYXRlIG9mIHRoZSBjZW50cmUKKyAgICAgLSB5IChudW1i ZXIpIHkgY29vcmRpbmF0ZSBvZiB0aGUgY2VudHJlCisgICAgIC0gciAobnVt YmVyKSByYWRpdXMKKyAgICAgPSAob2JqZWN0KSB0aGUgYGNpcmNsZWAgZWxl bWVudAorICAgICAqKgorICAgICA+IFVzYWdlCisgICAgIHwgdmFyIGMgPSBw YXBlci5jaXJjbGUoNTAsIDUwLCA0MCk7CisgICAgXCovCisgICAgcHJvdG8u Y2lyY2xlID0gZnVuY3Rpb24gKGN4LCBjeSwgcikgeworICAgICAgICB2YXIg YXR0cjsKKyAgICAgICAgaWYgKGlzKGN4LCAib2JqZWN0IikgJiYgY3ggPT0g IltvYmplY3QgT2JqZWN0XSIpIHsKKyAgICAgICAgICAgIGF0dHIgPSBjeDsK KyAgICAgICAgfSBlbHNlIGlmIChjeCAhPSBudWxsKSB7CisgICAgICAgICAg ICBhdHRyID0geworICAgICAgICAgICAgICAgIGN4OiBjeCwKKyAgICAgICAg ICAgICAgICBjeTogY3ksCisgICAgICAgICAgICAgICAgcjogcgorICAgICAg ICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5lbCgi Y2lyY2xlIiwgYXR0cik7CisgICAgfTsKKworICAgIHZhciBwcmVsb2FkID0g KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZnVuY3Rpb24gb25lcnJvcigpIHsK KyAgICAgICAgICAgIHRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlz KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHNyYywg ZikgeworICAgICAgICAgICAgdmFyIGltZyA9IGdsb2IuZG9jLmNyZWF0ZUVs ZW1lbnQoImltZyIpLAorICAgICAgICAgICAgICAgIGJvZHkgPSBnbG9iLmRv Yy5ib2R5OworICAgICAgICAgICAgaW1nLnN0eWxlLmNzc1RleHQgPSAicG9z aXRpb246YWJzb2x1dGU7bGVmdDotOTk5OWVtO3RvcDotOTk5OWVtIjsKKyAg ICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAg ICAgICAgICAgZi5jYWxsKGltZyk7CisgICAgICAgICAgICAgICAgaW1nLm9u bG9hZCA9IGltZy5vbmVycm9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICBi b2R5LnJlbW92ZUNoaWxkKGltZyk7CisgICAgICAgICAgICB9OworICAgICAg ICAgICAgaW1nLm9uZXJyb3IgPSBvbmVycm9yOworICAgICAgICAgICAgYm9k eS5hcHBlbmRDaGlsZChpbWcpOworICAgICAgICAgICAgaW1nLnNyYyA9IHNy YzsKKyAgICAgICAgfTsKKyAgICB9KCkpOworCisgICAgLypcCisgICAgICog UGFwZXIuaW1hZ2UKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAq IFBsYWNlcyBhbiBpbWFnZSBvbiB0aGUgc3VyZmFjZQorICAgICAqKgorICAg ICAtIHNyYyAoc3RyaW5nKSBVUkkgb2YgdGhlIHNvdXJjZSBpbWFnZQorICAg ICAtIHggKG51bWJlcikgeCBvZmZzZXQgcG9zaXRpb24KKyAgICAgLSB5IChu dW1iZXIpIHkgb2Zmc2V0IHBvc2l0aW9uCisgICAgIC0gd2lkdGggKG51bWJl cikgd2lkdGggb2YgdGhlIGltYWdlCisgICAgIC0gaGVpZ2h0IChudW1iZXIp IGhlaWdodCBvZiB0aGUgaW1hZ2UKKyAgICAgPSAob2JqZWN0KSB0aGUgYGlt YWdlYCBlbGVtZW50CisgICAgICogb3IKKyAgICAgPSAob2JqZWN0KSBTbmFw IGVsZW1lbnQgb2JqZWN0IHdpdGggdHlwZSBgaW1hZ2VgCisgICAgICoqCisg ICAgID4gVXNhZ2UKKyAgICAgfCB2YXIgYyA9IHBhcGVyLmltYWdlKCJhcHBs ZS5wbmciLCAxMCwgMTAsIDgwLCA4MCk7CisgICAgXCovCisgICAgcHJvdG8u aW1hZ2UgPSBmdW5jdGlvbiAoc3JjLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7 CisgICAgICAgIHZhciBlbCA9IHRoaXMuZWwoImltYWdlIik7CisgICAgICAg IGlmIChpcyhzcmMsICJvYmplY3QiKSAmJiAic3JjIiBpbiBzcmMpIHsKKyAg ICAgICAgICAgIGVsLmF0dHIoc3JjKTsKKyAgICAgICAgfSBlbHNlIGlmIChz cmMgIT0gbnVsbCkgeworICAgICAgICAgICAgdmFyIHNldCA9IHsKKyAgICAg ICAgICAgICAgICAieGxpbms6aHJlZiI6IHNyYywKKyAgICAgICAgICAgICAg ICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiAibm9uZSIKKyAgICAgICAgICAgIH07 CisgICAgICAgICAgICBpZiAoeCAhPSBudWxsICYmIHkgIT0gbnVsbCkgewor ICAgICAgICAgICAgICAgIHNldC54ID0geDsKKyAgICAgICAgICAgICAgICBz ZXQueSA9IHk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAod2lk dGggIT0gbnVsbCAmJiBoZWlnaHQgIT0gbnVsbCkgeworICAgICAgICAgICAg ICAgIHNldC53aWR0aCA9IHdpZHRoOworICAgICAgICAgICAgICAgIHNldC5o ZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgICAgIHByZWxvYWQoc3JjLCBmdW5jdGlvbiAoKSB7CisgICAgICAg ICAgICAgICAgICAgIFNuYXAuXy4kKGVsLm5vZGUsIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgIHdpZHRoOiB0aGlzLm9mZnNldFdpZHRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLm9mZnNldEhlaWdodAor ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFNuYXAuXy4kKGVsLm5vZGUs IHNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVsOworICAgIH07 CisgICAgLypcCisgICAgICogUGFwZXIuZWxsaXBzZQorICAgICBbIG1ldGhv ZCBdCisgICAgICoqCisgICAgICogRHJhd3MgYW4gZWxsaXBzZQorICAgICAq KgorICAgICAtIHggKG51bWJlcikgeCBjb29yZGluYXRlIG9mIHRoZSBjZW50 cmUKKyAgICAgLSB5IChudW1iZXIpIHkgY29vcmRpbmF0ZSBvZiB0aGUgY2Vu dHJlCisgICAgIC0gcnggKG51bWJlcikgaG9yaXpvbnRhbCByYWRpdXMKKyAg ICAgLSByeSAobnVtYmVyKSB2ZXJ0aWNhbCByYWRpdXMKKyAgICAgPSAob2Jq ZWN0KSB0aGUgYGVsbGlwc2VgIGVsZW1lbnQKKyAgICAgKioKKyAgICAgPiBV c2FnZQorICAgICB8IHZhciBjID0gcGFwZXIuZWxsaXBzZSg1MCwgNTAsIDQw LCAyMCk7CisgICAgXCovCisgICAgcHJvdG8uZWxsaXBzZSA9IGZ1bmN0aW9u IChjeCwgY3ksIHJ4LCByeSkgeworICAgICAgICB2YXIgYXR0cjsKKyAgICAg ICAgaWYgKGlzKGN4LCAib2JqZWN0IikgJiYgY3ggPT0gIltvYmplY3QgT2Jq ZWN0XSIpIHsKKyAgICAgICAgICAgIGF0dHIgPSBjeDsKKyAgICAgICAgfSBl bHNlIGlmIChjeCAhPSBudWxsKSB7CisgICAgICAgICAgICBhdHRyID17Cisg ICAgICAgICAgICAgICAgY3g6IGN4LAorICAgICAgICAgICAgICAgIGN5OiBj eSwKKyAgICAgICAgICAgICAgICByeDogcngsCisgICAgICAgICAgICAgICAg cnk6IHJ5CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJl dHVybiB0aGlzLmVsKCJlbGxpcHNlIiwgYXR0cik7CisgICAgfTsKKyAgICAv LyBTSUVSUkEgUGFwZXIucGF0aCgpOiBVbmNsZWFyIGZyb20gdGhlIGxpbmsg d2hhdCBhIENhdG11bGwtUm9tIGN1cnZldG8gaXMsIGFuZCB3aHkgaXQgd291 bGQgbWFrZSBsaWZlIGFueSBlYXNpZXIuCisgICAgLypcCisgICAgICogUGFw ZXIucGF0aAorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogQ3Jl YXRlcyBhIGA8cGF0aD5gIGVsZW1lbnQgdXNpbmcgdGhlIGdpdmVuIHN0cmlu ZyBhcyB0aGUgcGF0aCdzIGRlZmluaXRpb24KKyAgICAgLSBwYXRoU3RyaW5n IChzdHJpbmcpICNvcHRpb25hbCBwYXRoIHN0cmluZyBpbiBTVkcgZm9ybWF0 CisgICAgICogUGF0aCBzdHJpbmcgY29uc2lzdHMgb2Ygb25lLWxldHRlciBj b21tYW5kcywgZm9sbG93ZWQgYnkgY29tbWEgc2VwcmFyYXRlZCBhcmd1bWVu dHMgaW4gbnVtZXJpY2FsIGZvcm0uIEV4YW1wbGU6CisgICAgIHwgIk0xMCwy MEwzMCw0MCIKKyAgICAgKiBUaGlzIGV4YW1wbGUgZmVhdHVyZXMgdHdvIGNv bW1hbmRzOiBgTWAsIHdpdGggYXJndW1lbnRzIGAoMTAsIDIwKWAgYW5kIGBM YCB3aXRoIGFyZ3VtZW50cyBgKDMwLCA0MClgLiBVcHBlcmNhc2UgbGV0dGVy IGNvbW1hbmRzIGV4cHJlc3MgY29vcmRpbmF0ZXMgaW4gYWJzb2x1dGUgdGVy bXMsIHdoaWxlIGxvd2VyY2FzZSBjb21tYW5kcyBleHByZXNzIHRoZW0gaW4g cmVsYXRpdmUgdGVybXMgZnJvbSB0aGUgbW9zdCByZWNlbnRseSBkZWNsYXJl ZCBjb29yZGluYXRlcy4KKyAgICAgKgorICAgICAjIDxwPkhlcmUgaXMgc2hv cnQgbGlzdCBvZiBjb21tYW5kcyBhdmFpbGFibGUsIGZvciBtb3JlIGRldGFp bHMgc2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9wYXRo cy5odG1sI1BhdGhEYXRhIiB0aXRsZT0iRGV0YWlscyBvZiBhIHBhdGgncyBk YXRhIGF0dHJpYnV0ZSdzIGZvcm1hdCBhcmUgZGVzY3JpYmVkIGluIHRoZSBT Vkcgc3BlY2lmaWNhdGlvbi4iPlNWRyBwYXRoIHN0cmluZyBmb3JtYXQ8L2E+ IG9yIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2Vu L1NWRy9UdXRvcmlhbC9QYXRocyI+YXJ0aWNsZSBhYm91dCBwYXRoIHN0cmlu Z3MgYXQgTUROPC9hPi48L3A+CisgICAgICMgPHRhYmxlPjx0aGVhZD48dHI+ PHRoPkNvbW1hbmQ8L3RoPjx0aD5OYW1lPC90aD48dGg+UGFyYW1ldGVyczwv dGg+PC90cj48L3RoZWFkPjx0Ym9keT4KKyAgICAgIyA8dHI+PHRkPk08L3Rk Pjx0ZD5tb3ZldG88L3RkPjx0ZD4oeCB5KSs8L3RkPjwvdHI+CisgICAgICMg PHRyPjx0ZD5aPC90ZD48dGQ+Y2xvc2VwYXRoPC90ZD48dGQ+KG5vbmUpPC90 ZD48L3RyPgorICAgICAjIDx0cj48dGQ+TDwvdGQ+PHRkPmxpbmV0bzwvdGQ+ PHRkPih4IHkpKzwvdGQ+PC90cj4KKyAgICAgIyA8dHI+PHRkPkg8L3RkPjx0 ZD5ob3Jpem9udGFsIGxpbmV0bzwvdGQ+PHRkPngrPC90ZD48L3RyPgorICAg ICAjIDx0cj48dGQ+VjwvdGQ+PHRkPnZlcnRpY2FsIGxpbmV0bzwvdGQ+PHRk PnkrPC90ZD48L3RyPgorICAgICAjIDx0cj48dGQ+QzwvdGQ+PHRkPmN1cnZl dG88L3RkPjx0ZD4oeDEgeTEgeDIgeTIgeCB5KSs8L3RkPjwvdHI+CisgICAg ICMgPHRyPjx0ZD5TPC90ZD48dGQ+c21vb3RoIGN1cnZldG88L3RkPjx0ZD4o eDIgeTIgeCB5KSs8L3RkPjwvdHI+CisgICAgICMgPHRyPjx0ZD5RPC90ZD48 dGQ+cXVhZHJhdGljIELDqXppZXIgY3VydmV0bzwvdGQ+PHRkPih4MSB5MSB4 IHkpKzwvdGQ+PC90cj4KKyAgICAgIyA8dHI+PHRkPlQ8L3RkPjx0ZD5zbW9v dGggcXVhZHJhdGljIELDqXppZXIgY3VydmV0bzwvdGQ+PHRkPih4IHkpKzwv dGQ+PC90cj4KKyAgICAgIyA8dHI+PHRkPkE8L3RkPjx0ZD5lbGxpcHRpY2Fs IGFyYzwvdGQ+PHRkPihyeCByeSB4LWF4aXMtcm90YXRpb24gbGFyZ2UtYXJj LWZsYWcgc3dlZXAtZmxhZyB4IHkpKzwvdGQ+PC90cj4KKyAgICAgIyA8dHI+ PHRkPlI8L3RkPjx0ZD48YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL0NhdG11bGzigJNSb21fc3BsaW5lI0NhdG11bGwuRTIuODAuOTNS b21fc3BsaW5lIj5DYXRtdWxsLVJvbSBjdXJ2ZXRvPC9hPio8L3RkPjx0ZD54 MSB5MSAoeCB5KSs8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPgorICAgICAq ICogX0NhdG11bGwtUm9tIGN1cnZldG9fIGlzIGEgbm90IHN0YW5kYXJkIFNW RyBjb21tYW5kIGFuZCBhZGRlZCB0byBtYWtlIGxpZmUgZWFzaWVyLgorICAg ICAqIE5vdGU6IHRoZXJlIGlzIGEgc3BlY2lhbCBjYXNlIHdoZW4gYSBwYXRo IGNvbnNpc3RzIG9mIG9ubHkgdGhyZWUgY29tbWFuZHM6IGBNMTAsMTBS4oCm emAuIEluIHRoaXMgY2FzZSB0aGUgcGF0aCBjb25uZWN0cyBiYWNrIHRvIGl0 cyBzdGFydGluZyBwb2ludC4KKyAgICAgPiBVc2FnZQorICAgICB8IHZhciBj ID0gcGFwZXIucGF0aCgiTTEwIDEwTDkwIDkwIik7CisgICAgIHwgLy8gZHJh dyBhIGRpYWdvbmFsIGxpbmU6CisgICAgIHwgLy8gbW92ZSB0byAxMCwxMCwg bGluZSB0byA5MCw5MAorICAgIFwqLworICAgIHByb3RvLnBhdGggPSBmdW5j dGlvbiAoZCkgeworICAgICAgICB2YXIgYXR0cjsKKyAgICAgICAgaWYgKGlz KGQsICJvYmplY3QiKSAmJiAhaXMoZCwgImFycmF5IikpIHsKKyAgICAgICAg ICAgIGF0dHIgPSBkOworICAgICAgICB9IGVsc2UgaWYgKGQpIHsKKyAgICAg ICAgICAgIGF0dHIgPSB7ZDogZH07CisgICAgICAgIH0KKyAgICAgICAgcmV0 dXJuIHRoaXMuZWwoInBhdGgiLCBhdHRyKTsKKyAgICB9OworICAgIC8qXAor ICAgICAqIFBhcGVyLmcKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAg ICAqIENyZWF0ZXMgYSBncm91cCBlbGVtZW50CisgICAgICoqCisgICAgIC0g dmFyYXJncyAo4oCmKSAjb3B0aW9uYWwgZWxlbWVudHMgdG8gbmVzdCB3aXRo aW4gdGhlIGdyb3VwCisgICAgID0gKG9iamVjdCkgdGhlIGBnYCBlbGVtZW50 CisgICAgICoqCisgICAgID4gVXNhZ2UKKyAgICAgfCB2YXIgYzEgPSBwYXBl ci5jaXJjbGUoKSwKKyAgICAgfCAgICAgYzIgPSBwYXBlci5yZWN0KCksCisg ICAgIHwgICAgIGcgPSBwYXBlci5nKGMyLCBjMSk7IC8vIG5vdGUgdGhhdCB0 aGUgb3JkZXIgb2YgZWxlbWVudHMgaXMgZGlmZmVyZW50CisgICAgICogb3IK KyAgICAgfCB2YXIgYzEgPSBwYXBlci5jaXJjbGUoKSwKKyAgICAgfCAgICAg YzIgPSBwYXBlci5yZWN0KCksCisgICAgIHwgICAgIGcgPSBwYXBlci5nKCk7 CisgICAgIHwgZy5hZGQoYzIsIGMxKTsKKyAgICBcKi8KKyAgICAvKlwKKyAg ICAgKiBQYXBlci5ncm91cAorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisg ICAgICogU2VlIEBQYXBlci5nCisgICAgXCovCisgICAgcHJvdG8uZ3JvdXAg PSBwcm90by5nID0gZnVuY3Rpb24gKGZpcnN0KSB7CisgICAgICAgIHZhciBh dHRyLAorICAgICAgICAgICAgZWwgPSB0aGlzLmVsKCJnIik7CisgICAgICAg IGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEgJiYgZmlyc3QgJiYgIWZpcnN0 LnR5cGUpIHsKKyAgICAgICAgICAgIGVsLmF0dHIoZmlyc3QpOworICAgICAg ICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGgpIHsKKyAgICAgICAgICAg IGVsLmFkZChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMs IDApKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZWw7CisgICAgfTsK KyAgICAvKlwKKyAgICAgKiBQYXBlci5zdmcKKyAgICAgWyBtZXRob2QgXQor ICAgICAqKgorICAgICAqIENyZWF0ZXMgYSBuZXN0ZWQgU1ZHIGVsZW1lbnQu CisgICAgIC0geCAobnVtYmVyKSBAb3B0aW9uYWwgWCBvZiB0aGUgZWxlbWVu dAorICAgICAtIHkgKG51bWJlcikgQG9wdGlvbmFsIFkgb2YgdGhlIGVsZW1l bnQKKyAgICAgLSB3aWR0aCAobnVtYmVyKSBAb3B0aW9uYWwgd2lkdGggb2Yg dGhlIGVsZW1lbnQKKyAgICAgLSBoZWlnaHQgKG51bWJlcikgQG9wdGlvbmFs IGhlaWdodCBvZiB0aGUgZWxlbWVudAorICAgICAtIHZieCAobnVtYmVyKSBA b3B0aW9uYWwgdmlld2JveCBYCisgICAgIC0gdmJ5IChudW1iZXIpIEBvcHRp b25hbCB2aWV3Ym94IFkKKyAgICAgLSB2YncgKG51bWJlcikgQG9wdGlvbmFs IHZpZXdib3ggd2lkdGgKKyAgICAgLSB2YmggKG51bWJlcikgQG9wdGlvbmFs IHZpZXdib3ggaGVpZ2h0CisgICAgICoqCisgICAgID0gKG9iamVjdCkgdGhl IGBzdmdgIGVsZW1lbnQKKyAgICAgKioKKyAgICBcKi8KKyAgICBwcm90by5z dmcgPSBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCwgdmJ4LCB2Ynks IHZidywgdmJoKSB7CisgICAgICAgIHZhciBhdHRycyA9IHt9OworICAgICAg ICBpZiAoaXMoeCwgIm9iamVjdCIpICYmIHkgPT0gbnVsbCkgeworICAgICAg ICAgICAgYXR0cnMgPSB4OworICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgaWYgKHggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGF0dHJzLngg PSB4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHkgIT0gbnVs bCkgeworICAgICAgICAgICAgICAgIGF0dHJzLnkgPSB5OworICAgICAgICAg ICAgfQorICAgICAgICAgICAgaWYgKHdpZHRoICE9IG51bGwpIHsKKyAgICAg ICAgICAgICAgICBhdHRycy53aWR0aCA9IHdpZHRoOworICAgICAgICAgICAg fQorICAgICAgICAgICAgaWYgKGhlaWdodCAhPSBudWxsKSB7CisgICAgICAg ICAgICAgICAgYXR0cnMuaGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICAgICAg fQorICAgICAgICAgICAgaWYgKHZieCAhPSBudWxsICYmIHZieSAhPSBudWxs ICYmIHZidyAhPSBudWxsICYmIHZiaCAhPSBudWxsKSB7CisgICAgICAgICAg ICAgICAgYXR0cnMudmlld0JveCA9IFt2YngsIHZieSwgdmJ3LCB2YmhdOwor ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlz LmVsKCJzdmciLCBhdHRycyk7CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBQ YXBlci5tYXNrCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBF cXVpdmFsZW50IGluIGJlaGF2aW91ciB0byBAUGFwZXIuZywgZXhjZXB0IGl0 4oCZcyBhIG1hc2suCisgICAgICoqCisgICAgID0gKG9iamVjdCkgdGhlIGBt YXNrYCBlbGVtZW50CisgICAgICoqCisgICAgXCovCisgICAgcHJvdG8ubWFz ayA9IGZ1bmN0aW9uIChmaXJzdCkgeworICAgICAgICB2YXIgYXR0ciwKKyAg ICAgICAgICAgIGVsID0gdGhpcy5lbCgibWFzayIpOworICAgICAgICBpZiAo YXJndW1lbnRzLmxlbmd0aCA9PSAxICYmIGZpcnN0ICYmICFmaXJzdC50eXBl KSB7CisgICAgICAgICAgICBlbC5hdHRyKGZpcnN0KTsKKyAgICAgICAgfSBl bHNlIGlmIChhcmd1bWVudHMubGVuZ3RoKSB7CisgICAgICAgICAgICBlbC5h ZGQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKSk7 CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVsOworICAgIH07CisgICAg LypcCisgICAgICogUGFwZXIucHRybgorICAgICBbIG1ldGhvZCBdCisgICAg ICoqCisgICAgICogRXF1aXZhbGVudCBpbiBiZWhhdmlvdXIgdG8gQFBhcGVy LmcsIGV4Y2VwdCBpdOKAmXMgYSBwYXR0ZXJuLgorICAgICAtIHggKG51bWJl cikgQG9wdGlvbmFsIFggb2YgdGhlIGVsZW1lbnQKKyAgICAgLSB5IChudW1i ZXIpIEBvcHRpb25hbCBZIG9mIHRoZSBlbGVtZW50CisgICAgIC0gd2lkdGgg KG51bWJlcikgQG9wdGlvbmFsIHdpZHRoIG9mIHRoZSBlbGVtZW50CisgICAg IC0gaGVpZ2h0IChudW1iZXIpIEBvcHRpb25hbCBoZWlnaHQgb2YgdGhlIGVs ZW1lbnQKKyAgICAgLSB2YnggKG51bWJlcikgQG9wdGlvbmFsIHZpZXdib3gg WAorICAgICAtIHZieSAobnVtYmVyKSBAb3B0aW9uYWwgdmlld2JveCBZCisg ICAgIC0gdmJ3IChudW1iZXIpIEBvcHRpb25hbCB2aWV3Ym94IHdpZHRoCisg ICAgIC0gdmJoIChudW1iZXIpIEBvcHRpb25hbCB2aWV3Ym94IGhlaWdodAor ICAgICAqKgorICAgICA9IChvYmplY3QpIHRoZSBgcGF0dGVybmAgZWxlbWVu dAorICAgICAqKgorICAgIFwqLworICAgIHByb3RvLnB0cm4gPSBmdW5jdGlv biAoeCwgeSwgd2lkdGgsIGhlaWdodCwgdngsIHZ5LCB2dywgdmgpIHsKKyAg ICAgICAgaWYgKGlzKHgsICJvYmplY3QiKSkgeworICAgICAgICAgICAgdmFy IGF0dHIgPSB4OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXR0 ciA9IHtwYXR0ZXJuVW5pdHM6ICJ1c2VyU3BhY2VPblVzZSJ9OworICAgICAg ICAgICAgaWYgKHgpIHsKKyAgICAgICAgICAgICAgICBhdHRyLnggPSB4Owor ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHkpIHsKKyAgICAgICAg ICAgICAgICBhdHRyLnkgPSB5OworICAgICAgICAgICAgfQorICAgICAgICAg ICAgaWYgKHdpZHRoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhdHRy LndpZHRoID0gd2lkdGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBp ZiAoaGVpZ2h0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhdHRyLmhl aWdodCA9IGhlaWdodDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm ICh2eCAhPSBudWxsICYmIHZ5ICE9IG51bGwgJiYgdncgIT0gbnVsbCAmJiB2 aCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXR0ci52aWV3Qm94ID0g W3Z4LCB2eSwgdncsIHZoXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg ICAgICAgICAgICAgYXR0ci52aWV3Qm94ID0gW3ggfHwgMCwgeSB8fCAwLCB3 aWR0aCB8fCAwLCBoZWlnaHQgfHwgMF07CisgICAgICAgICAgICB9CisgICAg ICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuZWwoInBhdHRlcm4iLCBhdHRy KTsKKyAgICB9OworICAgIC8qXAorICAgICAqIFBhcGVyLnVzZQorICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogQ3JlYXRlcyBhIDx1c2U+IGVs ZW1lbnQuCisgICAgIC0gaWQgKHN0cmluZykgQG9wdGlvbmFsIGlkIG9mIGVs ZW1lbnQgdG8gbGluaworICAgICAqIG9yCisgICAgIC0gaWQgKEVsZW1lbnQp IEBvcHRpb25hbCBlbGVtZW50IHRvIGxpbmsKKyAgICAgKioKKyAgICAgPSAo b2JqZWN0KSB0aGUgYHVzZWAgZWxlbWVudAorICAgICAqKgorICAgIFwqLwor ICAgIHByb3RvLnVzZSA9IGZ1bmN0aW9uIChpZCkgeworICAgICAgICBpZiAo aWQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGlkIGluc3RhbmNlb2Yg RWxlbWVudCkgeworICAgICAgICAgICAgICAgIGlmICghaWQuYXR0cigiaWQi KSkgeworICAgICAgICAgICAgICAgICAgICBpZC5hdHRyKHtpZDogU25hcC5f LmlkKGlkKX0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICBpZCA9IGlkLmF0dHIoImlkIik7CisgICAgICAgICAgICB9CisgICAgICAg ICAgICBpZiAoU3RyaW5nKGlkKS5jaGFyQXQoKSA9PSAiIyIpIHsKKyAgICAg ICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzLmVsKCJ1c2UiLCB7InhsaW5r OmhyZWYiOiAiIyIgKyBpZH0pOworICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgcmV0dXJuIEVsZW1lbnQucHJvdG90eXBlLnVzZS5jYWxsKHRoaXMp OworICAgICAgICB9CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBQYXBlci5z eW1ib2wKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIENyZWF0 ZXMgYSA8c3ltYm9sPiBlbGVtZW50LgorICAgICAtIHZieCAobnVtYmVyKSBA b3B0aW9uYWwgdmlld2JveCBYCisgICAgIC0gdmJ5IChudW1iZXIpIEBvcHRp b25hbCB2aWV3Ym94IFkKKyAgICAgLSB2YncgKG51bWJlcikgQG9wdGlvbmFs IHZpZXdib3ggd2lkdGgKKyAgICAgLSB2YmggKG51bWJlcikgQG9wdGlvbmFs IHZpZXdib3ggaGVpZ2h0CisgICAgID0gKG9iamVjdCkgdGhlIGBzeW1ib2xg IGVsZW1lbnQKKyAgICAgKioKKyAgICBcKi8KKyAgICBwcm90by5zeW1ib2wg PSBmdW5jdGlvbiAodngsIHZ5LCB2dywgdmgpIHsKKyAgICAgICAgdmFyIGF0 dHIgPSB7fTsKKyAgICAgICAgaWYgKHZ4ICE9IG51bGwgJiYgdnkgIT0gbnVs bCAmJiB2dyAhPSBudWxsICYmIHZoICE9IG51bGwpIHsKKyAgICAgICAgICAg IGF0dHIudmlld0JveCA9IFt2eCwgdnksIHZ3LCB2aF07CisgICAgICAgIH0K KworICAgICAgICByZXR1cm4gdGhpcy5lbCgic3ltYm9sIiwgYXR0cik7Cisg ICAgfTsKKyAgICAvKlwKKyAgICAgKiBQYXBlci50ZXh0CisgICAgIFsgbWV0 aG9kIF0KKyAgICAgKioKKyAgICAgKiBEcmF3cyBhIHRleHQgc3RyaW5nCisg ICAgICoqCisgICAgIC0geCAobnVtYmVyKSB4IGNvb3JkaW5hdGUgcG9zaXRp b24KKyAgICAgLSB5IChudW1iZXIpIHkgY29vcmRpbmF0ZSBwb3NpdGlvbgor ICAgICAtIHRleHQgKHN0cmluZ3xhcnJheSkgVGhlIHRleHQgc3RyaW5nIHRv IGRyYXcgb3IgYXJyYXkgb2Ygc3RyaW5ncyB0byBuZXN0IHdpdGhpbiBzZXBh cmF0ZSBgPHRzcGFuPmAgZWxlbWVudHMKKyAgICAgPSAob2JqZWN0KSB0aGUg YHRleHRgIGVsZW1lbnQKKyAgICAgKioKKyAgICAgPiBVc2FnZQorICAgICB8 IHZhciB0MSA9IHBhcGVyLnRleHQoNTAsIDUwLCAiU25hcCIpOworICAgICB8 IHZhciB0MiA9IHBhcGVyLnRleHQoNTAsIDUwLCBbIlMiLCJuIiwiYSIsInAi XSk7CisgICAgIHwgLy8gVGV4dCBwYXRoIHVzYWdlCisgICAgIHwgdDEuYXR0 cih7dGV4dHBhdGg6ICJNMTAsMTBMMTAwLDEwMCJ9KTsKKyAgICAgfCAvLyBv cgorICAgICB8IHZhciBwdGggPSBwYXBlci5wYXRoKCJNMTAsMTBMMTAwLDEw MCIpOworICAgICB8IHQxLmF0dHIoe3RleHRwYXRoOiBwdGh9KTsKKyAgICBc Ki8KKyAgICBwcm90by50ZXh0ID0gZnVuY3Rpb24gKHgsIHksIHRleHQpIHsK KyAgICAgICAgdmFyIGF0dHIgPSB7fTsKKyAgICAgICAgaWYgKGlzKHgsICJv YmplY3QiKSkgeworICAgICAgICAgICAgYXR0ciA9IHg7CisgICAgICAgIH0g ZWxzZSBpZiAoeCAhPSBudWxsKSB7CisgICAgICAgICAgICBhdHRyID0gewor ICAgICAgICAgICAgICAgIHg6IHgsCisgICAgICAgICAgICAgICAgeTogeSwK KyAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0IHx8ICIiCisgICAgICAgICAg ICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLmVsKCJ0ZXh0 IiwgYXR0cik7CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBQYXBlci5saW5l CisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBEcmF3cyBhIGxp bmUKKyAgICAgKioKKyAgICAgLSB4MSAobnVtYmVyKSB4IGNvb3JkaW5hdGUg cG9zaXRpb24gb2YgdGhlIHN0YXJ0CisgICAgIC0geTEgKG51bWJlcikgeSBj b29yZGluYXRlIHBvc2l0aW9uIG9mIHRoZSBzdGFydAorICAgICAtIHgyIChu dW1iZXIpIHggY29vcmRpbmF0ZSBwb3NpdGlvbiBvZiB0aGUgZW5kCisgICAg IC0geTIgKG51bWJlcikgeSBjb29yZGluYXRlIHBvc2l0aW9uIG9mIHRoZSBl bmQKKyAgICAgPSAob2JqZWN0KSB0aGUgYGxpbmVgIGVsZW1lbnQKKyAgICAg KioKKyAgICAgPiBVc2FnZQorICAgICB8IHZhciB0MSA9IHBhcGVyLmxpbmUo NTAsIDUwLCAxMDAsIDEwMCk7CisgICAgXCovCisgICAgcHJvdG8ubGluZSA9 IGZ1bmN0aW9uICh4MSwgeTEsIHgyLCB5MikgeworICAgICAgICB2YXIgYXR0 ciA9IHt9OworICAgICAgICBpZiAoaXMoeDEsICJvYmplY3QiKSkgeworICAg ICAgICAgICAgYXR0ciA9IHgxOworICAgICAgICB9IGVsc2UgaWYgKHgxICE9 IG51bGwpIHsKKyAgICAgICAgICAgIGF0dHIgPSB7CisgICAgICAgICAgICAg ICAgeDE6IHgxLAorICAgICAgICAgICAgICAgIHgyOiB4MiwKKyAgICAgICAg ICAgICAgICB5MTogeTEsCisgICAgICAgICAgICAgICAgeTI6IHkyCisgICAg ICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLmVs KCJsaW5lIiwgYXR0cik7CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBQYXBl ci5wb2x5bGluZQorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICog RHJhd3MgYSBwb2x5bGluZQorICAgICAqKgorICAgICAtIHBvaW50cyAoYXJy YXkpIGFycmF5IG9mIHBvaW50cworICAgICAqIG9yCisgICAgIC0gdmFyYXJn cyAo4oCmKSBwb2ludHMKKyAgICAgPSAob2JqZWN0KSB0aGUgYHBvbHlsaW5l YCBlbGVtZW50CisgICAgICoqCisgICAgID4gVXNhZ2UKKyAgICAgfCB2YXIg cDEgPSBwYXBlci5wb2x5bGluZShbMTAsIDEwLCAxMDAsIDEwMF0pOworICAg ICB8IHZhciBwMiA9IHBhcGVyLnBvbHlsaW5lKDEwLCAxMCwgMTAwLCAxMDAp OworICAgIFwqLworICAgIHByb3RvLnBvbHlsaW5lID0gZnVuY3Rpb24gKHBv aW50cykgeworICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHsK KyAgICAgICAgICAgIHBvaW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5j YWxsKGFyZ3VtZW50cywgMCk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGF0 dHIgPSB7fTsKKyAgICAgICAgaWYgKGlzKHBvaW50cywgIm9iamVjdCIpICYm ICFpcyhwb2ludHMsICJhcnJheSIpKSB7CisgICAgICAgICAgICBhdHRyID0g cG9pbnRzOworICAgICAgICB9IGVsc2UgaWYgKHBvaW50cyAhPSBudWxsKSB7 CisgICAgICAgICAgICBhdHRyID0ge3BvaW50czogcG9pbnRzfTsKKyAgICAg ICAgfQorICAgICAgICByZXR1cm4gdGhpcy5lbCgicG9seWxpbmUiLCBhdHRy KTsKKyAgICB9OworICAgIC8qXAorICAgICAqIFBhcGVyLnBvbHlnb24KKyAg ICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIERyYXdzIGEgcG9seWdv bi4gU2VlIEBQYXBlci5wb2x5bGluZQorICAgIFwqLworICAgIHByb3RvLnBv bHlnb24gPSBmdW5jdGlvbiAocG9pbnRzKSB7CisgICAgICAgIGlmIChhcmd1 bWVudHMubGVuZ3RoID4gMSkgeworICAgICAgICAgICAgcG9pbnRzID0gQXJy YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTsKKyAgICAg ICAgfQorICAgICAgICB2YXIgYXR0ciA9IHt9OworICAgICAgICBpZiAoaXMo cG9pbnRzLCAib2JqZWN0IikgJiYgIWlzKHBvaW50cywgImFycmF5IikpIHsK KyAgICAgICAgICAgIGF0dHIgPSBwb2ludHM7CisgICAgICAgIH0gZWxzZSBp ZiAocG9pbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGF0dHIgPSB7cG9p bnRzOiBwb2ludHN9OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlz LmVsKCJwb2x5Z29uIiwgYXR0cik7CisgICAgfTsKKyAgICAvLyBncmFkaWVu dHMKKyAgICAoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgJCA9IFNuYXAu Xy4kOworICAgICAgICAvLyBncmFkaWVudHMnIGhlbHBlcnMKKyAgICAgICAg ZnVuY3Rpb24gR3N0b3BzKCkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMu c2VsZWN0QWxsKCJzdG9wIik7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rp b24gR2FkZFN0b3AoY29sb3IsIG9mZnNldCkgeworICAgICAgICAgICAgdmFy IHN0b3AgPSAkKCJzdG9wIiksCisgICAgICAgICAgICAgICAgYXR0ciA9IHsK KyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiArb2Zmc2V0ICsgIiUiCisg ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGNvbG9yID0gU25hcC5j b2xvcihjb2xvcik7CisgICAgICAgICAgICBhdHRyWyJzdG9wLWNvbG9yIl0g PSBjb2xvci5oZXg7CisgICAgICAgICAgICBpZiAoY29sb3Iub3BhY2l0eSA8 IDEpIHsKKyAgICAgICAgICAgICAgICBhdHRyWyJzdG9wLW9wYWNpdHkiXSA9 IGNvbG9yLm9wYWNpdHk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAk KHN0b3AsIGF0dHIpOworICAgICAgICAgICAgdGhpcy5ub2RlLmFwcGVuZENo aWxkKHN0b3ApOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAg IH0KKyAgICAgICAgZnVuY3Rpb24gR2dldEJCb3goKSB7CisgICAgICAgICAg ICBpZiAodGhpcy50eXBlID09ICJsaW5lYXJHcmFkaWVudCIpIHsKKyAgICAg ICAgICAgICAgICB2YXIgeDEgPSAkKHRoaXMubm9kZSwgIngxIikgfHwgMCwK KyAgICAgICAgICAgICAgICAgICAgeDIgPSAkKHRoaXMubm9kZSwgIngyIikg fHwgMSwKKyAgICAgICAgICAgICAgICAgICAgeTEgPSAkKHRoaXMubm9kZSwg InkxIikgfHwgMCwKKyAgICAgICAgICAgICAgICAgICAgeTIgPSAkKHRoaXMu bm9kZSwgInkyIikgfHwgMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU25h cC5fLmJveCh4MSwgeTEsIG1hdGguYWJzKHgyIC0geDEpLCBtYXRoLmFicyh5 MiAtIHkxKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg ICAgIHZhciBjeCA9IHRoaXMubm9kZS5jeCB8fCAuNSwKKyAgICAgICAgICAg ICAgICAgICAgY3kgPSB0aGlzLm5vZGUuY3kgfHwgLjUsCisgICAgICAgICAg ICAgICAgICAgIHIgPSB0aGlzLm5vZGUuciB8fCAwOworICAgICAgICAgICAg ICAgIHJldHVybiBTbmFwLl8uYm94KGN4IC0gciwgY3kgLSByLCByICogMiwg ciAqIDIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZ1 bmN0aW9uIGdyYWRpZW50KGRlZnMsIHN0cikgeworICAgICAgICAgICAgdmFy IGdyYWQgPSBldmUoInNuYXAudXRpbC5ncmFkLnBhcnNlIiwgbnVsbCwgc3Ry KS5maXJzdERlZmluZWQoKSwKKyAgICAgICAgICAgICAgICBlbDsKKyAgICAg ICAgICAgIGlmICghZ3JhZCkgeworICAgICAgICAgICAgICAgIHJldHVybiBu dWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZ3JhZC5wYXJhbXMu dW5zaGlmdChkZWZzKTsKKyAgICAgICAgICAgIGlmIChncmFkLnR5cGUudG9M b3dlckNhc2UoKSA9PSAibCIpIHsKKyAgICAgICAgICAgICAgICBlbCA9IGdy YWRpZW50TGluZWFyLmFwcGx5KDAsIGdyYWQucGFyYW1zKTsKKyAgICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZWwgPSBncmFkaWVudFJh ZGlhbC5hcHBseSgwLCBncmFkLnBhcmFtcyk7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBpZiAoZ3JhZC50eXBlICE9IGdyYWQudHlwZS50b0xvd2Vy Q2FzZSgpKSB7CisgICAgICAgICAgICAgICAgJChlbC5ub2RlLCB7CisgICAg ICAgICAgICAgICAgICAgIGdyYWRpZW50VW5pdHM6ICJ1c2VyU3BhY2VPblVz ZSIKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIHZhciBzdG9wcyA9IGdyYWQuc3RvcHMsCisgICAgICAgICAgICAg ICAgbGVuID0gc3RvcHMubGVuZ3RoLAorICAgICAgICAgICAgICAgIHN0YXJ0 ID0gMCwKKyAgICAgICAgICAgICAgICBqID0gMDsKKyAgICAgICAgICAgIGZ1 bmN0aW9uIHNlZWQoaSwgZW5kKSB7CisgICAgICAgICAgICAgICAgdmFyIHN0 ZXAgPSAoZW5kIC0gc3RhcnQpIC8gKGkgLSBqKTsKKyAgICAgICAgICAgICAg ICBmb3IgKHZhciBrID0gajsgayA8IGk7IGsrKykgeworICAgICAgICAgICAg ICAgICAgICBzdG9wc1trXS5vZmZzZXQgPSArKCtzdGFydCArIHN0ZXAgKiAo ayAtIGopKS50b0ZpeGVkKDIpOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICBqID0gaTsKKyAgICAgICAgICAgICAgICBzdGFydCA9IGVu ZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxlbi0tOworICAgICAg ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgaWYgKCJvZmZz ZXQiIGluIHN0b3BzW2ldKSB7CisgICAgICAgICAgICAgICAgc2VlZChpLCBz dG9wc1tpXS5vZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg c3RvcHNbbGVuXS5vZmZzZXQgPSBzdG9wc1tsZW5dLm9mZnNldCB8fCAxMDA7 CisgICAgICAgICAgICBzZWVkKGxlbiwgc3RvcHNbbGVuXS5vZmZzZXQpOwor ICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8PSBsZW47IGkrKykgeworICAg ICAgICAgICAgICAgIHZhciBzdG9wID0gc3RvcHNbaV07CisgICAgICAgICAg ICAgICAgZWwuYWRkU3RvcChzdG9wLmNvbG9yLCBzdG9wLm9mZnNldCk7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZWw7CisgICAgICAg IH0KKyAgICAgICAgZnVuY3Rpb24gZ3JhZGllbnRMaW5lYXIoZGVmcywgeDEs IHkxLCB4MiwgeTIpIHsKKyAgICAgICAgICAgIHZhciBlbCA9IFNuYXAuXy5t YWtlKCJsaW5lYXJHcmFkaWVudCIsIGRlZnMpOworICAgICAgICAgICAgZWwu c3RvcHMgPSBHc3RvcHM7CisgICAgICAgICAgICBlbC5hZGRTdG9wID0gR2Fk ZFN0b3A7CisgICAgICAgICAgICBlbC5nZXRCQm94ID0gR2dldEJCb3g7Cisg ICAgICAgICAgICBpZiAoeDEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAg ICQoZWwubm9kZSwgeworICAgICAgICAgICAgICAgICAgICB4MTogeDEsCisg ICAgICAgICAgICAgICAgICAgIHkxOiB5MSwKKyAgICAgICAgICAgICAgICAg ICAgeDI6IHgyLAorICAgICAgICAgICAgICAgICAgICB5MjogeTIKKyAgICAg ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJl dHVybiBlbDsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiBncmFkaWVu dFJhZGlhbChkZWZzLCBjeCwgY3ksIHIsIGZ4LCBmeSkgeworICAgICAgICAg ICAgdmFyIGVsID0gU25hcC5fLm1ha2UoInJhZGlhbEdyYWRpZW50IiwgZGVm cyk7CisgICAgICAgICAgICBlbC5zdG9wcyA9IEdzdG9wczsKKyAgICAgICAg ICAgIGVsLmFkZFN0b3AgPSBHYWRkU3RvcDsKKyAgICAgICAgICAgIGVsLmdl dEJCb3ggPSBHZ2V0QkJveDsKKyAgICAgICAgICAgIGlmIChjeCAhPSBudWxs KSB7CisgICAgICAgICAgICAgICAgJChlbC5ub2RlLCB7CisgICAgICAgICAg ICAgICAgICAgIGN4OiBjeCwKKyAgICAgICAgICAgICAgICAgICAgY3k6IGN5 LAorICAgICAgICAgICAgICAgICAgICByOiByCisgICAgICAgICAgICAgICAg fSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZnggIT0gbnVs bCAmJiBmeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgJChlbC5ub2Rl LCB7CisgICAgICAgICAgICAgICAgICAgIGZ4OiBmeCwKKyAgICAgICAgICAg ICAgICAgICAgZnk6IGZ5CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg ICAgICB9CisgICAgICAgICAgICByZXR1cm4gZWw7CisgICAgICAgIH0KKyAg ICAgICAgLypcCisgICAgICAgICAqIFBhcGVyLmdyYWRpZW50CisgICAgICAg ICBbIG1ldGhvZCBdCisgICAgICAgICAqKgorICAgICAgICAgKiBDcmVhdGVz IGEgZ3JhZGllbnQgZWxlbWVudAorICAgICAgICAgKioKKyAgICAgICAgIC0g Z3JhZGllbnQgKHN0cmluZykgZ3JhZGllbnQgZGVzY3JpcHRvcgorICAgICAg ICAgPiBHcmFkaWVudCBEZXNjcmlwdG9yCisgICAgICAgICAqIFRoZSBncmFk aWVudCBkZXNjcmlwdG9yIGlzIGFuIGV4cHJlc3Npb24gZm9ybWF0dGVkIGFz CisgICAgICAgICAqIGZvbGxvd3M6IGA8dHlwZT4oPGNvb3Jkcz4pPGNvbG9y cz5gLiAgVGhlIGA8dHlwZT5gIGNhbiBiZQorICAgICAgICAgKiBlaXRoZXIg bGluZWFyIG9yIHJhZGlhbC4gIFRoZSB1cHBlcmNhc2UgYExgIG9yIGBSYCBs ZXR0ZXJzCisgICAgICAgICAqIGluZGljYXRlIGFic29sdXRlIGNvb3JkaW5h dGVzIG9mZnNldCBmcm9tIHRoZSBTVkcgc3VyZmFjZS4KKyAgICAgICAgICog TG93ZXJjYXNlIGBsYCBvciBgcmAgbGV0dGVycyBpbmRpY2F0ZSBjb29yZGlu YXRlcworICAgICAgICAgKiBjYWxjdWxhdGVkIHJlbGF0aXZlIHRvIHRoZSBl bGVtZW50IHRvIHdoaWNoIHRoZSBncmFkaWVudCBpcworICAgICAgICAgKiBh cHBsaWVkLiAgQ29vcmRpbmF0ZXMgc3BlY2lmeSBhIGxpbmVhciBncmFkaWVu dCB2ZWN0b3IgYXMKKyAgICAgICAgICogYHgxYCwgYHkxYCwgYHgyYCwgYHky YCwgb3IgYSByYWRpYWwgZ3JhZGllbnQgYXMgYGN4YCwgYGN5YCwKKyAgICAg ICAgICogYHJgIGFuZCBvcHRpb25hbCBgZnhgLCBgZnlgIHNwZWNpZnlpbmcg YSBmb2NhbCBwb2ludCBhd2F5CisgICAgICAgICAqIGZyb20gdGhlIGNlbnRl ciBvZiB0aGUgY2lyY2xlLiBTcGVjaWZ5IGA8Y29sb3JzPmAgYXMgYSBsaXN0 CisgICAgICAgICAqIG9mIGRhc2gtc2VwYXJhdGVkIENTUyBjb2xvciB2YWx1 ZXMuICBFYWNoIGNvbG9yIG1heSBiZQorICAgICAgICAgKiBmb2xsb3dlZCBi eSBhIGN1c3RvbSBvZmZzZXQgdmFsdWUsIHNlcGFyYXRlZCB3aXRoIGEgY29s b24KKyAgICAgICAgICogY2hhcmFjdGVyLgorICAgICAgICAgPiBFeGFtcGxl cworICAgICAgICAgKiBMaW5lYXIgZ3JhZGllbnQsIHJlbGF0aXZlIGZyb20g dG9wLWxlZnQgY29ybmVyIHRvIGJvdHRvbS1yaWdodAorICAgICAgICAgKiBj b3JuZXIsIGZyb20gYmxhY2sgdGhyb3VnaCByZWQgdG8gd2hpdGU6CisgICAg ICAgICB8IHZhciBnID0gcGFwZXIuZ3JhZGllbnQoImwoMCwgMCwgMSwgMSkj MDAwLSNmMDAtI2ZmZiIpOworICAgICAgICAgKiBMaW5lYXIgZ3JhZGllbnQs IGFic29sdXRlIGZyb20gKDAsIDApIHRvICgxMDAsIDEwMCksIGZyb20gYmxh Y2sKKyAgICAgICAgICogdGhyb3VnaCByZWQgYXQgMjUlIHRvIHdoaXRlOgor ICAgICAgICAgfCB2YXIgZyA9IHBhcGVyLmdyYWRpZW50KCJMKDAsIDAsIDEw MCwgMTAwKSMwMDAtI2YwMDoyNS0jZmZmIik7CisgICAgICAgICAqIFJhZGlh bCBncmFkaWVudCwgcmVsYXRpdmUgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSBl bGVtZW50IHdpdGggcmFkaXVzCisgICAgICAgICAqIGhhbGYgdGhlIHdpZHRo LCBmcm9tIGJsYWNrIHRvIHdoaXRlOgorICAgICAgICAgfCB2YXIgZyA9IHBh cGVyLmdyYWRpZW50KCJyKDAuNSwgMC41LCAwLjUpIzAwMC0jZmZmIik7Cisg ICAgICAgICAqIFRvIGFwcGx5IHRoZSBncmFkaWVudDoKKyAgICAgICAgIHwg cGFwZXIuY2lyY2xlKDUwLCA1MCwgNDApLmF0dHIoeworICAgICAgICAgfCAg ICAgZmlsbDogZworICAgICAgICAgfCB9KTsKKyAgICAgICAgID0gKG9iamVj dCkgdGhlIGBncmFkaWVudGAgZWxlbWVudAorICAgICAgICBcKi8KKyAgICAg ICAgcHJvdG8uZ3JhZGllbnQgPSBmdW5jdGlvbiAoc3RyKSB7CisgICAgICAg ICAgICByZXR1cm4gZ3JhZGllbnQodGhpcy5kZWZzLCBzdHIpOworICAgICAg ICB9OworICAgICAgICBwcm90by5ncmFkaWVudExpbmVhciA9IGZ1bmN0aW9u ICh4MSwgeTEsIHgyLCB5MikgeworICAgICAgICAgICAgcmV0dXJuIGdyYWRp ZW50TGluZWFyKHRoaXMuZGVmcywgeDEsIHkxLCB4MiwgeTIpOworICAgICAg ICB9OworICAgICAgICBwcm90by5ncmFkaWVudFJhZGlhbCA9IGZ1bmN0aW9u IChjeCwgY3ksIHIsIGZ4LCBmeSkgeworICAgICAgICAgICAgcmV0dXJuIGdy YWRpZW50UmFkaWFsKHRoaXMuZGVmcywgY3gsIGN5LCByLCBmeCwgZnkpOwor ICAgICAgICB9OworICAgICAgICAvKlwKKyAgICAgICAgICogUGFwZXIudG9T dHJpbmcKKyAgICAgICAgIFsgbWV0aG9kIF0KKyAgICAgICAgICoqCisgICAg ICAgICAqIFJldHVybnMgU1ZHIGNvZGUgZm9yIHRoZSBAUGFwZXIKKyAgICAg ICAgID0gKHN0cmluZykgU1ZHIGNvZGUgZm9yIHRoZSBAUGFwZXIKKyAgICAg ICAgXCovCisgICAgICAgIHByb3RvLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkg eworICAgICAgICAgICAgdmFyIGRvYyA9IHRoaXMubm9kZS5vd25lckRvY3Vt ZW50LAorICAgICAgICAgICAgICAgIGYgPSBkb2MuY3JlYXRlRG9jdW1lbnRG cmFnbWVudCgpLAorICAgICAgICAgICAgICAgIGQgPSBkb2MuY3JlYXRlRWxl bWVudCgiZGl2IiksCisgICAgICAgICAgICAgICAgc3ZnID0gdGhpcy5ub2Rl LmNsb25lTm9kZSh0cnVlKSwKKyAgICAgICAgICAgICAgICByZXM7CisgICAg ICAgICAgICBmLmFwcGVuZENoaWxkKGQpOworICAgICAgICAgICAgZC5hcHBl bmRDaGlsZChzdmcpOworICAgICAgICAgICAgU25hcC5fLiQoc3ZnLCB7eG1s bnM6ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9KTsKKyAgICAgICAg ICAgIHJlcyA9IGQuaW5uZXJIVE1MOworICAgICAgICAgICAgZi5yZW1vdmVD aGlsZChmLmZpcnN0Q2hpbGQpOworICAgICAgICAgICAgcmV0dXJuIHJlczsK KyAgICAgICAgfTsKKyAgICAgICAgLypcCisgICAgICAgICAqIFBhcGVyLnRv RGF0YVVSTAorICAgICAgICAgWyBtZXRob2QgXQorICAgICAgICAgKioKKyAg ICAgICAgICogUmV0dXJucyBTVkcgY29kZSBmb3IgdGhlIEBQYXBlciBhcyBE YXRhIFVSSSBzdHJpbmcuCisgICAgICAgICA9IChzdHJpbmcpIERhdGEgVVJJ IHN0cmluZworICAgICAgICBcKi8KKyAgICAgICAgcHJvdG8udG9EYXRhVVJM ID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdyAmJiB3 aW5kb3cuYnRvYSkgeworICAgICAgICAgICAgICAgIHJldHVybiAiZGF0YTpp bWFnZS9zdmcreG1sO2Jhc2U2NCwiICsgYnRvYSh1bmVzY2FwZShlbmNvZGVV UklDb21wb25lbnQodGhpcykpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg fTsKKyAgICAgICAgLypcCisgICAgICAgICAqIFBhcGVyLmNsZWFyCisgICAg ICAgICBbIG1ldGhvZCBdCisgICAgICAgICAqKgorICAgICAgICAgKiBSZW1v dmVzIGFsbCBjaGlsZCBub2RlcyBvZiB0aGUgcGFwZXIsIGV4Y2VwdCA8ZGVm cz4uCisgICAgICAgIFwqLworICAgICAgICBwcm90by5jbGVhciA9IGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5ub2RlLmZp cnN0Q2hpbGQsCisgICAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgICAg IHdoaWxlIChub2RlKSB7CisgICAgICAgICAgICAgICAgbmV4dCA9IG5vZGUu bmV4dFNpYmxpbmc7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUudGFnTmFt ZSAhPSAiZGVmcyIpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5wYXJl bnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpOworICAgICAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHByb3RvLmNsZWFyLmNhbGwo e25vZGU6IG5vZGV9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgbm9kZSA9IG5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH07 CisgICAgfSgpKTsKK30pOworCisvLyBDb3B5cmlnaHQgKGMpIDIwMTMgQWRv YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW ZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1 c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExp Y2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vu c2UgYXQKKy8vCisvLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv TElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisv LyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl ZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVT IE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9y IGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZp YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1p dGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK1NuYXAucGx1Z2luKGZ1bmN0 aW9uIChTbmFwLCBFbGVtZW50LCBQYXBlciwgZ2xvYikgeworICAgIHZhciBl bHByb3RvID0gRWxlbWVudC5wcm90b3R5cGUsCisgICAgICAgIGlzID0gU25h cC5pcywKKyAgICAgICAgY2xvbmUgPSBTbmFwLl8uY2xvbmUsCisgICAgICAg IGhhcyA9ICJoYXNPd25Qcm9wZXJ0eSIsCisgICAgICAgIHAycyA9IC8sPyhb YS16XSksPy9naSwKKyAgICAgICAgdG9GbG9hdCA9IHBhcnNlRmxvYXQsCisg ICAgICAgIG1hdGggPSBNYXRoLAorICAgICAgICBQSSA9IG1hdGguUEksCisg ICAgICAgIG1taW4gPSBtYXRoLm1pbiwKKyAgICAgICAgbW1heCA9IG1hdGgu bWF4LAorICAgICAgICBwb3cgPSBtYXRoLnBvdywKKyAgICAgICAgYWJzID0g bWF0aC5hYnM7CisgICAgZnVuY3Rpb24gcGF0aHMocHMpIHsKKyAgICAgICAg dmFyIHAgPSBwYXRocy5wcyA9IHBhdGhzLnBzIHx8IHt9OworICAgICAgICBp ZiAocFtwc10pIHsKKyAgICAgICAgICAgIHBbcHNdLnNsZWVwID0gMTAwOwor ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcFtwc10gPSB7CisgICAg ICAgICAgICAgICAgc2xlZXA6IDEwMAorICAgICAgICAgICAgfTsKKyAgICAg ICAgfQorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAg ICAgICAgIGZvciAodmFyIGtleSBpbiBwKSBpZiAocFtoYXNdKGtleSkgJiYg a2V5ICE9IHBzKSB7CisgICAgICAgICAgICAgICAgcFtrZXldLnNsZWVwLS07 CisgICAgICAgICAgICAgICAgIXBba2V5XS5zbGVlcCAmJiBkZWxldGUgcFtr ZXldOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgcmV0 dXJuIHBbcHNdOworICAgIH0KKyAgICBmdW5jdGlvbiBib3goeCwgeSwgd2lk dGgsIGhlaWdodCkgeworICAgICAgICBpZiAoeCA9PSBudWxsKSB7CisgICAg ICAgICAgICB4ID0geSA9IHdpZHRoID0gaGVpZ2h0ID0gMDsKKyAgICAgICAg fQorICAgICAgICBpZiAoeSA9PSBudWxsKSB7CisgICAgICAgICAgICB5ID0g eC55OworICAgICAgICAgICAgd2lkdGggPSB4LndpZHRoOworICAgICAgICAg ICAgaGVpZ2h0ID0geC5oZWlnaHQ7CisgICAgICAgICAgICB4ID0geC54Owor ICAgICAgICB9CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB4OiB4 LAorICAgICAgICAgICAgeTogeSwKKyAgICAgICAgICAgIHdpZHRoOiB3aWR0 aCwKKyAgICAgICAgICAgIHc6IHdpZHRoLAorICAgICAgICAgICAgaGVpZ2h0 OiBoZWlnaHQsCisgICAgICAgICAgICBoOiBoZWlnaHQsCisgICAgICAgICAg ICB4MjogeCArIHdpZHRoLAorICAgICAgICAgICAgeTI6IHkgKyBoZWlnaHQs CisgICAgICAgICAgICBjeDogeCArIHdpZHRoIC8gMiwKKyAgICAgICAgICAg IGN5OiB5ICsgaGVpZ2h0IC8gMiwKKyAgICAgICAgICAgIHIxOiBtYXRoLm1p bih3aWR0aCwgaGVpZ2h0KSAvIDIsCisgICAgICAgICAgICByMjogbWF0aC5t YXgod2lkdGgsIGhlaWdodCkgLyAyLAorICAgICAgICAgICAgcjA6IG1hdGgu c3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KSAvIDIsCisg ICAgICAgICAgICBwYXRoOiByZWN0UGF0aCh4LCB5LCB3aWR0aCwgaGVpZ2h0 KSwKKyAgICAgICAgICAgIHZiOiBbeCwgeSwgd2lkdGgsIGhlaWdodF0uam9p bigiICIpCisgICAgICAgIH07CisgICAgfQorICAgIGZ1bmN0aW9uIHRvU3Ry aW5nKCkgeworICAgICAgICByZXR1cm4gdGhpcy5qb2luKCIsIikucmVwbGFj ZShwMnMsICIkMSIpOworICAgIH0KKyAgICBmdW5jdGlvbiBwYXRoQ2xvbmUo cGF0aEFycmF5KSB7CisgICAgICAgIHZhciByZXMgPSBjbG9uZShwYXRoQXJy YXkpOworICAgICAgICByZXMudG9TdHJpbmcgPSB0b1N0cmluZzsKKyAgICAg ICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgZnVuY3Rpb24gZ2V0UG9pbnRB dFNlZ21lbnRMZW5ndGgocDF4LCBwMXksIGMxeCwgYzF5LCBjMngsIGMyeSwg cDJ4LCBwMnksIGxlbmd0aCkgeworICAgICAgICBpZiAobGVuZ3RoID09IG51 bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBiZXpsZW4ocDF4LCBwMXksIGMx eCwgYzF5LCBjMngsIGMyeSwgcDJ4LCBwMnkpOworICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgcmV0dXJuIGZpbmREb3RzQXRTZWdtZW50KHAxeCwg cDF5LCBjMXgsIGMxeSwgYzJ4LCBjMnksIHAyeCwgcDJ5LAorICAgICAgICAg ICAgICAgIGdldFRvdExlbihwMXgsIHAxeSwgYzF4LCBjMXksIGMyeCwgYzJ5 LCBwMngsIHAyeSwgbGVuZ3RoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAg ZnVuY3Rpb24gZ2V0TGVuZ3RoRmFjdG9yeShpc3RvdGFsLCBzdWJwYXRoKSB7 CisgICAgICAgIGZ1bmN0aW9uIE8odmFsKSB7CisgICAgICAgICAgICByZXR1 cm4gKygrdmFsKS50b0ZpeGVkKDMpOworICAgICAgICB9CisgICAgICAgIHJl dHVybiBTbmFwLl8uY2FjaGVyKGZ1bmN0aW9uIChwYXRoLCBsZW5ndGgsIG9u bHlzdGFydCkgeworICAgICAgICAgICAgaWYgKHBhdGggaW5zdGFuY2VvZiBF bGVtZW50KSB7CisgICAgICAgICAgICAgICAgcGF0aCA9IHBhdGguYXR0cigi ZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGF0aCA9IHBhdGgy Y3VydmUocGF0aCk7CisgICAgICAgICAgICB2YXIgeCwgeSwgcCwgbCwgc3Ag PSAiIiwgc3VicGF0aHMgPSB7fSwgcG9pbnQsCisgICAgICAgICAgICAgICAg bGVuID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBpaSA9IHBh dGgubGVuZ3RoOyBpIDwgaWk7IGkrKykgeworICAgICAgICAgICAgICAgIHAg PSBwYXRoW2ldOworICAgICAgICAgICAgICAgIGlmIChwWzBdID09ICJNIikg eworICAgICAgICAgICAgICAgICAgICB4ID0gK3BbMV07CisgICAgICAgICAg ICAgICAgICAgIHkgPSArcFsyXTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgICAgICAgICBsID0gZ2V0UG9pbnRBdFNlZ21lbnRM ZW5ndGgoeCwgeSwgcFsxXSwgcFsyXSwgcFszXSwgcFs0XSwgcFs1XSwgcFs2 XSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gKyBsID4gbGVuZ3Ro KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VicGF0aCAmJiAh c3VicGF0aHMuc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwb2ludCA9IGdldFBvaW50QXRTZWdtZW50TGVuZ3RoKHgsIHksIHBbMV0s IHBbMl0sIHBbM10sIHBbNF0sIHBbNV0sIHBbNl0sIGxlbmd0aCAtIGxlbik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AgKz0gWworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiQyIgKyBPKHBvaW50LnN0YXJ0 LngpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPKHBvaW50 LnN0YXJ0LnkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP KHBvaW50Lm0ueCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE8ocG9pbnQubS55KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTyhwb2ludC54KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTyhwb2ludC55KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9ubHlzdGFydCkg e3JldHVybiBzcDt9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vi cGF0aHMuc3RhcnQgPSBzcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzcCA9IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk0i ICsgTyhwb2ludC54KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTyhwb2ludC55KSArICJDIiArIE8ocG9pbnQubi54KSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTyhwb2ludC5uLnkpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPKHBvaW50LmVuZC54KSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyhwb2ludC5lbmQueSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8ocFs1XSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8ocFs2XSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBdLmpvaW4oKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4gKz0gbDsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB4ID0gK3BbNV07CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeSA9ICtwWzZdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCFpc3RvdGFsICYmICFzdWJwYXRoKSB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnQgPSBnZXRQb2lu dEF0U2VnbWVudExlbmd0aCh4LCB5LCBwWzFdLCBwWzJdLCBwWzNdLCBwWzRd LCBwWzVdLCBwWzZdLCBsZW5ndGggLSBsZW4pOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiBwb2ludDsKKyAgICAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICBsZW4gKz0gbDsKKyAgICAgICAgICAgICAgICAgICAgeCA9ICtw WzVdOworICAgICAgICAgICAgICAgICAgICB5ID0gK3BbNl07CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNwICs9IHAuc2hpZnQoKSAr IHA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWJwYXRocy5lbmQg PSBzcDsKKyAgICAgICAgICAgIHBvaW50ID0gaXN0b3RhbCA/IGxlbiA6IHN1 YnBhdGggPyBzdWJwYXRocyA6IGZpbmREb3RzQXRTZWdtZW50KHgsIHksIHBb MF0sIHBbMV0sIHBbMl0sIHBbM10sIHBbNF0sIHBbNV0sIDEpOworICAgICAg ICAgICAgcmV0dXJuIHBvaW50OworICAgICAgICB9LCBudWxsLCBTbmFwLl8u Y2xvbmUpOworICAgIH0KKyAgICB2YXIgZ2V0VG90YWxMZW5ndGggPSBnZXRM ZW5ndGhGYWN0b3J5KDEpLAorICAgICAgICBnZXRQb2ludEF0TGVuZ3RoID0g Z2V0TGVuZ3RoRmFjdG9yeSgpLAorICAgICAgICBnZXRTdWJwYXRoc0F0TGVu Z3RoID0gZ2V0TGVuZ3RoRmFjdG9yeSgwLCAxKTsKKyAgICBmdW5jdGlvbiBm aW5kRG90c0F0U2VnbWVudChwMXgsIHAxeSwgYzF4LCBjMXksIGMyeCwgYzJ5 LCBwMngsIHAyeSwgdCkgeworICAgICAgICB2YXIgdDEgPSAxIC0gdCwKKyAg ICAgICAgICAgIHQxMyA9IHBvdyh0MSwgMyksCisgICAgICAgICAgICB0MTIg PSBwb3codDEsIDIpLAorICAgICAgICAgICAgdDIgPSB0ICogdCwKKyAgICAg ICAgICAgIHQzID0gdDIgKiB0LAorICAgICAgICAgICAgeCA9IHQxMyAqIHAx eCArIHQxMiAqIDMgKiB0ICogYzF4ICsgdDEgKiAzICogdCAqIHQgKiBjMngg KyB0MyAqIHAyeCwKKyAgICAgICAgICAgIHkgPSB0MTMgKiBwMXkgKyB0MTIg KiAzICogdCAqIGMxeSArIHQxICogMyAqIHQgKiB0ICogYzJ5ICsgdDMgKiBw MnksCisgICAgICAgICAgICBteCA9IHAxeCArIDIgKiB0ICogKGMxeCAtIHAx eCkgKyB0MiAqIChjMnggLSAyICogYzF4ICsgcDF4KSwKKyAgICAgICAgICAg IG15ID0gcDF5ICsgMiAqIHQgKiAoYzF5IC0gcDF5KSArIHQyICogKGMyeSAt IDIgKiBjMXkgKyBwMXkpLAorICAgICAgICAgICAgbnggPSBjMXggKyAyICog dCAqIChjMnggLSBjMXgpICsgdDIgKiAocDJ4IC0gMiAqIGMyeCArIGMxeCks CisgICAgICAgICAgICBueSA9IGMxeSArIDIgKiB0ICogKGMyeSAtIGMxeSkg KyB0MiAqIChwMnkgLSAyICogYzJ5ICsgYzF5KSwKKyAgICAgICAgICAgIGF4 ID0gdDEgKiBwMXggKyB0ICogYzF4LAorICAgICAgICAgICAgYXkgPSB0MSAq IHAxeSArIHQgKiBjMXksCisgICAgICAgICAgICBjeCA9IHQxICogYzJ4ICsg dCAqIHAyeCwKKyAgICAgICAgICAgIGN5ID0gdDEgKiBjMnkgKyB0ICogcDJ5 LAorICAgICAgICAgICAgYWxwaGEgPSAoOTAgLSBtYXRoLmF0YW4yKG14IC0g bngsIG15IC0gbnkpICogMTgwIC8gUEkpOworICAgICAgICAvLyAobXggPiBu eCB8fCBteSA8IG55KSAmJiAoYWxwaGEgKz0gMTgwKTsKKyAgICAgICAgcmV0 dXJuIHsKKyAgICAgICAgICAgIHg6IHgsCisgICAgICAgICAgICB5OiB5LAor ICAgICAgICAgICAgbToge3g6IG14LCB5OiBteX0sCisgICAgICAgICAgICBu OiB7eDogbngsIHk6IG55fSwKKyAgICAgICAgICAgIHN0YXJ0OiB7eDogYXgs IHk6IGF5fSwKKyAgICAgICAgICAgIGVuZDoge3g6IGN4LCB5OiBjeX0sCisg ICAgICAgICAgICBhbHBoYTogYWxwaGEKKyAgICAgICAgfTsKKyAgICB9Cisg ICAgZnVuY3Rpb24gYmV6aWVyQkJveChwMXgsIHAxeSwgYzF4LCBjMXksIGMy eCwgYzJ5LCBwMngsIHAyeSkgeworICAgICAgICBpZiAoIVNuYXAuaXMocDF4 LCAiYXJyYXkiKSkgeworICAgICAgICAgICAgcDF4ID0gW3AxeCwgcDF5LCBj MXgsIGMxeSwgYzJ4LCBjMnksIHAyeCwgcDJ5XTsKKyAgICAgICAgfQorICAg ICAgICB2YXIgYmJveCA9IGN1cnZlRGltLmFwcGx5KG51bGwsIHAxeCk7Cisg ICAgICAgIHJldHVybiBib3goCisgICAgICAgICAgICBiYm94Lm1pbi54LAor ICAgICAgICAgICAgYmJveC5taW4ueSwKKyAgICAgICAgICAgIGJib3gubWF4 LnggLSBiYm94Lm1pbi54LAorICAgICAgICAgICAgYmJveC5tYXgueSAtIGJi b3gubWluLnkKKyAgICAgICAgKTsKKyAgICB9CisgICAgZnVuY3Rpb24gaXNQ b2ludEluc2lkZUJCb3goYmJveCwgeCwgeSkgeworICAgICAgICByZXR1cm4g IHggPj0gYmJveC54ICYmCisgICAgICAgICAgICAgICAgeCA8PSBiYm94Lngg KyBiYm94LndpZHRoICYmCisgICAgICAgICAgICAgICAgeSA+PSBiYm94Lnkg JiYKKyAgICAgICAgICAgICAgICB5IDw9IGJib3gueSArIGJib3guaGVpZ2h0 OworICAgIH0KKyAgICBmdW5jdGlvbiBpc0JCb3hJbnRlcnNlY3QoYmJveDEs IGJib3gyKSB7CisgICAgICAgIGJib3gxID0gYm94KGJib3gxKTsKKyAgICAg ICAgYmJveDIgPSBib3goYmJveDIpOworICAgICAgICByZXR1cm4gaXNQb2lu dEluc2lkZUJCb3goYmJveDIsIGJib3gxLngsIGJib3gxLnkpCisgICAgICAg ICAgICB8fCBpc1BvaW50SW5zaWRlQkJveChiYm94MiwgYmJveDEueDIsIGJi b3gxLnkpCisgICAgICAgICAgICB8fCBpc1BvaW50SW5zaWRlQkJveChiYm94 MiwgYmJveDEueCwgYmJveDEueTIpCisgICAgICAgICAgICB8fCBpc1BvaW50 SW5zaWRlQkJveChiYm94MiwgYmJveDEueDIsIGJib3gxLnkyKQorICAgICAg ICAgICAgfHwgaXNQb2ludEluc2lkZUJCb3goYmJveDEsIGJib3gyLngsIGJi b3gyLnkpCisgICAgICAgICAgICB8fCBpc1BvaW50SW5zaWRlQkJveChiYm94 MSwgYmJveDIueDIsIGJib3gyLnkpCisgICAgICAgICAgICB8fCBpc1BvaW50 SW5zaWRlQkJveChiYm94MSwgYmJveDIueCwgYmJveDIueTIpCisgICAgICAg ICAgICB8fCBpc1BvaW50SW5zaWRlQkJveChiYm94MSwgYmJveDIueDIsIGJi b3gyLnkyKQorICAgICAgICAgICAgfHwgKGJib3gxLnggPCBiYm94Mi54MiAm JiBiYm94MS54ID4gYmJveDIueAorICAgICAgICAgICAgICAgIHx8IGJib3gy LnggPCBiYm94MS54MiAmJiBiYm94Mi54ID4gYmJveDEueCkKKyAgICAgICAg ICAgICYmIChiYm94MS55IDwgYmJveDIueTIgJiYgYmJveDEueSA+IGJib3gy LnkKKyAgICAgICAgICAgICAgICB8fCBiYm94Mi55IDwgYmJveDEueTIgJiYg YmJveDIueSA+IGJib3gxLnkpOworICAgIH0KKyAgICBmdW5jdGlvbiBiYXNl Myh0LCBwMSwgcDIsIHAzLCBwNCkgeworICAgICAgICB2YXIgdDEgPSAtMyAq IHAxICsgOSAqIHAyIC0gOSAqIHAzICsgMyAqIHA0LAorICAgICAgICAgICAg dDIgPSB0ICogdDEgKyA2ICogcDEgLSAxMiAqIHAyICsgNiAqIHAzOworICAg ICAgICByZXR1cm4gdCAqIHQyIC0gMyAqIHAxICsgMyAqIHAyOworICAgIH0K KyAgICBmdW5jdGlvbiBiZXpsZW4oeDEsIHkxLCB4MiwgeTIsIHgzLCB5Mywg eDQsIHk0LCB6KSB7CisgICAgICAgIGlmICh6ID09IG51bGwpIHsKKyAgICAg ICAgICAgIHogPSAxOworICAgICAgICB9CisgICAgICAgIHogPSB6ID4gMSA/ IDEgOiB6IDwgMCA/IDAgOiB6OworICAgICAgICB2YXIgejIgPSB6IC8gMiwK KyAgICAgICAgICAgIG4gPSAxMiwKKyAgICAgICAgICAgIFR2YWx1ZXMgPSBb LS4xMjUyLC4xMjUyLC0uMzY3OCwuMzY3OCwtLjU4NzMsLjU4NzMsLS43Njk5 LC43Njk5LC0uOTA0MSwuOTA0MSwtLjk4MTYsLjk4MTZdLAorICAgICAgICAg ICAgQ3ZhbHVlcyA9IFswLjI0OTEsMC4yNDkxLDAuMjMzNSwwLjIzMzUsMC4y MDMyLDAuMjAzMiwwLjE2MDEsMC4xNjAxLDAuMTA2OSwwLjEwNjksMC4wNDcy LDAuMDQ3Ml0sCisgICAgICAgICAgICBzdW0gPSAwOworICAgICAgICBmb3Ig KHZhciBpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICAgICAgdmFyIGN0 ID0gejIgKiBUdmFsdWVzW2ldICsgejIsCisgICAgICAgICAgICAgICAgeGJh c2UgPSBiYXNlMyhjdCwgeDEsIHgyLCB4MywgeDQpLAorICAgICAgICAgICAg ICAgIHliYXNlID0gYmFzZTMoY3QsIHkxLCB5MiwgeTMsIHk0KSwKKyAgICAg ICAgICAgICAgICBjb21iID0geGJhc2UgKiB4YmFzZSArIHliYXNlICogeWJh c2U7CisgICAgICAgICAgICBzdW0gKz0gQ3ZhbHVlc1tpXSAqIG1hdGguc3Fy dChjb21iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gejIgKiBzdW07 CisgICAgfQorICAgIGZ1bmN0aW9uIGdldFRvdExlbih4MSwgeTEsIHgyLCB5 MiwgeDMsIHkzLCB4NCwgeTQsIGxsKSB7CisgICAgICAgIGlmIChsbCA8IDAg fHwgYmV6bGVuKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMsIHg0LCB5NCkgPCBs bCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg IHZhciB0ID0gMSwKKyAgICAgICAgICAgIHN0ZXAgPSB0IC8gMiwKKyAgICAg ICAgICAgIHQyID0gdCAtIHN0ZXAsCisgICAgICAgICAgICBsLAorICAgICAg ICAgICAgZSA9IC4wMTsKKyAgICAgICAgbCA9IGJlemxlbih4MSwgeTEsIHgy LCB5MiwgeDMsIHkzLCB4NCwgeTQsIHQyKTsKKyAgICAgICAgd2hpbGUgKGFi cyhsIC0gbGwpID4gZSkgeworICAgICAgICAgICAgc3RlcCAvPSAyOworICAg ICAgICAgICAgdDIgKz0gKGwgPCBsbCA/IDEgOiAtMSkgKiBzdGVwOworICAg ICAgICAgICAgbCA9IGJlemxlbih4MSwgeTEsIHgyLCB5MiwgeDMsIHkzLCB4 NCwgeTQsIHQyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdDI7Cisg ICAgfQorICAgIGZ1bmN0aW9uIGludGVyc2VjdCh4MSwgeTEsIHgyLCB5Miwg eDMsIHkzLCB4NCwgeTQpIHsKKyAgICAgICAgaWYgKAorICAgICAgICAgICAg bW1heCh4MSwgeDIpIDwgbW1pbih4MywgeDQpIHx8CisgICAgICAgICAgICBt bWluKHgxLCB4MikgPiBtbWF4KHgzLCB4NCkgfHwKKyAgICAgICAgICAgIG1t YXgoeTEsIHkyKSA8IG1taW4oeTMsIHk0KSB8fAorICAgICAgICAgICAgbW1p bih5MSwgeTIpID4gbW1heCh5MywgeTQpCisgICAgICAgICkgeworICAgICAg ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHZhciBueCA9ICh4 MSAqIHkyIC0geTEgKiB4MikgKiAoeDMgLSB4NCkgLSAoeDEgLSB4MikgKiAo eDMgKiB5NCAtIHkzICogeDQpLAorICAgICAgICAgICAgbnkgPSAoeDEgKiB5 MiAtIHkxICogeDIpICogKHkzIC0geTQpIC0gKHkxIC0geTIpICogKHgzICog eTQgLSB5MyAqIHg0KSwKKyAgICAgICAgICAgIGRlbm9taW5hdG9yID0gKHgx IC0geDIpICogKHkzIC0geTQpIC0gKHkxIC0geTIpICogKHgzIC0geDQpOwor CisgICAgICAgIGlmICghZGVub21pbmF0b3IpIHsKKyAgICAgICAgICAgIHJl dHVybjsKKyAgICAgICAgfQorICAgICAgICB2YXIgcHggPSBueCAvIGRlbm9t aW5hdG9yLAorICAgICAgICAgICAgcHkgPSBueSAvIGRlbm9taW5hdG9yLAor ICAgICAgICAgICAgcHgyID0gK3B4LnRvRml4ZWQoMiksCisgICAgICAgICAg ICBweTIgPSArcHkudG9GaXhlZCgyKTsKKyAgICAgICAgaWYgKAorICAgICAg ICAgICAgcHgyIDwgK21taW4oeDEsIHgyKS50b0ZpeGVkKDIpIHx8CisgICAg ICAgICAgICBweDIgPiArbW1heCh4MSwgeDIpLnRvRml4ZWQoMikgfHwKKyAg ICAgICAgICAgIHB4MiA8ICttbWluKHgzLCB4NCkudG9GaXhlZCgyKSB8fAor ICAgICAgICAgICAgcHgyID4gK21tYXgoeDMsIHg0KS50b0ZpeGVkKDIpIHx8 CisgICAgICAgICAgICBweTIgPCArbW1pbih5MSwgeTIpLnRvRml4ZWQoMikg fHwKKyAgICAgICAgICAgIHB5MiA+ICttbWF4KHkxLCB5MikudG9GaXhlZCgy KSB8fAorICAgICAgICAgICAgcHkyIDwgK21taW4oeTMsIHk0KS50b0ZpeGVk KDIpIHx8CisgICAgICAgICAgICBweTIgPiArbW1heCh5MywgeTQpLnRvRml4 ZWQoMikKKyAgICAgICAgKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAg ICAgIH0KKyAgICAgICAgcmV0dXJuIHt4OiBweCwgeTogcHl9OworICAgIH0K KyAgICBmdW5jdGlvbiBpbnRlcihiZXoxLCBiZXoyKSB7CisgICAgICAgIHJl dHVybiBpbnRlckhlbHBlcihiZXoxLCBiZXoyKTsKKyAgICB9CisgICAgZnVu Y3Rpb24gaW50ZXJDb3VudChiZXoxLCBiZXoyKSB7CisgICAgICAgIHJldHVy biBpbnRlckhlbHBlcihiZXoxLCBiZXoyLCAxKTsKKyAgICB9CisgICAgZnVu Y3Rpb24gaW50ZXJIZWxwZXIoYmV6MSwgYmV6MiwganVzdENvdW50KSB7Cisg ICAgICAgIHZhciBiYm94MSA9IGJlemllckJCb3goYmV6MSksCisgICAgICAg ICAgICBiYm94MiA9IGJlemllckJCb3goYmV6Mik7CisgICAgICAgIGlmICgh aXNCQm94SW50ZXJzZWN0KGJib3gxLCBiYm94MikpIHsKKyAgICAgICAgICAg IHJldHVybiBqdXN0Q291bnQgPyAwIDogW107CisgICAgICAgIH0KKyAgICAg ICAgdmFyIGwxID0gYmV6bGVuLmFwcGx5KDAsIGJlejEpLAorICAgICAgICAg ICAgbDIgPSBiZXpsZW4uYXBwbHkoMCwgYmV6MiksCisgICAgICAgICAgICBu MSA9IH5+KGwxIC8gOCksCisgICAgICAgICAgICBuMiA9IH5+KGwyIC8gOCks CisgICAgICAgICAgICBkb3RzMSA9IFtdLAorICAgICAgICAgICAgZG90czIg PSBbXSwKKyAgICAgICAgICAgIHh5ID0ge30sCisgICAgICAgICAgICByZXMg PSBqdXN0Q291bnQgPyAwIDogW107CisgICAgICAgIGZvciAodmFyIGkgPSAw OyBpIDwgbjEgKyAxOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBwID0gZmlu ZERvdHNBdFNlZ21lbnQuYXBwbHkoMCwgYmV6MS5jb25jYXQoaSAvIG4xKSk7 CisgICAgICAgICAgICBkb3RzMS5wdXNoKHt4OiBwLngsIHk6IHAueSwgdDog aSAvIG4xfSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpID0gMDsgaSA8 IG4yICsgMTsgaSsrKSB7CisgICAgICAgICAgICBwID0gZmluZERvdHNBdFNl Z21lbnQuYXBwbHkoMCwgYmV6Mi5jb25jYXQoaSAvIG4yKSk7CisgICAgICAg ICAgICBkb3RzMi5wdXNoKHt4OiBwLngsIHk6IHAueSwgdDogaSAvIG4yfSk7 CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG4xOyBpKysp IHsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjI7IGorKykg eworICAgICAgICAgICAgICAgIHZhciBkaSA9IGRvdHMxW2ldLAorICAgICAg ICAgICAgICAgICAgICBkaTEgPSBkb3RzMVtpICsgMV0sCisgICAgICAgICAg ICAgICAgICAgIGRqID0gZG90czJbal0sCisgICAgICAgICAgICAgICAgICAg IGRqMSA9IGRvdHMyW2ogKyAxXSwKKyAgICAgICAgICAgICAgICAgICAgY2kg PSBhYnMoZGkxLnggLSBkaS54KSA8IC4wMDEgPyAieSIgOiAieCIsCisgICAg ICAgICAgICAgICAgICAgIGNqID0gYWJzKGRqMS54IC0gZGoueCkgPCAuMDAx ID8gInkiIDogIngiLAorICAgICAgICAgICAgICAgICAgICBpcyA9IGludGVy c2VjdChkaS54LCBkaS55LCBkaTEueCwgZGkxLnksIGRqLngsIGRqLnksIGRq MS54LCBkajEueSk7CisgICAgICAgICAgICAgICAgaWYgKGlzKSB7CisgICAg ICAgICAgICAgICAgICAgIGlmICh4eVtpcy54LnRvRml4ZWQoNCldID09IGlz LnkudG9GaXhlZCg0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgeHlbaXMueC50b0ZpeGVkKDQpXSA9IGlzLnkudG9GaXhlZCg0KTsK KyAgICAgICAgICAgICAgICAgICAgdmFyIHQxID0gZGkudCArIGFicygoaXNb Y2ldIC0gZGlbY2ldKSAvIChkaTFbY2ldIC0gZGlbY2ldKSkgKiAoZGkxLnQg LSBkaS50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHQyID0gZGoudCAr IGFicygoaXNbY2pdIC0gZGpbY2pdKSAvIChkajFbY2pdIC0gZGpbY2pdKSkg KiAoZGoxLnQgLSBkai50KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHQx ID49IDAgJiYgdDEgPD0gMSAmJiB0MiA+PSAwICYmIHQyIDw9IDEpIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChqdXN0Q291bnQpIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXMrKzsKKyAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzLnB1c2goeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4OiBpcy54LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5 OiBpcy55LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0MTog dDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQyOiB0Mgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg IHJldHVybiByZXM7CisgICAgfQorICAgIGZ1bmN0aW9uIHBhdGhJbnRlcnNl Y3Rpb24ocGF0aDEsIHBhdGgyKSB7CisgICAgICAgIHJldHVybiBpbnRlclBh dGhIZWxwZXIocGF0aDEsIHBhdGgyKTsKKyAgICB9CisgICAgZnVuY3Rpb24g cGF0aEludGVyc2VjdGlvbk51bWJlcihwYXRoMSwgcGF0aDIpIHsKKyAgICAg ICAgcmV0dXJuIGludGVyUGF0aEhlbHBlcihwYXRoMSwgcGF0aDIsIDEpOwor ICAgIH0KKyAgICBmdW5jdGlvbiBpbnRlclBhdGhIZWxwZXIocGF0aDEsIHBh dGgyLCBqdXN0Q291bnQpIHsKKyAgICAgICAgcGF0aDEgPSBwYXRoMmN1cnZl KHBhdGgxKTsKKyAgICAgICAgcGF0aDIgPSBwYXRoMmN1cnZlKHBhdGgyKTsK KyAgICAgICAgdmFyIHgxLCB5MSwgeDIsIHkyLCB4MW0sIHkxbSwgeDJtLCB5 Mm0sIGJlejEsIGJlejIsCisgICAgICAgICAgICByZXMgPSBqdXN0Q291bnQg PyAwIDogW107CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBpaSA9IHBhdGgx Lmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBwaSA9 IHBhdGgxW2ldOworICAgICAgICAgICAgaWYgKHBpWzBdID09ICJNIikgewor ICAgICAgICAgICAgICAgIHgxID0geDFtID0gcGlbMV07CisgICAgICAgICAg ICAgICAgeTEgPSB5MW0gPSBwaVsyXTsKKyAgICAgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICAgICAgaWYgKHBpWzBdID09ICJDIikgeworICAgICAg ICAgICAgICAgICAgICBiZXoxID0gW3gxLCB5MV0uY29uY2F0KHBpLnNsaWNl KDEpKTsKKyAgICAgICAgICAgICAgICAgICAgeDEgPSBiZXoxWzZdOworICAg ICAgICAgICAgICAgICAgICB5MSA9IGJlejFbN107CisgICAgICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYmV6MSA9IFt4MSwg eTEsIHgxLCB5MSwgeDFtLCB5MW0sIHgxbSwgeTFtXTsKKyAgICAgICAgICAg ICAgICAgICAgeDEgPSB4MW07CisgICAgICAgICAgICAgICAgICAgIHkxID0g eTFtOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3Ig KHZhciBqID0gMCwgamogPSBwYXRoMi5sZW5ndGg7IGogPCBqajsgaisrKSB7 CisgICAgICAgICAgICAgICAgICAgIHZhciBwaiA9IHBhdGgyW2pdOworICAg ICAgICAgICAgICAgICAgICBpZiAocGpbMF0gPT0gIk0iKSB7CisgICAgICAg ICAgICAgICAgICAgICAgICB4MiA9IHgybSA9IHBqWzFdOworICAgICAgICAg ICAgICAgICAgICAgICAgeTIgPSB5Mm0gPSBwalsyXTsKKyAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm IChwalswXSA9PSAiQyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiZXoyID0gW3gyLCB5Ml0uY29uY2F0KHBqLnNsaWNlKDEpKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4MiA9IGJlejJbNl07CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeTIgPSBiZXoyWzddOworICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiZXoyID0gW3gyLCB5MiwgeDIsIHkyLCB4Mm0sIHkybSwgeDJt LCB5Mm1dOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyID0geDJt OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkyID0geTJtOworICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgdmFyIGludHIgPSBpbnRlckhlbHBlcihiZXoxLCBiZXoyLCBqdXN0Q291 bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGp1c3RDb3VudCkg eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyArPSBpbnRyOwor ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3IgKHZhciBrID0gMCwga2sgPSBpbnRyLmxl bmd0aDsgayA8IGtrOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50cltrXS5zZWdtZW50MSA9IGk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludHJba10uc2VnbWVudDIgPSBqOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRyW2tdLmJlejEgPSBi ZXoxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRyW2td LmJlejIgPSBiZXoyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSByZXMuY29uY2F0 KGludHIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg fQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAg IGZ1bmN0aW9uIGlzUG9pbnRJbnNpZGVQYXRoKHBhdGgsIHgsIHkpIHsKKyAg ICAgICAgdmFyIGJib3ggPSBwYXRoQkJveChwYXRoKTsKKyAgICAgICAgcmV0 dXJuIGlzUG9pbnRJbnNpZGVCQm94KGJib3gsIHgsIHkpICYmCisgICAgICAg ICAgICAgICBpbnRlclBhdGhIZWxwZXIocGF0aCwgW1siTSIsIHgsIHldLCBb IkgiLCBiYm94LngyICsgMTBdXSwgMSkgJSAyID09IDE7CisgICAgfQorICAg IGZ1bmN0aW9uIHBhdGhCQm94KHBhdGgpIHsKKyAgICAgICAgdmFyIHB0aCA9 IHBhdGhzKHBhdGgpOworICAgICAgICBpZiAocHRoLmJib3gpIHsKKyAgICAg ICAgICAgIHJldHVybiBjbG9uZShwdGguYmJveCk7CisgICAgICAgIH0KKyAg ICAgICAgaWYgKCFwYXRoKSB7CisgICAgICAgICAgICByZXR1cm4gYm94KCk7 CisgICAgICAgIH0KKyAgICAgICAgcGF0aCA9IHBhdGgyY3VydmUocGF0aCk7 CisgICAgICAgIHZhciB4ID0gMCwKKyAgICAgICAgICAgIHkgPSAwLAorICAg ICAgICAgICAgWCA9IFtdLAorICAgICAgICAgICAgWSA9IFtdLAorICAgICAg ICAgICAgcDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gcGF0aC5s ZW5ndGg7IGkgPCBpaTsgaSsrKSB7CisgICAgICAgICAgICBwID0gcGF0aFtp XTsKKyAgICAgICAgICAgIGlmIChwWzBdID09ICJNIikgeworICAgICAgICAg ICAgICAgIHggPSBwWzFdOworICAgICAgICAgICAgICAgIHkgPSBwWzJdOwor ICAgICAgICAgICAgICAgIFgucHVzaCh4KTsKKyAgICAgICAgICAgICAgICBZ LnB1c2goeSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg ICAgIHZhciBkaW0gPSBjdXJ2ZURpbSh4LCB5LCBwWzFdLCBwWzJdLCBwWzNd LCBwWzRdLCBwWzVdLCBwWzZdKTsKKyAgICAgICAgICAgICAgICBYID0gWC5j b25jYXQoZGltLm1pbi54LCBkaW0ubWF4LngpOworICAgICAgICAgICAgICAg IFkgPSBZLmNvbmNhdChkaW0ubWluLnksIGRpbS5tYXgueSk7CisgICAgICAg ICAgICAgICAgeCA9IHBbNV07CisgICAgICAgICAgICAgICAgeSA9IHBbNl07 CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIHhtaW4g PSBtbWluLmFwcGx5KDAsIFgpLAorICAgICAgICAgICAgeW1pbiA9IG1taW4u YXBwbHkoMCwgWSksCisgICAgICAgICAgICB4bWF4ID0gbW1heC5hcHBseSgw LCBYKSwKKyAgICAgICAgICAgIHltYXggPSBtbWF4LmFwcGx5KDAsIFkpLAor ICAgICAgICAgICAgYmIgPSBib3goeG1pbiwgeW1pbiwgeG1heCAtIHhtaW4s IHltYXggLSB5bWluKTsKKyAgICAgICAgcHRoLmJib3ggPSBjbG9uZShiYik7 CisgICAgICAgIHJldHVybiBiYjsKKyAgICB9CisgICAgZnVuY3Rpb24gcmVj dFBhdGgoeCwgeSwgdywgaCwgcikgeworICAgICAgICBpZiAocikgeworICAg ICAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAgICAgICBbIk0iLCAreCAr ICgrciksIHldLAorICAgICAgICAgICAgICAgIFsibCIsIHcgLSByICogMiwg MF0sCisgICAgICAgICAgICAgICAgWyJhIiwgciwgciwgMCwgMCwgMSwgciwg cl0sCisgICAgICAgICAgICAgICAgWyJsIiwgMCwgaCAtIHIgKiAyXSwKKyAg ICAgICAgICAgICAgICBbImEiLCByLCByLCAwLCAwLCAxLCAtciwgcl0sCisg ICAgICAgICAgICAgICAgWyJsIiwgciAqIDIgLSB3LCAwXSwKKyAgICAgICAg ICAgICAgICBbImEiLCByLCByLCAwLCAwLCAxLCAtciwgLXJdLAorICAgICAg ICAgICAgICAgIFsibCIsIDAsIHIgKiAyIC0gaF0sCisgICAgICAgICAgICAg ICAgWyJhIiwgciwgciwgMCwgMCwgMSwgciwgLXJdLAorICAgICAgICAgICAg ICAgIFsieiJdCisgICAgICAgICAgICBdOworICAgICAgICB9CisgICAgICAg IHZhciByZXMgPSBbWyJNIiwgeCwgeV0sIFsibCIsIHcsIDBdLCBbImwiLCAw LCBoXSwgWyJsIiwgLXcsIDBdLCBbInoiXV07CisgICAgICAgIHJlcy50b1N0 cmluZyA9IHRvU3RyaW5nOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0K KyAgICBmdW5jdGlvbiBlbGxpcHNlUGF0aCh4LCB5LCByeCwgcnksIGEpIHsK KyAgICAgICAgaWYgKGEgPT0gbnVsbCAmJiByeSA9PSBudWxsKSB7CisgICAg ICAgICAgICByeSA9IHJ4OworICAgICAgICB9CisgICAgICAgIHggPSAreDsK KyAgICAgICAgeSA9ICt5OworICAgICAgICByeCA9ICtyeDsKKyAgICAgICAg cnkgPSArcnk7CisgICAgICAgIGlmIChhICE9IG51bGwpIHsKKyAgICAgICAg ICAgIHZhciByYWQgPSBNYXRoLlBJIC8gMTgwLAorICAgICAgICAgICAgICAg IHgxID0geCArIHJ4ICogTWF0aC5jb3MoLXJ5ICogcmFkKSwKKyAgICAgICAg ICAgICAgICB4MiA9IHggKyByeCAqIE1hdGguY29zKC1hICogcmFkKSwKKyAg ICAgICAgICAgICAgICB5MSA9IHkgKyByeCAqIE1hdGguc2luKC1yeSAqIHJh ZCksCisgICAgICAgICAgICAgICAgeTIgPSB5ICsgcnggKiBNYXRoLnNpbigt YSAqIHJhZCksCisgICAgICAgICAgICAgICAgcmVzID0gW1siTSIsIHgxLCB5 MV0sIFsiQSIsIHJ4LCByeCwgMCwgKyhhIC0gcnkgPiAxODApLCAwLCB4Miwg eTJdXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlcyA9IFsK KyAgICAgICAgICAgICAgICBbIk0iLCB4LCB5XSwKKyAgICAgICAgICAgICAg ICBbIm0iLCAwLCAtcnldLAorICAgICAgICAgICAgICAgIFsiYSIsIHJ4LCBy eSwgMCwgMSwgMSwgMCwgMiAqIHJ5XSwKKyAgICAgICAgICAgICAgICBbImEi LCByeCwgcnksIDAsIDEsIDEsIDAsIC0yICogcnldLAorICAgICAgICAgICAg ICAgIFsieiJdCisgICAgICAgICAgICBdOworICAgICAgICB9CisgICAgICAg IHJlcy50b1N0cmluZyA9IHRvU3RyaW5nOworICAgICAgICByZXR1cm4gcmVz OworICAgIH0KKyAgICB2YXIgdW5pdDJweCA9IFNuYXAuX3VuaXQycHgsCisg ICAgICAgIGdldFBhdGggPSB7CisgICAgICAgIHBhdGg6IGZ1bmN0aW9uIChl bCkgeworICAgICAgICAgICAgcmV0dXJuIGVsLmF0dHIoInBhdGgiKTsKKyAg ICAgICAgfSwKKyAgICAgICAgY2lyY2xlOiBmdW5jdGlvbiAoZWwpIHsKKyAg ICAgICAgICAgIHZhciBhdHRyID0gdW5pdDJweChlbCk7CisgICAgICAgICAg ICByZXR1cm4gZWxsaXBzZVBhdGgoYXR0ci5jeCwgYXR0ci5jeSwgYXR0ci5y KTsKKyAgICAgICAgfSwKKyAgICAgICAgZWxsaXBzZTogZnVuY3Rpb24gKGVs KSB7CisgICAgICAgICAgICB2YXIgYXR0ciA9IHVuaXQycHgoZWwpOworICAg ICAgICAgICAgcmV0dXJuIGVsbGlwc2VQYXRoKGF0dHIuY3ggfHwgMCwgYXR0 ci5jeSB8fCAwLCBhdHRyLnJ4LCBhdHRyLnJ5KTsKKyAgICAgICAgfSwKKyAg ICAgICAgcmVjdDogZnVuY3Rpb24gKGVsKSB7CisgICAgICAgICAgICB2YXIg YXR0ciA9IHVuaXQycHgoZWwpOworICAgICAgICAgICAgcmV0dXJuIHJlY3RQ YXRoKGF0dHIueCB8fCAwLCBhdHRyLnkgfHwgMCwgYXR0ci53aWR0aCwgYXR0 ci5oZWlnaHQsIGF0dHIucngsIGF0dHIucnkpOworICAgICAgICB9LAorICAg ICAgICBpbWFnZTogZnVuY3Rpb24gKGVsKSB7CisgICAgICAgICAgICB2YXIg YXR0ciA9IHVuaXQycHgoZWwpOworICAgICAgICAgICAgcmV0dXJuIHJlY3RQ YXRoKGF0dHIueCB8fCAwLCBhdHRyLnkgfHwgMCwgYXR0ci53aWR0aCwgYXR0 ci5oZWlnaHQpOworICAgICAgICB9LAorICAgICAgICBsaW5lOiBmdW5jdGlv biAoZWwpIHsKKyAgICAgICAgICAgIHJldHVybiAiTSIgKyBbZWwuYXR0cigi eDEiKSB8fCAwLCBlbC5hdHRyKCJ5MSIpIHx8IDAsIGVsLmF0dHIoIngyIiks IGVsLmF0dHIoInkyIildOworICAgICAgICB9LAorICAgICAgICBwb2x5bGlu ZTogZnVuY3Rpb24gKGVsKSB7CisgICAgICAgICAgICByZXR1cm4gIk0iICsg ZWwuYXR0cigicG9pbnRzIik7CisgICAgICAgIH0sCisgICAgICAgIHBvbHln b246IGZ1bmN0aW9uIChlbCkgeworICAgICAgICAgICAgcmV0dXJuICJNIiAr IGVsLmF0dHIoInBvaW50cyIpICsgInoiOworICAgICAgICB9LAorICAgICAg ICBkZWZsdDogZnVuY3Rpb24gKGVsKSB7CisgICAgICAgICAgICB2YXIgYmJv eCA9IGVsLm5vZGUuZ2V0QkJveCgpOworICAgICAgICAgICAgcmV0dXJuIHJl Y3RQYXRoKGJib3gueCwgYmJveC55LCBiYm94LndpZHRoLCBiYm94LmhlaWdo dCk7CisgICAgICAgIH0KKyAgICB9OworICAgIGZ1bmN0aW9uIHBhdGhUb1Jl bGF0aXZlKHBhdGhBcnJheSkgeworICAgICAgICB2YXIgcHRoID0gcGF0aHMo cGF0aEFycmF5KSwKKyAgICAgICAgICAgIGxvd2VyQ2FzZSA9IFN0cmluZy5w cm90b3R5cGUudG9Mb3dlckNhc2U7CisgICAgICAgIGlmIChwdGgucmVsKSB7 CisgICAgICAgICAgICByZXR1cm4gcGF0aENsb25lKHB0aC5yZWwpOworICAg ICAgICB9CisgICAgICAgIGlmICghU25hcC5pcyhwYXRoQXJyYXksICJhcnJh eSIpIHx8ICFTbmFwLmlzKHBhdGhBcnJheSAmJiBwYXRoQXJyYXlbMF0sICJh cnJheSIpKSB7CisgICAgICAgICAgICBwYXRoQXJyYXkgPSBTbmFwLnBhcnNl UGF0aFN0cmluZyhwYXRoQXJyYXkpOworICAgICAgICB9CisgICAgICAgIHZh ciByZXMgPSBbXSwKKyAgICAgICAgICAgIHggPSAwLAorICAgICAgICAgICAg eSA9IDAsCisgICAgICAgICAgICBteCA9IDAsCisgICAgICAgICAgICBteSA9 IDAsCisgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgIGlmIChwYXRo QXJyYXlbMF1bMF0gPT0gIk0iKSB7CisgICAgICAgICAgICB4ID0gcGF0aEFy cmF5WzBdWzFdOworICAgICAgICAgICAgeSA9IHBhdGhBcnJheVswXVsyXTsK KyAgICAgICAgICAgIG14ID0geDsKKyAgICAgICAgICAgIG15ID0geTsKKyAg ICAgICAgICAgIHN0YXJ0Kys7CisgICAgICAgICAgICByZXMucHVzaChbIk0i LCB4LCB5XSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IHN0 YXJ0LCBpaSA9IHBhdGhBcnJheS5sZW5ndGg7IGkgPCBpaTsgaSsrKSB7Cisg ICAgICAgICAgICB2YXIgciA9IHJlc1tpXSA9IFtdLAorICAgICAgICAgICAg ICAgIHBhID0gcGF0aEFycmF5W2ldOworICAgICAgICAgICAgaWYgKHBhWzBd ICE9IGxvd2VyQ2FzZS5jYWxsKHBhWzBdKSkgeworICAgICAgICAgICAgICAg IHJbMF0gPSBsb3dlckNhc2UuY2FsbChwYVswXSk7CisgICAgICAgICAgICAg ICAgc3dpdGNoIChyWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug ImEiOgorICAgICAgICAgICAgICAgICAgICAgICAgclsxXSA9IHBhWzFdOwor ICAgICAgICAgICAgICAgICAgICAgICAgclsyXSA9IHBhWzJdOworICAgICAg ICAgICAgICAgICAgICAgICAgclszXSA9IHBhWzNdOworICAgICAgICAgICAg ICAgICAgICAgICAgcls0XSA9IHBhWzRdOworICAgICAgICAgICAgICAgICAg ICAgICAgcls1XSA9IHBhWzVdOworICAgICAgICAgICAgICAgICAgICAgICAg cls2XSA9ICsocGFbNl0gLSB4KS50b0ZpeGVkKDMpOworICAgICAgICAgICAg ICAgICAgICAgICAgcls3XSA9ICsocGFbN10gLSB5KS50b0ZpeGVkKDMpOwor ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg ICAgICAgIGNhc2UgInYiOgorICAgICAgICAgICAgICAgICAgICAgICAgclsx XSA9ICsocGFbMV0gLSB5KS50b0ZpeGVkKDMpOworICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgIm0i OgorICAgICAgICAgICAgICAgICAgICAgICAgbXggPSBwYVsxXTsKKyAgICAg ICAgICAgICAgICAgICAgICAgIG15ID0gcGFbMl07CisgICAgICAgICAgICAg ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig KHZhciBqID0gMSwgamogPSBwYS5sZW5ndGg7IGogPCBqajsgaisrKSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcltqXSA9ICsocGFbal0gLSAo KGogJSAyKSA/IHggOiB5KSkudG9GaXhlZCgzKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgIHIgPSByZXNbaV0gPSBbXTsKKyAg ICAgICAgICAgICAgICBpZiAocGFbMF0gPT0gIm0iKSB7CisgICAgICAgICAg ICAgICAgICAgIG14ID0gcGFbMV0gKyB4OworICAgICAgICAgICAgICAgICAg ICBteSA9IHBhWzJdICsgeTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgZm9yICh2YXIgayA9IDAsIGtrID0gcGEubGVuZ3RoOyBrIDwg a2s7IGsrKykgeworICAgICAgICAgICAgICAgICAgICByZXNbaV1ba10gPSBw YVtrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg ICAgICAgICB2YXIgbGVuID0gcmVzW2ldLmxlbmd0aDsKKyAgICAgICAgICAg IHN3aXRjaCAocmVzW2ldWzBdKSB7CisgICAgICAgICAgICAgICAgY2FzZSAi eiI6CisgICAgICAgICAgICAgICAgICAgIHggPSBteDsKKyAgICAgICAgICAg ICAgICAgICAgeSA9IG15OworICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICBjYXNlICJoIjoKKyAgICAgICAgICAgICAgICAg ICAgeCArPSArcmVzW2ldW2xlbiAtIDFdOworICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICJ2IjoKKyAgICAgICAg ICAgICAgICAgICAgeSArPSArcmVzW2ldW2xlbiAtIDFdOworICAgICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0Ogor ICAgICAgICAgICAgICAgICAgICB4ICs9ICtyZXNbaV1bbGVuIC0gMl07Cisg ICAgICAgICAgICAgICAgICAgIHkgKz0gK3Jlc1tpXVtsZW4gLSAxXTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXMudG9TdHJpbmcg PSB0b1N0cmluZzsKKyAgICAgICAgcHRoLnJlbCA9IHBhdGhDbG9uZShyZXMp OworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICBmdW5jdGlvbiBw YXRoVG9BYnNvbHV0ZShwYXRoQXJyYXkpIHsKKyAgICAgICAgdmFyIHB0aCA9 IHBhdGhzKHBhdGhBcnJheSk7CisgICAgICAgIGlmIChwdGguYWJzKSB7Cisg ICAgICAgICAgICByZXR1cm4gcGF0aENsb25lKHB0aC5hYnMpOworICAgICAg ICB9CisgICAgICAgIGlmICghaXMocGF0aEFycmF5LCAiYXJyYXkiKSB8fCAh aXMocGF0aEFycmF5ICYmIHBhdGhBcnJheVswXSwgImFycmF5IikpIHsgLy8g cm91Z2ggYXNzdW1wdGlvbgorICAgICAgICAgICAgcGF0aEFycmF5ID0gU25h cC5wYXJzZVBhdGhTdHJpbmcocGF0aEFycmF5KTsKKyAgICAgICAgfQorICAg ICAgICBpZiAoIXBhdGhBcnJheSB8fCAhcGF0aEFycmF5Lmxlbmd0aCkgewor ICAgICAgICAgICAgcmV0dXJuIFtbIk0iLCAwLCAwXV07CisgICAgICAgIH0K KyAgICAgICAgdmFyIHJlcyA9IFtdLAorICAgICAgICAgICAgeCA9IDAsCisg ICAgICAgICAgICB5ID0gMCwKKyAgICAgICAgICAgIG14ID0gMCwKKyAgICAg ICAgICAgIG15ID0gMCwKKyAgICAgICAgICAgIHN0YXJ0ID0gMCwKKyAgICAg ICAgICAgIHBhMDsKKyAgICAgICAgaWYgKHBhdGhBcnJheVswXVswXSA9PSAi TSIpIHsKKyAgICAgICAgICAgIHggPSArcGF0aEFycmF5WzBdWzFdOworICAg ICAgICAgICAgeSA9ICtwYXRoQXJyYXlbMF1bMl07CisgICAgICAgICAgICBt eCA9IHg7CisgICAgICAgICAgICBteSA9IHk7CisgICAgICAgICAgICBzdGFy dCsrOworICAgICAgICAgICAgcmVzWzBdID0gWyJNIiwgeCwgeV07CisgICAg ICAgIH0KKyAgICAgICAgdmFyIGNyeiA9IHBhdGhBcnJheS5sZW5ndGggPT0g MyAmJgorICAgICAgICAgICAgcGF0aEFycmF5WzBdWzBdID09ICJNIiAmJgor ICAgICAgICAgICAgcGF0aEFycmF5WzFdWzBdLnRvVXBwZXJDYXNlKCkgPT0g IlIiICYmCisgICAgICAgICAgICBwYXRoQXJyYXlbMl1bMF0udG9VcHBlckNh c2UoKSA9PSAiWiI7CisgICAgICAgIGZvciAodmFyIHIsIHBhLCBpID0gc3Rh cnQsIGlpID0gcGF0aEFycmF5Lmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAg ICAgICAgICAgIHJlcy5wdXNoKHIgPSBbXSk7CisgICAgICAgICAgICBwYSA9 IHBhdGhBcnJheVtpXTsKKyAgICAgICAgICAgIHBhMCA9IHBhWzBdOworICAg ICAgICAgICAgaWYgKHBhMCAhPSBwYTAudG9VcHBlckNhc2UoKSkgeworICAg ICAgICAgICAgICAgIHJbMF0gPSBwYTAudG9VcHBlckNhc2UoKTsKKyAgICAg ICAgICAgICAgICBzd2l0Y2ggKHJbMF0pIHsKKyAgICAgICAgICAgICAgICAg ICAgY2FzZSAiQSI6CisgICAgICAgICAgICAgICAgICAgICAgICByWzFdID0g cGFbMV07CisgICAgICAgICAgICAgICAgICAgICAgICByWzJdID0gcGFbMl07 CisgICAgICAgICAgICAgICAgICAgICAgICByWzNdID0gcGFbM107CisgICAg ICAgICAgICAgICAgICAgICAgICByWzRdID0gcGFbNF07CisgICAgICAgICAg ICAgICAgICAgICAgICByWzVdID0gcGFbNV07CisgICAgICAgICAgICAgICAg ICAgICAgICByWzZdID0gK3BhWzZdICsgeDsKKyAgICAgICAgICAgICAgICAg ICAgICAgIHJbN10gPSArcGFbN10gKyB5OworICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgIlYiOgor ICAgICAgICAgICAgICAgICAgICAgICAgclsxXSA9ICtwYVsxXSArIHk7Cisg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICAgICAgY2FzZSAiSCI6CisgICAgICAgICAgICAgICAgICAgICAgICByWzFd ID0gK3BhWzFdICsgeDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgICAgICBjYXNlICJSIjoKKyAgICAgICAgICAg ICAgICAgICAgICAgIHZhciBkb3RzID0gW3gsIHldLmNvbmNhdChwYS5zbGlj ZSgxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0g MiwgamogPSBkb3RzLmxlbmd0aDsgaiA8IGpqOyBqKyspIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb3RzW2pdID0gK2RvdHNbal0gKyB4Owor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdHNbKytqXSA9ICtkb3Rz W2pdICsgeTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgIHJlcy5wb3AoKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgIHJlcyA9IHJlcy5jb25jYXQoY2F0bXVsbFJvbTJiZXppZXIoZG90 cywgY3J6KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgICAgY2FzZSAiTyI6CisgICAgICAgICAgICAgICAg ICAgICAgICByZXMucG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBk b3RzID0gZWxsaXBzZVBhdGgoeCwgeSwgcGFbMV0sIHBhWzJdKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgIGRvdHMucHVzaChkb3RzWzBdKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgIHJlcyA9IHJlcy5jb25jYXQoZG90cyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICAgICAgY2FzZSAiVSI6CisgICAgICAgICAgICAgICAgICAgICAgICByZXMu cG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSByZXMuY29u Y2F0KGVsbGlwc2VQYXRoKHgsIHksIHBhWzFdLCBwYVsyXSwgcGFbM10pKTsK KyAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBbIlUiXS5jb25jYXQocmVz W3Jlcy5sZW5ndGggLSAxXS5zbGljZSgtMikpOworICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgIk0i OgorICAgICAgICAgICAgICAgICAgICAgICAgbXggPSArcGFbMV0gKyB4Owor ICAgICAgICAgICAgICAgICAgICAgICAgbXkgPSArcGFbMl0gKyB5OworICAg ICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIChqID0gMSwgamogPSBwYS5sZW5ndGg7IGogPCBqajsgaisr KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcltqXSA9ICtwYVtq XSArICgoaiAlIDIpID8geCA6IHkpOworICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBp ZiAocGEwID09ICJSIikgeworICAgICAgICAgICAgICAgIGRvdHMgPSBbeCwg eV0uY29uY2F0KHBhLnNsaWNlKDEpKTsKKyAgICAgICAgICAgICAgICByZXMu cG9wKCk7CisgICAgICAgICAgICAgICAgcmVzID0gcmVzLmNvbmNhdChjYXRt dWxsUm9tMmJlemllcihkb3RzLCBjcnopKTsKKyAgICAgICAgICAgICAgICBy ID0gWyJSIl0uY29uY2F0KHBhLnNsaWNlKC0yKSk7CisgICAgICAgICAgICB9 IGVsc2UgaWYgKHBhMCA9PSAiTyIpIHsKKyAgICAgICAgICAgICAgICByZXMu cG9wKCk7CisgICAgICAgICAgICAgICAgZG90cyA9IGVsbGlwc2VQYXRoKHgs IHksIHBhWzFdLCBwYVsyXSk7CisgICAgICAgICAgICAgICAgZG90cy5wdXNo KGRvdHNbMF0pOworICAgICAgICAgICAgICAgIHJlcyA9IHJlcy5jb25jYXQo ZG90cyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhMCA9PSAiVSIpIHsK KyAgICAgICAgICAgICAgICByZXMucG9wKCk7CisgICAgICAgICAgICAgICAg cmVzID0gcmVzLmNvbmNhdChlbGxpcHNlUGF0aCh4LCB5LCBwYVsxXSwgcGFb Ml0sIHBhWzNdKSk7CisgICAgICAgICAgICAgICAgciA9IFsiVSJdLmNvbmNh dChyZXNbcmVzLmxlbmd0aCAtIDFdLnNsaWNlKC0yKSk7CisgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAodmFyIGsgPSAwLCBr ayA9IHBhLmxlbmd0aDsgayA8IGtrOyBrKyspIHsKKyAgICAgICAgICAgICAg ICAgICAgcltrXSA9IHBhW2tdOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIHBhMCA9IHBhMC50b1VwcGVyQ2FzZSgp OworICAgICAgICAgICAgaWYgKHBhMCAhPSAiTyIpIHsKKyAgICAgICAgICAg ICAgICBzd2l0Y2ggKHJbMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fz ZSAiWiI6CisgICAgICAgICAgICAgICAgICAgICAgICB4ID0gK214OworICAg ICAgICAgICAgICAgICAgICAgICAgeSA9ICtteTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICJI IjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHggPSByWzFdOworICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg IGNhc2UgIlYiOgorICAgICAgICAgICAgICAgICAgICAgICAgeSA9IHJbMV07 CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg ICAgICAgICAgY2FzZSAiTSI6CisgICAgICAgICAgICAgICAgICAgICAgICBt eCA9IHJbci5sZW5ndGggLSAyXTsKKyAgICAgICAgICAgICAgICAgICAgICAg IG15ID0gcltyLmxlbmd0aCAtIDFdOworICAgICAgICAgICAgICAgICAgICBk ZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgeCA9IHJbci5sZW5n dGggLSAyXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHkgPSByW3IubGVu Z3RoIC0gMV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor ICAgICAgICB9CisgICAgICAgIHJlcy50b1N0cmluZyA9IHRvU3RyaW5nOwor ICAgICAgICBwdGguYWJzID0gcGF0aENsb25lKHJlcyk7CisgICAgICAgIHJl dHVybiByZXM7CisgICAgfQorICAgIGZ1bmN0aW9uIGwyYyh4MSwgeTEsIHgy LCB5MikgeworICAgICAgICByZXR1cm4gW3gxLCB5MSwgeDIsIHkyLCB4Miwg eTJdOworICAgIH0KKyAgICBmdW5jdGlvbiBxMmMoeDEsIHkxLCBheCwgYXks IHgyLCB5MikgeworICAgICAgICB2YXIgXzEzID0gMSAvIDMsCisgICAgICAg ICAgICBfMjMgPSAyIC8gMzsKKyAgICAgICAgcmV0dXJuIFsKKyAgICAgICAg ICAgICAgICBfMTMgKiB4MSArIF8yMyAqIGF4LAorICAgICAgICAgICAgICAg IF8xMyAqIHkxICsgXzIzICogYXksCisgICAgICAgICAgICAgICAgXzEzICog eDIgKyBfMjMgKiBheCwKKyAgICAgICAgICAgICAgICBfMTMgKiB5MiArIF8y MyAqIGF5LAorICAgICAgICAgICAgICAgIHgyLAorICAgICAgICAgICAgICAg IHkyCisgICAgICAgICAgICBdOworICAgIH0KKyAgICBmdW5jdGlvbiBhMmMo eDEsIHkxLCByeCwgcnksIGFuZ2xlLCBsYXJnZV9hcmNfZmxhZywgc3dlZXBf ZmxhZywgeDIsIHkyLCByZWN1cnNpdmUpIHsKKyAgICAgICAgLy8gZm9yIG1v cmUgaW5mb3JtYXRpb24gb2Ygd2hlcmUgdGhpcyBtYXRoIGNhbWUgZnJvbSB2 aXNpdDoKKyAgICAgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEv aW1wbG5vdGUuaHRtbCNBcmNJbXBsZW1lbnRhdGlvbk5vdGVzCisgICAgICAg IHZhciBfMTIwID0gUEkgKiAxMjAgLyAxODAsCisgICAgICAgICAgICByYWQg PSBQSSAvIDE4MCAqICgrYW5nbGUgfHwgMCksCisgICAgICAgICAgICByZXMg PSBbXSwKKyAgICAgICAgICAgIHh5LAorICAgICAgICAgICAgcm90YXRlID0g U25hcC5fLmNhY2hlcihmdW5jdGlvbiAoeCwgeSwgcmFkKSB7CisgICAgICAg ICAgICAgICAgdmFyIFggPSB4ICogbWF0aC5jb3MocmFkKSAtIHkgKiBtYXRo LnNpbihyYWQpLAorICAgICAgICAgICAgICAgICAgICBZID0geCAqIG1hdGgu c2luKHJhZCkgKyB5ICogbWF0aC5jb3MocmFkKTsKKyAgICAgICAgICAgICAg ICByZXR1cm4ge3g6IFgsIHk6IFl9OworICAgICAgICAgICAgfSk7CisgICAg ICAgIGlmICghcmVjdXJzaXZlKSB7CisgICAgICAgICAgICB4eSA9IHJvdGF0 ZSh4MSwgeTEsIC1yYWQpOworICAgICAgICAgICAgeDEgPSB4eS54OworICAg ICAgICAgICAgeTEgPSB4eS55OworICAgICAgICAgICAgeHkgPSByb3RhdGUo eDIsIHkyLCAtcmFkKTsKKyAgICAgICAgICAgIHgyID0geHkueDsKKyAgICAg ICAgICAgIHkyID0geHkueTsKKyAgICAgICAgICAgIHZhciBjb3MgPSBtYXRo LmNvcyhQSSAvIDE4MCAqIGFuZ2xlKSwKKyAgICAgICAgICAgICAgICBzaW4g PSBtYXRoLnNpbihQSSAvIDE4MCAqIGFuZ2xlKSwKKyAgICAgICAgICAgICAg ICB4ID0gKHgxIC0geDIpIC8gMiwKKyAgICAgICAgICAgICAgICB5ID0gKHkx IC0geTIpIC8gMjsKKyAgICAgICAgICAgIHZhciBoID0gKHggKiB4KSAvIChy eCAqIHJ4KSArICh5ICogeSkgLyAocnkgKiByeSk7CisgICAgICAgICAgICBp ZiAoaCA+IDEpIHsKKyAgICAgICAgICAgICAgICBoID0gbWF0aC5zcXJ0KGgp OworICAgICAgICAgICAgICAgIHJ4ID0gaCAqIHJ4OworICAgICAgICAgICAg ICAgIHJ5ID0gaCAqIHJ5OworICAgICAgICAgICAgfQorICAgICAgICAgICAg dmFyIHJ4MiA9IHJ4ICogcngsCisgICAgICAgICAgICAgICAgcnkyID0gcnkg KiByeSwKKyAgICAgICAgICAgICAgICBrID0gKGxhcmdlX2FyY19mbGFnID09 IHN3ZWVwX2ZsYWcgPyAtMSA6IDEpICoKKyAgICAgICAgICAgICAgICAgICAg bWF0aC5zcXJ0KGFicygocngyICogcnkyIC0gcngyICogeSAqIHkgLSByeTIg KiB4ICogeCkgLyAocngyICogeSAqIHkgKyByeTIgKiB4ICogeCkpKSwKKyAg ICAgICAgICAgICAgICBjeCA9IGsgKiByeCAqIHkgLyByeSArICh4MSArIHgy KSAvIDIsCisgICAgICAgICAgICAgICAgY3kgPSBrICogLXJ5ICogeCAvIHJ4 ICsgKHkxICsgeTIpIC8gMiwKKyAgICAgICAgICAgICAgICBmMSA9IG1hdGgu YXNpbigoKHkxIC0gY3kpIC8gcnkpLnRvRml4ZWQoOSkpLAorICAgICAgICAg ICAgICAgIGYyID0gbWF0aC5hc2luKCgoeTIgLSBjeSkgLyByeSkudG9GaXhl ZCg5KSk7CisKKyAgICAgICAgICAgIGYxID0geDEgPCBjeCA/IFBJIC0gZjEg OiBmMTsKKyAgICAgICAgICAgIGYyID0geDIgPCBjeCA/IFBJIC0gZjIgOiBm MjsKKyAgICAgICAgICAgIGYxIDwgMCAmJiAoZjEgPSBQSSAqIDIgKyBmMSk7 CisgICAgICAgICAgICBmMiA8IDAgJiYgKGYyID0gUEkgKiAyICsgZjIpOwor ICAgICAgICAgICAgaWYgKHN3ZWVwX2ZsYWcgJiYgZjEgPiBmMikgeworICAg ICAgICAgICAgICAgIGYxID0gZjEgLSBQSSAqIDI7CisgICAgICAgICAgICB9 CisgICAgICAgICAgICBpZiAoIXN3ZWVwX2ZsYWcgJiYgZjIgPiBmMSkgewor ICAgICAgICAgICAgICAgIGYyID0gZjIgLSBQSSAqIDI7CisgICAgICAgICAg ICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmMSA9IHJlY3Vy c2l2ZVswXTsKKyAgICAgICAgICAgIGYyID0gcmVjdXJzaXZlWzFdOworICAg ICAgICAgICAgY3ggPSByZWN1cnNpdmVbMl07CisgICAgICAgICAgICBjeSA9 IHJlY3Vyc2l2ZVszXTsKKyAgICAgICAgfQorICAgICAgICB2YXIgZGYgPSBm MiAtIGYxOworICAgICAgICBpZiAoYWJzKGRmKSA+IF8xMjApIHsKKyAgICAg ICAgICAgIHZhciBmMm9sZCA9IGYyLAorICAgICAgICAgICAgICAgIHgyb2xk ID0geDIsCisgICAgICAgICAgICAgICAgeTJvbGQgPSB5MjsKKyAgICAgICAg ICAgIGYyID0gZjEgKyBfMTIwICogKHN3ZWVwX2ZsYWcgJiYgZjIgPiBmMSA/ IDEgOiAtMSk7CisgICAgICAgICAgICB4MiA9IGN4ICsgcnggKiBtYXRoLmNv cyhmMik7CisgICAgICAgICAgICB5MiA9IGN5ICsgcnkgKiBtYXRoLnNpbihm Mik7CisgICAgICAgICAgICByZXMgPSBhMmMoeDIsIHkyLCByeCwgcnksIGFu Z2xlLCAwLCBzd2VlcF9mbGFnLCB4Mm9sZCwgeTJvbGQsIFtmMiwgZjJvbGQs IGN4LCBjeV0pOworICAgICAgICB9CisgICAgICAgIGRmID0gZjIgLSBmMTsK KyAgICAgICAgdmFyIGMxID0gbWF0aC5jb3MoZjEpLAorICAgICAgICAgICAg czEgPSBtYXRoLnNpbihmMSksCisgICAgICAgICAgICBjMiA9IG1hdGguY29z KGYyKSwKKyAgICAgICAgICAgIHMyID0gbWF0aC5zaW4oZjIpLAorICAgICAg ICAgICAgdCA9IG1hdGgudGFuKGRmIC8gNCksCisgICAgICAgICAgICBoeCA9 IDQgLyAzICogcnggKiB0LAorICAgICAgICAgICAgaHkgPSA0IC8gMyAqIHJ5 ICogdCwKKyAgICAgICAgICAgIG0xID0gW3gxLCB5MV0sCisgICAgICAgICAg ICBtMiA9IFt4MSArIGh4ICogczEsIHkxIC0gaHkgKiBjMV0sCisgICAgICAg ICAgICBtMyA9IFt4MiArIGh4ICogczIsIHkyIC0gaHkgKiBjMl0sCisgICAg ICAgICAgICBtNCA9IFt4MiwgeTJdOworICAgICAgICBtMlswXSA9IDIgKiBt MVswXSAtIG0yWzBdOworICAgICAgICBtMlsxXSA9IDIgKiBtMVsxXSAtIG0y WzFdOworICAgICAgICBpZiAocmVjdXJzaXZlKSB7CisgICAgICAgICAgICBy ZXR1cm4gW20yLCBtMywgbTRdLmNvbmNhdChyZXMpOworICAgICAgICB9IGVs c2UgeworICAgICAgICAgICAgcmVzID0gW20yLCBtMywgbTRdLmNvbmNhdChy ZXMpLmpvaW4oKS5zcGxpdCgiLCIpOworICAgICAgICAgICAgdmFyIG5ld3Jl cyA9IFtdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gcmVz Lmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBuZXdy ZXNbaV0gPSBpICUgMiA/IHJvdGF0ZShyZXNbaSAtIDFdLCByZXNbaV0sIHJh ZCkueSA6IHJvdGF0ZShyZXNbaV0sIHJlc1tpICsgMV0sIHJhZCkueDsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXdyZXM7CisgICAg ICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb24gZmluZERvdEF0U2VnbWVudChw MXgsIHAxeSwgYzF4LCBjMXksIGMyeCwgYzJ5LCBwMngsIHAyeSwgdCkgewor ICAgICAgICB2YXIgdDEgPSAxIC0gdDsKKyAgICAgICAgcmV0dXJuIHsKKyAg ICAgICAgICAgIHg6IHBvdyh0MSwgMykgKiBwMXggKyBwb3codDEsIDIpICog MyAqIHQgKiBjMXggKyB0MSAqIDMgKiB0ICogdCAqIGMyeCArIHBvdyh0LCAz KSAqIHAyeCwKKyAgICAgICAgICAgIHk6IHBvdyh0MSwgMykgKiBwMXkgKyBw b3codDEsIDIpICogMyAqIHQgKiBjMXkgKyB0MSAqIDMgKiB0ICogdCAqIGMy eSArIHBvdyh0LCAzKSAqIHAyeQorICAgICAgICB9OworICAgIH0KKworICAg IC8vIFJldHVybnMgYm91bmRpbmcgYm94IG9mIGN1YmljIGJlemllciBjdXJ2 ZS4KKyAgICAvLyBTb3VyY2U6IGh0dHA6Ly9ibG9nLmhhY2tlcnMtY2FmZS5u ZXQvMjAwOS8wNi9ob3ctdG8tY2FsY3VsYXRlLWJlemllci1jdXJ2ZXMtYm91 bmRpbmcuaHRtbAorICAgIC8vIE9yaWdpbmFsIHZlcnNpb246IE5JU0hJTyBI aXJva2F6dQorICAgIC8vIE1vZGlmaWNhdGlvbnM6IGh0dHBzOi8vZ2l0aHVi LmNvbS90aW1vMjIzNDUKKyAgICBmdW5jdGlvbiBjdXJ2ZURpbSh4MCwgeTAs IHgxLCB5MSwgeDIsIHkyLCB4MywgeTMpIHsKKyAgICAgICAgdmFyIHR2YWx1 ZXMgPSBbXSwKKyAgICAgICAgICAgIGJvdW5kcyA9IFtbXSwgW11dLAorICAg ICAgICAgICAgYSwgYiwgYywgdCwgdDEsIHQyLCBiMmFjLCBzcXJ0YjJhYzsK KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIHsKKyAgICAg ICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBiID0gNiAq IHgwIC0gMTIgKiB4MSArIDYgKiB4MjsKKyAgICAgICAgICAgICAgICBhID0g LTMgKiB4MCArIDkgKiB4MSAtIDkgKiB4MiArIDMgKiB4MzsKKyAgICAgICAg ICAgICAgICBjID0gMyAqIHgxIC0gMyAqIHgwOworICAgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgICBiID0gNiAqIHkwIC0gMTIgKiB5MSAr IDYgKiB5MjsKKyAgICAgICAgICAgICAgICBhID0gLTMgKiB5MCArIDkgKiB5 MSAtIDkgKiB5MiArIDMgKiB5MzsKKyAgICAgICAgICAgICAgICBjID0gMyAq IHkxIC0gMyAqIHkwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg KGFicyhhKSA8IDFlLTEyKSB7CisgICAgICAgICAgICAgICAgaWYgKGFicyhi KSA8IDFlLTEyKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ID0gLWMgLyBi OworICAgICAgICAgICAgICAgIGlmICgwIDwgdCAmJiB0IDwgMSkgeworICAg ICAgICAgICAgICAgICAgICB0dmFsdWVzLnB1c2godCk7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg ICAgfQorICAgICAgICAgICAgYjJhYyA9IGIgKiBiIC0gNCAqIGMgKiBhOwor ICAgICAgICAgICAgc3FydGIyYWMgPSBtYXRoLnNxcnQoYjJhYyk7CisgICAg ICAgICAgICBpZiAoYjJhYyA8IDApIHsKKyAgICAgICAgICAgICAgICBjb250 aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHQxID0gKC1iICsg c3FydGIyYWMpIC8gKDIgKiBhKTsKKyAgICAgICAgICAgIGlmICgwIDwgdDEg JiYgdDEgPCAxKSB7CisgICAgICAgICAgICAgICAgdHZhbHVlcy5wdXNoKHQx KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHQyID0gKC1iIC0gc3Fy dGIyYWMpIC8gKDIgKiBhKTsKKyAgICAgICAgICAgIGlmICgwIDwgdDIgJiYg dDIgPCAxKSB7CisgICAgICAgICAgICAgICAgdHZhbHVlcy5wdXNoKHQyKTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZhciB4LCB5 LCBqID0gdHZhbHVlcy5sZW5ndGgsCisgICAgICAgICAgICBqbGVuID0gaiwK KyAgICAgICAgICAgIG10OworICAgICAgICB3aGlsZSAoai0tKSB7CisgICAg ICAgICAgICB0ID0gdHZhbHVlc1tqXTsKKyAgICAgICAgICAgIG10ID0gMSAt IHQ7CisgICAgICAgICAgICBib3VuZHNbMF1bal0gPSAobXQgKiBtdCAqIG10 ICogeDApICsgKDMgKiBtdCAqIG10ICogdCAqIHgxKSArICgzICogbXQgKiB0 ICogdCAqIHgyKSArICh0ICogdCAqIHQgKiB4Myk7CisgICAgICAgICAgICBi b3VuZHNbMV1bal0gPSAobXQgKiBtdCAqIG10ICogeTApICsgKDMgKiBtdCAq IG10ICogdCAqIHkxKSArICgzICogbXQgKiB0ICogdCAqIHkyKSArICh0ICog dCAqIHQgKiB5Myk7CisgICAgICAgIH0KKworICAgICAgICBib3VuZHNbMF1b amxlbl0gPSB4MDsKKyAgICAgICAgYm91bmRzWzFdW2psZW5dID0geTA7Cisg ICAgICAgIGJvdW5kc1swXVtqbGVuICsgMV0gPSB4MzsKKyAgICAgICAgYm91 bmRzWzFdW2psZW4gKyAxXSA9IHkzOworICAgICAgICBib3VuZHNbMF0ubGVu Z3RoID0gYm91bmRzWzFdLmxlbmd0aCA9IGpsZW4gKyAyOworCisKKyAgICAg ICAgcmV0dXJuIHsKKyAgICAgICAgICBtaW46IHt4OiBtbWluLmFwcGx5KDAs IGJvdW5kc1swXSksIHk6IG1taW4uYXBwbHkoMCwgYm91bmRzWzFdKX0sCisg ICAgICAgICAgbWF4OiB7eDogbW1heC5hcHBseSgwLCBib3VuZHNbMF0pLCB5 OiBtbWF4LmFwcGx5KDAsIGJvdW5kc1sxXSl9CisgICAgICAgIH07CisgICAg fQorCisgICAgZnVuY3Rpb24gcGF0aDJjdXJ2ZShwYXRoLCBwYXRoMikgewor ICAgICAgICB2YXIgcHRoID0gIXBhdGgyICYmIHBhdGhzKHBhdGgpOworICAg ICAgICBpZiAoIXBhdGgyICYmIHB0aC5jdXJ2ZSkgeworICAgICAgICAgICAg cmV0dXJuIHBhdGhDbG9uZShwdGguY3VydmUpOworICAgICAgICB9CisgICAg ICAgIHZhciBwID0gcGF0aFRvQWJzb2x1dGUocGF0aCksCisgICAgICAgICAg ICBwMiA9IHBhdGgyICYmIHBhdGhUb0Fic29sdXRlKHBhdGgyKSwKKyAgICAg ICAgICAgIGF0dHJzID0ge3g6IDAsIHk6IDAsIGJ4OiAwLCBieTogMCwgWDog MCwgWTogMCwgcXg6IG51bGwsIHF5OiBudWxsfSwKKyAgICAgICAgICAgIGF0 dHJzMiA9IHt4OiAwLCB5OiAwLCBieDogMCwgYnk6IDAsIFg6IDAsIFk6IDAs IHF4OiBudWxsLCBxeTogbnVsbH0sCisgICAgICAgICAgICBwcm9jZXNzUGF0 aCA9IGZ1bmN0aW9uIChwYXRoLCBkLCBwY29tKSB7CisgICAgICAgICAgICAg ICAgdmFyIG54LCBueTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhdGgpIHsK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsiQyIsIGQueCwgZC55LCBk LngsIGQueSwgZC54LCBkLnldOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAhKHBhdGhbMF0gaW4ge1Q6IDEsIFE6IDF9KSAmJiAoZC5x eCA9IGQucXkgPSBudWxsKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHBh dGhbMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiTSI6CisgICAg ICAgICAgICAgICAgICAgICAgICBkLlggPSBwYXRoWzFdOworICAgICAgICAg ICAgICAgICAgICAgICAgZC5ZID0gcGF0aFsyXTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICJB IjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBbIkMiXS5jb25j YXQoYTJjLmFwcGx5KDAsIFtkLngsIGQueV0uY29uY2F0KHBhdGguc2xpY2Uo MSkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICAgICAgICAgY2FzZSAiUyI6CisgICAgICAgICAgICAgICAgICAg ICAgICBpZiAocGNvbSA9PSAiQyIgfHwgcGNvbSA9PSAiUyIpIHsgLy8gSW4g IlMiIGNhc2Ugd2UgaGF2ZSB0byB0YWtlIGludG8gYWNjb3VudCwgaWYgdGhl IHByZXZpb3VzIGNvbW1hbmQgaXMgQy9TLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG54ID0gZC54ICogMiAtIGQuYng7ICAgICAgICAgIC8vIEFu ZCByZWZsZWN0IHRoZSBwcmV2aW91cworICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG55ID0gZC55ICogMiAtIGQuYnk7ICAgICAgICAgIC8vIGNvbW1h bmQncyBjb250cm9sIHBvaW50IHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBv aW50LgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgICAgZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIG9yIHNvbWUgZWxzZSBvciBub3RoaW5nCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbnggPSBkLng7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbnkgPSBkLnk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gWyJDIiwgbngsIG55XS5j b25jYXQocGF0aC5zbGljZSgxKSk7CisgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiVCI6CisgICAg ICAgICAgICAgICAgICAgICAgICBpZiAocGNvbSA9PSAiUSIgfHwgcGNvbSA9 PSAiVCIpIHsgLy8gSW4gIlQiIGNhc2Ugd2UgaGF2ZSB0byB0YWtlIGludG8g YWNjb3VudCwgaWYgdGhlIHByZXZpb3VzIGNvbW1hbmQgaXMgUS9ULgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGQucXggPSBkLnggKiAyIC0gZC5x eDsgICAgICAgIC8vIEFuZCBtYWtlIGEgcmVmbGVjdGlvbiBzaW1pbGFyCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5xeSA9IGQueSAqIDIgLSBk LnF5OyAgICAgICAgLy8gdG8gY2FzZSAiUyIuCisgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igc29tZXRoaW5nIGVsc2Ug b3Igbm90aGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQucXgg PSBkLng7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5xeSA9IGQu eTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgICAgIHBhdGggPSBbIkMiXS5jb25jYXQocTJjKGQueCwgZC55LCBk LnF4LCBkLnF5LCBwYXRoWzFdLCBwYXRoWzJdKSk7CisgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAi USI6CisgICAgICAgICAgICAgICAgICAgICAgICBkLnF4ID0gcGF0aFsxXTsK KyAgICAgICAgICAgICAgICAgICAgICAgIGQucXkgPSBwYXRoWzJdOworICAg ICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IFsiQyJdLmNvbmNhdChxMmMo ZC54LCBkLnksIHBhdGhbMV0sIHBhdGhbMl0sIHBhdGhbM10sIHBhdGhbNF0p KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgICAgICAgICBjYXNlICJMIjoKKyAgICAgICAgICAgICAgICAgICAgICAg IHBhdGggPSBbIkMiXS5jb25jYXQobDJjKGQueCwgZC55LCBwYXRoWzFdLCBw YXRoWzJdKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgICAgY2FzZSAiSCI6CisgICAgICAgICAgICAgICAg ICAgICAgICBwYXRoID0gWyJDIl0uY29uY2F0KGwyYyhkLngsIGQueSwgcGF0 aFsxXSwgZC55KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICAgICAgY2FzZSAiViI6CisgICAgICAgICAgICAg ICAgICAgICAgICBwYXRoID0gWyJDIl0uY29uY2F0KGwyYyhkLngsIGQueSwg ZC54LCBwYXRoWzFdKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiWiI6CisgICAgICAgICAg ICAgICAgICAgICAgICBwYXRoID0gWyJDIl0uY29uY2F0KGwyYyhkLngsIGQu eSwgZC5YLCBkLlkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4g cGF0aDsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmaXhBcmMgPSBm dW5jdGlvbiAocHAsIGkpIHsKKyAgICAgICAgICAgICAgICBpZiAocHBbaV0u bGVuZ3RoID4gNykgeworICAgICAgICAgICAgICAgICAgICBwcFtpXS5zaGlm dCgpOworICAgICAgICAgICAgICAgICAgICB2YXIgcGkgPSBwcFtpXTsKKyAg ICAgICAgICAgICAgICAgICAgd2hpbGUgKHBpLmxlbmd0aCkgeworICAgICAg ICAgICAgICAgICAgICAgICAgcGNvbXMxW2ldID0gIkEiOyAvLyBpZiBjcmVh dGVkIG11bHRpcGxlIEM6cywgdGhlaXIgb3JpZ2luYWwgc2VnIGlzIHNhdmVk CisgICAgICAgICAgICAgICAgICAgICAgICBwMiAmJiAocGNvbXMyW2ldID0g IkEiKTsgLy8gdGhlIHNhbWUgYXMgYWJvdmUKKyAgICAgICAgICAgICAgICAg ICAgICAgIHBwLnNwbGljZShpKyssIDAsIFsiQyJdLmNvbmNhdChwaS5zcGxp Y2UoMCwgNikpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICBwcC5zcGxpY2UoaSwgMSk7CisgICAgICAgICAgICAgICAg ICAgIGlpID0gbW1heChwLmxlbmd0aCwgcDIgJiYgcDIubGVuZ3RoIHx8IDAp OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAg ICAgICBmaXhNID0gZnVuY3Rpb24gKHBhdGgxLCBwYXRoMiwgYTEsIGEyLCBp KSB7CisgICAgICAgICAgICAgICAgaWYgKHBhdGgxICYmIHBhdGgyICYmIHBh dGgxW2ldWzBdID09ICJNIiAmJiBwYXRoMltpXVswXSAhPSAiTSIpIHsKKyAg ICAgICAgICAgICAgICAgICAgcGF0aDIuc3BsaWNlKGksIDAsIFsiTSIsIGEy LngsIGEyLnldKTsKKyAgICAgICAgICAgICAgICAgICAgYTEuYnggPSAwOwor ICAgICAgICAgICAgICAgICAgICBhMS5ieSA9IDA7CisgICAgICAgICAgICAg ICAgICAgIGExLnggPSBwYXRoMVtpXVsxXTsKKyAgICAgICAgICAgICAgICAg ICAgYTEueSA9IHBhdGgxW2ldWzJdOworICAgICAgICAgICAgICAgICAgICBp aSA9IG1tYXgocC5sZW5ndGgsIHAyICYmIHAyLmxlbmd0aCB8fCAwKTsKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg cGNvbXMxID0gW10sIC8vIHBhdGggY29tbWFuZHMgb2Ygb3JpZ2luYWwgcGF0 aCBwCisgICAgICAgICAgICBwY29tczIgPSBbXSwgLy8gcGF0aCBjb21tYW5k cyBvZiBvcmlnaW5hbCBwYXRoIHAyCisgICAgICAgICAgICBwZmlyc3QgPSAi IiwgLy8gdGVtcG9yYXJ5IGhvbGRlciBmb3Igb3JpZ2luYWwgcGF0aCBjb21t YW5kCisgICAgICAgICAgICBwY29tID0gIiI7IC8vIGhvbGRlciBmb3IgcHJl dmlvdXMgcGF0aCBjb21tYW5kIG9mIG9yaWdpbmFsIHBhdGgKKyAgICAgICAg Zm9yICh2YXIgaSA9IDAsIGlpID0gbW1heChwLmxlbmd0aCwgcDIgJiYgcDIu bGVuZ3RoIHx8IDApOyBpIDwgaWk7IGkrKykgeworICAgICAgICAgICAgcFtp XSAmJiAocGZpcnN0ID0gcFtpXVswXSk7IC8vIHNhdmUgY3VycmVudCBwYXRo IGNvbW1hbmQKKworICAgICAgICAgICAgaWYgKHBmaXJzdCAhPSAiQyIpIC8v IEMgaXMgbm90IHNhdmVkIHlldCwgYmVjYXVzZSBpdCBtYXkgYmUgcmVzdWx0 IG9mIGNvbnZlcnNpb24KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICBwY29tczFbaV0gPSBwZmlyc3Q7IC8vIFNhdmUgY3VycmVudCBwYXRoIGNv bW1hbmQKKyAgICAgICAgICAgICAgICBpICYmICggcGNvbSA9IHBjb21zMVtp IC0gMV0pOyAvLyBHZXQgcHJldmlvdXMgcGF0aCBjb21tYW5kIHBjb20KKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIHBbaV0gPSBwcm9jZXNzUGF0aChw W2ldLCBhdHRycywgcGNvbSk7IC8vIFByZXZpb3VzIHBhdGggY29tbWFuZCBp cyBpbnB1dHRlZCB0byBwcm9jZXNzUGF0aAorCisgICAgICAgICAgICBpZiAo cGNvbXMxW2ldICE9ICJBIiAmJiBwZmlyc3QgPT0gIkMiKSBwY29tczFbaV0g PSAiQyI7IC8vIEEgaXMgdGhlIG9ubHkgY29tbWFuZAorICAgICAgICAgICAg Ly8gd2hpY2ggbWF5IHByb2R1Y2UgbXVsdGlwbGUgQzpzCisgICAgICAgICAg ICAvLyBzbyB3ZSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IEMgaXMgYWxzbyBD IGluIG9yaWdpbmFsIHBhdGgKKworICAgICAgICAgICAgZml4QXJjKHAsIGkp OyAvLyBmaXhBcmMgYWRkcyBhbHNvIHRoZSByaWdodCBhbW91bnQgb2YgQTpz IHRvIHBjb21zMQorCisgICAgICAgICAgICBpZiAocDIpIHsgLy8gdGhlIHNh bWUgcHJvY2VkdXJlcyBpcyBkb25lIHRvIHAyCisgICAgICAgICAgICAgICAg cDJbaV0gJiYgKHBmaXJzdCA9IHAyW2ldWzBdKTsKKyAgICAgICAgICAgICAg ICBpZiAocGZpcnN0ICE9ICJDIikgeworICAgICAgICAgICAgICAgICAgICBw Y29tczJbaV0gPSBwZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgIGkgJiYg KHBjb20gPSBwY29tczJbaSAtIDFdKTsKKyAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgcDJbaV0gPSBwcm9jZXNzUGF0aChwMltpXSwgYXR0 cnMyLCBwY29tKTsKKworICAgICAgICAgICAgICAgIGlmIChwY29tczJbaV0g IT0gIkEiICYmIHBmaXJzdCA9PSAiQyIpIHsKKyAgICAgICAgICAgICAgICAg ICAgcGNvbXMyW2ldID0gIkMiOworICAgICAgICAgICAgICAgIH0KKworICAg ICAgICAgICAgICAgIGZpeEFyYyhwMiwgaSk7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBmaXhNKHAsIHAyLCBhdHRycywgYXR0cnMyLCBpKTsKKyAg ICAgICAgICAgIGZpeE0ocDIsIHAsIGF0dHJzMiwgYXR0cnMsIGkpOworICAg ICAgICAgICAgdmFyIHNlZyA9IHBbaV0sCisgICAgICAgICAgICAgICAgc2Vn MiA9IHAyICYmIHAyW2ldLAorICAgICAgICAgICAgICAgIHNlZ2xlbiA9IHNl Zy5sZW5ndGgsCisgICAgICAgICAgICAgICAgc2VnMmxlbiA9IHAyICYmIHNl ZzIubGVuZ3RoOworICAgICAgICAgICAgYXR0cnMueCA9IHNlZ1tzZWdsZW4g LSAyXTsKKyAgICAgICAgICAgIGF0dHJzLnkgPSBzZWdbc2VnbGVuIC0gMV07 CisgICAgICAgICAgICBhdHRycy5ieCA9IHRvRmxvYXQoc2VnW3NlZ2xlbiAt IDRdKSB8fCBhdHRycy54OworICAgICAgICAgICAgYXR0cnMuYnkgPSB0b0Zs b2F0KHNlZ1tzZWdsZW4gLSAzXSkgfHwgYXR0cnMueTsKKyAgICAgICAgICAg IGF0dHJzMi5ieCA9IHAyICYmICh0b0Zsb2F0KHNlZzJbc2VnMmxlbiAtIDRd KSB8fCBhdHRyczIueCk7CisgICAgICAgICAgICBhdHRyczIuYnkgPSBwMiAm JiAodG9GbG9hdChzZWcyW3NlZzJsZW4gLSAzXSkgfHwgYXR0cnMyLnkpOwor ICAgICAgICAgICAgYXR0cnMyLnggPSBwMiAmJiBzZWcyW3NlZzJsZW4gLSAy XTsKKyAgICAgICAgICAgIGF0dHJzMi55ID0gcDIgJiYgc2VnMltzZWcybGVu IC0gMV07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFwMikgeworICAgICAg ICAgICAgcHRoLmN1cnZlID0gcGF0aENsb25lKHApOworICAgICAgICB9Cisg ICAgICAgIHJldHVybiBwMiA/IFtwLCBwMl0gOiBwOworICAgIH0KKyAgICBm dW5jdGlvbiBtYXBQYXRoKHBhdGgsIG1hdHJpeCkgeworICAgICAgICBpZiAo IW1hdHJpeCkgeworICAgICAgICAgICAgcmV0dXJuIHBhdGg7CisgICAgICAg IH0KKyAgICAgICAgdmFyIHgsIHksIGksIGosIGlpLCBqaiwgcGF0aGk7Cisg ICAgICAgIHBhdGggPSBwYXRoMmN1cnZlKHBhdGgpOworICAgICAgICBmb3Ig KGkgPSAwLCBpaSA9IHBhdGgubGVuZ3RoOyBpIDwgaWk7IGkrKykgeworICAg ICAgICAgICAgcGF0aGkgPSBwYXRoW2ldOworICAgICAgICAgICAgZm9yIChq ID0gMSwgamogPSBwYXRoaS5sZW5ndGg7IGogPCBqajsgaiArPSAyKSB7Cisg ICAgICAgICAgICAgICAgeCA9IG1hdHJpeC54KHBhdGhpW2pdLCBwYXRoaVtq ICsgMV0pOworICAgICAgICAgICAgICAgIHkgPSBtYXRyaXgueShwYXRoaVtq XSwgcGF0aGlbaiArIDFdKTsKKyAgICAgICAgICAgICAgICBwYXRoaVtqXSA9 IHg7CisgICAgICAgICAgICAgICAgcGF0aGlbaiArIDFdID0geTsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGF0aDsKKyAg ICB9CisKKyAgICAvLyBodHRwOi8vc2NoZXBlcnMuY2MvZ2V0dGluZy10by10 aGUtcG9pbnQKKyAgICBmdW5jdGlvbiBjYXRtdWxsUm9tMmJlemllcihjcnAs IHopIHsKKyAgICAgICAgdmFyIGQgPSBbXTsKKyAgICAgICAgZm9yICh2YXIg aSA9IDAsIGlMZW4gPSBjcnAubGVuZ3RoOyBpTGVuIC0gMiAqICF6ID4gaTsg aSArPSAyKSB7CisgICAgICAgICAgICB2YXIgcCA9IFsKKyAgICAgICAgICAg ICAgICAgICAgICAgIHt4OiArY3JwW2kgLSAyXSwgeTogK2NycFtpIC0gMV19 LAorICAgICAgICAgICAgICAgICAgICAgICAge3g6ICtjcnBbaV0sICAgICB5 OiArY3JwW2kgKyAxXX0sCisgICAgICAgICAgICAgICAgICAgICAgICB7eDog K2NycFtpICsgMl0sIHk6ICtjcnBbaSArIDNdfSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHt4OiArY3JwW2kgKyA0XSwgeTogK2NycFtpICsgNV19Cisg ICAgICAgICAgICAgICAgICAgIF07CisgICAgICAgICAgICBpZiAoeikgewor ICAgICAgICAgICAgICAgIGlmICghaSkgeworICAgICAgICAgICAgICAgICAg ICBwWzBdID0ge3g6ICtjcnBbaUxlbiAtIDJdLCB5OiArY3JwW2lMZW4gLSAx XX07CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpTGVuIC0gNCA9PSBp KSB7CisgICAgICAgICAgICAgICAgICAgIHBbM10gPSB7eDogK2NycFswXSwg eTogK2NycFsxXX07CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpTGVu IC0gMiA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgIHBbMl0gPSB7eDog K2NycFswXSwgeTogK2NycFsxXX07CisgICAgICAgICAgICAgICAgICAgIHBb M10gPSB7eDogK2NycFsyXSwgeTogK2NycFszXX07CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBp ZiAoaUxlbiAtIDQgPT0gaSkgeworICAgICAgICAgICAgICAgICAgICBwWzNd ID0gcFsyXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpKSB7Cisg ICAgICAgICAgICAgICAgICAgIHBbMF0gPSB7eDogK2NycFtpXSwgeTogK2Ny cFtpICsgMV19OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgIGQucHVzaChbIkMiLAorICAgICAgICAgICAgICAgICAg KC1wWzBdLnggKyA2ICogcFsxXS54ICsgcFsyXS54KSAvIDYsCisgICAgICAg ICAgICAgICAgICAoLXBbMF0ueSArIDYgKiBwWzFdLnkgKyBwWzJdLnkpIC8g NiwKKyAgICAgICAgICAgICAgICAgIChwWzFdLnggKyA2ICogcFsyXS54IC0g cFszXS54KSAvIDYsCisgICAgICAgICAgICAgICAgICAocFsxXS55ICsgNipw WzJdLnkgLSBwWzNdLnkpIC8gNiwKKyAgICAgICAgICAgICAgICAgIHBbMl0u eCwKKyAgICAgICAgICAgICAgICAgIHBbMl0ueQorICAgICAgICAgICAgXSk7 CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZDsKKyAgICB9CisKKyAg ICAvLyBleHBvcnQKKyAgICBTbmFwLnBhdGggPSBwYXRoczsKKworICAgIC8q XAorICAgICAqIFNuYXAucGF0aC5nZXRUb3RhbExlbmd0aAorICAgICBbIG1l dGhvZCBdCisgICAgICoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9m IHRoZSBnaXZlbiBwYXRoIGluIHBpeGVscworICAgICAqKgorICAgICAtIHBh dGggKHN0cmluZykgU1ZHIHBhdGggc3RyaW5nCisgICAgICoqCisgICAgID0g KG51bWJlcikgbGVuZ3RoCisgICAgXCovCisgICAgU25hcC5wYXRoLmdldFRv dGFsTGVuZ3RoID0gZ2V0VG90YWxMZW5ndGg7CisgICAgLypcCisgICAgICog U25hcC5wYXRoLmdldFBvaW50QXRMZW5ndGgKKyAgICAgWyBtZXRob2QgXQor ICAgICAqKgorICAgICAqIFJldHVybnMgdGhlIGNvb3JkaW5hdGVzIG9mIHRo ZSBwb2ludCBsb2NhdGVkIGF0IHRoZSBnaXZlbiBsZW5ndGggYWxvbmcgdGhl IGdpdmVuIHBhdGgKKyAgICAgKioKKyAgICAgLSBwYXRoIChzdHJpbmcpIFNW RyBwYXRoIHN0cmluZworICAgICAtIGxlbmd0aCAobnVtYmVyKSBsZW5ndGgs IGluIHBpeGVscywgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHBhdGgsIGV4Y2x1 ZGluZyBub24tcmVuZGVyaW5nIGp1bXBzCisgICAgICoqCisgICAgID0gKG9i amVjdCkgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBvaW50OgorICAgICBvIHsK KyAgICAgbyAgICAgeDogKG51bWJlcikgeCBjb29yZGluYXRlLAorICAgICBv ICAgICB5OiAobnVtYmVyKSB5IGNvb3JkaW5hdGUsCisgICAgIG8gICAgIGFs cGhhOiAobnVtYmVyKSBhbmdsZSBvZiBkZXJpdmF0aXZlCisgICAgIG8gfQor ICAgIFwqLworICAgIFNuYXAucGF0aC5nZXRQb2ludEF0TGVuZ3RoID0gZ2V0 UG9pbnRBdExlbmd0aDsKKyAgICAvKlwKKyAgICAgKiBTbmFwLnBhdGguZ2V0 U3VicGF0aAorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmV0 dXJucyB0aGUgc3VicGF0aCBvZiBhIGdpdmVuIHBhdGggYmV0d2VlbiBnaXZl biBzdGFydCBhbmQgZW5kIGxlbmd0aHMKKyAgICAgKioKKyAgICAgLSBwYXRo IChzdHJpbmcpIFNWRyBwYXRoIHN0cmluZworICAgICAtIGZyb20gKG51bWJl cikgbGVuZ3RoLCBpbiBwaXhlbHMsIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBw YXRoIHRvIHRoZSBzdGFydCBvZiB0aGUgc2VnbWVudAorICAgICAtIHRvIChu dW1iZXIpIGxlbmd0aCwgaW4gcGl4ZWxzLCBmcm9tIHRoZSBzdGFydCBvZiB0 aGUgcGF0aCB0byB0aGUgZW5kIG9mIHRoZSBzZWdtZW50CisgICAgICoqCisg ICAgID0gKHN0cmluZykgcGF0aCBzdHJpbmcgZGVmaW5pdGlvbiBmb3IgdGhl IHNlZ21lbnQKKyAgICBcKi8KKyAgICBTbmFwLnBhdGguZ2V0U3VicGF0aCA9 IGZ1bmN0aW9uIChwYXRoLCBmcm9tLCB0bykgeworICAgICAgICBpZiAodGhp cy5nZXRUb3RhbExlbmd0aChwYXRoKSAtIHRvIDwgMWUtNikgeworICAgICAg ICAgICAgcmV0dXJuIGdldFN1YnBhdGhzQXRMZW5ndGgocGF0aCwgZnJvbSku ZW5kOworICAgICAgICB9CisgICAgICAgIHZhciBhID0gZ2V0U3VicGF0aHNB dExlbmd0aChwYXRoLCB0bywgMSk7CisgICAgICAgIHJldHVybiBmcm9tID8g Z2V0U3VicGF0aHNBdExlbmd0aChhLCBmcm9tKS5lbmQgOiBhOworICAgIH07 CisgICAgLypcCisgICAgICogRWxlbWVudC5nZXRUb3RhbExlbmd0aAorICAg ICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmV0dXJucyB0aGUgbGVu Z3RoIG9mIHRoZSBwYXRoIGluIHBpeGVscyAob25seSB3b3JrcyBmb3IgYHBh dGhgIGVsZW1lbnRzKQorICAgICA9IChudW1iZXIpIGxlbmd0aAorICAgIFwq LworICAgIGVscHJvdG8uZ2V0VG90YWxMZW5ndGggPSBmdW5jdGlvbiAoKSB7 CisgICAgICAgIGlmICh0aGlzLm5vZGUuZ2V0VG90YWxMZW5ndGgpIHsKKyAg ICAgICAgICAgIHJldHVybiB0aGlzLm5vZGUuZ2V0VG90YWxMZW5ndGgoKTsK KyAgICAgICAgfQorICAgIH07CisgICAgLy8gU0lFUlJBIEVsZW1lbnQuZ2V0 UG9pbnRBdExlbmd0aCgpL0VsZW1lbnQuZ2V0VG90YWxMZW5ndGgoKTogSWYg YSA8cGF0aD4gaXMgYnJva2VuIGludG8gZGlmZmVyZW50IHNlZ21lbnRzLCBp cyB0aGUganVtcCBkaXN0YW5jZSB0byB0aGUgbmV3IGNvb3JkaW5hdGVzIHNl dCBieSB0aGUgX01fIG9yIF9tXyBjb21tYW5kcyBjYWxjdWxhdGVkIGFzIHBh cnQgb2YgdGhlIHBhdGgncyB0b3RhbCBsZW5ndGg/CisgICAgLypcCisgICAg ICogRWxlbWVudC5nZXRQb2ludEF0TGVuZ3RoCisgICAgIFsgbWV0aG9kIF0K KyAgICAgKioKKyAgICAgKiBSZXR1cm5zIGNvb3JkaW5hdGVzIG9mIHRoZSBw b2ludCBsb2NhdGVkIGF0IHRoZSBnaXZlbiBsZW5ndGggb24gdGhlIGdpdmVu IHBhdGggKG9ubHkgd29ya3MgZm9yIGBwYXRoYCBlbGVtZW50cykKKyAgICAg KioKKyAgICAgLSBsZW5ndGggKG51bWJlcikgbGVuZ3RoLCBpbiBwaXhlbHMs IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBwYXRoLCBleGNsdWRpbmcgbm9uLXJl bmRlcmluZyBqdW1wcworICAgICAqKgorICAgICA9IChvYmplY3QpIHJlcHJl c2VudGF0aW9uIG9mIHRoZSBwb2ludDoKKyAgICAgbyB7CisgICAgIG8gICAg IHg6IChudW1iZXIpIHggY29vcmRpbmF0ZSwKKyAgICAgbyAgICAgeTogKG51 bWJlcikgeSBjb29yZGluYXRlLAorICAgICBvICAgICBhbHBoYTogKG51bWJl cikgYW5nbGUgb2YgZGVyaXZhdGl2ZQorICAgICBvIH0KKyAgICBcKi8KKyAg ICBlbHByb3RvLmdldFBvaW50QXRMZW5ndGggPSBmdW5jdGlvbiAobGVuZ3Ro KSB7CisgICAgICAgIHJldHVybiBnZXRQb2ludEF0TGVuZ3RoKHRoaXMuYXR0 cigiZCIpLCBsZW5ndGgpOworICAgIH07CisgICAgLy8gU0lFUlJBIEVsZW1l bnQuZ2V0U3VicGF0aCgpOiBTaW1pbGFyIHRvIHRoZSBwcm9ibGVtIGZvciBF bGVtZW50LmdldFBvaW50QXRMZW5ndGgoKS4gVW5jbGVhciBob3cgdGhpcyB3 b3VsZCB3b3JrIGZvciBhIHNlZ21lbnRlZCBwYXRoLiBPdmVyYWxsLCB0aGUg Y29uY2VwdCBvZiBfc3VicGF0aF8gYW5kIHdoYXQgSSdtIGNhbGxpbmcgYSBf c2VnbWVudF8gKHNlcmllcyBvZiBub24tX01fIG9yIF9aXyBjb21tYW5kcykg aXMgdW5jbGVhci4KKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LmdldFN1YnBh dGgKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFJldHVybnMg c3VicGF0aCBvZiBhIGdpdmVuIGVsZW1lbnQgZnJvbSBnaXZlbiBzdGFydCBh bmQgZW5kIGxlbmd0aHMgKG9ubHkgd29ya3MgZm9yIGBwYXRoYCBlbGVtZW50 cykKKyAgICAgKioKKyAgICAgLSBmcm9tIChudW1iZXIpIGxlbmd0aCwgaW4g cGl4ZWxzLCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgcGF0aCB0byB0aGUgc3Rh cnQgb2YgdGhlIHNlZ21lbnQKKyAgICAgLSB0byAobnVtYmVyKSBsZW5ndGgs IGluIHBpeGVscywgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHBhdGggdG8gdGhl IGVuZCBvZiB0aGUgc2VnbWVudAorICAgICAqKgorICAgICA9IChzdHJpbmcp IHBhdGggc3RyaW5nIGRlZmluaXRpb24gZm9yIHRoZSBzZWdtZW50CisgICAg XCovCisgICAgZWxwcm90by5nZXRTdWJwYXRoID0gZnVuY3Rpb24gKGZyb20s IHRvKSB7CisgICAgICAgIHJldHVybiBTbmFwLnBhdGguZ2V0U3VicGF0aCh0 aGlzLmF0dHIoImQiKSwgZnJvbSwgdG8pOworICAgIH07CisgICAgU25hcC5f LmJveCA9IGJveDsKKyAgICAvKlwKKyAgICAgKiBTbmFwLnBhdGguZmluZERv dHNBdFNlZ21lbnQKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAq IFV0aWxpdHkgbWV0aG9kCisgICAgICoqCisgICAgICogRmluZHMgZG90IGNv b3JkaW5hdGVzIG9uIHRoZSBnaXZlbiBjdWJpYyBiZXppw6lyIGN1cnZlIGF0 IHRoZSBnaXZlbiB0CisgICAgIC0gcDF4IChudW1iZXIpIHggb2YgdGhlIGZp cnN0IHBvaW50IG9mIHRoZSBjdXJ2ZQorICAgICAtIHAxeSAobnVtYmVyKSB5 IG9mIHRoZSBmaXJzdCBwb2ludCBvZiB0aGUgY3VydmUKKyAgICAgLSBjMXgg KG51bWJlcikgeCBvZiB0aGUgZmlyc3QgYW5jaG9yIG9mIHRoZSBjdXJ2ZQor ICAgICAtIGMxeSAobnVtYmVyKSB5IG9mIHRoZSBmaXJzdCBhbmNob3Igb2Yg dGhlIGN1cnZlCisgICAgIC0gYzJ4IChudW1iZXIpIHggb2YgdGhlIHNlY29u ZCBhbmNob3Igb2YgdGhlIGN1cnZlCisgICAgIC0gYzJ5IChudW1iZXIpIHkg b2YgdGhlIHNlY29uZCBhbmNob3Igb2YgdGhlIGN1cnZlCisgICAgIC0gcDJ4 IChudW1iZXIpIHggb2YgdGhlIHNlY29uZCBwb2ludCBvZiB0aGUgY3VydmUK KyAgICAgLSBwMnkgKG51bWJlcikgeSBvZiB0aGUgc2Vjb25kIHBvaW50IG9m IHRoZSBjdXJ2ZQorICAgICAtIHQgKG51bWJlcikgcG9zaXRpb24gb24gdGhl IGN1cnZlICgwLi4xKQorICAgICA9IChvYmplY3QpIHBvaW50IGluZm9ybWF0 aW9uIGluIGZvcm1hdDoKKyAgICAgbyB7CisgICAgIG8gICAgIHg6IChudW1i ZXIpIHggY29vcmRpbmF0ZSBvZiB0aGUgcG9pbnQsCisgICAgIG8gICAgIHk6 IChudW1iZXIpIHkgY29vcmRpbmF0ZSBvZiB0aGUgcG9pbnQsCisgICAgIG8g ICAgIG06IHsKKyAgICAgbyAgICAgICAgIHg6IChudW1iZXIpIHggY29vcmRp bmF0ZSBvZiB0aGUgbGVmdCBhbmNob3IsCisgICAgIG8gICAgICAgICB5OiAo bnVtYmVyKSB5IGNvb3JkaW5hdGUgb2YgdGhlIGxlZnQgYW5jaG9yCisgICAg IG8gICAgIH0sCisgICAgIG8gICAgIG46IHsKKyAgICAgbyAgICAgICAgIHg6 IChudW1iZXIpIHggY29vcmRpbmF0ZSBvZiB0aGUgcmlnaHQgYW5jaG9yLAor ICAgICBvICAgICAgICAgeTogKG51bWJlcikgeSBjb29yZGluYXRlIG9mIHRo ZSByaWdodCBhbmNob3IKKyAgICAgbyAgICAgfSwKKyAgICAgbyAgICAgc3Rh cnQ6IHsKKyAgICAgbyAgICAgICAgIHg6IChudW1iZXIpIHggY29vcmRpbmF0 ZSBvZiB0aGUgc3RhcnQgb2YgdGhlIGN1cnZlLAorICAgICBvICAgICAgICAg eTogKG51bWJlcikgeSBjb29yZGluYXRlIG9mIHRoZSBzdGFydCBvZiB0aGUg Y3VydmUKKyAgICAgbyAgICAgfSwKKyAgICAgbyAgICAgZW5kOiB7CisgICAg IG8gICAgICAgICB4OiAobnVtYmVyKSB4IGNvb3JkaW5hdGUgb2YgdGhlIGVu ZCBvZiB0aGUgY3VydmUsCisgICAgIG8gICAgICAgICB5OiAobnVtYmVyKSB5 IGNvb3JkaW5hdGUgb2YgdGhlIGVuZCBvZiB0aGUgY3VydmUKKyAgICAgbyAg ICAgfSwKKyAgICAgbyAgICAgYWxwaGE6IChudW1iZXIpIGFuZ2xlIG9mIHRo ZSBjdXJ2ZSBkZXJpdmF0aXZlIGF0IHRoZSBwb2ludAorICAgICBvIH0KKyAg ICBcKi8KKyAgICBTbmFwLnBhdGguZmluZERvdHNBdFNlZ21lbnQgPSBmaW5k RG90c0F0U2VnbWVudDsKKyAgICAvKlwKKyAgICAgKiBTbmFwLnBhdGguYmV6 aWVyQkJveAorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogVXRp bGl0eSBtZXRob2QKKyAgICAgKioKKyAgICAgKiBSZXR1cm5zIHRoZSBib3Vu ZGluZyBib3ggb2YgYSBnaXZlbiBjdWJpYyBiZXppw6lyIGN1cnZlCisgICAg IC0gcDF4IChudW1iZXIpIHggb2YgdGhlIGZpcnN0IHBvaW50IG9mIHRoZSBj dXJ2ZQorICAgICAtIHAxeSAobnVtYmVyKSB5IG9mIHRoZSBmaXJzdCBwb2lu dCBvZiB0aGUgY3VydmUKKyAgICAgLSBjMXggKG51bWJlcikgeCBvZiB0aGUg Zmlyc3QgYW5jaG9yIG9mIHRoZSBjdXJ2ZQorICAgICAtIGMxeSAobnVtYmVy KSB5IG9mIHRoZSBmaXJzdCBhbmNob3Igb2YgdGhlIGN1cnZlCisgICAgIC0g YzJ4IChudW1iZXIpIHggb2YgdGhlIHNlY29uZCBhbmNob3Igb2YgdGhlIGN1 cnZlCisgICAgIC0gYzJ5IChudW1iZXIpIHkgb2YgdGhlIHNlY29uZCBhbmNo b3Igb2YgdGhlIGN1cnZlCisgICAgIC0gcDJ4IChudW1iZXIpIHggb2YgdGhl IHNlY29uZCBwb2ludCBvZiB0aGUgY3VydmUKKyAgICAgLSBwMnkgKG51bWJl cikgeSBvZiB0aGUgc2Vjb25kIHBvaW50IG9mIHRoZSBjdXJ2ZQorICAgICAq IG9yCisgICAgIC0gYmV6IChhcnJheSkgYXJyYXkgb2Ygc2l4IHBvaW50cyBm b3IgYmV6acOpciBjdXJ2ZQorICAgICA9IChvYmplY3QpIGJvdW5kaW5nIGJv eAorICAgICBvIHsKKyAgICAgbyAgICAgeDogKG51bWJlcikgeCBjb29yZGlu YXRlIG9mIHRoZSBsZWZ0IHRvcCBwb2ludCBvZiB0aGUgYm94LAorICAgICBv ICAgICB5OiAobnVtYmVyKSB5IGNvb3JkaW5hdGUgb2YgdGhlIGxlZnQgdG9w IHBvaW50IG9mIHRoZSBib3gsCisgICAgIG8gICAgIHgyOiAobnVtYmVyKSB4 IGNvb3JkaW5hdGUgb2YgdGhlIHJpZ2h0IGJvdHRvbSBwb2ludCBvZiB0aGUg Ym94LAorICAgICBvICAgICB5MjogKG51bWJlcikgeSBjb29yZGluYXRlIG9m IHRoZSByaWdodCBib3R0b20gcG9pbnQgb2YgdGhlIGJveCwKKyAgICAgbyAg ICAgd2lkdGg6IChudW1iZXIpIHdpZHRoIG9mIHRoZSBib3gsCisgICAgIG8g ICAgIGhlaWdodDogKG51bWJlcikgaGVpZ2h0IG9mIHRoZSBib3gKKyAgICAg byB9CisgICAgXCovCisgICAgU25hcC5wYXRoLmJlemllckJCb3ggPSBiZXpp ZXJCQm94OworICAgIC8qXAorICAgICAqIFNuYXAucGF0aC5pc1BvaW50SW5z aWRlQkJveAorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogVXRp bGl0eSBtZXRob2QKKyAgICAgKioKKyAgICAgKiBSZXR1cm5zIGB0cnVlYCBp ZiBnaXZlbiBwb2ludCBpcyBpbnNpZGUgYm91bmRpbmcgYm94CisgICAgIC0g YmJveCAoc3RyaW5nKSBib3VuZGluZyBib3gKKyAgICAgLSB4IChzdHJpbmcp IHggY29vcmRpbmF0ZSBvZiB0aGUgcG9pbnQKKyAgICAgLSB5IChzdHJpbmcp IHkgY29vcmRpbmF0ZSBvZiB0aGUgcG9pbnQKKyAgICAgPSAoYm9vbGVhbikg YHRydWVgIGlmIHBvaW50IGlzIGluc2lkZQorICAgIFwqLworICAgIFNuYXAu cGF0aC5pc1BvaW50SW5zaWRlQkJveCA9IGlzUG9pbnRJbnNpZGVCQm94Owor ICAgIFNuYXAuY2xvc2VzdCA9IGZ1bmN0aW9uICh4LCB5LCBYLCBZKSB7Cisg ICAgICAgIHZhciByID0gMTAwLAorICAgICAgICAgICAgYiA9IGJveCh4IC0g ciAvIDIsIHkgLSByIC8gMiwgciwgciksCisgICAgICAgICAgICBpbnNpZGUg PSBbXSwKKyAgICAgICAgICAgIGdldHRlciA9IFhbMF0uaGFzT3duUHJvcGVy dHkoIngiKSA/IGZ1bmN0aW9uIChpKSB7CisgICAgICAgICAgICAgICAgcmV0 dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgeDogWFtpXS54LAorICAgICAg ICAgICAgICAgICAgICB5OiBYW2ldLnkKKyAgICAgICAgICAgICAgICB9Owor ICAgICAgICAgICAgfSA6IGZ1bmN0aW9uIChpKSB7CisgICAgICAgICAgICAg ICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgeDogWFtpXSwKKyAg ICAgICAgICAgICAgICAgICAgeTogWVtpXQorICAgICAgICAgICAgICAgIH07 CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZm91bmQgPSAwOworICAg ICAgICB3aGlsZSAociA8PSAxZTYgJiYgIWZvdW5kKSB7CisgICAgICAgICAg ICBmb3IgKHZhciBpID0gMCwgaWkgPSBYLmxlbmd0aDsgaSA8IGlpOyBpKysp IHsKKyAgICAgICAgICAgICAgICB2YXIgeHkgPSBnZXR0ZXIoaSk7CisgICAg ICAgICAgICAgICAgaWYgKGlzUG9pbnRJbnNpZGVCQm94KGIsIHh5LngsIHh5 LnkpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kKys7CisgICAgICAg ICAgICAgICAgICAgIGluc2lkZS5wdXNoKHh5KTsKKyAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg fQorICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAg IHIgKj0gMjsKKyAgICAgICAgICAgICAgICBiID0gYm94KHggLSByIC8gMiwg eSAtIHIgLyAyLCByLCByKQorICAgICAgICAgICAgfQorICAgICAgICB9Cisg ICAgICAgIGlmIChyID09IDFlNikgeworICAgICAgICAgICAgcmV0dXJuOwor ICAgICAgICB9CisgICAgICAgIHZhciBsZW4gPSBJbmZpbml0eSwKKyAgICAg ICAgICAgIHJlczsKKyAgICAgICAgZm9yIChpID0gMCwgaWkgPSBpbnNpZGUu bGVuZ3RoOyBpIDwgaWk7IGkrKykgeworICAgICAgICAgICAgdmFyIGwgPSBT bmFwLmxlbih4LCB5LCBpbnNpZGVbaV0ueCwgaW5zaWRlW2ldLnkpOworICAg ICAgICAgICAgaWYgKGxlbiA+IGwpIHsKKyAgICAgICAgICAgICAgICBsZW4g PSBsOworICAgICAgICAgICAgICAgIGluc2lkZVtpXS5sZW4gPSBsOworICAg ICAgICAgICAgICAgIHJlcyA9IGluc2lkZVtpXTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzOworICAgIH07CisgICAg LypcCisgICAgICogU25hcC5wYXRoLmlzQkJveEludGVyc2VjdAorICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogVXRpbGl0eSBtZXRob2QKKyAg ICAgKioKKyAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0d28gYm91bmRpbmcg Ym94ZXMgaW50ZXJzZWN0CisgICAgIC0gYmJveDEgKHN0cmluZykgZmlyc3Qg Ym91bmRpbmcgYm94CisgICAgIC0gYmJveDIgKHN0cmluZykgc2Vjb25kIGJv dW5kaW5nIGJveAorICAgICA9IChib29sZWFuKSBgdHJ1ZWAgaWYgYm91bmRp bmcgYm94ZXMgaW50ZXJzZWN0CisgICAgXCovCisgICAgU25hcC5wYXRoLmlz QkJveEludGVyc2VjdCA9IGlzQkJveEludGVyc2VjdDsKKyAgICAvKlwKKyAg ICAgKiBTbmFwLnBhdGguaW50ZXJzZWN0aW9uCisgICAgIFsgbWV0aG9kIF0K KyAgICAgKioKKyAgICAgKiBVdGlsaXR5IG1ldGhvZAorICAgICAqKgorICAg ICAqIEZpbmRzIGludGVyc2VjdGlvbnMgb2YgdHdvIHBhdGhzCisgICAgIC0g cGF0aDEgKHN0cmluZykgcGF0aCBzdHJpbmcKKyAgICAgLSBwYXRoMiAoc3Ry aW5nKSBwYXRoIHN0cmluZworICAgICA9IChhcnJheSkgZG90cyBvZiBpbnRl cnNlY3Rpb24KKyAgICAgbyBbCisgICAgIG8gICAgIHsKKyAgICAgbyAgICAg ICAgIHg6IChudW1iZXIpIHggY29vcmRpbmF0ZSBvZiB0aGUgcG9pbnQsCisg ICAgIG8gICAgICAgICB5OiAobnVtYmVyKSB5IGNvb3JkaW5hdGUgb2YgdGhl IHBvaW50LAorICAgICBvICAgICAgICAgdDE6IChudW1iZXIpIHQgdmFsdWUg Zm9yIHNlZ21lbnQgb2YgcGF0aDEsCisgICAgIG8gICAgICAgICB0MjogKG51 bWJlcikgdCB2YWx1ZSBmb3Igc2VnbWVudCBvZiBwYXRoMiwKKyAgICAgbyAg ICAgICAgIHNlZ21lbnQxOiAobnVtYmVyKSBvcmRlciBudW1iZXIgZm9yIHNl Z21lbnQgb2YgcGF0aDEsCisgICAgIG8gICAgICAgICBzZWdtZW50MjogKG51 bWJlcikgb3JkZXIgbnVtYmVyIGZvciBzZWdtZW50IG9mIHBhdGgyLAorICAg ICBvICAgICAgICAgYmV6MTogKGFycmF5KSBlaWdodCBjb29yZGluYXRlcyBy ZXByZXNlbnRpbmcgYmV6acOpciBjdXJ2ZSBmb3IgdGhlIHNlZ21lbnQgb2Yg cGF0aDEsCisgICAgIG8gICAgICAgICBiZXoyOiAoYXJyYXkpIGVpZ2h0IGNv b3JkaW5hdGVzIHJlcHJlc2VudGluZyBiZXppw6lyIGN1cnZlIGZvciB0aGUg c2VnbWVudCBvZiBwYXRoMgorICAgICBvICAgICB9CisgICAgIG8gXQorICAg IFwqLworICAgIFNuYXAucGF0aC5pbnRlcnNlY3Rpb24gPSBwYXRoSW50ZXJz ZWN0aW9uOworICAgIFNuYXAucGF0aC5pbnRlcnNlY3Rpb25OdW1iZXIgPSBw YXRoSW50ZXJzZWN0aW9uTnVtYmVyOworICAgIC8qXAorICAgICAqIFNuYXAu cGF0aC5pc1BvaW50SW5zaWRlCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioK KyAgICAgKiBVdGlsaXR5IG1ldGhvZAorICAgICAqKgorICAgICAqIFJldHVy bnMgYHRydWVgIGlmIGdpdmVuIHBvaW50IGlzIGluc2lkZSBhIGdpdmVuIGNs b3NlZCBwYXRoLgorICAgICAqCisgICAgICogTm90ZTogZmlsbCBtb2RlIGRv ZXNu4oCZdCBhZmZlY3QgdGhlIHJlc3VsdCBvZiB0aGlzIG1ldGhvZC4KKyAg ICAgLSBwYXRoIChzdHJpbmcpIHBhdGggc3RyaW5nCisgICAgIC0geCAobnVt YmVyKSB4IG9mIHRoZSBwb2ludAorICAgICAtIHkgKG51bWJlcikgeSBvZiB0 aGUgcG9pbnQKKyAgICAgPSAoYm9vbGVhbikgYHRydWVgIGlmIHBvaW50IGlz IGluc2lkZSB0aGUgcGF0aAorICAgIFwqLworICAgIFNuYXAucGF0aC5pc1Bv aW50SW5zaWRlID0gaXNQb2ludEluc2lkZVBhdGg7CisgICAgLypcCisgICAg ICogU25hcC5wYXRoLmdldEJCb3gKKyAgICAgWyBtZXRob2QgXQorICAgICAq KgorICAgICAqIFV0aWxpdHkgbWV0aG9kCisgICAgICoqCisgICAgICogUmV0 dXJucyB0aGUgYm91bmRpbmcgYm94IG9mIGEgZ2l2ZW4gcGF0aAorICAgICAt IHBhdGggKHN0cmluZykgcGF0aCBzdHJpbmcKKyAgICAgPSAob2JqZWN0KSBi b3VuZGluZyBib3gKKyAgICAgbyB7CisgICAgIG8gICAgIHg6IChudW1iZXIp IHggY29vcmRpbmF0ZSBvZiB0aGUgbGVmdCB0b3AgcG9pbnQgb2YgdGhlIGJv eCwKKyAgICAgbyAgICAgeTogKG51bWJlcikgeSBjb29yZGluYXRlIG9mIHRo ZSBsZWZ0IHRvcCBwb2ludCBvZiB0aGUgYm94LAorICAgICBvICAgICB4Mjog KG51bWJlcikgeCBjb29yZGluYXRlIG9mIHRoZSByaWdodCBib3R0b20gcG9p bnQgb2YgdGhlIGJveCwKKyAgICAgbyAgICAgeTI6IChudW1iZXIpIHkgY29v cmRpbmF0ZSBvZiB0aGUgcmlnaHQgYm90dG9tIHBvaW50IG9mIHRoZSBib3gs CisgICAgIG8gICAgIHdpZHRoOiAobnVtYmVyKSB3aWR0aCBvZiB0aGUgYm94 LAorICAgICBvICAgICBoZWlnaHQ6IChudW1iZXIpIGhlaWdodCBvZiB0aGUg Ym94CisgICAgIG8gfQorICAgIFwqLworICAgIFNuYXAucGF0aC5nZXRCQm94 ID0gcGF0aEJCb3g7CisgICAgU25hcC5wYXRoLmdldCA9IGdldFBhdGg7Cisg ICAgLypcCisgICAgICogU25hcC5wYXRoLnRvUmVsYXRpdmUKKyAgICAgWyBt ZXRob2QgXQorICAgICAqKgorICAgICAqIFV0aWxpdHkgbWV0aG9kCisgICAg ICoqCisgICAgICogQ29udmVydHMgcGF0aCBjb29yZGluYXRlcyBpbnRvIHJl bGF0aXZlIHZhbHVlcworICAgICAtIHBhdGggKHN0cmluZykgcGF0aCBzdHJp bmcKKyAgICAgPSAoYXJyYXkpIHBhdGggc3RyaW5nCisgICAgXCovCisgICAg U25hcC5wYXRoLnRvUmVsYXRpdmUgPSBwYXRoVG9SZWxhdGl2ZTsKKyAgICAv KlwKKyAgICAgKiBTbmFwLnBhdGgudG9BYnNvbHV0ZQorICAgICBbIG1ldGhv ZCBdCisgICAgICoqCisgICAgICogVXRpbGl0eSBtZXRob2QKKyAgICAgKioK KyAgICAgKiBDb252ZXJ0cyBwYXRoIGNvb3JkaW5hdGVzIGludG8gYWJzb2x1 dGUgdmFsdWVzCisgICAgIC0gcGF0aCAoc3RyaW5nKSBwYXRoIHN0cmluZwor ICAgICA9IChhcnJheSkgcGF0aCBzdHJpbmcKKyAgICBcKi8KKyAgICBTbmFw LnBhdGgudG9BYnNvbHV0ZSA9IHBhdGhUb0Fic29sdXRlOworICAgIC8qXAor ICAgICAqIFNuYXAucGF0aC50b0N1YmljCisgICAgIFsgbWV0aG9kIF0KKyAg ICAgKioKKyAgICAgKiBVdGlsaXR5IG1ldGhvZAorICAgICAqKgorICAgICAq IENvbnZlcnRzIHBhdGggdG8gYSBuZXcgcGF0aCB3aGVyZSBhbGwgc2VnbWVu dHMgYXJlIGN1YmljIGJlemnDqXIgY3VydmVzCisgICAgIC0gcGF0aFN0cmlu ZyAoc3RyaW5nfGFycmF5KSBwYXRoIHN0cmluZyBvciBhcnJheSBvZiBzZWdt ZW50cworICAgICA9IChhcnJheSkgYXJyYXkgb2Ygc2VnbWVudHMKKyAgICBc Ki8KKyAgICBTbmFwLnBhdGgudG9DdWJpYyA9IHBhdGgyY3VydmU7CisgICAg LypcCisgICAgICogU25hcC5wYXRoLm1hcAorICAgICBbIG1ldGhvZCBdCisg ICAgICoqCisgICAgICogVHJhbnNmb3JtIHRoZSBwYXRoIHN0cmluZyB3aXRo IHRoZSBnaXZlbiBtYXRyaXgKKyAgICAgLSBwYXRoIChzdHJpbmcpIHBhdGgg c3RyaW5nCisgICAgIC0gbWF0cml4IChvYmplY3QpIHNlZSBATWF0cml4Cisg ICAgID0gKHN0cmluZykgdHJhbnNmb3JtZWQgcGF0aCBzdHJpbmcKKyAgICBc Ki8KKyAgICBTbmFwLnBhdGgubWFwID0gbWFwUGF0aDsKKyAgICBTbmFwLnBh dGgudG9TdHJpbmcgPSB0b1N0cmluZzsKKyAgICBTbmFwLnBhdGguY2xvbmUg PSBwYXRoQ2xvbmU7Cit9KTsKKworLy8gQ29weXJpZ2h0IChjKSAyMDEzIEFk b2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk LgorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg VmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3Qg dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBM aWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNl bnNlIGF0CisvLworLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz L0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxp Y2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQor Ly8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0 ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElF UyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBv ciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lm aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGlt aXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCitTbmFwLnBsdWdpbihmdW5j dGlvbiAoU25hcCwgRWxlbWVudCwgUGFwZXIsIGdsb2IpIHsKKyAgICB2YXIg bW1heCA9IE1hdGgubWF4LAorICAgICAgICBtbWluID0gTWF0aC5taW47CisK KyAgICAvLyBTZXQKKyAgICB2YXIgU2V0ID0gZnVuY3Rpb24gKGl0ZW1zKSB7 CisgICAgICAgIHRoaXMuaXRlbXMgPSBbXTsKKwl0aGlzLmJpbmRpbmdzID0g e307CisgICAgICAgIHRoaXMubGVuZ3RoID0gMDsKKyAgICAgICAgdGhpcy50 eXBlID0gInNldCI7CisgICAgICAgIGlmIChpdGVtcykgeworICAgICAgICAg ICAgZm9yICh2YXIgaSA9IDAsIGlpID0gaXRlbXMubGVuZ3RoOyBpIDwgaWk7 IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXSkgeworICAg ICAgICAgICAgICAgICAgICB0aGlzW3RoaXMuaXRlbXMubGVuZ3RoXSA9IHRo aXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGhdID0gaXRlbXNbaV07CisgICAg ICAgICAgICAgICAgICAgIHRoaXMubGVuZ3RoKys7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKyAgICBz ZXRwcm90byA9IFNldC5wcm90b3R5cGU7CisgICAgLypcCisgICAgICogU2V0 LnB1c2gKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEFkZHMg ZWFjaCBhcmd1bWVudCB0byB0aGUgY3VycmVudCBzZXQKKyAgICAgPSAob2Jq ZWN0KSBvcmlnaW5hbCBlbGVtZW50CisgICAgXCovCisgICAgc2V0cHJvdG8u cHVzaCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGl0ZW0sCisgICAg ICAgICAgICBsZW47CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBpaSA9IGFy Z3VtZW50cy5sZW5ndGg7IGkgPCBpaTsgaSsrKSB7CisgICAgICAgICAgICBp dGVtID0gYXJndW1lbnRzW2ldOworICAgICAgICAgICAgaWYgKGl0ZW0pIHsK KyAgICAgICAgICAgICAgICBsZW4gPSB0aGlzLml0ZW1zLmxlbmd0aDsKKyAg ICAgICAgICAgICAgICB0aGlzW2xlbl0gPSB0aGlzLml0ZW1zW2xlbl0gPSBp dGVtOworICAgICAgICAgICAgICAgIHRoaXMubGVuZ3RoKys7CisgICAgICAg ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAg fTsKKyAgICAvKlwKKyAgICAgKiBTZXQucG9wCisgICAgIFsgbWV0aG9kIF0K KyAgICAgKioKKyAgICAgKiBSZW1vdmVzIGxhc3QgZWxlbWVudCBhbmQgcmV0 dXJucyBpdAorICAgICA9IChvYmplY3QpIGVsZW1lbnQKKyAgICBcKi8KKyAg ICBzZXRwcm90by5wb3AgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRoaXMu bGVuZ3RoICYmIGRlbGV0ZSB0aGlzW3RoaXMubGVuZ3RoLS1dOworICAgICAg ICByZXR1cm4gdGhpcy5pdGVtcy5wb3AoKTsKKyAgICB9OworICAgIC8qXAor ICAgICAqIFNldC5mb3JFYWNoCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioK KyAgICAgKiBFeGVjdXRlcyBnaXZlbiBmdW5jdGlvbiBmb3IgZWFjaCBlbGVt ZW50IGluIHRoZSBzZXQKKyAgICAgKgorICAgICAqIElmIHRoZSBmdW5jdGlv biByZXR1cm5zIGBmYWxzZWAsIHRoZSBsb29wIHN0b3BzIHJ1bm5pbmcuCisg ICAgICoqCisgICAgIC0gY2FsbGJhY2sgKGZ1bmN0aW9uKSBmdW5jdGlvbiB0 byBydW4KKyAgICAgLSB0aGlzQXJnIChvYmplY3QpIGNvbnRleHQgb2JqZWN0 IGZvciB0aGUgY2FsbGJhY2sKKyAgICAgPSAob2JqZWN0KSBTZXQgb2JqZWN0 CisgICAgXCovCisgICAgc2V0cHJvdG8uZm9yRWFjaCA9IGZ1bmN0aW9uIChj YWxsYmFjaywgdGhpc0FyZykgeworICAgICAgICBmb3IgKHZhciBpID0gMCwg aWkgPSB0aGlzLml0ZW1zLmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAg ICAgICAgIGlmIChjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHRoaXMuaXRlbXNb aV0sIGkpID09PSBmYWxzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0 aGlzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVy biB0aGlzOworICAgIH07CisgICAgLypcCisgICAgICogU2V0LmFuaW1hdGUK KyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEFuaW1hdGVzIGVh Y2ggZWxlbWVudCBpbiBzZXQgaW4gc3luYy4KKyAgICAgKgorICAgICAqKgor ICAgICAtIGF0dHJzIChvYmplY3QpIGtleS12YWx1ZSBwYWlycyBvZiBkZXN0 aW5hdGlvbiBhdHRyaWJ1dGVzCisgICAgIC0gZHVyYXRpb24gKG51bWJlcikg ZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbiBpbiBtaWxsaXNlY29uZHMKKyAg ICAgLSBlYXNpbmcgKGZ1bmN0aW9uKSAjb3B0aW9uYWwgZWFzaW5nIGZ1bmN0 aW9uIGZyb20gQG1pbmEgb3IgY3VzdG9tCisgICAgIC0gY2FsbGJhY2sgKGZ1 bmN0aW9uKSAjb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBleGVj dXRlcyB3aGVuIHRoZSBhbmltYXRpb24gZW5kcworICAgICAqIG9yCisgICAg IC0gYW5pbWF0aW9uIChhcnJheSkgYXJyYXkgb2YgYW5pbWF0aW9uIHBhcmFt ZXRlciBmb3IgZWFjaCBlbGVtZW50IGluIHNldCBpbiBmb3JtYXQgYFthdHRy cywgZHVyYXRpb24sIGVhc2luZywgY2FsbGJhY2tdYAorICAgICA+IFVzYWdl CisgICAgIHwgLy8gYW5pbWF0ZSBhbGwgZWxlbWVudHMgaW4gc2V0IHRvIHJh ZGl1cyAxMAorICAgICB8IHNldC5hbmltYXRlKHtyOiAxMH0sIDUwMCwgbWlu YS5lYXNlaW4pOworICAgICB8IC8vIG9yCisgICAgIHwgLy8gYW5pbWF0ZSBm aXJzdCBlbGVtZW50IHRvIHJhZGl1cyAxMCwgYnV0IHNlY29uZCB0byByYWRp dXMgMjAgYW5kIGluIGRpZmZlcmVudCB0aW1lCisgICAgIHwgc2V0LmFuaW1h dGUoW3tyOiAxMH0sIDUwMCwgbWluYS5lYXNlaW5dLCBbe3I6IDIwfSwgMTUw MCwgbWluYS5lYXNlaW5dKTsKKyAgICAgPSAoRWxlbWVudCkgdGhlIGN1cnJl bnQgZWxlbWVudAorICAgIFwqLworICAgIHNldHByb3RvLmFuaW1hdGUgPSBm dW5jdGlvbiAoYXR0cnMsIG1zLCBlYXNpbmcsIGNhbGxiYWNrKSB7CisgICAg ICAgIGlmICh0eXBlb2YgZWFzaW5nID09ICJmdW5jdGlvbiIgJiYgIWVhc2lu Zy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrID0gZWFzaW5nOwor ICAgICAgICAgICAgZWFzaW5nID0gbWluYS5saW5lYXI7CisgICAgICAgIH0K KyAgICAgICAgaWYgKGF0dHJzIGluc3RhbmNlb2YgU25hcC5fLkFuaW1hdGlv bikgeworICAgICAgICAgICAgY2FsbGJhY2sgPSBhdHRycy5jYWxsYmFjazsK KyAgICAgICAgICAgIGVhc2luZyA9IGF0dHJzLmVhc2luZzsKKyAgICAgICAg ICAgIG1zID0gZWFzaW5nLmR1cjsKKyAgICAgICAgICAgIGF0dHJzID0gYXR0 cnMuYXR0cjsKKyAgICAgICAgfQorICAgICAgICB2YXIgYXJncyA9IGFyZ3Vt ZW50czsKKyAgICAgICAgaWYgKFNuYXAuaXMoYXR0cnMsICJhcnJheSIpICYm IFNuYXAuaXMoYXJnc1thcmdzLmxlbmd0aCAtIDFdLCAiYXJyYXkiKSkgewor ICAgICAgICAgICAgdmFyIGVhY2ggPSB0cnVlOworICAgICAgICB9CisgICAg ICAgIHZhciBiZWdpbiwKKyAgICAgICAgICAgIGhhbmRsZXIgPSBmdW5jdGlv biAoKSB7CisgICAgICAgICAgICAgICAgaWYgKGJlZ2luKSB7CisgICAgICAg ICAgICAgICAgICAgIHRoaXMuYiA9IGJlZ2luOworICAgICAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gdGhpcy5i OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAg ICAgICBjYiA9IDAsCisgICAgICAgICAgICBzZXQgPSB0aGlzLAorICAgICAg ICAgICAgY2FsbGJhY2tlciA9IGNhbGxiYWNrICYmIGZ1bmN0aW9uICgpIHsK KyAgICAgICAgICAgICAgICBpZiAoKytjYiA9PSBzZXQubGVuZ3RoKSB7Cisg ICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcyk7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgcmV0dXJu IHRoaXMuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGkpIHsKKyAgICAgICAgICAg IGV2ZS5vbmNlKCJzbmFwLmFuaW1jcmVhdGVkLiIgKyBlbC5pZCwgaGFuZGxl cik7CisgICAgICAgICAgICBpZiAoZWFjaCkgeworICAgICAgICAgICAgICAg IGFyZ3NbaV0gJiYgZWwuYW5pbWF0ZS5hcHBseShlbCwgYXJnc1tpXSk7Cisg ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVsLmFuaW1h dGUoYXR0cnMsIG1zLCBlYXNpbmcsIGNhbGxiYWNrZXIpOworICAgICAgICAg ICAgfQorICAgICAgICB9KTsKKyAgICB9OworICAgIHNldHByb3RvLnJlbW92 ZSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgd2hpbGUgKHRoaXMubGVuZ3Ro KSB7CisgICAgICAgICAgICB0aGlzLnBvcCgpLnJlbW92ZSgpOworICAgICAg ICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH07CisgICAgLypcCisg ICAgICogU2V0LmJpbmQKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAg ICAqIFNwZWNpZmllcyBob3cgdG8gaGFuZGxlIGEgc3BlY2lmaWMgYXR0cmli dXRlIHdoZW4gYXBwbGllZAorICAgICAqIHRvIGEgc2V0LgorICAgICAqCisg ICAgICoqCisgICAgIC0gYXR0ciAoc3RyaW5nKSBhdHRyaWJ1dGUgbmFtZQor ICAgICAtIGNhbGxiYWNrIChmdW5jdGlvbikgZnVuY3Rpb24gdG8gcnVuCisg ICAgICogb3IKKyAgICAgLSBhdHRyIChzdHJpbmcpIGF0dHJpYnV0ZSBuYW1l CisgICAgIC0gZWxlbWVudCAoRWxlbWVudCkgc3BlY2lmaWMgZWxlbWVudCBp biB0aGUgc2V0IHRvIGFwcGx5IHRoZSBhdHRyaWJ1dGUgdG8KKyAgICAgKiBv cgorICAgICAtIGF0dHIgKHN0cmluZykgYXR0cmlidXRlIG5hbWUKKyAgICAg LSBlbGVtZW50IChFbGVtZW50KSBzcGVjaWZpYyBlbGVtZW50IGluIHRoZSBz ZXQgdG8gYXBwbHkgdGhlIGF0dHJpYnV0ZSB0bworICAgICAtIGVhdHRyIChz dHJpbmcpIGF0dHJpYnV0ZSBvbiB0aGUgZWxlbWVudCB0byBiaW5kIHRoZSBh dHRyaWJ1dGUgdG8KKyAgICAgPSAob2JqZWN0KSBTZXQgb2JqZWN0CisgICAg XCovCisgICAgc2V0cHJvdG8uYmluZCA9IGZ1bmN0aW9uIChhdHRyLCBhLCBi KSB7CisgICAgICAgIHZhciBkYXRhID0ge307CisgICAgICAgIGlmICh0eXBl b2YgYSA9PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICB0aGlzLmJpbmRp bmdzW2F0dHJdID0gYTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg IHZhciBhbmFtZSA9IGIgfHwgYXR0cjsKKyAgICAgICAgICAgIHRoaXMuYmlu ZGluZ3NbYXR0cl0gPSBmdW5jdGlvbiAodikgeworICAgICAgICAgICAgICAg IGRhdGFbYW5hbWVdID0gdjsKKyAgICAgICAgICAgICAgICBhLmF0dHIoZGF0 YSk7CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVy biB0aGlzOworICAgIH07CisgICAgc2V0cHJvdG8uYXR0ciA9IGZ1bmN0aW9u ICh2YWx1ZSkgeworICAgICAgICB2YXIgdW5ib3VuZCA9IHt9OworICAgICAg ICBmb3IgKHZhciBrIGluIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAodGhp cy5iaW5kaW5nc1trXSkgeworICAgICAgICAgICAgICAgIHRoaXMuYmluZGlu Z3Nba10odmFsdWVba10pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICB1bmJvdW5kW2tdID0gdmFsdWVba107CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0g dGhpcy5pdGVtcy5sZW5ndGg7IGkgPCBpaTsgaSsrKSB7CisgICAgICAgICAg ICB0aGlzLml0ZW1zW2ldLmF0dHIodW5ib3VuZCk7CisgICAgICAgIH0KKyAg ICAgICAgcmV0dXJuIHRoaXM7CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBT ZXQuY2xlYXIKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFJl bW92ZXMgYWxsIGVsZW1lbnRzIGZyb20gdGhlIHNldAorICAgIFwqLworICAg IHNldHByb3RvLmNsZWFyID0gZnVuY3Rpb24gKCkgeworICAgICAgICB3aGls ZSAodGhpcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRoaXMucG9wKCk7Cisg ICAgICAgIH0KKyAgICB9OworICAgIC8qXAorICAgICAqIFNldC5zcGxpY2UK KyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFJlbW92ZXMgcmFu Z2Ugb2YgZWxlbWVudHMgZnJvbSB0aGUgc2V0CisgICAgICoqCisgICAgIC0g aW5kZXggKG51bWJlcikgcG9zaXRpb24gb2YgdGhlIGRlbGV0aW9uCisgICAg IC0gY291bnQgKG51bWJlcikgbnVtYmVyIG9mIGVsZW1lbnQgdG8gcmVtb3Zl CisgICAgIC0gaW5zZXJ0aW9u4oCmIChvYmplY3QpICNvcHRpb25hbCBlbGVt ZW50cyB0byBpbnNlcnQKKyAgICAgPSAob2JqZWN0KSBzZXQgZWxlbWVudHMg dGhhdCB3ZXJlIGRlbGV0ZWQKKyAgICBcKi8KKyAgICBzZXRwcm90by5zcGxp Y2UgPSBmdW5jdGlvbiAoaW5kZXgsIGNvdW50LCBpbnNlcnRpb24pIHsKKyAg ICAgICAgaW5kZXggPSBpbmRleCA8IDAgPyBtbWF4KHRoaXMubGVuZ3RoICsg aW5kZXgsIDApIDogaW5kZXg7CisgICAgICAgIGNvdW50ID0gbW1heCgwLCBt bWluKHRoaXMubGVuZ3RoIC0gaW5kZXgsIGNvdW50KSk7CisgICAgICAgIHZh ciB0YWlsID0gW10sCisgICAgICAgICAgICB0b2RlbCA9IFtdLAorICAgICAg ICAgICAgYXJncyA9IFtdLAorICAgICAgICAgICAgaTsKKyAgICAgICAgZm9y IChpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAg ICAgICAgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7CisgICAgICAgIH0KKyAg ICAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAg ICAgIHRvZGVsLnB1c2godGhpc1tpbmRleCArIGldKTsKKyAgICAgICAgfQor ICAgICAgICBmb3IgKDsgaSA8IHRoaXMubGVuZ3RoIC0gaW5kZXg7IGkrKykg eworICAgICAgICAgICAgdGFpbC5wdXNoKHRoaXNbaW5kZXggKyBpXSk7Cisg ICAgICAgIH0KKyAgICAgICAgdmFyIGFyZ2xlbiA9IGFyZ3MubGVuZ3RoOwor ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJnbGVuICsgdGFpbC5sZW5ndGg7 IGkrKykgeworICAgICAgICAgICAgdGhpcy5pdGVtc1tpbmRleCArIGldID0g dGhpc1tpbmRleCArIGldID0gaSA8IGFyZ2xlbiA/IGFyZ3NbaV0gOiB0YWls W2kgLSBhcmdsZW5dOworICAgICAgICB9CisgICAgICAgIGkgPSB0aGlzLml0 ZW1zLmxlbmd0aCA9IHRoaXMubGVuZ3RoIC09IGNvdW50IC0gYXJnbGVuOwor ICAgICAgICB3aGlsZSAodGhpc1tpXSkgeworICAgICAgICAgICAgZGVsZXRl IHRoaXNbaSsrXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFNl dCh0b2RlbCk7CisgICAgfTsKKyAgICAvKlwKKyAgICAgKiBTZXQuZXhjbHVk ZQorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmVtb3ZlcyBn aXZlbiBlbGVtZW50IGZyb20gdGhlIHNldAorICAgICAqKgorICAgICAtIGVs ZW1lbnQgKG9iamVjdCkgZWxlbWVudCB0byByZW1vdmUKKyAgICAgPSAoYm9v bGVhbikgYHRydWVgIGlmIG9iamVjdCB3YXMgZm91bmQgYW5kIHJlbW92ZWQg ZnJvbSB0aGUgc2V0CisgICAgXCovCisgICAgc2V0cHJvdG8uZXhjbHVkZSA9 IGZ1bmN0aW9uIChlbCkgeworICAgICAgICBmb3IgKHZhciBpID0gMCwgaWkg PSB0aGlzLmxlbmd0aDsgaSA8IGlpOyBpKyspIGlmICh0aGlzW2ldID09IGVs KSB7CisgICAgICAgICAgICB0aGlzLnNwbGljZShpLCAxKTsKKyAgICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBm YWxzZTsKKyAgICB9OworICAgIHNldHByb3RvLmluc2VydEFmdGVyID0gZnVu Y3Rpb24gKGVsKSB7CisgICAgICAgIHZhciBpID0gdGhpcy5pdGVtcy5sZW5n dGg7CisgICAgICAgIHdoaWxlIChpLS0pIHsKKyAgICAgICAgICAgIHRoaXMu aXRlbXNbaV0uaW5zZXJ0QWZ0ZXIoZWwpOworICAgICAgICB9CisgICAgICAg IHJldHVybiB0aGlzOworICAgIH07CisgICAgc2V0cHJvdG8uZ2V0QkJveCA9 IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHggPSBbXSwKKyAgICAgICAg ICAgIHkgPSBbXSwKKyAgICAgICAgICAgIHgyID0gW10sCisgICAgICAgICAg ICB5MiA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5pdGVtcy5s ZW5ndGg7IGktLTspIGlmICghdGhpcy5pdGVtc1tpXS5yZW1vdmVkKSB7Cisg ICAgICAgICAgICB2YXIgYm94ID0gdGhpcy5pdGVtc1tpXS5nZXRCQm94KCk7 CisgICAgICAgICAgICB4LnB1c2goYm94LngpOworICAgICAgICAgICAgeS5w dXNoKGJveC55KTsKKyAgICAgICAgICAgIHgyLnB1c2goYm94LnggKyBib3gu d2lkdGgpOworICAgICAgICAgICAgeTIucHVzaChib3gueSArIGJveC5oZWln aHQpOworICAgICAgICB9CisgICAgICAgIHggPSBtbWluLmFwcGx5KDAsIHgp OworICAgICAgICB5ID0gbW1pbi5hcHBseSgwLCB5KTsKKyAgICAgICAgeDIg PSBtbWF4LmFwcGx5KDAsIHgyKTsKKyAgICAgICAgeTIgPSBtbWF4LmFwcGx5 KDAsIHkyKTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHg6IHgs CisgICAgICAgICAgICB5OiB5LAorICAgICAgICAgICAgeDI6IHgyLAorICAg ICAgICAgICAgeTI6IHkyLAorICAgICAgICAgICAgd2lkdGg6IHgyIC0geCwK KyAgICAgICAgICAgIGhlaWdodDogeTIgLSB5LAorICAgICAgICAgICAgY3g6 IHggKyAoeDIgLSB4KSAvIDIsCisgICAgICAgICAgICBjeTogeSArICh5MiAt IHkpIC8gMgorICAgICAgICB9OworICAgIH07CisgICAgc2V0cHJvdG8uY2xv bmUgPSBmdW5jdGlvbiAocykgeworICAgICAgICBzID0gbmV3IFNldDsKKyAg ICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gdGhpcy5pdGVtcy5sZW5ndGg7 IGkgPCBpaTsgaSsrKSB7CisgICAgICAgICAgICBzLnB1c2godGhpcy5pdGVt c1tpXS5jbG9uZSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gczsK KyAgICB9OworICAgIHNldHByb3RvLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkg eworICAgICAgICByZXR1cm4gIlNuYXBcdTIwMThzIHNldCI7CisgICAgfTsK KyAgICBzZXRwcm90by50eXBlID0gInNldCI7CisgICAgLy8gZXhwb3J0Cisg ICAgU25hcC5TZXQgPSBTZXQ7CisgICAgU25hcC5zZXQgPSBmdW5jdGlvbiAo KSB7CisgICAgICAgIHZhciBzZXQgPSBuZXcgU2V0OworICAgICAgICBpZiAo YXJndW1lbnRzLmxlbmd0aCkgeworICAgICAgICAgICAgc2V0LnB1c2guYXBw bHkoc2V0LCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMs IDApKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0OworICAgIH07 Cit9KTsKKworLy8gQ29weXJpZ2h0IChjKSAyMDEzIEFkb2JlIFN5c3RlbXMg SW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIExp Y2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAg KHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmls ZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8g WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLwor Ly8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w CisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y IGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0 ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFT IElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ T05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgor Ly8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2Ug Z292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5k ZXIgdGhlIExpY2Vuc2UuCitTbmFwLnBsdWdpbihmdW5jdGlvbiAoU25hcCwg RWxlbWVudCwgUGFwZXIsIGdsb2IpIHsKKyAgICB2YXIgbmFtZXMgPSB7fSwK KyAgICAgICAgcmVVbml0ID0gL1thLXpdKyQvaSwKKyAgICAgICAgU3RyID0g U3RyaW5nOworICAgIG5hbWVzLnN0cm9rZSA9IG5hbWVzLmZpbGwgPSAiY29s b3VyIjsKKyAgICBmdW5jdGlvbiBnZXRFbXB0eShpdGVtKSB7CisgICAgICAg IHZhciBsID0gaXRlbVswXTsKKyAgICAgICAgc3dpdGNoIChsLnRvTG93ZXJD YXNlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgInQiOiByZXR1cm4gW2wsIDAs IDBdOworICAgICAgICAgICAgY2FzZSAibSI6IHJldHVybiBbbCwgMSwgMCwg MCwgMSwgMCwgMF07CisgICAgICAgICAgICBjYXNlICJyIjogaWYgKGl0ZW0u bGVuZ3RoID09IDQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gW2wsIDAs IGl0ZW1bMl0sIGl0ZW1bM11dOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICByZXR1cm4gW2wsIDBdOworICAgICAgICAgICAgfQor ICAgICAgICAgICAgY2FzZSAicyI6IGlmIChpdGVtLmxlbmd0aCA9PSA1KSB7 CisgICAgICAgICAgICAgICAgcmV0dXJuIFtsLCAxLCAxLCBpdGVtWzNdLCBp dGVtWzRdXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5sZW5ndGgg PT0gMykgeworICAgICAgICAgICAgICAgIHJldHVybiBbbCwgMSwgMV07Cisg ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBb bCwgMV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAg ZnVuY3Rpb24gZXF1YWxpc2VUcmFuc2Zvcm0odDEsIHQyLCBnZXRCQm94KSB7 CisgICAgICAgIHQyID0gU3RyKHQyKS5yZXBsYWNlKC9cLnszfXxcdTIwMjYv ZywgdDEpOworICAgICAgICB0MSA9IFNuYXAucGFyc2VUcmFuc2Zvcm1TdHJp bmcodDEpIHx8IFtdOworICAgICAgICB0MiA9IFNuYXAucGFyc2VUcmFuc2Zv cm1TdHJpbmcodDIpIHx8IFtdOworICAgICAgICB2YXIgbWF4bGVuZ3RoID0g TWF0aC5tYXgodDEubGVuZ3RoLCB0Mi5sZW5ndGgpLAorICAgICAgICAgICAg ZnJvbSA9IFtdLAorICAgICAgICAgICAgdG8gPSBbXSwKKyAgICAgICAgICAg IGkgPSAwLCBqLCBqaiwKKyAgICAgICAgICAgIHR0MSwgdHQyOworICAgICAg ICBmb3IgKDsgaSA8IG1heGxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0 dDEgPSB0MVtpXSB8fCBnZXRFbXB0eSh0MltpXSk7CisgICAgICAgICAgICB0 dDIgPSB0MltpXSB8fCBnZXRFbXB0eSh0dDEpOworICAgICAgICAgICAgaWYg KCh0dDFbMF0gIT0gdHQyWzBdKSB8fAorICAgICAgICAgICAgICAgICh0dDFb MF0udG9Mb3dlckNhc2UoKSA9PSAiciIgJiYgKHR0MVsyXSAhPSB0dDJbMl0g fHwgdHQxWzNdICE9IHR0MlszXSkpIHx8CisgICAgICAgICAgICAgICAgKHR0 MVswXS50b0xvd2VyQ2FzZSgpID09ICJzIiAmJiAodHQxWzNdICE9IHR0Mlsz XSB8fCB0dDFbNF0gIT0gdHQyWzRdKSkKKyAgICAgICAgICAgICAgICApIHsK KyAgICAgICAgICAgICAgICAgICAgdDEgPSBTbmFwLl8udHJhbnNmb3JtMm1h dHJpeCh0MSwgZ2V0QkJveCgpKTsKKyAgICAgICAgICAgICAgICAgICAgdDIg PSBTbmFwLl8udHJhbnNmb3JtMm1hdHJpeCh0MiwgZ2V0QkJveCgpKTsKKyAg ICAgICAgICAgICAgICAgICAgZnJvbSA9IFtbIm0iLCB0MS5hLCB0MS5iLCB0 MS5jLCB0MS5kLCB0MS5lLCB0MS5mXV07CisgICAgICAgICAgICAgICAgICAg IHRvID0gW1sibSIsIHQyLmEsIHQyLmIsIHQyLmMsIHQyLmQsIHQyLmUsIHQy LmZdXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICB9CisgICAgICAgICAgICBmcm9tW2ldID0gW107CisgICAgICAgICAgICB0 b1tpXSA9IFtdOworICAgICAgICAgICAgZm9yIChqID0gMCwgamogPSBNYXRo Lm1heCh0dDEubGVuZ3RoLCB0dDIubGVuZ3RoKTsgaiA8IGpqOyBqKyspIHsK KyAgICAgICAgICAgICAgICBqIGluIHR0MSAmJiAoZnJvbVtpXVtqXSA9IHR0 MVtqXSk7CisgICAgICAgICAgICAgICAgaiBpbiB0dDIgJiYgKHRvW2ldW2pd ID0gdHQyW2pdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg ICByZXR1cm4geworICAgICAgICAgICAgZnJvbTogcGF0aDJhcnJheShmcm9t KSwKKyAgICAgICAgICAgIHRvOiBwYXRoMmFycmF5KHRvKSwKKyAgICAgICAg ICAgIGY6IGdldFBhdGgoZnJvbSkKKyAgICAgICAgfTsKKyAgICB9CisgICAg ZnVuY3Rpb24gZ2V0TnVtYmVyKHZhbCkgeworICAgICAgICByZXR1cm4gdmFs OworICAgIH0KKyAgICBmdW5jdGlvbiBnZXRVbml0KHVuaXQpIHsKKyAgICAg ICAgcmV0dXJuIGZ1bmN0aW9uICh2YWwpIHsKKyAgICAgICAgICAgIHJldHVy biArdmFsLnRvRml4ZWQoMykgKyB1bml0OworICAgICAgICB9OworICAgIH0K KyAgICBmdW5jdGlvbiBnZXRWaWV3Qm94KHZhbCkgeworICAgICAgICByZXR1 cm4gdmFsLmpvaW4oIiAiKTsKKyAgICB9CisgICAgZnVuY3Rpb24gZ2V0Q29s b3VyKGNscikgeworICAgICAgICByZXR1cm4gU25hcC5yZ2IoY2xyWzBdLCBj bHJbMV0sIGNsclsyXSk7CisgICAgfQorICAgIGZ1bmN0aW9uIGdldFBhdGgo cGF0aCkgeworICAgICAgICB2YXIgayA9IDAsIGksIGlpLCBqLCBqaiwgb3V0 LCBhLCBiID0gW107CisgICAgICAgIGZvciAoaSA9IDAsIGlpID0gcGF0aC5s ZW5ndGg7IGkgPCBpaTsgaSsrKSB7CisgICAgICAgICAgICBvdXQgPSAiWyI7 CisgICAgICAgICAgICBhID0gWyciJyArIHBhdGhbaV1bMF0gKyAnIiddOwor ICAgICAgICAgICAgZm9yIChqID0gMSwgamogPSBwYXRoW2ldLmxlbmd0aDsg aiA8IGpqOyBqKyspIHsKKyAgICAgICAgICAgICAgICBhW2pdID0gInZhbFsi ICsgKGsrKykgKyAiXSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBv dXQgKz0gYSArICJdIjsKKyAgICAgICAgICAgIGJbaV0gPSBvdXQ7CisgICAg ICAgIH0KKyAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKCJ2YWwiLCAicmV0dXJu IFNuYXAucGF0aC50b1N0cmluZy5jYWxsKFsiICsgYiArICJdKSIpOworICAg IH0KKyAgICBmdW5jdGlvbiBwYXRoMmFycmF5KHBhdGgpIHsKKyAgICAgICAg dmFyIG91dCA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMCwgaWkgPSBw YXRoLmxlbmd0aDsgaSA8IGlpOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAo dmFyIGogPSAxLCBqaiA9IHBhdGhbaV0ubGVuZ3RoOyBqIDwgamo7IGorKykg eworICAgICAgICAgICAgICAgIG91dC5wdXNoKHBhdGhbaV1bal0pOworICAg ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvdXQ7Cisg ICAgfQorICAgIGZ1bmN0aW9uIGlzTnVtZXJpYyhvYmopIHsKKyAgICAgICAg cmV0dXJuIGlzRmluaXRlKHBhcnNlRmxvYXQob2JqKSk7CisgICAgfQorICAg IGZ1bmN0aW9uIGFycmF5RXF1YWwoYXJyMSwgYXJyMikgeworICAgICAgICBp ZiAoIVNuYXAuaXMoYXJyMSwgImFycmF5IikgfHwgIVNuYXAuaXMoYXJyMiwg ImFycmF5IikpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgfQorICAgICAgICByZXR1cm4gYXJyMS50b1N0cmluZygpID09IGFycjIu dG9TdHJpbmcoKTsKKyAgICB9CisgICAgRWxlbWVudC5wcm90b3R5cGUuZXF1 YWwgPSBmdW5jdGlvbiAobmFtZSwgYikgeworICAgICAgICByZXR1cm4gZXZl KCJzbmFwLnV0aWwuZXF1YWwiLCB0aGlzLCBuYW1lLCBiKS5maXJzdERlZmlu ZWQoKTsKKyAgICB9OworICAgIGV2ZS5vbigic25hcC51dGlsLmVxdWFsIiwg ZnVuY3Rpb24gKG5hbWUsIGIpIHsKKyAgICAgICAgdmFyIEEsIEIsIGEgPSBT dHIodGhpcy5hdHRyKG5hbWUpIHx8ICIiKSwKKyAgICAgICAgICAgIGVsID0g dGhpczsKKyAgICAgICAgaWYgKGlzTnVtZXJpYyhhKSAmJiBpc051bWVyaWMo YikpIHsKKyAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAg ZnJvbTogcGFyc2VGbG9hdChhKSwKKyAgICAgICAgICAgICAgICB0bzogcGFy c2VGbG9hdChiKSwKKyAgICAgICAgICAgICAgICBmOiBnZXROdW1iZXIKKyAg ICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5hbWVzW25h bWVdID09ICJjb2xvdXIiKSB7CisgICAgICAgICAgICBBID0gU25hcC5jb2xv cihhKTsKKyAgICAgICAgICAgIEIgPSBTbmFwLmNvbG9yKGIpOworICAgICAg ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBmcm9tOiBbQS5yLCBB LmcsIEEuYiwgQS5vcGFjaXR5XSwKKyAgICAgICAgICAgICAgICB0bzogW0Iu ciwgQi5nLCBCLmIsIEIub3BhY2l0eV0sCisgICAgICAgICAgICAgICAgZjog Z2V0Q29sb3VyCisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAg IGlmIChuYW1lID09ICJ2aWV3Qm94IikgeworICAgICAgICAgICAgQSA9IHRo aXMuYXR0cihuYW1lKS52Yi5zcGxpdCgiICIpLm1hcChOdW1iZXIpOworICAg ICAgICAgICAgQiA9IGIuc3BsaXQoIiAiKS5tYXAoTnVtYmVyKTsKKyAgICAg ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgZnJvbTogQSwKKyAg ICAgICAgICAgICAgICB0bzogQiwKKyAgICAgICAgICAgICAgICBmOiBnZXRW aWV3Qm94CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIGlm IChuYW1lID09ICJ0cmFuc2Zvcm0iIHx8IG5hbWUgPT0gImdyYWRpZW50VHJh bnNmb3JtIiB8fCBuYW1lID09ICJwYXR0ZXJuVHJhbnNmb3JtIikgeworICAg ICAgICAgICAgaWYgKGIgaW5zdGFuY2VvZiBTbmFwLk1hdHJpeCkgeworICAg ICAgICAgICAgICAgIGIgPSBiLnRvVHJhbnNmb3JtU3RyaW5nKCk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgICBpZiAoIVNuYXAuXy5yZ1RyYW5zZm9y bS50ZXN0KGIpKSB7CisgICAgICAgICAgICAgICAgYiA9IFNuYXAuXy5zdmdU cmFuc2Zvcm0yc3RyaW5nKGIpOworICAgICAgICAgICAgfQorICAgICAgICAg ICAgcmV0dXJuIGVxdWFsaXNlVHJhbnNmb3JtKGEsIGIsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZWwuZ2V0QkJveCgxKTsKKyAg ICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIGlmIChuYW1lID09 ICJkIiB8fCBuYW1lID09ICJwYXRoIikgeworICAgICAgICAgICAgQSA9IFNu YXAucGF0aC50b0N1YmljKGEsIGIpOworICAgICAgICAgICAgcmV0dXJuIHsK KyAgICAgICAgICAgICAgICBmcm9tOiBwYXRoMmFycmF5KEFbMF0pLAorICAg ICAgICAgICAgICAgIHRvOiBwYXRoMmFycmF5KEFbMV0pLAorICAgICAgICAg ICAgICAgIGY6IGdldFBhdGgoQVswXSkKKyAgICAgICAgICAgIH07CisgICAg ICAgIH0KKyAgICAgICAgaWYgKG5hbWUgPT0gInBvaW50cyIpIHsKKyAgICAg ICAgICAgIEEgPSBTdHIoYSkuc3BsaXQoU25hcC5fLnNlcGFyYXRvcik7Cisg ICAgICAgICAgICBCID0gU3RyKGIpLnNwbGl0KFNuYXAuXy5zZXBhcmF0b3Ip OworICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBmcm9t OiBBLAorICAgICAgICAgICAgICAgIHRvOiBCLAorICAgICAgICAgICAgICAg IGY6IGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHZhbDsgfQorICAgICAgICAg ICAgfTsKKyAgICAgICAgfQorICAgICAgICB2YXIgYVVuaXQgPSBhLm1hdGNo KHJlVW5pdCksCisgICAgICAgICAgICBiVW5pdCA9IFN0cihiKS5tYXRjaChy ZVVuaXQpOworICAgICAgICBpZiAoYVVuaXQgJiYgYXJyYXlFcXVhbChhVW5p dCwgYlVuaXQpKSB7CisgICAgICAgICAgICByZXR1cm4geworICAgICAgICAg ICAgICAgIGZyb206IHBhcnNlRmxvYXQoYSksCisgICAgICAgICAgICAgICAg dG86IHBhcnNlRmxvYXQoYiksCisgICAgICAgICAgICAgICAgZjogZ2V0VW5p dChhVW5pdCkKKyAgICAgICAgICAgIH07CisgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGZyb206IHRo aXMuYXNQWChuYW1lKSwKKyAgICAgICAgICAgICAgICB0bzogdGhpcy5hc1BY KG5hbWUsIGIpLAorICAgICAgICAgICAgICAgIGY6IGdldE51bWJlcgorICAg ICAgICAgICAgfTsKKyAgICAgICAgfQorICAgIH0pOworfSk7CisKKy8vIENv cHlyaWdodCAoYykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4g QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0 aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2Ui KTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv bXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWlu IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vIGh0dHA6Ly93d3cu YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVz cyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4g d3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisv LyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lO RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGlj ZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt aXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNl LgorU25hcC5wbHVnaW4oZnVuY3Rpb24gKFNuYXAsIEVsZW1lbnQsIFBhcGVy LCBnbG9iKSB7CisgICAgdmFyIGVscHJvdG8gPSBFbGVtZW50LnByb3RvdHlw ZSwKKyAgICBoYXMgPSAiaGFzT3duUHJvcGVydHkiLAorICAgIHN1cHBvcnRz VG91Y2ggPSAiY3JlYXRlVG91Y2giIGluIGdsb2IuZG9jLAorICAgIGV2ZW50 cyA9IFsKKyAgICAgICAgImNsaWNrIiwgImRibGNsaWNrIiwgIm1vdXNlZG93 biIsICJtb3VzZW1vdmUiLCAibW91c2VvdXQiLAorICAgICAgICAibW91c2Vv dmVyIiwgIm1vdXNldXAiLCAidG91Y2hzdGFydCIsICJ0b3VjaG1vdmUiLCAi dG91Y2hlbmQiLAorICAgICAgICAidG91Y2hjYW5jZWwiCisgICAgXSwKKyAg ICB0b3VjaE1hcCA9IHsKKyAgICAgICAgbW91c2Vkb3duOiAidG91Y2hzdGFy dCIsCisgICAgICAgIG1vdXNlbW92ZTogInRvdWNobW92ZSIsCisgICAgICAg IG1vdXNldXA6ICJ0b3VjaGVuZCIKKyAgICB9LAorICAgIGdldFNjcm9sbCA9 IGZ1bmN0aW9uICh4eSwgZWwpIHsKKyAgICAgICAgdmFyIG5hbWUgPSB4eSA9 PSAieSIgPyAic2Nyb2xsVG9wIiA6ICJzY3JvbGxMZWZ0IiwKKyAgICAgICAg ICAgIGRvYyA9IGVsICYmIGVsLm5vZGUgPyBlbC5ub2RlLm93bmVyRG9jdW1l bnQgOiBnbG9iLmRvYzsKKyAgICAgICAgcmV0dXJuIGRvY1tuYW1lIGluIGRv Yy5kb2N1bWVudEVsZW1lbnQgPyAiZG9jdW1lbnRFbGVtZW50IiA6ICJib2R5 Il1bbmFtZV07CisgICAgfSwKKyAgICBwcmV2ZW50RGVmYXVsdCA9IGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgdGhpcy5yZXR1cm5WYWx1ZSA9IGZhbHNlOwor ICAgIH0sCisgICAgcHJldmVudFRvdWNoID0gZnVuY3Rpb24gKCkgeworICAg ICAgICByZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0 KCk7CisgICAgfSwKKyAgICBzdG9wUHJvcGFnYXRpb24gPSBmdW5jdGlvbiAo KSB7CisgICAgICAgIHRoaXMuY2FuY2VsQnViYmxlID0gdHJ1ZTsKKyAgICB9 LAorICAgIHN0b3BUb3VjaCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0 dXJuIHRoaXMub3JpZ2luYWxFdmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAg ICB9LAorICAgIGFkZEV2ZW50ID0gZnVuY3Rpb24gKG9iaiwgdHlwZSwgZm4s IGVsZW1lbnQpIHsKKyAgICAgICAgdmFyIHJlYWxOYW1lID0gc3VwcG9ydHNU b3VjaCAmJiB0b3VjaE1hcFt0eXBlXSA/IHRvdWNoTWFwW3R5cGVdIDogdHlw ZSwKKyAgICAgICAgICAgIGYgPSBmdW5jdGlvbiAoZSkgeworICAgICAgICAg ICAgICAgIHZhciBzY3JvbGxZID0gZ2V0U2Nyb2xsKCJ5IiwgZWxlbWVudCks CisgICAgICAgICAgICAgICAgICAgIHNjcm9sbFggPSBnZXRTY3JvbGwoIngi LCBlbGVtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNUb3Vj aCAmJiB0b3VjaE1hcFtoYXNdKHR5cGUpKSB7CisgICAgICAgICAgICAgICAg ICAgIGZvciAodmFyIGkgPSAwLCBpaSA9IGUudGFyZ2V0VG91Y2hlcyAmJiBl LnRhcmdldFRvdWNoZXMubGVuZ3RoOyBpIDwgaWk7IGkrKykgeworICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0VG91Y2hlc1tpXS50YXJn ZXQgPT0gb2JqIHx8IG9iai5jb250YWlucyhlLnRhcmdldFRvdWNoZXNbaV0u dGFyZ2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBv bGRlID0gZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlID0gZS50 YXJnZXRUb3VjaGVzW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgICAg IGUub3JpZ2luYWxFdmVudCA9IG9sZGU7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCA9IHByZXZlbnRUb3VjaDsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbiA9 IHN0b3BUb3VjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2 YXIgeCA9IGUuY2xpZW50WCArIHNjcm9sbFgsCisgICAgICAgICAgICAgICAg ICAgIHkgPSBlLmNsaWVudFkgKyBzY3JvbGxZOworICAgICAgICAgICAgICAg IHJldHVybiBmbi5jYWxsKGVsZW1lbnQsIGUsIHgsIHkpOworICAgICAgICAg ICAgfTsKKworICAgICAgICBpZiAodHlwZSAhPT0gcmVhbE5hbWUpIHsKKyAg ICAgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGYsIGZhbHNl KTsKKyAgICAgICAgfQorCisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVy KHJlYWxOYW1lLCBmLCBmYWxzZSk7CisKKyAgICAgICAgcmV0dXJuIGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0eXBlICE9PSByZWFsTmFtZSkg eworICAgICAgICAgICAgICAgIG9iai5yZW1vdmVFdmVudExpc3RlbmVyKHR5 cGUsIGYsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg b2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIocmVhbE5hbWUsIGYsIGZhbHNlKTsK KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9OworICAgIH0s CisgICAgZHJhZyA9IFtdLAorICAgIGRyYWdNb3ZlID0gZnVuY3Rpb24gKGUp IHsKKyAgICAgICAgdmFyIHggPSBlLmNsaWVudFgsCisgICAgICAgICAgICB5 ID0gZS5jbGllbnRZLAorICAgICAgICAgICAgc2Nyb2xsWSA9IGdldFNjcm9s bCgieSIpLAorICAgICAgICAgICAgc2Nyb2xsWCA9IGdldFNjcm9sbCgieCIp LAorICAgICAgICAgICAgZHJhZ2ksCisgICAgICAgICAgICBqID0gZHJhZy5s ZW5ndGg7CisgICAgICAgIHdoaWxlIChqLS0pIHsKKyAgICAgICAgICAgIGRy YWdpID0gZHJhZ1tqXTsKKyAgICAgICAgICAgIGlmIChzdXBwb3J0c1RvdWNo KSB7CisgICAgICAgICAgICAgICAgdmFyIGkgPSBlLnRvdWNoZXMgJiYgZS50 b3VjaGVzLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgdG91Y2g7Cisg ICAgICAgICAgICAgICAgd2hpbGUgKGktLSkgeworICAgICAgICAgICAgICAg ICAgICB0b3VjaCA9IGUudG91Y2hlc1tpXTsKKyAgICAgICAgICAgICAgICAg ICAgaWYgKHRvdWNoLmlkZW50aWZpZXIgPT0gZHJhZ2kuZWwuX2RyYWcuaWQg fHwgZHJhZ2kuZWwubm9kZS5jb250YWlucyh0b3VjaC50YXJnZXQpKSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICB4ID0gdG91Y2guY2xpZW50WDsKKyAg ICAgICAgICAgICAgICAgICAgICAgIHkgPSB0b3VjaC5jbGllbnRZOworICAg ICAgICAgICAgICAgICAgICAgICAgKGUub3JpZ2luYWxFdmVudCA/IGUub3Jp Z2luYWxFdmVudCA6IGUpLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg ICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAg fQorICAgICAgICAgICAgdmFyIG5vZGUgPSBkcmFnaS5lbC5ub2RlLAorICAg ICAgICAgICAgICAgIG8sCisgICAgICAgICAgICAgICAgbmV4dCA9IG5vZGUu bmV4dFNpYmxpbmcsCisgICAgICAgICAgICAgICAgcGFyZW50ID0gbm9kZS5w YXJlbnROb2RlLAorICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBub2RlLnN0 eWxlLmRpc3BsYXk7CisgICAgICAgICAgICAvLyBnbG9iLndpbi5vcGVyYSAm JiBwYXJlbnQucmVtb3ZlQ2hpbGQobm9kZSk7CisgICAgICAgICAgICAvLyBu b2RlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICAvLyBv ID0gZHJhZ2kuZWwucGFwZXIuZ2V0RWxlbWVudEJ5UG9pbnQoeCwgeSk7Cisg ICAgICAgICAgICAvLyBub2RlLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5Owor ICAgICAgICAgICAgLy8gZ2xvYi53aW4ub3BlcmEgJiYgKG5leHQgPyBwYXJl bnQuaW5zZXJ0QmVmb3JlKG5vZGUsIG5leHQpIDogcGFyZW50LmFwcGVuZENo aWxkKG5vZGUpKTsKKyAgICAgICAgICAgIC8vIG8gJiYgZXZlKCJzbmFwLmRy YWcub3Zlci4iICsgZHJhZ2kuZWwuaWQsIGRyYWdpLmVsLCBvKTsKKyAgICAg ICAgICAgIHggKz0gc2Nyb2xsWDsKKyAgICAgICAgICAgIHkgKz0gc2Nyb2xs WTsKKyAgICAgICAgICAgIGV2ZSgic25hcC5kcmFnLm1vdmUuIiArIGRyYWdp LmVsLmlkLCBkcmFnaS5tb3ZlX3Njb3BlIHx8IGRyYWdpLmVsLCB4IC0gZHJh Z2kuZWwuX2RyYWcueCwgeSAtIGRyYWdpLmVsLl9kcmFnLnksIHgsIHksIGUp OworICAgICAgICB9CisgICAgfSwKKyAgICBkcmFnVXAgPSBmdW5jdGlvbiAo ZSkgeworICAgICAgICBTbmFwLnVubW91c2Vtb3ZlKGRyYWdNb3ZlKS51bm1v dXNldXAoZHJhZ1VwKTsKKyAgICAgICAgdmFyIGkgPSBkcmFnLmxlbmd0aCwK KyAgICAgICAgICAgIGRyYWdpOworICAgICAgICB3aGlsZSAoaS0tKSB7Cisg ICAgICAgICAgICBkcmFnaSA9IGRyYWdbaV07CisgICAgICAgICAgICBkcmFn aS5lbC5fZHJhZyA9IHt9OworICAgICAgICAgICAgZXZlKCJzbmFwLmRyYWcu ZW5kLiIgKyBkcmFnaS5lbC5pZCwgZHJhZ2kuZW5kX3Njb3BlIHx8IGRyYWdp LnN0YXJ0X3Njb3BlIHx8IGRyYWdpLm1vdmVfc2NvcGUgfHwgZHJhZ2kuZWws IGUpOworICAgICAgICAgICAgZXZlLm9mZigic25hcC5kcmFnLiouIiArIGRy YWdpLmVsLmlkKTsKKyAgICAgICAgfQorICAgICAgICBkcmFnID0gW107Cisg ICAgfTsKKyAgICAvKlwKKyAgICAgKiBFbGVtZW50LmNsaWNrCisgICAgIFsg bWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBBZGRzIGEgY2xpY2sgZXZlbnQg aGFuZGxlciB0byB0aGUgZWxlbWVudAorICAgICAtIGhhbmRsZXIgKGZ1bmN0 aW9uKSBoYW5kbGVyIGZvciB0aGUgZXZlbnQKKyAgICAgPSAob2JqZWN0KSBA RWxlbWVudAorICAgIFwqLworICAgIC8qXAorICAgICAqIEVsZW1lbnQudW5j bGljaworICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmVtb3Zl cyBhIGNsaWNrIGV2ZW50IGhhbmRsZXIgZnJvbSB0aGUgZWxlbWVudAorICAg ICAtIGhhbmRsZXIgKGZ1bmN0aW9uKSBoYW5kbGVyIGZvciB0aGUgZXZlbnQK KyAgICAgPSAob2JqZWN0KSBARWxlbWVudAorICAgIFwqLworCisgICAgLypc CisgICAgICogRWxlbWVudC5kYmxjbGljaworICAgICBbIG1ldGhvZCBdCisg ICAgICoqCisgICAgICogQWRkcyBhIGRvdWJsZSBjbGljayBldmVudCBoYW5k bGVyIHRvIHRoZSBlbGVtZW50CisgICAgIC0gaGFuZGxlciAoZnVuY3Rpb24p IGhhbmRsZXIgZm9yIHRoZSBldmVudAorICAgICA9IChvYmplY3QpIEBFbGVt ZW50CisgICAgXCovCisgICAgLypcCisgICAgICogRWxlbWVudC51bmRibGNs aWNrCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBSZW1vdmVz IGEgZG91YmxlIGNsaWNrIGV2ZW50IGhhbmRsZXIgZnJvbSB0aGUgZWxlbWVu dAorICAgICAtIGhhbmRsZXIgKGZ1bmN0aW9uKSBoYW5kbGVyIGZvciB0aGUg ZXZlbnQKKyAgICAgPSAob2JqZWN0KSBARWxlbWVudAorICAgIFwqLworCisg ICAgLypcCisgICAgICogRWxlbWVudC5tb3VzZWRvd24KKyAgICAgWyBtZXRo b2QgXQorICAgICAqKgorICAgICAqIEFkZHMgYSBtb3VzZWRvd24gZXZlbnQg aGFuZGxlciB0byB0aGUgZWxlbWVudAorICAgICAtIGhhbmRsZXIgKGZ1bmN0 aW9uKSBoYW5kbGVyIGZvciB0aGUgZXZlbnQKKyAgICAgPSAob2JqZWN0KSBA RWxlbWVudAorICAgIFwqLworICAgIC8qXAorICAgICAqIEVsZW1lbnQudW5t b3VzZWRvd24KKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFJl bW92ZXMgYSBtb3VzZWRvd24gZXZlbnQgaGFuZGxlciBmcm9tIHRoZSBlbGVt ZW50CisgICAgIC0gaGFuZGxlciAoZnVuY3Rpb24pIGhhbmRsZXIgZm9yIHRo ZSBldmVudAorICAgICA9IChvYmplY3QpIEBFbGVtZW50CisgICAgXCovCisK KyAgICAvKlwKKyAgICAgKiBFbGVtZW50Lm1vdXNlbW92ZQorICAgICBbIG1l dGhvZCBdCisgICAgICoqCisgICAgICogQWRkcyBhIG1vdXNlbW92ZSBldmVu dCBoYW5kbGVyIHRvIHRoZSBlbGVtZW50CisgICAgIC0gaGFuZGxlciAoZnVu Y3Rpb24pIGhhbmRsZXIgZm9yIHRoZSBldmVudAorICAgICA9IChvYmplY3Qp IEBFbGVtZW50CisgICAgXCovCisgICAgLypcCisgICAgICogRWxlbWVudC51 bm1vdXNlbW92ZQorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICog UmVtb3ZlcyBhIG1vdXNlbW92ZSBldmVudCBoYW5kbGVyIGZyb20gdGhlIGVs ZW1lbnQKKyAgICAgLSBoYW5kbGVyIChmdW5jdGlvbikgaGFuZGxlciBmb3Ig dGhlIGV2ZW50CisgICAgID0gKG9iamVjdCkgQEVsZW1lbnQKKyAgICBcKi8K KworICAgIC8qXAorICAgICAqIEVsZW1lbnQubW91c2VvdXQKKyAgICAgWyBt ZXRob2QgXQorICAgICAqKgorICAgICAqIEFkZHMgYSBtb3VzZW91dCBldmVu dCBoYW5kbGVyIHRvIHRoZSBlbGVtZW50CisgICAgIC0gaGFuZGxlciAoZnVu Y3Rpb24pIGhhbmRsZXIgZm9yIHRoZSBldmVudAorICAgICA9IChvYmplY3Qp IEBFbGVtZW50CisgICAgXCovCisgICAgLypcCisgICAgICogRWxlbWVudC51 bm1vdXNlb3V0CisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBS ZW1vdmVzIGEgbW91c2VvdXQgZXZlbnQgaGFuZGxlciBmcm9tIHRoZSBlbGVt ZW50CisgICAgIC0gaGFuZGxlciAoZnVuY3Rpb24pIGhhbmRsZXIgZm9yIHRo ZSBldmVudAorICAgICA9IChvYmplY3QpIEBFbGVtZW50CisgICAgXCovCisK KyAgICAvKlwKKyAgICAgKiBFbGVtZW50Lm1vdXNlb3ZlcgorICAgICBbIG1l dGhvZCBdCisgICAgICoqCisgICAgICogQWRkcyBhIG1vdXNlb3ZlciBldmVu dCBoYW5kbGVyIHRvIHRoZSBlbGVtZW50CisgICAgIC0gaGFuZGxlciAoZnVu Y3Rpb24pIGhhbmRsZXIgZm9yIHRoZSBldmVudAorICAgICA9IChvYmplY3Qp IEBFbGVtZW50CisgICAgXCovCisgICAgLypcCisgICAgICogRWxlbWVudC51 bm1vdXNlb3ZlcgorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICog UmVtb3ZlcyBhIG1vdXNlb3ZlciBldmVudCBoYW5kbGVyIGZyb20gdGhlIGVs ZW1lbnQKKyAgICAgLSBoYW5kbGVyIChmdW5jdGlvbikgaGFuZGxlciBmb3Ig dGhlIGV2ZW50CisgICAgID0gKG9iamVjdCkgQEVsZW1lbnQKKyAgICBcKi8K KworICAgIC8qXAorICAgICAqIEVsZW1lbnQubW91c2V1cAorICAgICBbIG1l dGhvZCBdCisgICAgICoqCisgICAgICogQWRkcyBhIG1vdXNldXAgZXZlbnQg aGFuZGxlciB0byB0aGUgZWxlbWVudAorICAgICAtIGhhbmRsZXIgKGZ1bmN0 aW9uKSBoYW5kbGVyIGZvciB0aGUgZXZlbnQKKyAgICAgPSAob2JqZWN0KSBA RWxlbWVudAorICAgIFwqLworICAgIC8qXAorICAgICAqIEVsZW1lbnQudW5t b3VzZXVwCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBSZW1v dmVzIGEgbW91c2V1cCBldmVudCBoYW5kbGVyIGZyb20gdGhlIGVsZW1lbnQK KyAgICAgLSBoYW5kbGVyIChmdW5jdGlvbikgaGFuZGxlciBmb3IgdGhlIGV2 ZW50CisgICAgID0gKG9iamVjdCkgQEVsZW1lbnQKKyAgICBcKi8KKworICAg IC8qXAorICAgICAqIEVsZW1lbnQudG91Y2hzdGFydAorICAgICBbIG1ldGhv ZCBdCisgICAgICoqCisgICAgICogQWRkcyBhIHRvdWNoc3RhcnQgZXZlbnQg aGFuZGxlciB0byB0aGUgZWxlbWVudAorICAgICAtIGhhbmRsZXIgKGZ1bmN0 aW9uKSBoYW5kbGVyIGZvciB0aGUgZXZlbnQKKyAgICAgPSAob2JqZWN0KSBA RWxlbWVudAorICAgIFwqLworICAgIC8qXAorICAgICAqIEVsZW1lbnQudW50 b3VjaHN0YXJ0CisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBS ZW1vdmVzIGEgdG91Y2hzdGFydCBldmVudCBoYW5kbGVyIGZyb20gdGhlIGVs ZW1lbnQKKyAgICAgLSBoYW5kbGVyIChmdW5jdGlvbikgaGFuZGxlciBmb3Ig dGhlIGV2ZW50CisgICAgID0gKG9iamVjdCkgQEVsZW1lbnQKKyAgICBcKi8K KworICAgIC8qXAorICAgICAqIEVsZW1lbnQudG91Y2htb3ZlCisgICAgIFsg bWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBBZGRzIGEgdG91Y2htb3ZlIGV2 ZW50IGhhbmRsZXIgdG8gdGhlIGVsZW1lbnQKKyAgICAgLSBoYW5kbGVyIChm dW5jdGlvbikgaGFuZGxlciBmb3IgdGhlIGV2ZW50CisgICAgID0gKG9iamVj dCkgQEVsZW1lbnQKKyAgICBcKi8KKyAgICAvKlwKKyAgICAgKiBFbGVtZW50 LnVudG91Y2htb3ZlCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAg KiBSZW1vdmVzIGEgdG91Y2htb3ZlIGV2ZW50IGhhbmRsZXIgZnJvbSB0aGUg ZWxlbWVudAorICAgICAtIGhhbmRsZXIgKGZ1bmN0aW9uKSBoYW5kbGVyIGZv ciB0aGUgZXZlbnQKKyAgICAgPSAob2JqZWN0KSBARWxlbWVudAorICAgIFwq LworCisgICAgLypcCisgICAgICogRWxlbWVudC50b3VjaGVuZAorICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogQWRkcyBhIHRvdWNoZW5kIGV2 ZW50IGhhbmRsZXIgdG8gdGhlIGVsZW1lbnQKKyAgICAgLSBoYW5kbGVyIChm dW5jdGlvbikgaGFuZGxlciBmb3IgdGhlIGV2ZW50CisgICAgID0gKG9iamVj dCkgQEVsZW1lbnQKKyAgICBcKi8KKyAgICAvKlwKKyAgICAgKiBFbGVtZW50 LnVudG91Y2hlbmQKKyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAq IFJlbW92ZXMgYSB0b3VjaGVuZCBldmVudCBoYW5kbGVyIGZyb20gdGhlIGVs ZW1lbnQKKyAgICAgLSBoYW5kbGVyIChmdW5jdGlvbikgaGFuZGxlciBmb3Ig dGhlIGV2ZW50CisgICAgID0gKG9iamVjdCkgQEVsZW1lbnQKKyAgICBcKi8K KworICAgIC8qXAorICAgICAqIEVsZW1lbnQudG91Y2hjYW5jZWwKKyAgICAg WyBtZXRob2QgXQorICAgICAqKgorICAgICAqIEFkZHMgYSB0b3VjaGNhbmNl bCBldmVudCBoYW5kbGVyIHRvIHRoZSBlbGVtZW50CisgICAgIC0gaGFuZGxl ciAoZnVuY3Rpb24pIGhhbmRsZXIgZm9yIHRoZSBldmVudAorICAgICA9IChv YmplY3QpIEBFbGVtZW50CisgICAgXCovCisgICAgLypcCisgICAgICogRWxl bWVudC51bnRvdWNoY2FuY2VsCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioK KyAgICAgKiBSZW1vdmVzIGEgdG91Y2hjYW5jZWwgZXZlbnQgaGFuZGxlciBm cm9tIHRoZSBlbGVtZW50CisgICAgIC0gaGFuZGxlciAoZnVuY3Rpb24pIGhh bmRsZXIgZm9yIHRoZSBldmVudAorICAgICA9IChvYmplY3QpIEBFbGVtZW50 CisgICAgXCovCisgICAgZm9yICh2YXIgaSA9IGV2ZW50cy5sZW5ndGg7IGkt LTspIHsKKyAgICAgICAgKGZ1bmN0aW9uIChldmVudE5hbWUpIHsKKyAgICAg ICAgICAgIFNuYXBbZXZlbnROYW1lXSA9IGVscHJvdG9bZXZlbnROYW1lXSA9 IGZ1bmN0aW9uIChmbiwgc2NvcGUpIHsKKyAgICAgICAgICAgICAgICBpZiAo U25hcC5pcyhmbiwgImZ1bmN0aW9uIikpIHsKKyAgICAgICAgICAgICAgICAg ICAgdGhpcy5ldmVudHMgPSB0aGlzLmV2ZW50cyB8fCBbXTsKKyAgICAgICAg ICAgICAgICAgICAgdGhpcy5ldmVudHMucHVzaCh7CisgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lOiBldmVudE5hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICBmOiBmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuYmlu ZDogYWRkRXZlbnQodGhpcy5ub2RlIHx8IGRvY3VtZW50LCBldmVudE5hbWUs IGZuLCBzY29wZSB8fCB0aGlzKQorICAgICAgICAgICAgICAgICAgICB9KTsK KyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg ICBmb3IgKHZhciBpID0gMCwgaWkgPSB0aGlzLmV2ZW50cy5sZW5ndGg7IGkg PCBpaTsgaSsrKSBpZiAodGhpcy5ldmVudHNbaV0ubmFtZSA9PSBldmVudE5h bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHNbaV0uZi5jYWxsKHRo aXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge30K KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgICAgIH07Cisg ICAgICAgICAgICBTbmFwWyJ1biIgKyBldmVudE5hbWVdID0KKyAgICAgICAg ICAgIGVscHJvdG9bInVuIiArIGV2ZW50TmFtZV0gPSBmdW5jdGlvbiAoZm4p IHsKKyAgICAgICAgICAgICAgICB2YXIgZXZlbnRzID0gdGhpcy5ldmVudHMg fHwgW10sCisgICAgICAgICAgICAgICAgICAgIGwgPSBldmVudHMubGVuZ3Ro OworICAgICAgICAgICAgICAgIHdoaWxlIChsLS0pIGlmIChldmVudHNbbF0u bmFtZSA9PSBldmVudE5hbWUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZXZlbnRzW2xdLmYgPT0gZm4gfHwgIWZuKSkgeworICAgICAg ICAgICAgICAgICAgICBldmVudHNbbF0udW5iaW5kKCk7CisgICAgICAgICAg ICAgICAgICAgIGV2ZW50cy5zcGxpY2UobCwgMSk7CisgICAgICAgICAgICAg ICAgICAgICFldmVudHMubGVuZ3RoICYmIGRlbGV0ZSB0aGlzLmV2ZW50czsK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAg ICAgICAgfTsKKyAgICAgICAgfSkoZXZlbnRzW2ldKTsKKyAgICB9CisgICAg LypcCisgICAgICogRWxlbWVudC5ob3ZlcgorICAgICBbIG1ldGhvZCBdCisg ICAgICoqCisgICAgICogQWRkcyBob3ZlciBldmVudCBoYW5kbGVycyB0byB0 aGUgZWxlbWVudAorICAgICAtIGZfaW4gKGZ1bmN0aW9uKSBoYW5kbGVyIGZv ciBob3ZlciBpbgorICAgICAtIGZfb3V0IChmdW5jdGlvbikgaGFuZGxlciBm b3IgaG92ZXIgb3V0CisgICAgIC0gaWNvbnRleHQgKG9iamVjdCkgI29wdGlv bmFsIGNvbnRleHQgZm9yIGhvdmVyIGluIGhhbmRsZXIKKyAgICAgLSBvY29u dGV4dCAob2JqZWN0KSAjb3B0aW9uYWwgY29udGV4dCBmb3IgaG92ZXIgb3V0 IGhhbmRsZXIKKyAgICAgPSAob2JqZWN0KSBARWxlbWVudAorICAgIFwqLwor ICAgIGVscHJvdG8uaG92ZXIgPSBmdW5jdGlvbiAoZl9pbiwgZl9vdXQsIHNj b3BlX2luLCBzY29wZV9vdXQpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubW91 c2VvdmVyKGZfaW4sIHNjb3BlX2luKS5tb3VzZW91dChmX291dCwgc2NvcGVf b3V0IHx8IHNjb3BlX2luKTsKKyAgICB9OworICAgIC8qXAorICAgICAqIEVs ZW1lbnQudW5ob3ZlcgorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAg ICogUmVtb3ZlcyBob3ZlciBldmVudCBoYW5kbGVycyBmcm9tIHRoZSBlbGVt ZW50CisgICAgIC0gZl9pbiAoZnVuY3Rpb24pIGhhbmRsZXIgZm9yIGhvdmVy IGluCisgICAgIC0gZl9vdXQgKGZ1bmN0aW9uKSBoYW5kbGVyIGZvciBob3Zl ciBvdXQKKyAgICAgPSAob2JqZWN0KSBARWxlbWVudAorICAgIFwqLworICAg IGVscHJvdG8udW5ob3ZlciA9IGZ1bmN0aW9uIChmX2luLCBmX291dCkgewor ICAgICAgICByZXR1cm4gdGhpcy51bm1vdXNlb3ZlcihmX2luKS51bm1vdXNl b3V0KGZfb3V0KTsKKyAgICB9OworICAgIHZhciBkcmFnZ2FibGUgPSBbXTsK KyAgICAvLyBTSUVSUkEgdW5jbGVhciB3aGF0IF9jb250ZXh0XyByZWZlcnMg dG8gZm9yIHN0YXJ0aW5nLCBlbmRpbmcsIG1vdmluZyB0aGUgZHJhZyBnZXN0 dXJlLgorICAgIC8vIFNJRVJSQSBFbGVtZW50LmRyYWcoKTogX3ggcG9zaXRp b24gb2YgdGhlIG1vdXNlXzogV2hlcmUgYXJlIHRoZSB4L3kgdmFsdWVzIG9m ZnNldCBmcm9tPworICAgIC8vIFNJRVJSQSBFbGVtZW50LmRyYWcoKTogbXVj aCBvZiB0aGlzIG1lbWJlcidzIGRvYyBhcHBlYXJzIHRvIGJlIGR1cGxpY2F0 ZWQgZm9yIHNvbWUgcmVhc29uLgorICAgIC8vIFNJRVJSQSBVbmNsZWFyIGFi b3V0IHRoaXMgc2VudGVuY2U6IF9BZGRpdGlvbmFsbHkgZm9sbG93aW5nIGRy YWcgZXZlbnRzIHdpbGwgYmUgdHJpZ2dlcmVkOiBkcmFnLnN0YXJ0LjxpZD4g b24gc3RhcnQsIGRyYWcuZW5kLjxpZD4gb24gZW5kIGFuZCBkcmFnLm1vdmUu PGlkPiBvbiBldmVyeSBtb3ZlLl8gSXMgdGhlcmUgYSBnbG9iYWwgX2RyYWdf IG9iamVjdCB0byB3aGljaCB5b3UgY2FuIGFzc2lnbiBoYW5kbGVycyBrZXll ZCBieSBhbiBlbGVtZW50J3MgSUQ/CisgICAgLypcCisgICAgICogRWxlbWVu dC5kcmFnCisgICAgIFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBBZGRz IGV2ZW50IGhhbmRsZXJzIGZvciBhbiBlbGVtZW50J3MgZHJhZyBnZXN0dXJl CisgICAgICoqCisgICAgIC0gb25tb3ZlIChmdW5jdGlvbikgaGFuZGxlciBm b3IgbW92aW5nCisgICAgIC0gb25zdGFydCAoZnVuY3Rpb24pIGhhbmRsZXIg Zm9yIGRyYWcgc3RhcnQKKyAgICAgLSBvbmVuZCAoZnVuY3Rpb24pIGhhbmRs ZXIgZm9yIGRyYWcgZW5kCisgICAgIC0gbWNvbnRleHQgKG9iamVjdCkgI29w dGlvbmFsIGNvbnRleHQgZm9yIG1vdmluZyBoYW5kbGVyCisgICAgIC0gc2Nv bnRleHQgKG9iamVjdCkgI29wdGlvbmFsIGNvbnRleHQgZm9yIGRyYWcgc3Rh cnQgaGFuZGxlcgorICAgICAtIGVjb250ZXh0IChvYmplY3QpICNvcHRpb25h bCBjb250ZXh0IGZvciBkcmFnIGVuZCBoYW5kbGVyCisgICAgICogQWRkaXRp b25hbHkgZm9sbG93aW5nIGBkcmFnYCBldmVudHMgYXJlIHRyaWdnZXJlZDog YGRyYWcuc3RhcnQuPGlkPmAgb24gc3RhcnQsCisgICAgICogYGRyYWcuZW5k LjxpZD5gIG9uIGVuZCBhbmQgYGRyYWcubW92ZS48aWQ+YCBvbiBldmVyeSBt b3ZlLiBXaGVuIGVsZW1lbnQgaXMgZHJhZ2dlZCBvdmVyIGFub3RoZXIgZWxl bWVudAorICAgICAqIGBkcmFnLm92ZXIuPGlkPmAgZmlyZXMgYXMgd2VsbC4K KyAgICAgKgorICAgICAqIFN0YXJ0IGV2ZW50IGFuZCBzdGFydCBoYW5kbGVy IGFyZSBjYWxsZWQgaW4gc3BlY2lmaWVkIGNvbnRleHQgb3IgaW4gY29udGV4 dCBvZiB0aGUgZWxlbWVudCB3aXRoIGZvbGxvd2luZyBwYXJhbWV0ZXJzOgor ICAgICBvIHggKG51bWJlcikgeCBwb3NpdGlvbiBvZiB0aGUgbW91c2UKKyAg ICAgbyB5IChudW1iZXIpIHkgcG9zaXRpb24gb2YgdGhlIG1vdXNlCisgICAg IG8gZXZlbnQgKG9iamVjdCkgRE9NIGV2ZW50IG9iamVjdAorICAgICAqIE1v dmUgZXZlbnQgYW5kIG1vdmUgaGFuZGxlciBhcmUgY2FsbGVkIGluIHNwZWNp ZmllZCBjb250ZXh0IG9yIGluIGNvbnRleHQgb2YgdGhlIGVsZW1lbnQgd2l0 aCBmb2xsb3dpbmcgcGFyYW1ldGVyczoKKyAgICAgbyBkeCAobnVtYmVyKSBz aGlmdCBieSB4IGZyb20gdGhlIHN0YXJ0IHBvaW50CisgICAgIG8gZHkgKG51 bWJlcikgc2hpZnQgYnkgeSBmcm9tIHRoZSBzdGFydCBwb2ludAorICAgICBv IHggKG51bWJlcikgeCBwb3NpdGlvbiBvZiB0aGUgbW91c2UKKyAgICAgbyB5 IChudW1iZXIpIHkgcG9zaXRpb24gb2YgdGhlIG1vdXNlCisgICAgIG8gZXZl bnQgKG9iamVjdCkgRE9NIGV2ZW50IG9iamVjdAorICAgICAqIEVuZCBldmVu dCBhbmQgZW5kIGhhbmRsZXIgYXJlIGNhbGxlZCBpbiBzcGVjaWZpZWQgY29u dGV4dCBvciBpbiBjb250ZXh0IG9mIHRoZSBlbGVtZW50IHdpdGggZm9sbG93 aW5nIHBhcmFtZXRlcnM6CisgICAgIG8gZXZlbnQgKG9iamVjdCkgRE9NIGV2 ZW50IG9iamVjdAorICAgICA9IChvYmplY3QpIEBFbGVtZW50CisgICAgXCov CisgICAgZWxwcm90by5kcmFnID0gZnVuY3Rpb24gKG9ubW92ZSwgb25zdGFy dCwgb25lbmQsIG1vdmVfc2NvcGUsIHN0YXJ0X3Njb3BlLCBlbmRfc2NvcGUp IHsKKyAgICAgICAgdmFyIGVsID0gdGhpczsKKyAgICAgICAgaWYgKCFhcmd1 bWVudHMubGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIgb3JpZ1RyYW5zZm9y bTsKKyAgICAgICAgICAgIHJldHVybiBlbC5kcmFnKGZ1bmN0aW9uIChkeCwg ZHkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmF0dHIoeworICAgICAgICAg ICAgICAgICAgICB0cmFuc2Zvcm06IG9yaWdUcmFuc2Zvcm0gKyAob3JpZ1Ry YW5zZm9ybSA/ICJUIiA6ICJ0IikgKyBbZHgsIGR5XQorICAgICAgICAgICAg ICAgIH0pOworICAgICAgICAgICAgfSwgZnVuY3Rpb24gKCkgeworICAgICAg ICAgICAgICAgIG9yaWdUcmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybSgpLmxv Y2FsOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgZnVu Y3Rpb24gc3RhcnQoZSwgeCwgeSkgeworICAgICAgICAgICAgKGUub3JpZ2lu YWxFdmVudCB8fCBlKS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAg ZWwuX2RyYWcueCA9IHg7CisgICAgICAgICAgICBlbC5fZHJhZy55ID0geTsK KyAgICAgICAgICAgIGVsLl9kcmFnLmlkID0gZS5pZGVudGlmaWVyOworICAg ICAgICAgICAgIWRyYWcubGVuZ3RoICYmIFNuYXAubW91c2Vtb3ZlKGRyYWdN b3ZlKS5tb3VzZXVwKGRyYWdVcCk7CisgICAgICAgICAgICBkcmFnLnB1c2go e2VsOiBlbCwgbW92ZV9zY29wZTogbW92ZV9zY29wZSwgc3RhcnRfc2NvcGU6 IHN0YXJ0X3Njb3BlLCBlbmRfc2NvcGU6IGVuZF9zY29wZX0pOworICAgICAg ICAgICAgb25zdGFydCAmJiBldmUub24oInNuYXAuZHJhZy5zdGFydC4iICsg ZWwuaWQsIG9uc3RhcnQpOworICAgICAgICAgICAgb25tb3ZlICYmIGV2ZS5v bigic25hcC5kcmFnLm1vdmUuIiArIGVsLmlkLCBvbm1vdmUpOworICAgICAg ICAgICAgb25lbmQgJiYgZXZlLm9uKCJzbmFwLmRyYWcuZW5kLiIgKyBlbC5p ZCwgb25lbmQpOworICAgICAgICAgICAgZXZlKCJzbmFwLmRyYWcuc3RhcnQu IiArIGVsLmlkLCBzdGFydF9zY29wZSB8fCBtb3ZlX3Njb3BlIHx8IGVsLCB4 LCB5LCBlKTsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiBpbml0KGUs IHgsIHkpIHsKKyAgICAgICAgICAgIGV2ZSgic25hcC5kcmFnaW5pdC4iICsg ZWwuaWQsIGVsLCBlLCB4LCB5KTsKKyAgICAgICAgfQorICAgICAgICBldmUu b24oInNuYXAuZHJhZ2luaXQuIiArIGVsLmlkLCBzdGFydCk7CisgICAgICAg IGVsLl9kcmFnID0ge307CisgICAgICAgIGRyYWdnYWJsZS5wdXNoKHtlbDog ZWwsIHN0YXJ0OiBzdGFydCwgaW5pdDogaW5pdH0pOworICAgICAgICBlbC5t b3VzZWRvd24oaW5pdCk7CisgICAgICAgIHJldHVybiBlbDsKKyAgICB9Owor ICAgIC8qCisgICAgICogRWxlbWVudC5vbkRyYWdPdmVyCisgICAgIFsgbWV0 aG9kIF0KKyAgICAgKioKKyAgICAgKiBTaG9ydGN1dCB0byBhc3NpZ24gZXZl bnQgaGFuZGxlciBmb3IgYGRyYWcub3Zlci48aWQ+YCBldmVudCwgd2hlcmUg YGlkYCBpcyB0aGUgZWxlbWVudCdzIGBpZGAgKHNlZSBARWxlbWVudC5pZCkK KyAgICAgLSBmIChmdW5jdGlvbikgaGFuZGxlciBmb3IgZXZlbnQsIGZpcnN0 IGFyZ3VtZW50IHdvdWxkIGJlIHRoZSBlbGVtZW50IHlvdSBhcmUgZHJhZ2dp bmcgb3ZlcgorICAgIFwqLworICAgIC8vIGVscHJvdG8ub25EcmFnT3ZlciA9 IGZ1bmN0aW9uIChmKSB7CisgICAgLy8gICAgIGYgPyBldmUub24oInNuYXAu ZHJhZy5vdmVyLiIgKyB0aGlzLmlkLCBmKSA6IGV2ZS51bmJpbmQoInNuYXAu ZHJhZy5vdmVyLiIgKyB0aGlzLmlkKTsKKyAgICAvLyB9OworICAgIC8qXAor ICAgICAqIEVsZW1lbnQudW5kcmFnCisgICAgIFsgbWV0aG9kIF0KKyAgICAg KioKKyAgICAgKiBSZW1vdmVzIGFsbCBkcmFnIGV2ZW50IGhhbmRsZXJzIGZy b20gdGhlIGdpdmVuIGVsZW1lbnQKKyAgICBcKi8KKyAgICBlbHByb3RvLnVu ZHJhZyA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGkgPSBkcmFnZ2Fi bGUubGVuZ3RoOworICAgICAgICB3aGlsZSAoaS0tKSBpZiAoZHJhZ2dhYmxl W2ldLmVsID09IHRoaXMpIHsKKyAgICAgICAgICAgIHRoaXMudW5tb3VzZWRv d24oZHJhZ2dhYmxlW2ldLmluaXQpOworICAgICAgICAgICAgZHJhZ2dhYmxl LnNwbGljZShpLCAxKTsKKyAgICAgICAgICAgIGV2ZS51bmJpbmQoInNuYXAu ZHJhZy4qLiIgKyB0aGlzLmlkKTsKKyAgICAgICAgICAgIGV2ZS51bmJpbmQo InNuYXAuZHJhZ2luaXQuIiArIHRoaXMuaWQpOworICAgICAgICB9CisgICAg ICAgICFkcmFnZ2FibGUubGVuZ3RoICYmIFNuYXAudW5tb3VzZW1vdmUoZHJh Z01vdmUpLnVubW91c2V1cChkcmFnVXApOworICAgICAgICByZXR1cm4gdGhp czsKKyAgICB9OworfSk7CisKKy8vIENvcHlyaWdodCAoYykgMjAxMyBBZG9i ZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K Ky8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl cnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVz ZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGlj ZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5z ZSBhdAorLy8KKy8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9M SUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8v IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk IG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMg T1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3Ig aW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmlj IGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0 YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorU25hcC5wbHVnaW4oZnVuY3Rp b24gKFNuYXAsIEVsZW1lbnQsIFBhcGVyLCBnbG9iKSB7CisgICAgdmFyIGVs cHJvdG8gPSBFbGVtZW50LnByb3RvdHlwZSwKKyAgICAgICAgcHByb3RvID0g UGFwZXIucHJvdG90eXBlLAorICAgICAgICByZ3VybCA9IC9eXHMqdXJsXCgo LispXCkvLAorICAgICAgICBTdHIgPSBTdHJpbmcsCisgICAgICAgICQgPSBT bmFwLl8uJDsKKyAgICBTbmFwLmZpbHRlciA9IHt9OworICAgIC8qXAorICAg ICAqIFBhcGVyLmZpbHRlcgorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisg ICAgICogQ3JlYXRlcyBhIGA8ZmlsdGVyPmAgZWxlbWVudAorICAgICAqKgor ICAgICAtIGZpbHN0ciAoc3RyaW5nKSBTVkcgZnJhZ21lbnQgb2YgZmlsdGVy IHByb3ZpZGVkIGFzIGEgc3RyaW5nCisgICAgID0gKG9iamVjdCkgQEVsZW1l bnQKKyAgICAgKiBOb3RlOiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgZmls dGVycyBlbWJlZGRlZCBpbnRvIHRoZSBwYWdlIGluc2lkZSBhbiBlbXB0eSBT VkcgZWxlbWVudC4KKyAgICAgPiBVc2FnZQorICAgICB8IHZhciBmID0gcGFw ZXIuZmlsdGVyKCc8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyIi8+ JyksCisgICAgIHwgICAgIGMgPSBwYXBlci5jaXJjbGUoMTAsIDEwLCAxMCku YXR0cih7CisgICAgIHwgICAgICAgICBmaWx0ZXI6IGYKKyAgICAgfCAgICAg fSk7CisgICAgXCovCisgICAgcHByb3RvLmZpbHRlciA9IGZ1bmN0aW9uIChm aWxzdHIpIHsKKyAgICAgICAgdmFyIHBhcGVyID0gdGhpczsKKyAgICAgICAg aWYgKHBhcGVyLnR5cGUgIT0gInN2ZyIpIHsKKyAgICAgICAgICAgIHBhcGVy ID0gcGFwZXIucGFwZXI7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGYgPSBT bmFwLnBhcnNlKFN0cihmaWxzdHIpKSwKKyAgICAgICAgICAgIGlkID0gU25h cC5fLmlkKCksCisgICAgICAgICAgICB3aWR0aCA9IHBhcGVyLm5vZGUub2Zm c2V0V2lkdGgsCisgICAgICAgICAgICBoZWlnaHQgPSBwYXBlci5ub2RlLm9m ZnNldEhlaWdodCwKKyAgICAgICAgICAgIGZpbHRlciA9ICQoImZpbHRlciIp OworICAgICAgICAkKGZpbHRlciwgeworICAgICAgICAgICAgaWQ6IGlkLAor ICAgICAgICAgICAgZmlsdGVyVW5pdHM6ICJ1c2VyU3BhY2VPblVzZSIKKyAg ICAgICAgfSk7CisgICAgICAgIGZpbHRlci5hcHBlbmRDaGlsZChmLm5vZGUp OworICAgICAgICBwYXBlci5kZWZzLmFwcGVuZENoaWxkKGZpbHRlcik7Cisg ICAgICAgIHJldHVybiBuZXcgRWxlbWVudChmaWx0ZXIpOworICAgIH07CisK KyAgICBldmUub24oInNuYXAudXRpbC5nZXRhdHRyLmZpbHRlciIsIGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgZXZlLnN0b3AoKTsKKyAgICAgICAgdmFyIHAg PSAkKHRoaXMubm9kZSwgImZpbHRlciIpOworICAgICAgICBpZiAocCkgewor ICAgICAgICAgICAgdmFyIG1hdGNoID0gU3RyKHApLm1hdGNoKHJndXJsKTsK KyAgICAgICAgICAgIHJldHVybiBtYXRjaCAmJiBTbmFwLnNlbGVjdChtYXRj aFsxXSk7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICBldmUub24oInNuYXAu dXRpbC5hdHRyLmZpbHRlciIsIGZ1bmN0aW9uICh2YWx1ZSkgeworICAgICAg ICBpZiAodmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50ICYmIHZhbHVlLnR5cGUg PT0gImZpbHRlciIpIHsKKyAgICAgICAgICAgIGV2ZS5zdG9wKCk7CisgICAg ICAgICAgICB2YXIgaWQgPSB2YWx1ZS5ub2RlLmlkOworICAgICAgICAgICAg aWYgKCFpZCkgeworICAgICAgICAgICAgICAgICQodmFsdWUubm9kZSwge2lk OiB2YWx1ZS5pZH0pOworICAgICAgICAgICAgICAgIGlkID0gdmFsdWUuaWQ7 CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkKHRoaXMubm9kZSwgewor ICAgICAgICAgICAgICAgIGZpbHRlcjogU25hcC51cmwoaWQpCisgICAgICAg ICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXZhbHVlIHx8IHZh bHVlID09ICJub25lIikgeworICAgICAgICAgICAgZXZlLnN0b3AoKTsKKyAg ICAgICAgICAgIHRoaXMubm9kZS5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIp OworICAgICAgICB9CisgICAgfSk7CisgICAgLypcCisgICAgICogU25hcC5m aWx0ZXIuYmx1cgorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICog UmV0dXJucyBhbiBTVkcgbWFya3VwIHN0cmluZyBmb3IgdGhlIGJsdXIgZmls dGVyCisgICAgICoqCisgICAgIC0geCAobnVtYmVyKSBhbW91bnQgb2YgaG9y aXpvbnRhbCBibHVyLCBpbiBwaXhlbHMKKyAgICAgLSB5IChudW1iZXIpICNv cHRpb25hbCBhbW91bnQgb2YgdmVydGljYWwgYmx1ciwgaW4gcGl4ZWxzCisg ICAgID0gKHN0cmluZykgZmlsdGVyIHJlcHJlc2VudGF0aW9uCisgICAgID4g VXNhZ2UKKyAgICAgfCB2YXIgZiA9IHBhcGVyLmZpbHRlcihTbmFwLmZpbHRl ci5ibHVyKDUsIDEwKSksCisgICAgIHwgICAgIGMgPSBwYXBlci5jaXJjbGUo MTAsIDEwLCAxMCkuYXR0cih7CisgICAgIHwgICAgICAgICBmaWx0ZXI6IGYK KyAgICAgfCAgICAgfSk7CisgICAgXCovCisgICAgU25hcC5maWx0ZXIuYmx1 ciA9IGZ1bmN0aW9uICh4LCB5KSB7CisgICAgICAgIGlmICh4ID09IG51bGwp IHsKKyAgICAgICAgICAgIHggPSAyOworICAgICAgICB9CisgICAgICAgIHZh ciBkZWYgPSB5ID09IG51bGwgPyB4IDogW3gsIHldOworICAgICAgICByZXR1 cm4gU25hcC5mb3JtYXQoJ1w8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9u PSJ7ZGVmfSIvPicsIHsKKyAgICAgICAgICAgIGRlZjogZGVmCisgICAgICAg IH0pOworICAgIH07CisgICAgU25hcC5maWx0ZXIuYmx1ci50b1N0cmluZyA9 IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMoKTsKKyAgICB9 OworICAgIC8qXAorICAgICAqIFNuYXAuZmlsdGVyLnNoYWRvdworICAgICBb IG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmV0dXJucyBhbiBTVkcgbWFy a3VwIHN0cmluZyBmb3IgdGhlIHNoYWRvdyBmaWx0ZXIKKyAgICAgKioKKyAg ICAgLSBkeCAobnVtYmVyKSAjb3B0aW9uYWwgaG9yaXpvbnRhbCBzaGlmdCBv ZiB0aGUgc2hhZG93LCBpbiBwaXhlbHMKKyAgICAgLSBkeSAobnVtYmVyKSAj b3B0aW9uYWwgdmVydGljYWwgc2hpZnQgb2YgdGhlIHNoYWRvdywgaW4gcGl4 ZWxzCisgICAgIC0gYmx1ciAobnVtYmVyKSAjb3B0aW9uYWwgYW1vdW50IG9m IGJsdXIKKyAgICAgLSBjb2xvciAoc3RyaW5nKSAjb3B0aW9uYWwgY29sb3Ig b2YgdGhlIHNoYWRvdworICAgICAtIG9wYWNpdHkgKG51bWJlcikgI29wdGlv bmFsIGAwLi4xYCBvcGFjaXR5IG9mIHRoZSBzaGFkb3cKKyAgICAgKiBvcgor ICAgICAtIGR4IChudW1iZXIpICNvcHRpb25hbCBob3Jpem9udGFsIHNoaWZ0 IG9mIHRoZSBzaGFkb3csIGluIHBpeGVscworICAgICAtIGR5IChudW1iZXIp ICNvcHRpb25hbCB2ZXJ0aWNhbCBzaGlmdCBvZiB0aGUgc2hhZG93LCBpbiBw aXhlbHMKKyAgICAgLSBjb2xvciAoc3RyaW5nKSAjb3B0aW9uYWwgY29sb3Ig b2YgdGhlIHNoYWRvdworICAgICAtIG9wYWNpdHkgKG51bWJlcikgI29wdGlv bmFsIGAwLi4xYCBvcGFjaXR5IG9mIHRoZSBzaGFkb3cKKyAgICAgKiB3aGlj aCBtYWtlcyBibHVyIGRlZmF1bHQgdG8gYDRgLiBPcgorICAgICAtIGR4IChu dW1iZXIpICNvcHRpb25hbCBob3Jpem9udGFsIHNoaWZ0IG9mIHRoZSBzaGFk b3csIGluIHBpeGVscworICAgICAtIGR5IChudW1iZXIpICNvcHRpb25hbCB2 ZXJ0aWNhbCBzaGlmdCBvZiB0aGUgc2hhZG93LCBpbiBwaXhlbHMKKyAgICAg LSBvcGFjaXR5IChudW1iZXIpICNvcHRpb25hbCBgMC4uMWAgb3BhY2l0eSBv ZiB0aGUgc2hhZG93CisgICAgID0gKHN0cmluZykgZmlsdGVyIHJlcHJlc2Vu dGF0aW9uCisgICAgID4gVXNhZ2UKKyAgICAgfCB2YXIgZiA9IHBhcGVyLmZp bHRlcihTbmFwLmZpbHRlci5zaGFkb3coMCwgMiwgMykpLAorICAgICB8ICAg ICBjID0gcGFwZXIuY2lyY2xlKDEwLCAxMCwgMTApLmF0dHIoeworICAgICB8 ICAgICAgICAgZmlsdGVyOiBmCisgICAgIHwgICAgIH0pOworICAgIFwqLwor ICAgIFNuYXAuZmlsdGVyLnNoYWRvdyA9IGZ1bmN0aW9uIChkeCwgZHksIGJs dXIsIGNvbG9yLCBvcGFjaXR5KSB7CisgICAgICAgIGlmICh0eXBlb2YgYmx1 ciA9PSAic3RyaW5nIikgeworICAgICAgICAgICAgY29sb3IgPSBibHVyOwor ICAgICAgICAgICAgb3BhY2l0eSA9IGNvbG9yOworICAgICAgICAgICAgYmx1 ciA9IDQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHR5cGVvZiBjb2xvciAh PSAic3RyaW5nIikgeworICAgICAgICAgICAgb3BhY2l0eSA9IGNvbG9yOwor ICAgICAgICAgICAgY29sb3IgPSAiIzAwMCI7CisgICAgICAgIH0KKyAgICAg ICAgY29sb3IgPSBjb2xvciB8fCAiIzAwMCI7CisgICAgICAgIGlmIChibHVy ID09IG51bGwpIHsKKyAgICAgICAgICAgIGJsdXIgPSA0OworICAgICAgICB9 CisgICAgICAgIGlmIChvcGFjaXR5ID09IG51bGwpIHsKKyAgICAgICAgICAg IG9wYWNpdHkgPSAxOworICAgICAgICB9CisgICAgICAgIGlmIChkeCA9PSBu dWxsKSB7CisgICAgICAgICAgICBkeCA9IDA7CisgICAgICAgICAgICBkeSA9 IDI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGR5ID09IG51bGwpIHsKKyAg ICAgICAgICAgIGR5ID0gZHg7CisgICAgICAgIH0KKyAgICAgICAgY29sb3Ig PSBTbmFwLmNvbG9yKGNvbG9yKTsKKyAgICAgICAgcmV0dXJuIFNuYXAuZm9y bWF0KCc8ZmVHYXVzc2lhbkJsdXIgaW49IlNvdXJjZUFscGhhIiBzdGREZXZp YXRpb249IntibHVyfSIvPjxmZU9mZnNldCBkeD0ie2R4fSIgZHk9IntkeX0i IHJlc3VsdD0ib2Zmc2V0Ymx1ciIvPjxmZUZsb29kIGZsb29kLWNvbG9yPSJ7 Y29sb3J9Ii8+PGZlQ29tcG9zaXRlIGluMj0ib2Zmc2V0Ymx1ciIgb3BlcmF0 b3I9ImluIi8+PGZlQ29tcG9uZW50VHJhbnNmZXI+PGZlRnVuY0EgdHlwZT0i bGluZWFyIiBzbG9wZT0ie29wYWNpdHl9Ii8+PC9mZUNvbXBvbmVudFRyYW5z ZmVyPjxmZU1lcmdlPjxmZU1lcmdlTm9kZS8+PGZlTWVyZ2VOb2RlIGluPSJT b3VyY2VHcmFwaGljIi8+PC9mZU1lcmdlPicsIHsKKyAgICAgICAgICAgIGNv bG9yOiBjb2xvciwKKyAgICAgICAgICAgIGR4OiBkeCwKKyAgICAgICAgICAg IGR5OiBkeSwKKyAgICAgICAgICAgIGJsdXI6IGJsdXIsCisgICAgICAgICAg ICBvcGFjaXR5OiBvcGFjaXR5CisgICAgICAgIH0pOworICAgIH07CisgICAg U25hcC5maWx0ZXIuc2hhZG93LnRvU3RyaW5nID0gZnVuY3Rpb24gKCkgewor ICAgICAgICByZXR1cm4gdGhpcygpOworICAgIH07CisgICAgLypcCisgICAg ICogU25hcC5maWx0ZXIuZ3JheXNjYWxlCisgICAgIFsgbWV0aG9kIF0KKyAg ICAgKioKKyAgICAgKiBSZXR1cm5zIGFuIFNWRyBtYXJrdXAgc3RyaW5nIGZv ciB0aGUgZ3JheXNjYWxlIGZpbHRlcgorICAgICAqKgorICAgICAtIGFtb3Vu dCAobnVtYmVyKSBhbW91bnQgb2YgZmlsdGVyIChgMC4uMWApCisgICAgID0g KHN0cmluZykgZmlsdGVyIHJlcHJlc2VudGF0aW9uCisgICAgXCovCisgICAg U25hcC5maWx0ZXIuZ3JheXNjYWxlID0gZnVuY3Rpb24gKGFtb3VudCkgewor ICAgICAgICBpZiAoYW1vdW50ID09IG51bGwpIHsKKyAgICAgICAgICAgIGFt b3VudCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNuYXAuZm9y bWF0KCc8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0ie2F9 IHtifSB7Y30gMCAwIHtkfSB7ZX0ge2Z9IDAgMCB7Z30ge2J9IHtofSAwIDAg MCAwIDAgMSAwIi8+JywgeworICAgICAgICAgICAgYTogMC4yMTI2ICsgMC43 ODc0ICogKDEgLSBhbW91bnQpLAorICAgICAgICAgICAgYjogMC43MTUyIC0g MC43MTUyICogKDEgLSBhbW91bnQpLAorICAgICAgICAgICAgYzogMC4wNzIy IC0gMC4wNzIyICogKDEgLSBhbW91bnQpLAorICAgICAgICAgICAgZDogMC4y MTI2IC0gMC4yMTI2ICogKDEgLSBhbW91bnQpLAorICAgICAgICAgICAgZTog MC43MTUyICsgMC4yODQ4ICogKDEgLSBhbW91bnQpLAorICAgICAgICAgICAg ZjogMC4wNzIyIC0gMC4wNzIyICogKDEgLSBhbW91bnQpLAorICAgICAgICAg ICAgZzogMC4yMTI2IC0gMC4yMTI2ICogKDEgLSBhbW91bnQpLAorICAgICAg ICAgICAgaDogMC4wNzIyICsgMC45Mjc4ICogKDEgLSBhbW91bnQpCisgICAg ICAgIH0pOworICAgIH07CisgICAgU25hcC5maWx0ZXIuZ3JheXNjYWxlLnRv U3RyaW5nID0gZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gdGhpcygp OworICAgIH07CisgICAgLypcCisgICAgICogU25hcC5maWx0ZXIuc2VwaWEK KyAgICAgWyBtZXRob2QgXQorICAgICAqKgorICAgICAqIFJldHVybnMgYW4g U1ZHIG1hcmt1cCBzdHJpbmcgZm9yIHRoZSBzZXBpYSBmaWx0ZXIKKyAgICAg KioKKyAgICAgLSBhbW91bnQgKG51bWJlcikgYW1vdW50IG9mIGZpbHRlciAo YDAuLjFgKQorICAgICA9IChzdHJpbmcpIGZpbHRlciByZXByZXNlbnRhdGlv bgorICAgIFwqLworICAgIFNuYXAuZmlsdGVyLnNlcGlhID0gZnVuY3Rpb24g KGFtb3VudCkgeworICAgICAgICBpZiAoYW1vdW50ID09IG51bGwpIHsKKyAg ICAgICAgICAgIGFtb3VudCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0 dXJuIFNuYXAuZm9ybWF0KCc8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgi IHZhbHVlcz0ie2F9IHtifSB7Y30gMCAwIHtkfSB7ZX0ge2Z9IDAgMCB7Z30g e2h9IHtpfSAwIDAgMCAwIDAgMSAwIi8+JywgeworICAgICAgICAgICAgYTog MC4zOTMgKyAwLjYwNyAqICgxIC0gYW1vdW50KSwKKyAgICAgICAgICAgIGI6 IDAuNzY5IC0gMC43NjkgKiAoMSAtIGFtb3VudCksCisgICAgICAgICAgICBj OiAwLjE4OSAtIDAuMTg5ICogKDEgLSBhbW91bnQpLAorICAgICAgICAgICAg ZDogMC4zNDkgLSAwLjM0OSAqICgxIC0gYW1vdW50KSwKKyAgICAgICAgICAg IGU6IDAuNjg2ICsgMC4zMTQgKiAoMSAtIGFtb3VudCksCisgICAgICAgICAg ICBmOiAwLjE2OCAtIDAuMTY4ICogKDEgLSBhbW91bnQpLAorICAgICAgICAg ICAgZzogMC4yNzIgLSAwLjI3MiAqICgxIC0gYW1vdW50KSwKKyAgICAgICAg ICAgIGg6IDAuNTM0IC0gMC41MzQgKiAoMSAtIGFtb3VudCksCisgICAgICAg ICAgICBpOiAwLjEzMSArIDAuODY5ICogKDEgLSBhbW91bnQpCisgICAgICAg IH0pOworICAgIH07CisgICAgU25hcC5maWx0ZXIuc2VwaWEudG9TdHJpbmcg PSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiB0aGlzKCk7CisgICAg fTsKKyAgICAvKlwKKyAgICAgKiBTbmFwLmZpbHRlci5zYXR1cmF0ZQorICAg ICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmV0dXJucyBhbiBTVkcg bWFya3VwIHN0cmluZyBmb3IgdGhlIHNhdHVyYXRlIGZpbHRlcgorICAgICAq KgorICAgICAtIGFtb3VudCAobnVtYmVyKSBhbW91bnQgb2YgZmlsdGVyIChg MC4uMWApCisgICAgID0gKHN0cmluZykgZmlsdGVyIHJlcHJlc2VudGF0aW9u CisgICAgXCovCisgICAgU25hcC5maWx0ZXIuc2F0dXJhdGUgPSBmdW5jdGlv biAoYW1vdW50KSB7CisgICAgICAgIGlmIChhbW91bnQgPT0gbnVsbCkgewor ICAgICAgICAgICAgYW1vdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICBy ZXR1cm4gU25hcC5mb3JtYXQoJzxmZUNvbG9yTWF0cml4IHR5cGU9InNhdHVy YXRlIiB2YWx1ZXM9InthbW91bnR9Ii8+JywgeworICAgICAgICAgICAgYW1v dW50OiAxIC0gYW1vdW50CisgICAgICAgIH0pOworICAgIH07CisgICAgU25h cC5maWx0ZXIuc2F0dXJhdGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7Cisg ICAgICAgIHJldHVybiB0aGlzKCk7CisgICAgfTsKKyAgICAvKlwKKyAgICAg KiBTbmFwLmZpbHRlci5odWVSb3RhdGUKKyAgICAgWyBtZXRob2QgXQorICAg ICAqKgorICAgICAqIFJldHVybnMgYW4gU1ZHIG1hcmt1cCBzdHJpbmcgZm9y IHRoZSBodWUtcm90YXRlIGZpbHRlcgorICAgICAqKgorICAgICAtIGFuZ2xl IChudW1iZXIpIGFuZ2xlIG9mIHJvdGF0aW9uCisgICAgID0gKHN0cmluZykg ZmlsdGVyIHJlcHJlc2VudGF0aW9uCisgICAgXCovCisgICAgU25hcC5maWx0 ZXIuaHVlUm90YXRlID0gZnVuY3Rpb24gKGFuZ2xlKSB7CisgICAgICAgIGFu Z2xlID0gYW5nbGUgfHwgMDsKKyAgICAgICAgcmV0dXJuIFNuYXAuZm9ybWF0 KCc8ZmVDb2xvck1hdHJpeCB0eXBlPSJodWVSb3RhdGUiIHZhbHVlcz0ie2Fu Z2xlfSIvPicsIHsKKyAgICAgICAgICAgIGFuZ2xlOiBhbmdsZQorICAgICAg ICB9KTsKKyAgICB9OworICAgIFNuYXAuZmlsdGVyLmh1ZVJvdGF0ZS50b1N0 cmluZyA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMoKTsK KyAgICB9OworICAgIC8qXAorICAgICAqIFNuYXAuZmlsdGVyLmludmVydAor ICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICogUmV0dXJucyBhbiBT VkcgbWFya3VwIHN0cmluZyBmb3IgdGhlIGludmVydCBmaWx0ZXIKKyAgICAg KioKKyAgICAgLSBhbW91bnQgKG51bWJlcikgYW1vdW50IG9mIGZpbHRlciAo YDAuLjFgKQorICAgICA9IChzdHJpbmcpIGZpbHRlciByZXByZXNlbnRhdGlv bgorICAgIFwqLworICAgIFNuYXAuZmlsdGVyLmludmVydCA9IGZ1bmN0aW9u IChhbW91bnQpIHsKKyAgICAgICAgaWYgKGFtb3VudCA9PSBudWxsKSB7Cisg ICAgICAgICAgICBhbW91bnQgPSAxOworICAgICAgICB9CisvLyAgICAgICAg PGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9Ii0xIDAgMCAw IDEgIDAgLTEgMCAwIDEgIDAgMCAtMSAwIDEgIDAgMCAwIDEgMCIgY29sb3It aW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIi8+CisgICAgICAgIHJldHVy biBTbmFwLmZvcm1hdCgnPGZlQ29tcG9uZW50VHJhbnNmZXI+PGZlRnVuY1Ig dHlwZT0idGFibGUiIHRhYmxlVmFsdWVzPSJ7YW1vdW50fSB7YW1vdW50Mn0i Lz48ZmVGdW5jRyB0eXBlPSJ0YWJsZSIgdGFibGVWYWx1ZXM9InthbW91bnR9 IHthbW91bnQyfSIvPjxmZUZ1bmNCIHR5cGU9InRhYmxlIiB0YWJsZVZhbHVl cz0ie2Ftb3VudH0ge2Ftb3VudDJ9Ii8+PC9mZUNvbXBvbmVudFRyYW5zZmVy PicsIHsKKyAgICAgICAgICAgIGFtb3VudDogYW1vdW50LAorICAgICAgICAg ICAgYW1vdW50MjogMSAtIGFtb3VudAorICAgICAgICB9KTsKKyAgICB9Owor ICAgIFNuYXAuZmlsdGVyLmludmVydC50b1N0cmluZyA9IGZ1bmN0aW9uICgp IHsKKyAgICAgICAgcmV0dXJuIHRoaXMoKTsKKyAgICB9OworICAgIC8qXAor ICAgICAqIFNuYXAuZmlsdGVyLmJyaWdodG5lc3MKKyAgICAgWyBtZXRob2Qg XQorICAgICAqKgorICAgICAqIFJldHVybnMgYW4gU1ZHIG1hcmt1cCBzdHJp bmcgZm9yIHRoZSBicmlnaHRuZXNzIGZpbHRlcgorICAgICAqKgorICAgICAt IGFtb3VudCAobnVtYmVyKSBhbW91bnQgb2YgZmlsdGVyIChgMC4uMWApCisg ICAgID0gKHN0cmluZykgZmlsdGVyIHJlcHJlc2VudGF0aW9uCisgICAgXCov CisgICAgU25hcC5maWx0ZXIuYnJpZ2h0bmVzcyA9IGZ1bmN0aW9uIChhbW91 bnQpIHsKKyAgICAgICAgaWYgKGFtb3VudCA9PSBudWxsKSB7CisgICAgICAg ICAgICBhbW91bnQgPSAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiBT bmFwLmZvcm1hdCgnPGZlQ29tcG9uZW50VHJhbnNmZXI+PGZlRnVuY1IgdHlw ZT0ibGluZWFyIiBzbG9wZT0ie2Ftb3VudH0iLz48ZmVGdW5jRyB0eXBlPSJs aW5lYXIiIHNsb3BlPSJ7YW1vdW50fSIvPjxmZUZ1bmNCIHR5cGU9ImxpbmVh ciIgc2xvcGU9InthbW91bnR9Ii8+PC9mZUNvbXBvbmVudFRyYW5zZmVyPics IHsKKyAgICAgICAgICAgIGFtb3VudDogYW1vdW50CisgICAgICAgIH0pOwor ICAgIH07CisgICAgU25hcC5maWx0ZXIuYnJpZ2h0bmVzcy50b1N0cmluZyA9 IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMoKTsKKyAgICB9 OworICAgIC8qXAorICAgICAqIFNuYXAuZmlsdGVyLmNvbnRyYXN0CisgICAg IFsgbWV0aG9kIF0KKyAgICAgKioKKyAgICAgKiBSZXR1cm5zIGFuIFNWRyBt YXJrdXAgc3RyaW5nIGZvciB0aGUgY29udHJhc3QgZmlsdGVyCisgICAgICoq CisgICAgIC0gYW1vdW50IChudW1iZXIpIGFtb3VudCBvZiBmaWx0ZXIgKGAw Li4xYCkKKyAgICAgPSAoc3RyaW5nKSBmaWx0ZXIgcmVwcmVzZW50YXRpb24K KyAgICBcKi8KKyAgICBTbmFwLmZpbHRlci5jb250cmFzdCA9IGZ1bmN0aW9u IChhbW91bnQpIHsKKyAgICAgICAgaWYgKGFtb3VudCA9PSBudWxsKSB7Cisg ICAgICAgICAgICBhbW91bnQgPSAxOworICAgICAgICB9CisgICAgICAgIHJl dHVybiBTbmFwLmZvcm1hdCgnPGZlQ29tcG9uZW50VHJhbnNmZXI+PGZlRnVu Y1IgdHlwZT0ibGluZWFyIiBzbG9wZT0ie2Ftb3VudH0iIGludGVyY2VwdD0i e2Ftb3VudDJ9Ii8+PGZlRnVuY0cgdHlwZT0ibGluZWFyIiBzbG9wZT0ie2Ft b3VudH0iIGludGVyY2VwdD0ie2Ftb3VudDJ9Ii8+PGZlRnVuY0IgdHlwZT0i bGluZWFyIiBzbG9wZT0ie2Ftb3VudH0iIGludGVyY2VwdD0ie2Ftb3VudDJ9 Ii8+PC9mZUNvbXBvbmVudFRyYW5zZmVyPicsIHsKKyAgICAgICAgICAgIGFt b3VudDogYW1vdW50LAorICAgICAgICAgICAgYW1vdW50MjogLjUgLSBhbW91 bnQgLyAyCisgICAgICAgIH0pOworICAgIH07CisgICAgU25hcC5maWx0ZXIu Y29udHJhc3QudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJl dHVybiB0aGlzKCk7CisgICAgfTsKK30pOworCisvLyBDb3B5cmlnaHQgKGMp IDIwMTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3Ug bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdp dGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2Yg dGhlIExpY2Vuc2UgYXQKKy8vCisvLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcv bGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQg YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNv ZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk aXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBX QVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBl eHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo ZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k CisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK1NuYXAucGx1 Z2luKGZ1bmN0aW9uIChTbmFwLCBFbGVtZW50LCBQYXBlciwgZ2xvYiwgRnJh Z21lbnQpIHsKKyAgICB2YXIgYm94ID0gU25hcC5fLmJveCwKKyAgICAgICAg aXMgPSBTbmFwLmlzLAorICAgICAgICBmaXJzdExldHRlciA9IC9eW15hLXpd KihbdGJtbHJjXSkvaSwKKyAgICAgICAgdG9TdHJpbmcgPSBmdW5jdGlvbiAo KSB7CisgICAgICAgICAgICByZXR1cm4gIlQiICsgdGhpcy5keCArICIsIiAr IHRoaXMuZHk7CisgICAgICAgIH07CisgICAgLypcCisgICAgICogRWxlbWVu dC5nZXRBbGlnbgorICAgICBbIG1ldGhvZCBdCisgICAgICoqCisgICAgICog UmV0dXJucyBzaGlmdCBuZWVkZWQgdG8gYWxpZ24gdGhlIGVsZW1lbnQgcmVs YXRpdmVseSB0byBnaXZlbiBlbGVtZW50LgorICAgICAqIElmIG5vIGVsZW1l bnRzIHNwZWNpZmllZCwgcGFyZW50IGA8c3ZnPmAgY29udGFpbmVyIHdpbGwg YmUgdXNlZC4KKyAgICAgLSBlbCAob2JqZWN0KSBAb3B0aW9uYWwgYWxpZ25t ZW50IGVsZW1lbnQKKyAgICAgLSB3YXkgKHN0cmluZykgb25lIG9mIHNpeCB2 YWx1ZXM6IGAidG9wImAsIGAibWlkZGxlImAsIGAiYm90dG9tImAsIGAibGVm dCJgLCBgImNlbnRlciJgLCBgInJpZ2h0ImAKKyAgICAgPSAob2JqZWN0fHN0 cmluZykgT2JqZWN0IGluIGZvcm1hdCBge2R4OiAsIGR5OiB9YCBhbHNvIGhh cyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBhcyBhIHRyYW5zZm9ybWF0aW9u IHN0cmluZworICAgICA+IFVzYWdlCisgICAgIHwgZWwudHJhbnNmb3JtKGVs LmdldEFsaWduKGVsMiwgInRvcCIpKTsKKyAgICAgKiBvcgorICAgICB8IHZh ciBkeSA9IGVsLmdldEFsaWduKGVsMiwgInRvcCIpLmR5OworICAgIFwqLwor ICAgIEVsZW1lbnQucHJvdG90eXBlLmdldEFsaWduID0gZnVuY3Rpb24gKGVs LCB3YXkpIHsKKyAgICAgICAgaWYgKHdheSA9PSBudWxsICYmIGlzKGVsLCAi c3RyaW5nIikpIHsKKyAgICAgICAgICAgIHdheSA9IGVsOworICAgICAgICAg ICAgZWwgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsID0gZWwgfHwg dGhpcy5wYXBlcjsKKyAgICAgICAgdmFyIGJ4ID0gZWwuZ2V0QkJveCA/IGVs LmdldEJCb3goKSA6IGJveChlbCksCisgICAgICAgICAgICBiYiA9IHRoaXMu Z2V0QkJveCgpLAorICAgICAgICAgICAgb3V0ID0ge307CisgICAgICAgIHdh eSA9IHdheSAmJiB3YXkubWF0Y2goZmlyc3RMZXR0ZXIpOworICAgICAgICB3 YXkgPSB3YXkgPyB3YXlbMV0udG9Mb3dlckNhc2UoKSA6ICJjIjsKKyAgICAg ICAgc3dpdGNoICh3YXkpIHsKKyAgICAgICAgICAgIGNhc2UgInQiOgorICAg ICAgICAgICAgICAgIG91dC5keCA9IDA7CisgICAgICAgICAgICAgICAgb3V0 LmR5ID0gYngueSAtIGJiLnk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgIGNhc2UgImIiOgorICAgICAgICAgICAgICAgIG91dC5keCA9IDA7 CisgICAgICAgICAgICAgICAgb3V0LmR5ID0gYngueTIgLSBiYi55MjsKKyAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAibSI6CisgICAg ICAgICAgICAgICAgb3V0LmR4ID0gMDsKKyAgICAgICAgICAgICAgICBvdXQu ZHkgPSBieC5jeSAtIGJiLmN5OworICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICBjYXNlICJsIjoKKyAgICAgICAgICAgICAgICBvdXQuZHggPSBi eC54IC0gYmIueDsKKyAgICAgICAgICAgICAgICBvdXQuZHkgPSAwOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJyIjoKKyAgICAg ICAgICAgICAgICBvdXQuZHggPSBieC54MiAtIGJiLngyOworICAgICAgICAg ICAgICAgIG91dC5keSA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgb3V0LmR4ID0gYngu Y3ggLSBiYi5jeDsKKyAgICAgICAgICAgICAgICBvdXQuZHkgPSAwOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnRvU3Ry aW5nID0gdG9TdHJpbmc7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfTsK KyAgICAvKlwKKyAgICAgKiBFbGVtZW50LmFsaWduCisgICAgIFsgbWV0aG9k IF0KKyAgICAgKioKKyAgICAgKiBBbGlnbnMgdGhlIGVsZW1lbnQgcmVsYXRp dmVseSB0byBnaXZlbiBvbmUgdmlhIHRyYW5zZm9ybWF0aW9uLgorICAgICAq IElmIG5vIGVsZW1lbnRzIHNwZWNpZmllZCwgcGFyZW50IGA8c3ZnPmAgY29u dGFpbmVyIHdpbGwgYmUgdXNlZC4KKyAgICAgLSBlbCAob2JqZWN0KSBAb3B0 aW9uYWwgYWxpZ25tZW50IGVsZW1lbnQKKyAgICAgLSB3YXkgKHN0cmluZykg b25lIG9mIHNpeCB2YWx1ZXM6IGAidG9wImAsIGAibWlkZGxlImAsIGAiYm90 dG9tImAsIGAibGVmdCJgLCBgImNlbnRlciJgLCBgInJpZ2h0ImAKKyAgICAg PSAob2JqZWN0KSB0aGlzIGVsZW1lbnQKKyAgICAgPiBVc2FnZQorICAgICB8 IGVsLmFsaWduKGVsMiwgInRvcCIpOworICAgICAqIG9yCisgICAgIHwgZWwu YWxpZ24oIm1pZGRsZSIpOworICAgIFwqLworICAgIEVsZW1lbnQucHJvdG90 eXBlLmFsaWduID0gZnVuY3Rpb24gKGVsLCB3YXkpIHsKKyAgICAgICAgcmV0 dXJuIHRoaXMudHJhbnNmb3JtKCIuLi4iICsgdGhpcy5nZXRBbGlnbihlbCwg d2F5KSk7CisgICAgfTsKK30pOworCityZXR1cm4gU25hcDsKK30pKTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvdGVtcGxhdGVzL2V4cGxhaW4v anMvZXhwbGFpbi5qcyBiL3dlYi9wZ2FkbWluL21pc2MvdGVtcGxhdGVzL2V4 cGxhaW4vanMvZXhwbGFpbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi45MTFlMTA3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vbWlzYy90ZW1wbGF0ZXMvZXhwbGFpbi9qcy9leHBsYWluLmpzCkBA IC0wLDAgKzEsNjg4IEBACitkZWZpbmUgKAorICAncGdhZG1pbi5taXNjLmV4 cGxhaW4nLAorICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2Nv cmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAnYmFja2JvbmUnLCAnc25hcC5zdmcn XSwKKyAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgQmFja2JvbmUsIFNu YXApIHsKKworcGdBZG1pbiA9IHBnQWRtaW4gfHwgd2luZG93LnBnQWRtaW4g fHwge307Cit2YXIgcGdFeHBsYWluID0gcGdBZG1pbi5FeHBsYWluOworCisv LyBTbmFwLnN2ZyBwbHVnLWluIHRvIHdyaXRlIG11bHRpdGV4dCBhcyBpbWFn ZSBuYW1lCitTbmFwLnBsdWdpbihmdW5jdGlvbiAoU25hcCwgRWxlbWVudCwg UGFwZXIsIGdsb2IpIHsKKyAgUGFwZXIucHJvdG90eXBlLm11bHRpdGV4dCA9 IGZ1bmN0aW9uICh4LCB5LCB0eHQsIG1heF93aWR0aCwgYXR0cmlidXRlcykg eworICAgIHZhciBzdmcgPSBTbmFwKCksCisgICAgICAgIGFiYyA9ICJhYmNk ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZX WFlaIiwKKyAgICAgICAgaXNXb3JkQnJva2VuID0gZmFsc2UsCisgICAgICAg IHRlbXAgPSBzdmcudGV4dCgwLCAwLCBhYmMpOworCisgICAgdGVtcC5hdHRy KGF0dHJpYnV0ZXMpOworCisgICAgLyoKKyAgICAgKiBGaW5kIGxldHRlciB3 aWR0aCBpbiBwaXhlbHMgYW5kCisgICAgICogaW5kZXggZnJvbSB3aGVyZSB0 aGUgdGV4dCBzaG91bGQgYmUgYnJva2VuCisgICAgICovCisgICAgdmFyIGxl dHRlcl93aWR0aCA9IHRlbXAuZ2V0QkJveCgpLndpZHRoIC8gYWJjLmxlbmd0 aCwKKyAgICAgICAgd29yZF9icmVha19pbmRleCA9IE1hdGgucm91bmQoKG1h eF93aWR0aCAvIGxldHRlcl93aWR0aCkpIC0gMTsKKworICAgIHN2Zy5yZW1v dmUoKTsKKworICAgIHZhciB3b3JkcyA9IHR4dC5zcGxpdCgiICIpLAorICAg ICAgICB3aWR0aF9zb19mYXIgPSAwLAorICAgICAgICBsaW5lcz1bXSwgY3Vy cl9saW5lID0gJycsCisgICAgICAgIC8qCisgICAgICAgICAqIEZ1bmN0aW9u IHRvIGRpdmlkZSBzdHJpbmcgaW50byBtdWx0aXBsZSBsaW5lcworICAgICAg ICAgKiBhbmQgc3RvcmUgdGhlbSBpbiBhbiBhcnJheSBpZiBpdCBzaXplIGNy b3NzZXMKKyAgICAgICAgICogdGhlIG1heC13aWR0aCBib3VuZGFyeS4KKyAg ICAgICAgICovCisgICAgICAgIHNwbGl0VGV4dEluTXVsdGlMaW5lID0gZnVu Y3Rpb24obGVhZGluZywgc29fZmFyLCBsaW5lKSB7CisgICAgICAgICAgdmFy IGwgPSBsaW5lLmxlbmd0aCwKKyAgICAgICAgICAgICAgcmVzID0gW107CisK KyAgICAgICAgICBpZiAobCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuIHJl czsKKworICAgICAgICAgIGlmIChzb19mYXIgJiYgKHNvX2ZhciArIChsICog bGV0dGVyX3dpZHRoKSA+IG1heF93aWR0aCkpIHsKKyAgICAgICAgICAgIHJl cy5wdXNoKGxlYWRpbmcpOworICAgICAgICAgICAgcmVzID0gcmVzLmNvbmNh dChzcGxpdFRleHRJbk11bHRpTGluZSgnJywgMCwgbGluZSkpOworICAgICAg ICAgIH0gZWxzZSBpZiAoc29fZmFyKSB7CisgICAgICAgICAgICByZXMucHVz aChsZWFkaW5nICsgJyAnICsgbGluZSk7CisgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgIGlmIChsZWFkaW5nKQorICAgICAgICAgICAgICAgIHJl cy5wdXNoKGxlYWRpbmcpOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3Ro ID4gd29yZF9icmVha19pbmRleCArIDEpCisgICAgICAgICAgICAgICAgcmVz LnB1c2gobGluZS5zbGljZSgwLCB3b3JkX2JyZWFrX2luZGV4KSArICctJyk7 CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzLnB1c2go bGluZSk7CisgICAgICAgICAgICByZXMgPSByZXMuY29uY2F0KHNwbGl0VGV4 dEluTXVsdGlMaW5lKCcnLCAwLCBsaW5lLnNsaWNlKHdvcmRfYnJlYWtfaW5k ZXgpKSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgcmV0dXJuIHJlczsK KyAgICAgICAgfTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd29yZHMu bGVuZ3RoOyBpKyspIHsKKyAgICAgIHZhciB0bXBBcnIgPSBzcGxpdFRleHRJ bk11bHRpTGluZSgKKyAgICAgICAgICAgIGN1cnJfbGluZSwgd2lkdGhfc29f ZmFyLCB3b3Jkc1tpXQorICAgICAgICAgICk7CisKKyAgICAgIGlmIChjdXJy X2xpbmUpIHsKKyAgICAgICAgbGluZXMgPSBsaW5lcy5zbGljZSgwLCBsaW5l cy5sZW5ndGggLSAyKTsKKyAgICAgIH0KKyAgICAgIGxpbmVzID0gbGluZXMu Y29uY2F0KHRtcEFycik7CisgICAgICBjdXJyX2xpbmUgPSBsaW5lc1tsaW5l cy5sZW5ndGggLSAxXTsKKyAgICAgIHdpZHRoX3NvX2ZhciA9IChjdXJyX2xp bmUubGVuZ3RoICogbGV0dGVyX3dpZHRoKTsKKyAgICB9CisKKyAgICAvLyBD cmVhdGUgbXVsdGlwbGUgdHNwYW4gZm9yIGVhY2ggc3RyaW5nIGluIGFycmF5 CisgICAgdmFyIHQgPSB0aGlzLnRleHQoeCx5LGxpbmVzKS5hdHRyKGF0dHJp YnV0ZXMpOworICAgIHQuc2VsZWN0QWxsKCJ0c3BhbjpudGgtY2hpbGQobisy KSIpLmF0dHIoeworICAgICAgZHk6ICIxLjJlbSIsCisgICAgICB4OiB4Cisg ICAgfSk7CisgICAgcmV0dXJuIHQ7CisgIH07Cit9KTsKKworaWYgKHBnQWRt aW4uRXhwbGFpbikKKyAgICByZXR1cm4gcGdBZG1pbi5FeHBsYWluOworCit2 YXIgcGdFeHBsYWluID0gcGdBZG1pbi5FeHBsYWluID0geworICAgLy8gUHJl Zml4IHBhdGggd2hlcmUgaW1hZ2VzIGFyZSBzdG9yZWQKKyAgIHByZWZpeDog J3t7IHVybF9mb3IoJ21pc2Muc3RhdGljJywgZmlsZW5hbWU9J2V4cGxhaW4v aW1nJykgfX0vJworfTsKKworLyoKKyAqIEEgbWFwIHdoaWNoIGlzIHVzZWQg dG8gZmV0Y2ggdGhlIGltYWdlIHRvIGJlIGRyYXduIGFuZAorICogdGV4dCB3 aGljaCB3aWxsIGFwcGVhciBiZWxvdyBpdAorICovCit2YXIgaW1hZ2VNYXBw ZXIgPSB7CisgICAgIkFnZ3JlZ2F0ZSIgOiB7CisgICAgICAgICJpbWFnZSI6 ImV4X2FnZ3JlZ2F0ZS5wbmciLCAiaW1hZ2VfdGV4dCI6IkFnZ3JlZ2F0ZSIK KyAgICB9LAorICAgICdBcHBlbmQnIDogeworICAgICAgICAiaW1hZ2UiOiJl eF9hcHBlbmQucG5nIiwiaW1hZ2VfdGV4dCI6IkFwcGVuZCIKKyAgICB9LAor ICAgICJCaXRtYXAgSW5kZXggU2NhbiIgOiBmdW5jdGlvbihkYXRhKSB7Cisg ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiaW1hZ2UiOiJleF9ibXBf aW5kZXgucG5nIiwgImltYWdlX3RleHQiOmRhdGFbJ0luZGV4IE5hbWUnXQor ICAgICAgICB9OworICAgIH0sCisgICAgIkJpdG1hcCBIZWFwIFNjYW4iIDog ZnVuY3Rpb24oZGF0YSkgeworICByZXR1cm4geyJpbWFnZSI6ImV4X2JtcF9o ZWFwLnBuZyIsImltYWdlX3RleHQiOmRhdGFbJ1JlbGF0aW9uIE5hbWUnXX07 Cit9LAorIkJpdG1hcEFuZCIgOiB7ImltYWdlIjoiZXhfYm1wX2FuZC5wbmci LCJpbWFnZV90ZXh0IjoiQml0bWFwIEFORCJ9LAorIkJpdG1hcE9yIiA6IHsi aW1hZ2UiOiJleF9ibXBfb3IucG5nIiwiaW1hZ2VfdGV4dCI6IkJpdG1hcCBP UiJ9LAorIkNURSBTY2FuIiA6IHsiaW1hZ2UiOiJleF9jdGVfc2Nhbi5wbmci LCJpbWFnZV90ZXh0IjoiQ1RFIFNjYW4ifSwKKyJGdW5jdGlvbiBTY2FuIiA6 IHsiaW1hZ2UiOiJleF9yZXN1bHQucG5nIiwiaW1hZ2VfdGV4dCI6IkZ1bmN0 aW9uIFNjYW4ifSwKKyJGb3JlaWduIFNjYW4iIDogeyJpbWFnZSI6ImV4X2Zv cmVpZ25fc2Nhbi5wbmciLCJpbWFnZV90ZXh0IjoiRm9yZWlnbiBTY2FuIn0s CisiR2F0aGVyIiA6IHsiaW1hZ2UiOiJleF9nYXRoZXJfbW90aW9uLnBuZyIs ImltYWdlX3RleHQiOiJHYXRoZXIifSwKKyJHcm91cCIgOiB7ImltYWdlIjoi ZXhfZ3JvdXAucG5nIiwiaW1hZ2VfdGV4dCI6Ikdyb3VwIn0sCisiR3JvdXBB Z2dyZWdhdGUiOiB7ImltYWdlIjoiZXhfYWdncmVnYXRlLnBuZyIsImltYWdl X3RleHQiOiJHcm91cCBBZ2dyZWdhdGUifSwKKyJIYXNoIiA6IHsiaW1hZ2Ui OiJleF9oYXNoLnBuZyIsImltYWdlX3RleHQiOiJIYXNoIn0sCisiSGFzaCBK b2luIjogZnVuY3Rpb24oZGF0YSkgeworICBpZiAoIWRhdGFbJ0pvaW4gVHlw ZSddKSByZXR1cm4geyJpbWFnZSI6ImV4X2pvaW4ucG5nIiwiaW1hZ2VfdGV4 dCI6IkpvaW4ifTsKKyAgc3dpdGNoKGRhdGFbJ0pvaW4gVHlwZSddKSB7Cisg ICAgY2FzZSAnQW50aSc6IHJldHVybiB7ImltYWdlIjoiZXhfaGFzaF9hbnRp X2pvaW4ucG5nIiwiaW1hZ2VfdGV4dCI6Ikhhc2ggQW50aSBKb2luIn07Cisg ICAgY2FzZSAnU2VtaSc6IHJldHVybiB7ImltYWdlIjoiZXhfaGFzaF9zZW1p X2pvaW4ucG5nIiwiaW1hZ2VfdGV4dCI6Ikhhc2ggU2VtaSBKb2luIn07Cisg ICAgZGVmYXVsdDogcmV0dXJuIHsiaW1hZ2UiOiJleF9oYXNoLnBuZyIsImlt YWdlX3RleHQiOlN0cmluZygiSGFzaCAiICsgZGF0YVsnSm9pbiBUeXBlJ10g KyAiIEpvaW4iICl9OworICB9Cit9LAorIkhhc2hBZ2dyZWdhdGUiIDogeyJp bWFnZSI6ImV4X2FnZ3JlZ2F0ZS5wbmciLCJpbWFnZV90ZXh0IjoiSGFzaCBB Z2dyZWdhdGUifSwKKyJJbmRleCBPbmx5IFNjYW4iIDogZnVuY3Rpb24oZGF0 YSkgeworICByZXR1cm4geyJpbWFnZSI6ImV4X2luZGV4X29ubHlfc2Nhbi5w bmciLCJpbWFnZV90ZXh0IjpkYXRhWydJbmRleCBOYW1lJ119OworfSwKKyJJ bmRleCBTY2FuIiA6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgcmV0dXJuIHsiaW1h Z2UiOiJleF9pbmRleF9zY2FuLnBuZyIsImltYWdlX3RleHQiOmRhdGFbJ0lu ZGV4IE5hbWUnXX07Cit9LAorIkluZGV4IFNjYW4gQmFja3dvcmQiIDogeyJp bWFnZSI6ImV4X2luZGV4X3NjYW4ucG5nIiwiaW1hZ2VfdGV4dCI6IkluZGV4 IEJhY2t3YXJkIFNjYW4ifSwKKyJMaW1pdCIgOiB7ImltYWdlIjoiZXhfbGlt aXQucG5nIiwiaW1hZ2VfdGV4dCI6IkxpbWl0In0sCisiTG9ja1Jvd3MiIDog eyJpbWFnZSI6ImV4X2xvY2tfcm93cy5wbmciLCJpbWFnZV90ZXh0IjoiTG9j ayBSb3dzIn0sCisiTWF0ZXJpYWxpemUiIDogeyJpbWFnZSI6ImV4X21hdGVy aWFsaXplLnBuZyIsImltYWdlX3RleHQiOiJNYXRlcmlhbGl6ZSJ9LAorIk1l cmdlIEFwcGVuZCI6IHsiaW1hZ2UiOiJleF9tZXJnZV9hcHBlbmQucG5nIiwi aW1hZ2VfdGV4dCI6Ik1lcmdlIEFwcGVuZCJ9LAorIk1lcmdlIEpvaW4iOiBm dW5jdGlvbihkYXRhKSB7CisgIHN3aXRjaChkYXRhWydKb2luIFR5cGUnXSkg eworICAgIGNhc2UgJ0FudGknOiByZXR1cm4geyJpbWFnZSI6ImV4X21lcmdl X2FudGlfam9pbi5wbmciLCJpbWFnZV90ZXh0IjoiTWVyZ2UgQW50aSBKb2lu In07CisgICAgY2FzZSAnU2VtaSc6IHJldHVybiB7ImltYWdlIjoiZXhfbWVy Z2Vfc2VtaV9qb2luLnBuZyIsImltYWdlX3RleHQiOiJNZXJnZSBTZW1pIEpv aW4ifTsKKyAgICBkZWZhdWx0OiByZXR1cm4geyJpbWFnZSI6ImV4X21lcmdl LnBuZyIsImltYWdlX3RleHQiOlN0cmluZygiTWVyZ2UgIiArIGRhdGFbJ0pv aW4gVHlwZSddICsgIiBKb2luIiApfTsKKyAgfQorfSwKKyJNb2RpZnlUYWJs ZSIgOiBmdW5jdGlvbihkYXRhKSB7CisgIHN3aXRjaCAoZGF0YVsnT3BlcmF0 b24nXSkgeworICAgIGNhc2UgImluc2VydCI6IHJldHVybiB7ICJpbWFnZSI6 ImV4X2luc2VydC5wbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJpbWFnZV90ZXh0IjoiSW5zZXJ0IgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgfTsKKyAgICBjYXNlICJ1cGRhdGUiOiByZXR1cm4geyJpbWFnZSI6 ImV4X3VwZGF0ZS5wbmciLCJpbWFnZV90ZXh0IjoiVXBkYXRlIn07CisgICAg Y2FzZSAiRGVsZXRlIjogcmV0dXJuIHsiaW1hZ2UiOiJleF9kZWxldGUucG5n IiwiaW1hZ2VfdGV4dCI6IkRlbGV0ZSJ9OworICB9Cit9LAorJ05lc3RlZCBM b29wJyA6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgc3dpdGNoKGRhdGFbJ0pvaW4g VHlwZSddKSB7CisgICAgY2FzZSAnQW50aSc6IHJldHVybiB7ImltYWdlIjoi ZXhfbmVzdGVkX2xvb3BfYW50aV9qb2luLnBuZyIsImltYWdlX3RleHQiOiJO ZXN0ZWQgTG9vcCBBbnRpIEpvaW4ifTsKKyAgICBjYXNlICdTZW1pJzogcmV0 dXJuIHsiaW1hZ2UiOiJleF9uZXN0ZWRfbG9vcF9zZW1pX2pvaW4ucG5nIiwi aW1hZ2VfdGV4dCI6Ik5lc3RlZCBMb29wIFNlbWkgSm9pbiJ9OworICAgIGRl ZmF1bHQ6IHJldHVybiB7ImltYWdlIjoiZXhfbmVzdGVkLnBuZyIsImltYWdl X3RleHQiOiJOZXN0ZWQgTG9vcCAiICsgZGF0YVsnSm9pbiBUeXBlJ10gKyAi IEpvaW4ifTsKKyAgfQorfSwKKyJSZWN1cnNpdmUgVW5pb24iIDogeyJpbWFn ZSI6ImV4X3JlY3Vyc2l2ZV91bmlvbi5wbmciLCJpbWFnZV90ZXh0IjoiUmVj dXJzaXZlIFVuaW9uIn0sCisiUmVzdWx0IiA6IHsiaW1hZ2UiOiJleF9yZXN1 bHQucG5nIiwiaW1hZ2VfdGV4dCI6IlJlc3VsdCJ9LAorIlNhbXBsZSBTY2Fu IiA6IHsiaW1hZ2UiOiJleF9zY2FuLnBuZyIsImltYWdlX3RleHQiOiJTYW1w bGUgU2NhbiJ9LAorIlNjYW4iIDogeyJpbWFnZSI6ImV4X3NjYW4ucG5nIiwi aW1hZ2VfdGV4dCI6IlNjYW4ifSwKKyJTZWVrIiA6IHsiaW1hZ2UiOiJleF9z ZWVrLnBuZyIsImltYWdlX3RleHQiOiJTZWVrIn0sCisiU2V0T3AiIDogZnVu Y3Rpb24oZGF0YSkgeworICB2YXIgc3RyYXRlZ3kgPSBkYXRhWydTdHJhdGVn eSddLAorICAgICAgY29tbWFuZCA9IGRhdGFbJ0NvbW1hbmQnXTsKKworICBp ZihzdHJhdGVneSA9PSAiSGFzaGVkIikgeworICAgIGlmKGNvbW1hbmQuc3Rh cnRzV2l0aCgiSW50ZXJzZWN0IikpIHsKKyAgICAgIGlmKGNvbW1hbmQgPT0g IkludGVyc2VjdCBBbGwiKQorICAgICAgICByZXR1cm4geyJpbWFnZSI6ImV4 X2hhc2hfc2V0b3BfaW50ZXJzZWN0X2FsbC5wbmciLCJpbWFnZV90ZXh0Ijoi SGFzaGVkIEludGVyc2VjdCBBbGwifTsKKyAgICAgIHJldHVybiB7ImltYWdl IjoiZXhfaGFzaF9zZXRvcF9pbnRlcnNlY3QucG5nIiwiaW1hZ2VfdGV4dCI6 Ikhhc2hlZCBJbnRlcnNlY3QifTsKKyAgICB9CisgICAgZWxzZSBpZiAoY29t bWFuZC5zdGFydHNXaXRoKCJFeGNlcHQiKSkgeworICAgICAgaWYoY29tbWFu ZCA9PSAiRXhjZXB0IEFsbCIpCisgICAgICAgIHJldHVybiB7ImltYWdlIjoi ZXhfaGFzaF9zZXRvcF9leGNlcHRfYWxsLnBuZyIsImltYWdlX3RleHQiOiJI YXNoZWQgRXhjZXB0IEFsbCJ9OworICAgICAgcmV0dXJuIHsiaW1hZ2UiOiJl eF9oYXNoX3NldG9wX2V4Y2VwdC5wbmciLCJpbWFnZV90ZXh0IjoiSGFzaCBF eGNlcHQifTsKKyAgICB9CisgICAgcmV0dXJuIHsiaW1hZ2UiOiJleF9oYXNo X3NldG9wX3Vua25vd24ucG5nIiwiaW1hZ2VfdGV4dCI6Ikhhc2hlZCBTZXRP cCBVbmtub3duIn07CisgIH0KKyAgcmV0dXJuIHsiaW1hZ2UiOiJleF9zZXRv cC5wbmciLCJpbWFnZV90ZXh0IjoiU2V0T3AifTsKK30sCisiU2VxIFNjYW4i OiBmdW5jdGlvbihkYXRhKSB7CisgIHJldHVybiB7ImltYWdlIjoiZXhfc2Nh bi5wbmciLCJpbWFnZV90ZXh0IjpkYXRhWydSZWxhdGlvbiBOYW1lJ119Owor fSwKKyJTdWJxdWVyeSBTY2FuIiA6IHsiaW1hZ2UiOiJleF9zdWJwbGFuLnBu ZyIsImltYWdlX3RleHQiOiJTdWJRdWVyeSBTY2FuIn0sCisiU29ydCIgOiB7 ImltYWdlIjoiZXhfc29ydC5wbmciLCJpbWFnZV90ZXh0IjoiU29ydCJ9LAor IlRpZCBTY2FuIiA6IHsiaW1hZ2UiOiJleF90aWRfc2Nhbi5wbmciLCJpbWFn ZV90ZXh0IjoiVGlkIFNjYW4ifSwKKyJVbmlxdWUiIDogeyJpbWFnZSI6ImV4 X3VuaXF1ZS5wbmciLCJpbWFnZV90ZXh0IjoiVW5pcXVlIn0sCisiVmFsdWVz IFNjYW4iIDogeyJpbWFnZSI6ImV4X3ZhbHVlc19zY2FuLnBuZyIsImltYWdl X3RleHQiOiJWYWx1ZXMgU2NhbiJ9LAorIldpbmRvd0FnZyIgOiB7ImltYWdl IjoiZXhfd2luZG93X2FnZ3JlZ2F0ZS5wbmciLCJpbWFnZV90ZXh0IjoiV2lu ZG93IEFnZ3JlZ2F0ZSJ9LAorIldvcmtUYWJsZSBTY2FuIiA6IHsiaW1hZ2Ui OiJleF93b3JrdGFibGVfc2Nhbi5wbmciLCJpbWFnZV90ZXh0IjoiV29ya1Rh YmxlIFNjYW4ifSwKKyJVbmRlZmluZWQiIDogeyJpbWFnZSI6ImV4X3Vua25v d24ucG5nIiwiaW1hZ2VfdGV4dCI6IlVuZGVmaW5lZCJ9LAorfQorCisvLyBT b21lIHByZWRlZmluZWQgY29uc3RhbnRzIHVzZWQgdG8gY2FsY3VsYXRlIGlt YWdlIGxvY2F0aW9uIGFuZCBpdHMgYm9yZGVyCit2YXIgcFdJRFRIID0gcEhF SUdIVCA9IDEwMC4KKyAgICBJTUFHRV9XSURUSCA9IElNQUdFX0hFSUdIVCA9 IDUwOwordmFyIG9mZnNldFggPSAyMDAsCisgICAgb2Zmc2V0WSA9IDYwOwor dmFyIEFSUk9XX1dJRFRIID0gMTAsCisgICAgQVJST1dfSEVJR0hUID0gMTA7 Cit2YXIgVFhUX0FMTElHTiA9IDUsCisgICAgVFhUX1NJWkUgPSAiMTVweCI7 Cit2YXIgVE9UQUxfV0lEVEggPSB1bmRlZmluZWQsCisgICAgVE9UQUxfSEVJ R0hUID0gdW5kZWZpbmVkOwordmFyIHhNYXJnaW4gPSAyNSwKKyAgICB5TWFy Z2luID0gMjU7Cit2YXIgTUlOX1pPT01fRkFDVE9SID0gMC4wMSwKKyAgICBN QVhfWk9PTV9GQUNUT1IgPSAyLAorICAgIElOSVRfWk9PTV9GQUNUT1IgPSAx OworICAgIFpPT01fUkFUSU8gPSAwLjA1OworCisKKy8vIEJhY2tib25lIG1v ZGVsIGZvciBlYWNoIHBsYW4gcHJvcGVydHkgb2YgaW5wdXQgSlNPTiBvYmpl Y3QKK3ZhciBQbGFuTW9kZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewor ICAgIGRlZmF1bHRzOiB7CisgICAgICAgICJQbGFucyI6IFtdLAorICAgICAg ICBsZXZlbDogW10sCisgICAgICAgICJpbWFnZSI6IHVuZGVmaW5lZCwKKyAg ICAgICAgImltYWdlX3RleHQiOiB1bmRlZmluZWQsCisgICAgICAgIHhwb3M6 IHVuZGVmaW5lZCwKKyAgICAgICAgeXBvczogdW5kZWZpbmVkLAorICAgICAg ICB3aWR0aDogcFdJRFRILAorICAgICAgICBoZWlnaHQ6IHBIRUlHSFQKKyAg ICB9LAorICAgIHBhcnNlOiBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgIHZh ciBpZHggPSAxLAorICAgICAgICAgICAgbHZsID0gZGF0YS5sZXZlbCA9IGRh dGEubGV2ZWwgfHwgW2lkeF0sCisgICAgICAgICAgICBwbGFucyA9IFtdLAor ICAgICAgICAgICAgbm9kZV90eXBlID0gZGF0YVsnTm9kZSBUeXBlJ10sCisg ICAgICAgICAgICAvLyBDYWxjdWxhdGluZyByZWxhdGl2ZSB4cG9zIG9mIGN1 cnJlbnQgbm9kZSBmcm9tIHRvcCBub2RlCisgICAgICAgICAgICB4cG9zID0g ZGF0YS54cG9zID0gZGF0YS54cG9zIC0gcFdJRFRILAorICAgICAgICAgICAg Ly8gQ2FsY3VsYXRpbmcgcmVsYXRpdmUgeXBvcyBvZiBjdXJyZW50IG5vZGUg ZnJvbSB0b3Agbm9kZQorICAgICAgICAgICAgeXBvcyA9IGRhdGEueXBvcywK KyAgICAgICAgICAgIG1heENoaWxkV2lkdGggPSAwOworCisgICAgICAgIGRh dGFbJ3dpZHRoJ10gPSBwV0lEVEg7CisgICAgICAgIGRhdGFbJ2hlaWdodCdd ID0gcEhFSUdIVDsKKworICAgICAgICAvKgorICAgICAgICAgKiBjYWxjdWxh dGluZyB4cG9zLCB5cG9zLCB3aWR0aCBhbmQgaGVpZ2h0IGlmIGN1cnJlbnQg bm9kZSBpcyBhIHN1YnBsYW4KKyAgICAgICAgICovCisgICAgICAgIGlmIChk YXRhWydQYXJlbnQgUmVsYXRpb25zaGlwJ10gPT09ICJTdWJQbGFuIikgewor ICAgICAgICAgICAgZGF0YVsnd2lkdGgnXSArPSAoeE1hcmdpbiAqIDIpICsg KHhNYXJnaW4gLyAyKTsKKyAgICAgICAgICAgIGRhdGFbJ2hlaWdodCddICs9 ICh5TWFyZ2luICogMik7CisgICAgICAgICAgICBkYXRhWyd5cG9zJ10gKz0g eU1hcmdpbjsKKyAgICAgICAgICAgIHhwb3MgLT0geE1hcmdpbjsKKyAgICAg ICAgICAgIHlwb3MgKz0geU1hcmdpbjsKKyAgICAgICAgfQorCisgICAgICAg IGlmKG5vZGVfdHlwZS5zdGFydHNXaXRoKCIoc2xpY2UiKSkKKyAgICAgICAg ICAgIG5vZGVfdHlwZSA9IG5vZGVfdHlwZS5zdWJzdHJpbmcoMCw3KTsKKwor ICAgICAgICAvLyBHZXQgdGhlIGltYWdlIGluZm9ybWF0aW9uIGZvciBjdXJy ZW50IG5vZGUKKyAgICAgICAgdmFyIG1hcHBlck9iaiA9IChfLmlzRnVuY3Rp b24oaW1hZ2VNYXBwZXJbbm9kZV90eXBlXSkgJiYKKyAgICAgICAgICAgICAg ICBpbWFnZU1hcHBlcltub2RlX3R5cGVdLmFwcGx5KHVuZGVmaW5lZCwgW2Rh dGFdKSkgfHwKKyAgICAgICAgICAgICAgICBpbWFnZU1hcHBlcltub2RlX3R5 cGVdIHx8ICdVbmRlZmluZWQnOworCisgICAgICAgIGRhdGFbImltYWdlIl0g PSBtYXBwZXJPYmpbImltYWdlIl07CisgICAgICAgIGRhdGFbImltYWdlX3Rl eHQiXSA9IG1hcHBlck9ialsiaW1hZ2VfdGV4dCJdOworCisgICAgICAgIC8v IFN0YXJ0IGNhbGN1bGF0aW5nIHhwb3MsIHlwb3MsIHdpZHRoIGFuZCBoZWln aHQgZm9yIGNoaWxkIHBsYW5zIGlmIGFueQorICAgICAgICBpZiAoJ1BsYW5z JyBpbiBkYXRhKSB7CisKKyAgICAgICAgICAgIGRhdGFbJ3dpZHRoJ10gKz0g b2Zmc2V0WDsKKworICAgICAgICAgICAgXy5lYWNoKGRhdGFbJ1BsYW5zJ10s IGZ1bmN0aW9uKHApIHsKKyAgICAgICAgICAgICAgICB2YXIgbGV2ZWwgPSBf LmNsb25lKGx2bCksCisgICAgICAgICAgICAgICAgICAgIHBsYW4gPSBuZXcg UGxhbk1vZGVsKCk7CisKKyAgICAgICAgICAgICAgICBsZXZlbC5wdXNoKGlk eCk7CisgICAgICAgICAgICAgICAgcGxhbi5zZXQocGxhbi5wYXJzZShfLmV4 dGVuZCgKKyAgICAgICAgICAgICAgICAgICAgcCwgeworICAgICAgICAgICAg ICAgICAgICAgICAgImxldmVsIjogbGV2ZWwsCisgICAgICAgICAgICAgICAg ICAgICAgICB4cG9zOiB4cG9zIC0gb2Zmc2V0WCwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHlwb3M6IHlwb3MKKyAgICAgICAgICAgICAgICAgICAgfSkp KTsKKworICAgICAgICAgICAgICAgIGlmIChtYXhDaGlsZFdpZHRoIDwgcGxh bi5nZXQoJ3dpZHRoJykpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4Q2hp bGRXaWR0aCA9IHBsYW4uZ2V0KCd3aWR0aCcpOworICAgICAgICAgICAgICAg IH0KKworICAgICAgICAgICAgICAgIHZhciBjaGlsZEhlaWdodCA9IHBsYW4u Z2V0KCdoZWlnaHQnKTsKKworICAgICAgICAgICAgICAgIGlmIChpZHggIT09 IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnaGVpZ2h0J10gPSBk YXRhWydoZWlnaHQnXSArIGNoaWxkSGVpZ2h0ICsgb2Zmc2V0WTsKKyAgICAg ICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkSGVpZ2h0ID4gZGF0YVsnaGVp Z2h0J10pIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnaGVpZ2h0J10g PSBjaGlsZEhlaWdodDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgeXBvcyArPSBjaGlsZEhlaWdodCArIG9mZnNldFk7CisKKyAgICAg ICAgICAgICAgICBwbGFucy5wdXNoKHBsYW4pOworICAgICAgICAgICAgICAg IGlkeCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAg ICAvLyBGaW5hbCBXaWR0aCBhbmQgSGVpZ2h0IG9mIGN1cnJlbnQgbm9kZQor ICAgICAgICBkYXRhWyd3aWR0aCddICs9IG1heENoaWxkV2lkdGg7CisgICAg ICAgIGRhdGFbJ1BsYW5zJ10gPSBwbGFuczsKKworICAgICAgICByZXR1cm4g ZGF0YTsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBSZXF1aXJlZCB0byBw YXJzZSBhbmQgaW5jbHVkZSBub24tZGVmYXVsdCBwYXJhbXMgb2YKKyAgICAg KiBwbGFuIGludG8gYmFja2JvbmUgbW9kZWwKKyAgICAgKi8KKyAgICB0b0pT T046IGZ1bmN0aW9uKG5vbl9yZWN1cnNpdmUpIHsKKyAgICAgIHZhciByZXMg PSBCYWNrYm9uZS5Nb2RlbC5wcm90b3R5cGUudG9KU09OLmFwcGx5KHRoaXMs IGFyZ3VtZW50cyk7CisKKyAgICAgIGlmIChub25fcmVjdXJzaXZlKSB7Cisg ICAgICAgICAgICBkZWxldGUgcmVzWydQbGFucyddOworICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgIHZhciBwbGFucyA9IFtdOworICAgICAgICAgICAg Xy5lYWNoKHJlc1snUGxhbnMnXSwgZnVuY3Rpb24ocCkgeworICAgICAgICAg ICAgICBwbGFucy5wdXNoKHAudG9KU09OKCkpOworICAgICAgICAgICAgfSk7 CisgICAgICAgICAgICByZXNbJ1BsYW5zJ10gPSBwbGFuczsKKyAgICAgIH0K KyAgICAgIHJldHVybiByZXM7CisgICAgfSwKKworICAgIC8vIERyYXcgYW4g YXJyb3cgdG8gcGFyZW50IG5vZGUKKyAgICBkcmF3UG9seUxpbmU6IGZ1bmN0 aW9uKGcsIHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZLCBvcHRzLCBhcnJv d09wdHMpIHsKKyAgICAgIC8vIENhbGN1bGF0ZSBlbmQgcG9pbnQgb2YgZmly c3Qgc3RhcnRpbmcgc3RyYWlnaHQgbGluZSAoc3RhcnR4MSwgc3RhcnR5MSkK KyAgICAgIC8vIENhbGN1bGF0ZSBzdGFydCBwb2ludCBvZiAybmQgc3RyYWln aHQgbGluZSAoZW5keDEsIGVuZHkxKQorICAgICAgdmFyIG1pZFgxID0gc3Rh cnRYICsgKChlbmRYIC0gc3RhcnRYKSAvIDMpLAorICAgICAgICAgIG1pZFgy ID0gc3RhcnRYICsgKDIgKiAoKGVuZFggLSBzdGFydFgpIC8gMykpOworCisg ICAgICAvL2NyZWF0ZSBhcnJvdyBoZWFkCisgICAgICB2YXIgYXJyb3cgPSBn LnBvbHlnb24oCisgICAgICAgICAgICAgICAgICAgIFswLCBBUlJPV19IRUlH SFQsCisgICAgICAgICAgICAgICAgICAgIChBUlJPV19XSURUSCAvIDIpLEFS Uk9XX0hFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgKEFSUk9XX0hFSUdI VCAvIDQpLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCBBUlJPV19XSURU SF0KKyAgICAgICAgICAgICAgICAgICAgKS50cmFuc2Zvcm0oInI5MCIpOwor ICAgICAgdmFyIG1hcmtlciA9IGFycm93Lm1hcmtlcigKKyAgICAgICAgICAg ICAgICAgICAgICAgICAwLCAwLCBBUlJPV19XSURUSCwgQVJST1dfSEVJR0hU LCAwLCAoQVJST1dfV0lEVEggLyAyKQorICAgICAgICAgICAgICAgICAgICAg ICAgICkuYXR0cihhcnJvd09wdHMpOworCisgICAgICAvLyBGaXJzdCBzdHJh aWdodCBsaW5lCisgICAgICBnLmxpbmUoCisgICAgICAgIHN0YXJ0WCwgc3Rh cnRZLCBtaWRYMSwgc3RhcnRZCisgICAgICAgICkuYXR0cihvcHRzKTsKKwor ICAgICAgLy8gRGlhZ29uYWwgbGluZQorICAgICAgZy5saW5lKAorICAgICAg ICBtaWRYMS0xLCBzdGFydFksIG1pZFgyLCBlbmRZCisgICAgICAgICkuYXR0 cihvcHRzKTsKKworICAgICAgLy8gTGFzdCBzdHJhaWdodCBsaW5lCisgICAg ICB2YXIgbGluZSA9IGcubGluZSgKKyAgICAgICAgICAgICAgICAgICBtaWRY MiwgZW5kWSwgZW5kWCwgZW5kWQorICAgICAgICAgICAgICAgICAgICkuYXR0 cihvcHRzKTsKKyAgICAgIGxpbmUuYXR0cih7bWFya2VyRW5kOiBtYXJrZXJ9 KQorICAgIH0sCisKKyAgICAvLyBEcmF3IGltYWdlLCBpdHMgbmFtZSBhbmQg aXRzIHRvb2x0aXAKKyAgICBkcmF3OiBmdW5jdGlvbihzLCB4cG9zLCB5cG9z LCBwWHBvcywgcFlwb3MsIGdyYXBoQ29udGFpbmVyLCB0b29sVGlwQ29udGFp bmVyKSB7CisgICAgICAgIHZhciBnID0gcy5nKCk7CisgICAgICAgIHZhciB0 b29sVGlwVGFibGUgPSB7fTsKKyAgICAgICAgdmFyIGN1cnJlbnRYcG9zID0g eHBvcyArIHRoaXMuZ2V0KCd4cG9zJykgLAorICAgICAgICAgICAgY3VycmVu dFlwb3MgPSB5cG9zICsgdGhpcy5nZXQoJ3lwb3MnKSwKKyAgICAgICAgICAg IGlzU3ViUGxhbiA9ICh0aGlzLmdldCgnUGFyZW50IFJlbGF0aW9uc2hpcCcp ID09PSAiU3ViUGxhbiIpOworCisgICAgICAgIC8vIERyYXcgdGhlIHN1YnBs YW4gcmVjdGFuZ2xlCisgICAgICAgIGlmIChpc1N1YlBsYW4pIHsKKyAgICAg ICAgICBnLnJlY3QoCisgICAgICAgICAgICBjdXJyZW50WHBvcyAtIHRoaXMu Z2V0KCd3aWR0aCcpICsgcFdJRFRIICsgeE1hcmdpbiwKKyAgICAgICAgICAg IGN1cnJlbnRZcG9zIC0geU1hcmdpbiwKKyAgICAgICAgICAgIHRoaXMuZ2V0 KCd3aWR0aCcpIC0geE1hcmdpbiwKKyAgICAgICAgICAgIHRoaXMuZ2V0KCdo ZWlnaHQnKSwgNQorICAgICAgICAgICkuYXR0cih7CisgICAgICAgICAgICAg IHN0cm9rZTogJyM0NDQ0NDQnLAorICAgICAgICAgICAgICAnc3Ryb2tlV2lk dGgnOiAxLjIsCisgICAgICAgICAgICAgIGZpbGw6ICdncmF5JywKKyAgICAg ICAgICAgICAgZmlsbE9wYWNpdHk6IDAuMgorICAgICAgICAgIH0pOworCisg ICAgICAgICAgLy9wcm92aWRlIHN1YnBsYW4gbmFtZQorICAgICAgICAgIHZh ciB0ZXh0ID0gZy50ZXh0KAorICAgICAgICAgICAgY3VycmVudFhwb3MgICsg cFdJRFRIIC0gKCB0aGlzLmdldCgnd2lkdGgnKSAvIDIpIC0geE1hcmdpbiwK KyAgICAgICAgICAgIGN1cnJlbnRZcG9zICsgcEhFSUdIVCAgLSAodGhpcy5n ZXQoJ2hlaWdodCcpIC8gMikgLSB5TWFyZ2luLAorICAgICAgICAgICAgdGhp cy5nZXQoJ1N1YnBsYW4gTmFtZScpCisgICAgICAgICAgKS5hdHRyKHsKKyAg ICAgICAgICAgIGZvbnRTaXplOiBUWFRfU0laRSwgInRleHQtYW5jaG9yIjoi c3RhcnQiLAorICAgICAgICAgICAgZmlsbDogJ3JlZCcKKyAgICAgICAgICB9 KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERyYXcgdGhlIGFjdHVhbCBp bWFnZSBmb3IgY3VycmVudCBub2RlCisgICAgICAgIHZhciBpbWFnZSA9IGcu aW1hZ2UoCisgICAgICAgICAgICBwZ0V4cGxhaW4ucHJlZml4ICsgdGhpcy5n ZXQoJ2ltYWdlJyksCisgICAgICAgICAgICBjdXJyZW50WHBvcyArIChwV0lE VEggLSBJTUFHRV9XSURUSCkgLyAyLAorICAgICAgICAgICAgY3VycmVudFlw b3MgKyAocEhFSUdIVCAtIElNQUdFX0hFSUdIVCkgLyAyLAorICAgICAgICAg ICAgSU1BR0VfV0lEVEgsCisgICAgICAgICAgICBJTUFHRV9IRUlHSFQKKyAg ICAgICAgKTsKKworICAgICAgICAvLyBEcmF3IHRvb2x0aXAKKyAgICAgICAg dmFyIGltYWdlX2RhdGEgPSB0aGlzLnRvSlNPTigpOworICAgICAgICBpbWFn ZS5tb3VzZW92ZXIoZnVuY3Rpb24oZXZ0KXsKKworICAgICAgICAgIC8vIEVt cHR5IHRoZSB0b29sdGlwIGNvbnRlbnQgaWYgaXQgaGFzIGFueSBhbmQgYWRk IG5ldyBkYXRhCisgICAgICAgICAgdG9vbFRpcENvbnRhaW5lci5lbXB0eSgp OworICAgICAgICAgIHZhciB0b29sdGlwID0gJCgnPHRhYmxlPjwvdGFibGU+ JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xhc3M6ICJwZ2FkbWluLXRvb2x0aXAtdGFi bGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogImJv cmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAxcHg7 IHRvcDogYXV0bzsgbGVmdDogYXV0bzsiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgKS5hcHBlbmRU byh0b29sVGlwQ29udGFpbmVyKTsKKyAgICAgICAgICBfLmVhY2goaW1hZ2Vf ZGF0YSwgZnVuY3Rpb24odmFsdWUsa2V5KSB7CisgICAgICAgICAgICBpZihr ZXkgIT09ICdpbWFnZScgJiYga2V5ICE9PSAnUGxhbnMnICYmCisgICAgICAg ICAgICAgICBrZXkgIT09ICdsZXZlbCcgJiYga2V5ICE9PSAnaW1hZ2UnICYm CisgICAgICAgICAgICAgICBrZXkgIT09ICdpbWFnZV90ZXh0JyAmJiBrZXkg IT09ICd4cG9zJyAmJgorICAgICAgICAgICAgICAga2V5ICE9PSAneXBvcycg JiYga2V5ICE9PSAnd2lkdGgnICYmCisgICAgICAgICAgICAgICBrZXkgIT09 ICdoZWlnaHQnKSB7CisgICAgICAgICAgICAgIHRvb2x0aXAuYXBwZW5kKCAn PHRyPjx0ZCBjbGFzcz0ibGFiZWwgZXhwbGFpbi10b29sdGlwIj4nICsga2V5 ICsgJzwvdGQ+PHRkIGNsYXNzPSJsYWJlbCBleHBsYWluLXRvb2x0aXAtdmFs Ij4nICsgdmFsdWUgKyAnPC90ZD48L3RyPicgKTsKKyAgICAgICAgICAgIH07 CisgICAgICAgICAgfSk7CisKKyAgICAgICAgICB2YXIgem9vbUZhY3RvciA9 IGdyYXBoQ29udGFpbmVyLmRhdGEoJ3pvb20tZmFjdG9yJyk7CisKKyAgICAg ICAgICAvLyBDYWxjdWxhdGUgY28tb3JkaW5hdGVzIGZvciB0b29sdGlwCisg ICAgICAgICAgdmFyIHRvb2xUaXBYID0gKChjdXJyZW50WHBvcyArIHBXSURU SCkgKiB6b29tRmFjdG9yIC0gZ3JhcGhDb250YWluZXIuc2Nyb2xsTGVmdCgp KTsKKyAgICAgICAgICB2YXIgdG9vbFRpcFkgPSAoKGN1cnJlbnRZcG9zICsg cEhFSUdIVCkgKiB6b29tRmFjdG9yIC0gZ3JhcGhDb250YWluZXIuc2Nyb2xs VG9wKCkpOworCisgICAgICAgICAgLy8gUmVjYWxjdWxhdGUgeC55IGlmIHRv b2x0aXAgaXMgZ29pbmcgb3V0IG9mIHNjcmVlbgorICAgICAgICAgIGlmKGdy YXBoQ29udGFpbmVyLndpZHRoKCkgPCAodG9vbFRpcFggKyB0b29sVGlwQ29u dGFpbmVyWzBdLmNsaWVudFdpZHRoKSkKKyAgICAgICAgICAgIHRvb2xUaXBY IC09ICh0b29sVGlwQ29udGFpbmVyWzBdLmNsaWVudFdpZHRoICsgKHBXSURU SCp6b29tRmFjdG9yKSk7CisgICAgICAgICAgLy9pZihkb2N1bWVudC5jaGls ZHJlblswXS5jbGllbnRIZWlnaHQgPCAodG9vbFRpcFkgKyB0b29sVGlwQ29u dGFpbmVyWzBdLmNsaWVudEhlaWdodCkpCisgICAgICAgICAgaWYoZ3JhcGhD b250YWluZXIuaGVpZ2h0KCkgPCAodG9vbFRpcFkgKyB0b29sVGlwQ29udGFp bmVyWzBdLmNsaWVudEhlaWdodCkpCisgICAgICAgICAgICB0b29sVGlwWSAt PSAodG9vbFRpcENvbnRhaW5lclswXS5jbGllbnRIZWlnaHQgKyAoKHBIRUlH SFQvMikqem9vbUZhY3RvcikpOworCisgICAgICAgICAgdG9vbFRpcFggPSB0 b29sVGlwWCA8IDAgPyAwIDogKHRvb2xUaXBYKTsKKyAgICAgICAgICB0b29s VGlwWSA9IHRvb2xUaXBZIDwgMCA/IDAgOiAodG9vbFRpcFkpOworCisgICAg ICAgICAgLy8gU2hvdyB0b29sVGlwIGF0IHJlc3BlY3RpdmUgeCx5IGNvb3Jk aW5hdGVzCisgICAgICAgICAgdG9vbFRpcENvbnRhaW5lci5jc3MoeydvcGFj aXR5JzogJzAuOCd9KTsKKyAgICAgICAgICB0b29sVGlwQ29udGFpbmVyLmNz cygnbGVmdCcsIHRvb2xUaXBYKTsKKyAgICAgICAgICB0b29sVGlwQ29udGFp bmVyLmNzcyggJ3RvcCcsIHRvb2xUaXBZKTsKKyAgICAgICAgfSk7CisKKyAg ICAgICAgLy8gUmVtb3ZlIHRvb2x0aXAgd2hlbiBtb3VzZSBpcyBvdXQgZnJv bSBub2RlJ3MgYXJlYQorICAgICAgICBpbWFnZS5tb3VzZW91dChmdW5jdGlv bigpIHsKKyAgICAgICAgICB0b29sVGlwQ29udGFpbmVyLmVtcHR5KCk7Cisg ICAgICAgICAgdG9vbFRpcENvbnRhaW5lci5jc3MoeydvcGFjaXR5JzogJzAn fSk7CisgICAgICAgICAgdG9vbFRpcENvbnRhaW5lci5jc3MoJ2xlZnQnLCAw KTsKKyAgICAgICAgICB0b29sVGlwQ29udGFpbmVyLmNzcyggJ3RvcCcsIDAp OworICAgICAgICB9KTsKKworICAgICAgICAvLyBEcmF3IHRleHQgYmVsb3cg dGhlIG5vZGUKKyAgICAgICAgdmFyIGxhYmVsID0gZy5nKCk7CisgICAgICAg IGcubXVsdGl0ZXh0KAorICAgICAgICAgIGN1cnJlbnRYcG9zICsgKHBXSURU SCAvIDIpLAorICAgICAgICAgIGN1cnJlbnRZcG9zICsgcEhFSUdIVCAtIFRY VF9BTExJR04sCisgICAgICAgICAgdGhpcy5nZXQoJ2ltYWdlX3RleHQnKSwK KyAgICAgICAgICAxNTAsCisgICAgICAgICAgeyJmb250LXNpemUiOiBUWFRf U0laRSAsInRleHQtYW5jaG9yIjoibWlkZGxlIn0KKyAgICAgICAgKTsKKwor ICAgICAgICAvLyBEcmF3IEFycm93IHRvIHBhcmVudCBvbmx5IGl0cyBub3Qg dGhlIGZpcnN0IG5vZGUKKyAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHBZ cG9zKSkgeworICAgICAgICAgICAgdmFyIHN0YXJ0eCA9IGN1cnJlbnRYcG9z ICsgcFdJRFRIOworICAgICAgICAgICAgdmFyIHN0YXJ0eSA9IGN1cnJlbnRZ cG9zICsgKHBIRUlHSFQgLyAyKTsKKyAgICAgICAgICAgIHZhciBlbmR4ID0g cFhwb3MgLSBBUlJPV19XSURUSDsKKyAgICAgICAgICAgIHZhciBlbmR5ID0g cFlwb3MgKyAocEhFSUdIVCAvIDIpOworICAgICAgICAgICAgdmFyIHN0YXJ0 X2Nvc3QgPSB0aGlzLmdldCgiU3RhcnR1cCBDb3N0IiksCisgICAgICAgICAg ICAgICAgdG90YWxfY29zdCA9IHRoaXMuZ2V0KCJUb3RhbCBDb3N0Iik7CisK KyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBhcnJvdyB3aWR0aCBhY2NvcmRp bmcgdG8gY29zdCBvZiBhIHBhcnRpY3VsYXIgcGxhbgorICAgICAgICAgICAg dmFyIGFycm93X3NpemUgPSBNYXRoLnJvdW5kKE1hdGgubG9nKChzdGFydF9j b3N0K3RvdGFsX2Nvc3QpLzIgKyBzdGFydF9jb3N0KSk7CisgICAgICAgICAg ICBhcnJvd19zaXplID0gYXJyb3dfc2l6ZSA8IDEgPyAxIDogYXJyb3dfc2l6 ZSA+IDEwID8gMTAgOiBhcnJvd19zaXplOworCisgICAgICAgICAgICB2YXIg YXJyb3dfdmlld19ib3ggPSBbMCwgMCwgMipBUlJPV19XSURUSCwgMipBUlJP V19IRUlHSFRdOworICAgICAgICAgICAgdmFyIG9wdHMgPSB7c3Ryb2tlOiAi IzAwMDAwMCIsIHN0cm9rZVdpZHRoOiBhcnJvd19zaXplICsgMX0sCisgICAg ICAgICAgICAgICAgc3VicGxhbk9wdHMgPSB7c3Ryb2tlOiAiIzg2NjQ4NiIs IHN0cm9rZVdpZHRoOiBhcnJvd19zaXplICsgMX0sCisgICAgICAgICAgICAg ICAgYXJyb3dPcHRzID0ge3ZpZXdCb3g6IGFycm93X3ZpZXdfYm94LmpvaW4o IiAiKX07CisKKyAgICAgICAgICAgIC8vIERyYXcgYW4gYXJyb3cgZnJvbSBj dXJyZW50IG5vZGUgdG8gaXRzIHBhcmVudAorICAgICAgICAgICAgdGhpcy5k cmF3UG9seUxpbmUoCisgICAgICAgICAgICAgIGcsIHN0YXJ0eCwgc3RhcnR5 LCBlbmR4LCBlbmR5LAorICAgICAgICAgICAgICBpc1N1YlBsYW4gPyBzdWJw bGFuT3B0cyA6IG9wdHMsIGFycm93T3B0cworICAgICAgICAgICAgKTsKKyAg ICAgICAgfQorCisgICAgICAgIHZhciBwbGFucyA9IHRoaXMuZ2V0KCdQbGFu cycpOworCisgICAgICAgIC8vIERyYXcgbm9kZXMgZm9yIGN1cnJlbnQgcGxh bidzIGNoaWxkcmVuCisgICAgICAgIF8uZWFjaChwbGFucywgZnVuY3Rpb24o cCkgeworICAgICAgICAgICAgcC5kcmF3KHMsIHhwb3MsIHlwb3MsIGN1cnJl bnRYcG9zLCBjdXJyZW50WXBvcywgZ3JhcGhDb250YWluZXIsIHRvb2xUaXBD b250YWluZXIpOworICAgICAgICB9KTsKKyAgICB9Cit9KTsKKworLy8gTWFp biBiYWNrYm9uZSBtb2RlbCB0byBzdG9yZSBKU09OIG9iamVjdAordmFyIE1h aW5QbGFuTW9kZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoeworICAgIGRl ZmF1bHRzOiB7CisgICAgICAgICJQbGFuIjogdW5kZWZpbmVkLAorICAgICAg ICB4cG9zOiAwLAorICAgICAgICB5cG9zOiAwLAorICAgIH0sCisgICAgaW5p dGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuc2V0KCJQbGFu IiwgbmV3IFBsYW5Nb2RlbCgpKTsKKyAgICB9LAorCisgICAgLy8gUGFyc2Ug dGhlIEpTT04gZGF0YSBhbmQgZmV0Y2ggaXRzIGNoaWxkcmVuIHBsYW5zCisg ICAgcGFyc2U6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICBpZiAoZGF0YSAm JiAnUGxhbicgaW4gZGF0YSkgeworICAgICAgICAgICAgdmFyIHBsYW4gPSB0 aGlzLmdldCgiUGxhbiIpOworICAgICAgICAgICAgcGxhbi5zZXQoCisgICAg ICAgICAgICAgIHBsYW4ucGFyc2UoCisgICAgICAgICAgICAgICAgXy5leHRl bmQoCisgICAgICAgICAgICAgICAgICBkYXRhWydQbGFuJ10sIHsKKyAgICAg ICAgICAgICAgICAgICAgeHBvczogMCwKKyAgICAgICAgICAgICAgICAgICAg eXBvczogMAorICAgICAgICAgICAgICAgICAgfSkpKTsKKworICAgICAgICAg ICAgZGF0YVsneHBvcyddID0gMDsKKyAgICAgICAgICAgIGRhdGFbJ3lwb3Mn XSA9IDA7CisgICAgICAgICAgICBkYXRhWyd3aWR0aCddID0gcGxhbi5nZXQo J3dpZHRoJykgKyAoeE1hcmdpbiAqIDIpOworICAgICAgICAgICAgZGF0YVsn aGVpZ2h0J10gPSBwbGFuLmdldCgnaGVpZ2h0JykgKyAoeU1hcmdpbiAqIDIp OworCisgICAgICAgICAgICBkZWxldGUgZGF0YVsnUGxhbiddOworICAgICAg ICB9CisKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfSwKKyAgICB0b0pT T046IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHJlcyA9IEJhY2tib25lLk1v ZGVsLnByb3RvdHlwZS50b0pTT04uYXBwbHkodGhpcywgYXJndW1lbnRzKTsK KworICAgICAgaWYgKHJlcy5QbGFuKSB7CisgICAgICAgIHJlcy5QbGFuID0g cmVzLlBsYW4udG9KU09OKCk7CisgICAgICB9CisKKyAgICAgIHJldHVybiBy ZXM7CisgICAgfSwKKyAgICBkcmF3OiBmdW5jdGlvbihzLCB4cG9zLCB5cG9z LCBncmFwaENvbnRhaW5lciwgdG9vbFRpcENvbnRhaW5lcikgeworICAgICAg ICB2YXIgZyA9IHMuZygpOworCisgICAgICAgIC8vZHJhdyB0aGUgYm9yZGVy CisgICAgICAgIGcucmVjdCgKKwkgICAgICAgIDAsIDAsIHRoaXMuZ2V0KCd3 aWR0aCcpIC0gMTAsIHRoaXMuZ2V0KCdoZWlnaHQnKSAtIDEwLCA1CisJICAg ICkuYXR0cih7CisgICAgICAgICAgICBzdHJva2U6ICcjRkZFQkNEJywgJ3N0 cm9rZVdpZHRoJzogMS4yLAorICAgICAgICAgICAgZmlsbDogJyNGRkY4REMn LCBmaWxsT3BhY2l0eTogMC41CisgICAgICAgIH0pOworCisgICAgICAgIC8v RmV0Y2ggdG90YWwgd2lkdGgsIGhlaWdodAorICAgICAgICBUT1RBTF9XSURU SCA9IHRoaXMuZ2V0KCd3aWR0aCcpOworICAgICAgICBUT1RBTF9IRUlHSFQg PSB0aGlzLmdldCgnaGVpZ2h0Jyk7CisgICAgICAgIHZhciBwbGFuID0gdGhp cy5nZXQoJ1BsYW4nKTsKKworICAgICAgICAvL0RyYXcgZXhwbGFpbiBncmFw aAorICAgICAgICBwbGFuLmRyYXcoZywgeHBvcywgeXBvcywgdW5kZWZpbmVk LCB1bmRlZmluZWQsIGdyYXBoQ29udGFpbmVyLCB0b29sVGlwQ29udGFpbmVy KTsKKyAgICB9Cit9KTsKKworLy8gUGFyc2UgYW5kIGRyYXcgZnVsbCBncmFw aGljYWwgZXhwbGFpbgorXy5leHRlbmQoCisgICAgcGdFeHBsYWluLCB7Cisg ICAgICAgIC8vIEFzc3VtcHRpb24gY29udGFpbmVyIGlzIGEgalF1ZXJ5IG9i amVjdAorICAgICAgICBEcmF3SlNPTlBsYW46IGZ1bmN0aW9uKGNvbnRhaW5l ciwgcGxhbikgeworICAgICAgICAgIHZhciBteV9wbGFucyA9IFtdOworICAg ICAgICAgIGNvbnRhaW5lci5lbXB0eSgpOworICAgICAgICAgIHZhciBjdXJy X3pvb21fZmFjdG9yID0gMS4wOworCisgICAgICAgICAgdmFyIHpvb21BcmVh ID0kKCc8ZGl2PjwvZGl2PicsIHsKKyAgICAgICAgICAgICAgICBjbGFzczog J3BnLWV4cGxhaW4tem9vbS1hcmVhIGJ0bi1ncm91cCcsCisgICAgICAgICAg ICAgICAgcm9sZTogJ2dyb3VwJworICAgICAgICAgICAgICAgIH0pLmFwcGVu ZFRvKGNvbnRhaW5lciksCisgICAgICAgICAgICAgIHpvb21JbkJ0biA9ICQo JzxidXR0b24+PC9idXR0b24+JywgeworICAgICAgICAgICAgICAgIGNsYXNz OiAnYnRuIHBnLWV4cGxhaW4tem9vbS1idG4gYmFkZ2UnLAorICAgICAgICAg ICAgICAgIHRpdGxlOiAnWm9vbSBpbicKKyAgICAgICAgICAgICAgICB9KS5h cHBlbmRUbyh6b29tQXJlYSkuYXBwZW5kKAorICAgICAgICAgICAgICAgICAg JCgnPGk+PC9pPicseworICAgICAgICAgICAgICAgICAgICBjbGFzczogJ2Zh IGZhLXNlYXJjaC1wbHVzJworICAgICAgICAgICAgICAgICAgfSkpLAorICAg ICAgICAgICAgICB6b29tVG9Ob3JtYWwgPSAkKCc8YnV0dG9uPjwvYnV0dG9u PicsIHsKKyAgICAgICAgICAgICAgICBjbGFzczogJ2J0biBwZy1leHBsYWlu LXpvb20tYnRuIGJhZGdlJywKKyAgICAgICAgICAgICAgICB0aXRsZTogJ1pv b20gdG8gb3JpZ2luYWwnCisgICAgICAgICAgICAgICAgfSkuYXBwZW5kVG8o em9vbUFyZWEpLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICQoJzxpPjwv aT4nLHsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICdmYSBmYS1hcnJv d3MtYWx0JworICAgICAgICAgICAgICAgICAgfSkpCisgICAgICAgICAgICAg IHpvb21PdXRCdG4gPSAkKCc8YnV0dG9uPjwvYnV0dG9uPicsIHsKKyAgICAg ICAgICAgICAgICBjbGFzczogJ2J0biBwZy1leHBsYWluLXpvb20tYnRuIGJh ZGdlJywKKyAgICAgICAgICAgICAgICB0aXRsZTogJ1pvb20gb3V0JworICAg ICAgICAgICAgICAgIH0pLmFwcGVuZFRvKHpvb21BcmVhKS5hcHBlbmQoCisg ICAgICAgICAgICAgICAgICAkKCc8aT48L2k+JywgeworICAgICAgICAgICAg ICAgICAgICBjbGFzczogJ2ZhIGZhLXNlYXJjaC1taW51cycKKyAgICAgICAg ICAgICAgICAgIH0pKTsKKworICAgICAgICAgIC8vIE1haW4gZGl2IHRvIGJl IGRyYXduIGFsbCBpbWFnZXMgb24KKyAgICAgICAgICB2YXIgcGxhbkRpdiA9 ICQoJzxkaXY+PC9kaXY+JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHtjbGFzczogInBnYWRtaW4tZXhwbGFpbi1jb250YWluZXIifQorICAgICAg ICAgICAgICAgICAgICAgICAgICkuYXBwZW5kVG8oY29udGFpbmVyKSwKKyAg ICAgICAgICAgICAgLy8gRGl2IHRvIGRyYXcgdG9vbC10aXAgb24KKyAgICAg ICAgICAgICAgdG9vbFRpcCA9ICQoJzxkaXY+PC9kaXY+JywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHtpZDogInRvb2xUaXAiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xhc3M6ICJwZ2FkbWluLWV4cGxhaW4tdG9v bHRpcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICApLmFwcGVuZFRvKGNvbnRhaW5lcik7CisgICAg ICAgICAgdG9vbFRpcC5lbXB0eSgpOworICAgICAgICAgIHBsYW5EaXYuZGF0 YSgnem9vbS1mYWN0b3InLCBjdXJyX3pvb21fZmFjdG9yKTsKKworICAgICAg ICAgIHZhciB3ID0gMCwgaCA9IDAsCisgICAgICAgICAgICAgIHggPSB4TWFy Z2luLCBoID0geU1hcmdpbjsKKworICAgICAgICAgIF8uZWFjaChwbGFuLCBm dW5jdGlvbihwKSB7CisgICAgICAgICAgICB2YXIgbWFpbl9wbGFuID0gbmV3 IE1haW5QbGFuTW9kZWwoKTsKKworICAgICAgICAgICAgLy8gUGFyc2UgSlNP TiBkYXRhIHRvIGJhY2tib25lIG1vZGVsCisgICAgICAgICAgICBtYWluX3Bs YW4uc2V0KG1haW5fcGxhbi5wYXJzZShwKSk7CisgICAgICAgICAgICB3ID0g bWFpbl9wbGFuLmdldCgnd2lkdGgnKTsKKyAgICAgICAgICAgIGggPSBtYWlu X3BsYW4uZ2V0KCdoZWlnaHQnKTsKKworICAgICAgICAgICAgdmFyIHMgPSBT bmFwKHcsIGgpLAorICAgICAgICAgICAgICAgICRzdmcgPSAkKHMubm9kZSku ZGV0YWNoKCk7CisgICAgICAgICAgICBwbGFuRGl2LmFwcGVuZCgkc3ZnKTsK KworICAgICAgICAgICAgbWFpbl9wbGFuLmRyYXcocywgdyAtIHhNYXJnaW4s IHlNYXJnaW4sIHBsYW5EaXYsIHRvb2xUaXApOworCisgICAgICAgICAgICB2 YXIgaW5pdFBhbmVsV2lkdGggPSBwbGFuRGl2LndpZHRoKCksCisgICAgICAg ICAgICAgICAgaW5pdFBhbmVsSGVpZ2h0ID0gcGxhbkRpdi5oZWlnaHQoKTsK KworICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICogU2NhbGUgZ3Jh cGggaW4gY2FzZSBpdHMgd2lkdGggaXMgYmlnZ2VyIHRoYW4gcGFuZWwgd2lk dGgKKyAgICAgICAgICAgICAgKiBpbiB3aGljaCB0aGUgZ3JhcGggaXMgZGlz cGxheWVkCisgICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZihpbml0 UGFuZWxXaWR0aCA8IHcpIHsKKyAgICAgICAgICAgICAgdmFyIHdpZHRoX3Jh dGlvID0gaW5pdFBhbmVsV2lkdGggLyB3OworCisgICAgICAgICAgICAgIGN1 cnJfem9vbV9mYWN0b3IgPSB3aWR0aF9yYXRpbzsKKyAgICAgICAgICAgICAg Y3Vycl96b29tX2ZhY3RvciA9IGN1cnJfem9vbV9mYWN0b3IgPCBNSU5fWk9P TV9GQUNUT1IgPyBNSU5fWk9PTV9GQUNUT1IgOiBjdXJyX3pvb21fZmFjdG9y OworICAgICAgICAgICAgICBjdXJyX3pvb21fZmFjdG9yID0gY3Vycl96b29t X2ZhY3RvciA+IElOSVRfWk9PTV9GQUNUT1IgPyBJTklUX1pPT01fRkFDVE9S IDogY3Vycl96b29tX2ZhY3RvcjsKKworICAgICAgICAgICAgICB2YXIgem9v bUluTWF0cml4ID0gbmV3IFNuYXAubWF0cml4KCk7CisgICAgICAgICAgICAg IHpvb21Jbk1hdHJpeC5zY2FsZShjdXJyX3pvb21fZmFjdG9yLCBjdXJyX3pv b21fZmFjdG9yKTsKKworICAgICAgICAgICAgICAkc3ZnLmZpbmQoJ2cnKS5m aXJzdCgpLmF0dHIoe3RyYW5zZm9ybTogem9vbUluTWF0cml4fSk7CisgICAg ICAgICAgICAgICRzdmcuYXR0cih7J3dpZHRoJzogdyAqIGN1cnJfem9vbV9m YWN0b3IsICdoZWlnaHQnOiBoICogY3Vycl96b29tX2ZhY3Rvcn0pOworICAg ICAgICAgICAgICBwbGFuRGl2LmRhdGEoJ3pvb20tZmFjdG9yJywgY3Vycl96 b29tX2ZhY3Rvcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHpv b21JbkJ0bi5vbignY2xpY2snLCBmdW5jdGlvbihlKXsKKyAgICAgICAgICAg ICAgY3Vycl96b29tX2ZhY3RvciA9ICgoY3Vycl96b29tX2ZhY3RvciArIFpP T01fUkFUSU8pID4gTUFYX1pPT01fRkFDVE9SKSA/IE1BWF9aT09NX0ZBQ1RP UiA6IChjdXJyX3pvb21fZmFjdG9yICsgWk9PTV9SQVRJTyk7CisgICAgICAg ICAgICAgIHZhciB6b29tSW5NYXRyaXggPSBuZXcgU25hcC5tYXRyaXgoKTsK KyAgICAgICAgICAgICAgem9vbUluTWF0cml4LnNjYWxlKGN1cnJfem9vbV9m YWN0b3IsIGN1cnJfem9vbV9mYWN0b3IpOworCisgICAgICAgICAgICAgICRz dmcuZmluZCgnZycpLmZpcnN0KCkuYXR0cih7dHJhbnNmb3JtOiB6b29tSW5N YXRyaXh9KTsKKyAgICAgICAgICAgICAgJHN2Zy5hdHRyKHsnd2lkdGgnOiB3 ICogY3Vycl96b29tX2ZhY3RvciwgJ2hlaWdodCc6IGggKiBjdXJyX3pvb21f ZmFjdG9yfSk7CisgICAgICAgICAgICAgIHBsYW5EaXYuZGF0YSgnem9vbS1m YWN0b3InLCBjdXJyX3pvb21fZmFjdG9yKTsKKyAgICAgICAgICAgICAgem9v bUluQnRuLmJsdXIoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAg ICB6b29tT3V0QnRuLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKKyAgICAg ICAgICAgICAgY3Vycl96b29tX2ZhY3RvciA9ICgoY3Vycl96b29tX2ZhY3Rv ciAtIFpPT01fUkFUSU8pIDwgTUlOX1pPT01fRkFDVE9SKSA/IE1JTl9aT09N X0ZBQ1RPUiA6IChjdXJyX3pvb21fZmFjdG9yIC0gWk9PTV9SQVRJTyk7Cisg ICAgICAgICAgICAgIHZhciB6b29tSW5NYXRyaXggPSBuZXcgU25hcC5tYXRy aXgoKTsKKyAgICAgICAgICAgICAgem9vbUluTWF0cml4LnNjYWxlKGN1cnJf em9vbV9mYWN0b3IsIGN1cnJfem9vbV9mYWN0b3IpOworCisgICAgICAgICAg ICAgICRzdmcuZmluZCgnZycpLmZpcnN0KCkuYXR0cih7dHJhbnNmb3JtOiB6 b29tSW5NYXRyaXh9KTsKKyAgICAgICAgICAgICAgJHN2Zy5hdHRyKHsnd2lk dGgnOiB3ICogY3Vycl96b29tX2ZhY3RvciwgJ2hlaWdodCc6IGggKiBjdXJy X3pvb21fZmFjdG9yfSk7CisgICAgICAgICAgICAgIHBsYW5EaXYuZGF0YSgn em9vbS1mYWN0b3InLCBjdXJyX3pvb21fZmFjdG9yKTsKKyAgICAgICAgICAg ICAgem9vbU91dEJ0bi5ibHVyKCk7CisgICAgICAgICAgICB9KTsKKworICAg ICAgICAgICAgem9vbVRvTm9ybWFsLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUp IHsKKyAgICAgICAgICAgICAgY3Vycl96b29tX2ZhY3RvciA9IElOSVRfWk9P TV9GQUNUT1I7CisgICAgICAgICAgICAgIHZhciB6b29tSW5NYXRyaXggPSBu ZXcgU25hcC5tYXRyaXgoKTsKKyAgICAgICAgICAgICAgem9vbUluTWF0cml4 LnNjYWxlKGN1cnJfem9vbV9mYWN0b3IsIGN1cnJfem9vbV9mYWN0b3IpOwor CisgICAgICAgICAgICAgICRzdmcuZmluZCgnZycpLmZpcnN0KCkuYXR0cih7 dHJhbnNmb3JtOiB6b29tSW5NYXRyaXh9KTsKKyAgICAgICAgICAgICAgJHN2 Zy5hdHRyKHsnd2lkdGgnOiB3ICogY3Vycl96b29tX2ZhY3RvciwgJ2hlaWdo dCc6IGggKiBjdXJyX3pvb21fZmFjdG9yfSk7CisgICAgICAgICAgICAgIHBs YW5EaXYuZGF0YSgnem9vbS1mYWN0b3InLCBjdXJyX3pvb21fZmFjdG9yKTsK KyAgICAgICAgICAgICAgem9vbVRvTm9ybWFsLmJsdXIoKTsKKyAgICAgICAg ICAgIH0pOworICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSk7CisK KyAgICByZXR1cm4gcGdFeHBsYWluOworfSk7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3Iu Y3NzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mv c3FsZWRpdG9yLmNzcwppbmRleCA0NTYxMmY2Li5jYzc0YjI5IDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9z cWxlZGl0b3IuY3NzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRv ci9zdGF0aWMvY3NzL3NxbGVkaXRvci5jc3MKQEAgLTI0NywzICsyNDcsOSBA QAogICBiYWNrZ3JvdW5kOiAjNUI5Q0VGOwogICBjb2xvcjogd2hpdGU7CiB9 CisKKy5zcWwtZWRpdG9yLWV4cGxhaW4geworICBoZWlnaHQ6IDEwMCU7Cisg IHdpZHRoOiAxMDAlOworICBvdmVyZmxvdzogYXV0bzsKK30KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3Fs ZWRpdG9yL2pzL3NxbGVkaXRvci5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL2pzL3NxbGVkaXRvci5qcwpp bmRleCBkNjE3ZDdhLi45YzA2NWUyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9qcy9zcWxl ZGl0b3IuanMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rl bXBsYXRlcy9zcWxlZGl0b3IvanMvc3FsZWRpdG9yLmpzCkBAIC0xLDkgKzEs OSBAQAogZGVmaW5lKAotICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ2Fs ZXJ0aWZ5JywgJ3BnYWRtaW4nLCAnYmFja2JvbmUnLCAnYmFja2dyaWQnLCAn Y29kZW1pcnJvcicsCisgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAndW5k ZXJzY29yZS5zdHJpbmcnLCAnYWxlcnRpZnknLCAncGdhZG1pbicsICdiYWNr Ym9uZScsICdiYWNrZ3JpZCcsICdjb2RlbWlycm9yJywgJ3BnYWRtaW4ubWlz Yy5leHBsYWluJywKICAgICdjb2RlbWlycm9yL21vZGUvc3FsJywgJ2NvZGVt aXJyb3IvYWRkb24vc2VsZWN0aW9uL21hcmstc2VsZWN0aW9uJywgJ2NvZGVt aXJyb3IvYWRkb24vc2VsZWN0aW9uL2FjdGl2ZS1saW5lJywKICAgICdiYWNr Z3JpZC5zZWxlY3QuYWxsJywgJ2JhY2tib25lLnBhZ2luYXRvcicsICdiYWNr Z3JpZC5wYWdpbmF0b3InLCAnYmFja2dyaWQuZmlsdGVyJywKICAgICdib290 c3RyYXAnLCAncGdhZG1pbi5icm93c2VyJywgJ3djZG9ja2VyJ10sCi0gIGZ1 bmN0aW9uKCQsIF8sIGFsZXJ0aWZ5LCBwZ0FkbWluLCBCYWNrYm9uZSwgQmFj a2dyaWQsIENvZGVNaXJyb3IpIHsKKyAgZnVuY3Rpb24oJCwgXywgUywgYWxl cnRpZnksIHBnQWRtaW4sIEJhY2tib25lLCBCYWNrZ3JpZCwgQ29kZU1pcnJv ciwgcGdFeHBsYWluKSB7CiAKICAgICAvLyBTb21lIHNjcmlwdHMgZG8gZXhw b3J0IHRoZWlyIG9iamVjdCBpbiB0aGUgd2luZG93IG9ubHkuCiAgICAgLy8g R2VuZXJhbGx5IHRoZSBvbmUsIHdoaWNoIGRvIG5vIGhhdmUgQU1EIHN1cHBv cnQuCkBAIC0xNTksNiArMTU5LDEyIEBAIGRlZmluZSgKICAgICAgICAgImNs aWNrICNidG4tYXV0by1jb21taXQiOiAib25fYXV0b19jb21taXQiLAogICAg ICAgICAiY2xpY2sgI2J0bi1hdXRvLXJvbGxiYWNrIjogIm9uX2F1dG9fcm9s bGJhY2siLAogICAgICAgICAiY2xpY2sgI2J0bi1jbGVhci1oaXN0b3J5Ijog Im9uX2NsZWFyX2hpc3RvcnkiLAorICAgICAgICAiY2xpY2sgI2J0bi1leHBs YWluIjogIm9uX2V4cGxhaW4iLAorICAgICAgICAiY2xpY2sgI2J0bi1leHBs YWluLWFuYWx5emUiOiAib25fZXhwbGFpbl9hbmFseXplIiwKKyAgICAgICAg ImNsaWNrICNidG4tZXhwbGFpbi12ZXJib3NlIjogIm9uX2V4cGxhaW5fdmVy Ym9zZSIsCisgICAgICAgICJjbGljayAjYnRuLWV4cGxhaW4tY29zdHMiOiAi b25fZXhwbGFpbl9jb3N0cyIsCisgICAgICAgICJjbGljayAjYnRuLWV4cGxh aW4tYnVmZmVycyI6ICJvbl9leHBsYWluX2J1ZmZlcnMiLAorICAgICAgICAi Y2xpY2sgI2J0bi1leHBsYWluLXRpbWluZyI6ICJvbl9leHBsYWluX3RpbWlu ZyIsCiAgICAgICAgICJjaGFuZ2UgLmxpbWl0IjogIm9uX2xpbWl0X2NoYW5n ZSIKICAgICAgIH0sCiAKQEAgLTIxNywxMCArMjIzLDUzIEBAIGRlZmluZSgK ICAgICAgICAgICAgICc8L2J1dHRvbj4nLAogICAgICAgICAgICAgJzx1bCBj bGFzcz0iZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51Ij4nLAogICAgICAg ICAgICAgICAnPGxpPicsCisgICAgICAgICAgICAgICAgJzxhIGlkPSJidG4t ZXhwbGFpbiIgaHJlZj0iIyI+JywKKyAgICAgICAgICAgICAgICAgICc8c3Bh bj57eyBfKCdFeHBsYWluJykgfX08L3NwYW4+JywKKyAgICAgICAgICAgICAg ICAnPC9hPicsCisgICAgICAgICAgICAgICc8L2xpPicsCisgICAgICAgICAg ICAgICc8bGk+JywKKyAgICAgICAgICAgICAgICAnPGEgaWQ9ImJ0bi1leHBs YWluLWFuYWx5emUiIGhyZWY9IiMiPicsCisgICAgICAgICAgICAgICAgICAg ICc8c3Bhbj57eyBfKCdFeHBsYWluIGFuYWx5emUnKSB9fTwvc3Bhbj4nLAor ICAgICAgICAgICAgICAgICc8L2E+JywKKyAgICAgICAgICAgICAgJzwvbGk+ JywKKyAgICAgICAgICAgICAgJzxsaSBjbGFzcz0iZGl2aWRlciI+PC9saT4n LAorICAgICAgICAgICAgICAnPGxpIGNsYXNzPSJkcm9wZG93bi1zdWJtZW51 IGRyb3Bkb3duLXN1Ym1lbnUiPicsCisgICAgICAgICAgICAgICAgJzxhIGhy ZWY9IiMiPnt7IF8oJ0V4cGxhaW4gT3B0aW9ucycpIH19PC9hPicsCisgICAg ICAgICAgICAgICAgJzx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+JywKKyAg ICAgICAgICAgICAgICAgICc8bGk+JywKKyAgICAgICAgICAgICAgICAgICAg JzxhIGlkPSJidG4tZXhwbGFpbi12ZXJib3NlIiBocmVmPSIjIiB0YWJpbmRl eD0iLTEiPicsCisgICAgICAgICAgICAgICAgICAgICAgJzxpIGNsYXNzPSJl eHBsYWluLXZlcmJvc2UgZmEgZmEtY2hlY2sgdmlzaWJpbGl0eS1oaWRkZW4i IGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+JywKKyAgICAgICAgICAgICAgICAg ICAgICAnPHNwYW4+IHt7IF8oJ1ZlcmJvc2UnKSB9fSA8L3NwYW4+JywKKyAg ICAgICAgICAgICAgICAgICAgJzwvYT4nLAorICAgICAgICAgICAgICAgICAg JzwvbGk+JywKKyAgICAgICAgICAgICAgICAgICc8bGk+JywKKyAgICAgICAg ICAgICAgICAgICAgJzxhIGlkPSJidG4tZXhwbGFpbi1jb3N0cyIgaHJlZj0i IyI+JywKKyAgICAgICAgICAgICAgICAgICAgICAnPGkgY2xhc3M9ImV4cGxh aW4tY29zdHMgZmEgZmEtY2hlY2sgdmlzaWJpbGl0eS1oaWRkZW4iIGFyaWEt aGlkZGVuPSJ0cnVlIj48L2k+JywKKyAgICAgICAgICAgICAgICAgICAgICAn PHNwYW4+IHt7IF8oJ0Nvc3RzJykgfX0gPC9zcGFuPicsCisgICAgICAgICAg ICAgICAgICAgICc8L2E+JywKKyAgICAgICAgICAgICAgICAgICc8L2xpPics CisgICAgICAgICAgICAgICAgICAnPGxpPicsCisgICAgICAgICAgICAgICAg ICAgICc8YSBpZD0iYnRuLWV4cGxhaW4tYnVmZmVycyIgaHJlZj0iIyI+JywK KyAgICAgICAgICAgICAgICAgICAgICAnPGkgY2xhc3M9ImV4cGxhaW4tYnVm ZmVycyBmYSBmYS1jaGVjayB2aXNpYmlsaXR5LWhpZGRlbiIgYXJpYS1oaWRk ZW49InRydWUiPjwvaT4nLAorICAgICAgICAgICAgICAgICAgICAgICc8c3Bh bj4ge3sgXygnQnVmZmVycycpIH19IDwvc3Bhbj4nLAorICAgICAgICAgICAg ICAgICAgICAnPC9hPicsCisgICAgICAgICAgICAgICAgICAnPC9saT4nLAor ICAgICAgICAgICAgICAgICAgJzxsaT4nLAorICAgICAgICAgICAgICAgICAg ICAnPGEgaWQ9ImJ0bi1leHBsYWluLXRpbWluZyIgaHJlZj0iIyI+JywKKyAg ICAgICAgICAgICAgICAgICAgICAnPGkgY2xhc3M9ImV4cGxhaW4tdGltaW5n IGZhIGZhLWNoZWNrIHZpc2liaWxpdHktaGlkZGVuIiBhcmlhLWhpZGRlbj0i dHJ1ZSI+PC9pPicsCisgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuPiB7 eyBfKCdUaW1pbmcnKSB9fSA8L3NwYW4+JywKKyAgICAgICAgICAgICAgICAg ICAgJzwvYT4nLAorICAgICAgICAgICAgICAgICAgJzwvbGk+JywKKyAgICAg ICAgICAgICAgICAnPC91bD4nLAorICAgICAgICAgICAgICAnPC9saT4nLAor ICAgICAgICAgICAgICAnPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPicsCisg ICAgICAgICAgICAgICc8bGk+JywKICAgICAgICAgICAgICAgICAnPGEgaWQ9 ImJ0bi1hdXRvLWNvbW1pdCIgaHJlZj0iIyI+JywKICAgICAgICAgICAgICAg ICAgICAgJzxpIGNsYXNzPSJhdXRvLWNvbW1pdCBmYSBmYS1jaGVjayIgYXJp YS1oaWRkZW49InRydWUiPjwvaT4nLAogICAgICAgICAgICAgICAgICAgICAn PHNwYW4+IHt7IF8oJ0F1dG8tQ29tbWl0JykgfX0gPC9zcGFuPicsCiAgICAg ICAgICAgICAgICAgJzwvYT4nLAorICAgICAgICAgICAgICAnPC9saT4nLAor ICAgICAgICAgICAgICAnPGxpPicsCiAgICAgICAgICAgICAgICAgJzxhIGlk PSJidG4tYXV0by1yb2xsYmFjayIgaHJlZj0iIyI+JywKICAgICAgICAgICAg ICAgICAgICAgJzxpIGNsYXNzPSJhdXRvLXJvbGxiYWNrIGZhIGZhLWNoZWNr IHZpc2liaWxpdHktaGlkZGVuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPics CiAgICAgICAgICAgICAgICAgICAgICc8c3Bhbj4ge3sgXygnQXV0by1Sb2xs YmFjaycpIH19IDwvc3Bhbj4nLApAQCAtMzc3LDcgKzQyNiw3IEBAIGRlZmlu ZSgKICAgICAgICAgICBoZWlnaHQ6JzEwMCUnLAogICAgICAgICAgIGlzQ2xv c2VhYmxlOiBmYWxzZSwKICAgICAgICAgICBpc1ByaXZhdGU6IHRydWUsCi0g ICAgICAgICAgY29udGVudDogJzxkaXYgY2xhc3M9InNxbC1lZGl0b3ItZXhw bGlhbiI+PC9kaXY+JworICAgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGNsYXNz PSJzcWwtZWRpdG9yLWV4cGxhaW4iPjwvZGl2PicKICAgICAgICAgfSkKIAog ICAgICAgICB2YXIgbWVzc2FnZXMgPSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBh bmVsKHsKQEAgLTc2OCw2ICs4MTcsNzggQEAgZGVmaW5lKAogICAgICAgICAg ICAgc2VsZiwKICAgICAgICAgICAgIHNlbGYuaGFuZGxlcgogICAgICAgICAp OworICAgICAgfSwKKworICAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9y IGV4cGxhaW4gYnV0dG9uIGNsaWNrLgorICAgICAgb25fZXhwbGFpbjogZnVu Y3Rpb24oKSB7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKworICAgICAg ICAvLyBUcmlnZ2VyIHRoZSBleHBsYWluIHNpZ25hbCB0byB0aGUgU3FsRWRp dG9yQ29udHJvbGxlciBjbGFzcworICAgICAgICBzZWxmLmhhbmRsZXIudHJp Z2dlcigKKyAgICAgICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246 ZXhwbGFpbicsCisgICAgICAgICAgICBzZWxmLAorICAgICAgICAgICAgc2Vs Zi5oYW5kbGVyCisgICAgICAgICk7CisgICAgICB9LAorCisgICAgICAvLyBD YWxsYmFjayBmdW5jdGlvbiBmb3IgZXhwbGFpbiBhbmFseXplIGJ1dHRvbiBj bGljay4KKyAgICAgIG9uX2V4cGxhaW5fYW5hbHl6ZTogZnVuY3Rpb24oKSB7 CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKworICAgICAgICAvLyBUcmln Z2VyIHRoZSBleHBsYWluIGFuYWx5emUgc2lnbmFsIHRvIHRoZSBTcWxFZGl0 b3JDb250cm9sbGVyIGNsYXNzCisgICAgICAgIHNlbGYuaGFuZGxlci50cmln Z2VyKAorICAgICAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpl eHBsYWluLWFuYWx5emUnLAorICAgICAgICAgICAgc2VsZiwKKyAgICAgICAg ICAgIHNlbGYuaGFuZGxlcgorICAgICAgICApOworICAgICAgfSwKKworICAg ICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIGV4cGxhaW4gb3B0aW9uICJ2 ZXJib3NlIiBidXR0b24gY2xpY2sKKyAgICAgIG9uX2V4cGxhaW5fdmVyYm9z ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKwor ICAgICAgICAvLyBUcmlnZ2VyIHRoZSBleHBsYWluICJ2ZXJib3NlIiBzaWdu YWwgdG8gdGhlIFNxbEVkaXRvckNvbnRyb2xsZXIgY2xhc3MKKyAgICAgICAg c2VsZi5oYW5kbGVyLnRyaWdnZXIoCisgICAgICAgICAgICAncGdhZG1pbi1z cWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tdmVyYm9zZScsCisgICAgICAgICAg ICBzZWxmLAorICAgICAgICAgICAgc2VsZi5oYW5kbGVyCisgICAgICAgICk7 CisgICAgICB9LAorCisgICAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3Ig ZXhwbGFpbiBvcHRpb24gImNvc3RzIiBidXR0b24gY2xpY2sKKyAgICAgIG9u X2V4cGxhaW5fY29zdHM6IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgc2Vs ZiA9IHRoaXM7CisKKyAgICAgICAgLy8gVHJpZ2dlciB0aGUgZXhwbGFpbiAi Y29zdHMiIHNpZ25hbCB0byB0aGUgU3FsRWRpdG9yQ29udHJvbGxlciBjbGFz cworICAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKKyAgICAgICAgICAg ICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhwbGFpbi1jb3N0cycsCisg ICAgICAgICAgICBzZWxmLAorICAgICAgICAgICAgc2VsZi5oYW5kbGVyCisg ICAgICAgICk7CisgICAgICB9LAorCisgICAgICAvLyBDYWxsYmFjayBmdW5j dGlvbiBmb3IgZXhwbGFpbiBvcHRpb24gImJ1ZmZlcnMiIGJ1dHRvbiBjbGlj aworICAgICAgb25fZXhwbGFpbl9idWZmZXJzOiBmdW5jdGlvbigpIHsKKyAg ICAgICAgdmFyIHNlbGYgPSB0aGlzOworCisgICAgICAgIC8vIFRyaWdnZXIg dGhlIGV4cGxhaW4gImJ1ZmZlcnMiIHNpZ25hbCB0byB0aGUgU3FsRWRpdG9y Q29udHJvbGxlciBjbGFzcworICAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dl cigKKyAgICAgICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhw bGFpbi1idWZmZXJzJywKKyAgICAgICAgICAgIHNlbGYsCisgICAgICAgICAg ICBzZWxmLmhhbmRsZXIKKyAgICAgICAgKTsKKyAgICAgIH0sCisKKyAgICAg IC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBleHBsYWluIG9wdGlvbiAidGlt aW5nIiBidXR0b24gY2xpY2sKKyAgICAgIG9uX2V4cGxhaW5fdGltaW5nOiBm dW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworCisgICAg ICAgIC8vIFRyaWdnZXIgdGhlIGV4cGxhaW4gInRpbWluZyIgc2lnbmFsIHRv IHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCisgICAgICAgIHNlbGYu aGFuZGxlci50cmlnZ2VyKAorICAgICAgICAgICAgJ3BnYWRtaW4tc3FsZWRp dG9yOmJ1dHRvbjpleHBsYWluLXRpbWluZycsCisgICAgICAgICAgICBzZWxm LAorICAgICAgICAgICAgc2VsZi5oYW5kbGVyCisgICAgICAgICk7CiAgICAg ICB9CiAgICAgfSk7CiAKQEAgLTgzMCw2ICs5NTEsMTIgQEAgZGVmaW5lKAog ICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpk b3dubG9hZCcsIHNlbGYuX2Rvd25sb2FkLCBzZWxmKTsKICAgICAgICAgICBz ZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246YXV0b19yb2xsYmFj aycsIHNlbGYuX2F1dG9fcm9sbGJhY2ssIHNlbGYpOwogICAgICAgICAgIHNl bGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjphdXRvX2NvbW1pdCcs IHNlbGYuX2F1dG9fY29tbWl0LCBzZWxmKTsKKyAgICAgICAgICBzZWxmLm9u KCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhwbGFpbicsIHNlbGYuX2V4 cGxhaW4sIHNlbGYpOworICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3Fs ZWRpdG9yOmJ1dHRvbjpleHBsYWluLWFuYWx5emUnLCBzZWxmLl9leHBsYWlu X2FuYWx5emUsIHNlbGYpOworICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4t c3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLXZlcmJvc2UnLCBzZWxmLl9leHBs YWluX3ZlcmJvc2UsIHNlbGYpOworICAgICAgICAgIHNlbGYub24oJ3BnYWRt aW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLWNvc3RzJywgc2VsZi5fZXhw bGFpbl9jb3N0cywgc2VsZik7CisgICAgICAgICAgc2VsZi5vbigncGdhZG1p bi1zcWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tYnVmZmVycycsIHNlbGYuX2V4 cGxhaW5fYnVmZmVycywgc2VsZik7CisgICAgICAgICAgc2VsZi5vbigncGdh ZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tdGltaW5nJywgc2VsZi5f ZXhwbGFpbl90aW1pbmcsIHNlbGYpOwogCiAgICAgICAgICAgaWYgKHNlbGYu aXNfcXVlcnlfdG9vbCkgewogICAgICAgICAgICAgc2VsZi5ncmlkVmlldy5x dWVyeV90b29sX29iai5yZWZyZXNoKCk7CkBAIC0xMDgzLDEwICsxMjEwLDI0 IEBAIGRlZmluZSgKICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICdUb3RhbCBx dWVyeSBydW50aW1lOiAnICsgc2VsZi50b3RhbF90aW1lICsgJ1xuJyArIHNl bGYucm93c19hZmZlY3RlZCArICcgcm93cyByZXRyaWV2ZWQuJzsKICAgICAg ICAgICAkKCcuc3FsLWVkaXRvci1tZXNzYWdlJykudGV4dChtZXNzYWdlKTsK IAotICAgICAgICAgIC8vIEFkZCB0aGUgZGF0YSB0byB0aGUgY29sbGVjdGlv biBhbmQgcmVuZGVyIHRoZSBncmlkLgotICAgICAgICAgIHNlbGYuY29sbGVj dGlvbi5hZGQoZGF0YS5yZXN1bHQsIHtwYXJzZTogdHJ1ZX0pOwotICAgICAg ICAgIHNlbGYuZ3JpZFZpZXcucmVuZGVyX2dyaWQoc2VsZi5jb2xsZWN0aW9u LCBzZWxmLmNvbHVtbnMpOwotICAgICAgICAgIHNlbGYuZ3JpZFZpZXcuZGF0 YV9vdXRwdXRfcGFuZWwuZm9jdXMoKTsKKyAgICAgICAgICAvKiBBZGQgdGhl IGRhdGEgdG8gdGhlIGNvbGxlY3Rpb24gYW5kIHJlbmRlciB0aGUgZ3JpZC4K KyAgICAgICAgICAgKiBJbiBjYXNlIG9mIEV4cGxhaW4gZHJhdyB0aGUgZ3Jh cGggb24gZXhwbGFpbiBwYW5lbAorICAgICAgICAgICAqIGFuZCBhZGQganNv biBmb3JtYXR0ZWQgZGF0YSB0byBjb2xsZWN0aW9uIGFuZCByZW5kZXIuCisg ICAgICAgICAgICovCisgICAgICAgICAgdmFyIGV4cGxhaW5fZGF0YV9hcnJh eSA9IFtdOworICAgICAgICAgIGlmKCdRVUVSWSBQTEFOJyBpbiBkYXRhLnJl c3VsdFswXSkgeworICAgICAgICAgICAgc2VsZi5ncmlkVmlldy5leHBsYWlu X3BhbmVsLmZvY3VzKCk7CisgICAgICAgICAgICB2YXIgZXhwbGFpbl9kYXRh ID0geydRVUVSWSBQTEFOJyA6IEpTT04uc3RyaW5naWZ5KGRhdGEucmVzdWx0 WzBdWydRVUVSWSBQTEFOJ10sIG51bGwsIDIpfTsKKyAgICAgICAgICAgIGV4 cGxhaW5fZGF0YV9hcnJheS5wdXNoKGV4cGxhaW5fZGF0YSk7CisgICAgICAg ICAgICBwZ0V4cGxhaW4uRHJhd0pTT05QbGFuKCQoJy5zcWwtZWRpdG9yLWV4 cGxhaW4nKSwgZGF0YS5yZXN1bHRbMF1bJ1FVRVJZIFBMQU4nXSk7CisgICAg ICAgICAgICBzZWxmLmNvbGxlY3Rpb24uYWRkKGV4cGxhaW5fZGF0YV9hcnJh eSwge3BhcnNlOiB0cnVlfSk7CisgICAgICAgICAgICBzZWxmLmdyaWRWaWV3 LnJlbmRlcl9ncmlkKHNlbGYuY29sbGVjdGlvbiwgc2VsZi5jb2x1bW5zKTsK KyAgICAgICAgICB9CisgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBz ZWxmLmNvbGxlY3Rpb24uYWRkKGRhdGEucmVzdWx0LCB7cGFyc2U6IHRydWV9 KTsKKyAgICAgICAgICAgIHNlbGYuZ3JpZFZpZXcucmVuZGVyX2dyaWQoc2Vs Zi5jb2xsZWN0aW9uLCBzZWxmLmNvbHVtbnMpOworICAgICAgICAgICAgc2Vs Zi5ncmlkVmlldy5kYXRhX291dHB1dF9wYW5lbC5mb2N1cygpOworICAgICAg ICAgIH0KIAogICAgICAgICAgIC8vIEhpZGUgdGhlIGxvYWRpbmcgaWNvbgog ICAgICAgICAgIHNlbGYudHJpZ2dlcigncGdhZG1pbi1zcWxlZGl0b3I6bG9h ZGluZy1pY29uOmhpZGUnKTsKQEAgLTE4MTIsNyArMTk1Myw3IEBAIGRlZmlu ZSgKIAogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhl IHNxbCBxdWVyeSBmcm9tIHRoZSB0ZXh0IGJveAogICAgICAgICAvLyBhbmQg ZXhlY3V0ZSB0aGUgcXVlcnkuCi0gICAgICAgIF9leGVjdXRlOiBmdW5jdGlv biAoKSB7CisgICAgICAgIF9leGVjdXRlOiBmdW5jdGlvbiAoZXhwbGFpbl9w cmVmaXgpIHsKICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAg ICAgICAgIHNxbCA9ICcnLAogICAgICAgICAgICAgICBoaXN0b3J5X21zZyA9 ICcnOwpAQCAtMTgzMSw2ICsxOTcyLDkgQEAgZGVmaW5lKAogICAgICAgICAg IGVsc2UKICAgICAgICAgICAgIHNxbCA9IHNlbGYuZ3JpZFZpZXcucXVlcnlf dG9vbF9vYmouZ2V0VmFsdWUoKTsKIAorICAgICAgICAgIGlmIChleHBsYWlu X3ByZWZpeCAhPSB1bmRlZmluZWQpCisgICAgICAgICAgICBzcWwgPSBleHBs YWluX3ByZWZpeCArICcgJyArIHNxbDsKKwogICAgICAgICAgIHNlbGYucXVl cnlfc3RhcnRfdGltZSA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgc2VsZi5x dWVyeSA9IHNxbDsKICAgICAgICAgICBzZWxmLnJvd3NfYWZmZWN0ZWQgPSAw OwpAQCAtMjE0OSw2ICsyMjkzLDcxIEBAIGRlZmluZSgKICAgICAgICAgICAg ICAgYWxlcnRpZnkuYWxlcnQoJ0F1dG8gQ29tbWl0IEVycm9yJywgbXNnKTsK ICAgICAgICAgICAgIH0KICAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKwor ICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAgX2V4cGxh aW46IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBzZWxmID0gdGhpczsK KyAgICAgICAgICB2YXIgdmVyYm9zZSA9ICQoJy5leHBsYWluLXZlcmJvc2Un KS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA/ICdvZmYnIDogJ29u JzsKKyAgICAgICAgICB2YXIgY29zdHMgPSAkKCcuZXhwbGFpbi1jb3N0cycp Lmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID8gJ29mZicgOiAnb24n OworICAgICAgICAgIHZhciBidWZmZXJzID0gJCgnLmV4cGxhaW4tYnVmZmVy cycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID8gJ29mZicgOiAn b24nOworICAgICAgICAgIHZhciB0aW1pbmcgPSAkKCcuZXhwbGFpbi10aW1p bmcnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA/ICdvZmYnIDog J29uJzsKKworICAgICAgICAgIHZhciBleHBsYWluX3F1ZXJ5ID0gJ0V4cGxh aW4gKGZvcm1hdCBqc29uLCBBTkFMWVpFIG9mZiwgVkVSQk9TRSAlcywgQ09T VFMgJXMsIEJVRkZFUlMgJXMsIFRJTUlORyAlcykgJzsKKyAgICAgICAgICBl eHBsYWluX3F1ZXJ5ID0gUyhleHBsYWluX3F1ZXJ5KS5zcHJpbnRmKHZlcmJv c2UsIGNvc3RzLCBidWZmZXJzLCB0aW1pbmcpLnZhbHVlKCk7CisgICAgICAg ICAgc2VsZi5fZXhlY3V0ZShleHBsYWluX3F1ZXJ5KTsKKyAgICAgICAgfSwK KworICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAgX2V4 cGxhaW5fYW5hbHl6ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHNl bGYgPSB0aGlzO3ZhciB2ZXJib3NlID0gJCgnLmV4cGxhaW4tdmVyYm9zZScp Lmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID8gJ29mZicgOiAnb24n OworICAgICAgICAgIHZhciBjb3N0cyA9ICQoJy5leHBsYWluLWNvc3RzJyku aGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykgPyAnb2ZmJyA6ICdvbic7 CisgICAgICAgICAgdmFyIGJ1ZmZlcnMgPSAkKCcuZXhwbGFpbi1idWZmZXJz JykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykgPyAnb2ZmJyA6ICdv bic7CisgICAgICAgICAgdmFyIHRpbWluZyA9ICQoJy5leHBsYWluLXRpbWlu ZycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID8gJ29mZicgOiAn b24nOworCisgICAgICAgICAgdmFyIGV4cGxhaW5fcXVlcnkgPSAnRXhwbGFp biAoZm9ybWF0IGpzb24sIEFOQUxZWkUgb24sIFZFUkJPU0UgJXMsIENPU1RT ICVzLCBCVUZGRVJTICVzLCBUSU1JTkcgJXMpICc7CisgICAgICAgICAgZXhw bGFpbl9xdWVyeSA9IFMoZXhwbGFpbl9xdWVyeSkuc3ByaW50Zih2ZXJib3Nl LCBjb3N0cywgYnVmZmVycywgdGltaW5nKS52YWx1ZSgpOworICAgICAgICAg IHNlbGYuX2V4ZWN1dGUoZXhwbGFpbl9xdWVyeSk7CisgICAgICAgIH0sCisK KyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAidmVyYm9z ZSIgb3B0aW9uIGluIGV4cGxhaW4KKyAgICAgICAgX2V4cGxhaW5fdmVyYm9z ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwor ICAgICAgICAgIGlmICgkKCcuZXhwbGFpbi12ZXJib3NlJykuaGFzQ2xhc3Mo J3Zpc2liaWxpdHktaGlkZGVuJykgPT09IHRydWUpCisgICAgICAgICAgICAk KCcuZXhwbGFpbi12ZXJib3NlJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHkt aGlkZGVuJyk7CisgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAkKCcu ZXhwbGFpbi12ZXJib3NlJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVu Jyk7CisgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIC8vIFRo aXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUgImNvc3RzIiBvcHRpb24gaW4gZXhw bGFpbgorICAgICAgICBfZXhwbGFpbl9jb3N0czogZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICAgIGlmICgkKCcu ZXhwbGFpbi1jb3N0cycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicp ID09PSB0cnVlKQorICAgICAgICAgICAgJCgnLmV4cGxhaW4tY29zdHMnKS5y ZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgICAgICAgICBl bHNlIHsKKyAgICAgICAgICAgICQoJy5leHBsYWluLWNvc3RzJykuYWRkQ2xh c3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgICAgICAgICAgfQorICAgICAg ICB9LAorCisgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUg ImJ1ZmZlcnMiIG9wdGlvbiBpbiBleHBsYWluCisgICAgICAgIF9leHBsYWlu X2J1ZmZlcnM6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBzZWxmID0g dGhpczsKKyAgICAgICAgICBpZiAoJCgnLmV4cGxhaW4tYnVmZmVycycpLmhh c0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0cnVlKQorICAgICAg ICAgICAgJCgnLmV4cGxhaW4tYnVmZmVycycpLnJlbW92ZUNsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOworICAgICAgICAgIGVsc2UgeworICAgICAgICAg ICAgJCgnLmV4cGxhaW4tYnVmZmVycycpLmFkZENsYXNzKCd2aXNpYmlsaXR5 LWhpZGRlbicpOworICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAg ICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJ0aW1pbmciIG9wdGlv biBpbiBleHBsYWluCisgICAgICAgIF9leHBsYWluX3RpbWluZzogZnVuY3Rp b24oKSB7CisgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICAg IGlmICgkKCcuZXhwbGFpbi10aW1pbmcnKS5oYXNDbGFzcygndmlzaWJpbGl0 eS1oaWRkZW4nKSA9PT0gdHJ1ZSkKKyAgICAgICAgICAgICQoJy5leHBsYWlu LXRpbWluZycpLnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwor ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgJCgnLmV4cGxhaW4tdGlt aW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgICAgICAg ICAgfQogICAgICAgICB9CiAgICAgICB9CiAgICAgKTsK --001a113dfdc2c152ae053100139c Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a113dfdc2c152ae053100139c--