From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: =?utf-8?b?THVrw6HFoSBaYW9yYWwgPGx6YW9yYWxAcmVkaGF0LmNvbT4=?= To: git-commits@fedoraproject.org Subject: [rpms/zsh] rawhide: rebase to the latest upstream release Date: Thu, 04 Jun 2026 09:03:50 GMT Message-ID: <178056383089.1.597879722836817490.rpms-zsh-95be2e37b5c0@fedoraproject.org> List-ID: X-Git-Repo: rpms/zsh X-Git-Branch: rawhide X-Git-Rev: 95be2e37b5c0d1282c249ef938f11ab5dc470d66 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvenNoCiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAgICAgICAg Q29tbWl0IDogOTViZTJlMzdiNWMwZDEyODJjMjQ5ZWY5MzhmMTFhYjVkYzQ3MGQ2NgogICAgICAg ICAgICBBdXRob3IgOiBMdWvDocWhIFphb3JhbCA8bHphb3JhbEByZWRoYXQuY29tPgogICAgICAg ICAgICBEYXRlICAgOiAyMDI2LTA2LTA0VDExOjAzOjIxKzAyOjAwCiAgICAgICAgICAgIFN0YXRz ICA6ICsyOTYvLTI0NzMgaW4gMTIgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczov L3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3pzaC9jLzk1YmUyZTM3YjVjMGQxMjgyYzI0OWVm OTM4ZjExYWI1ZGM0NzBkNjY/YnJhbmNoPXJhd2hpZGUKCiAgICAgICAgICAgIExvZzoKICAgICAg ICAgICAgcmViYXNlIHRvIHRoZSBsYXRlc3QgdXBzdHJlYW0gcmVsZWFzZQoKUmVzb2x2ZXM6IHJo YnojMjQ4MzY2OAoKLS0tCmRpZmYgLS1naXQgYS8wMDAxLXpzaC01LjktZG8tbm90LXVzZS1lZ3Jl cC1pbi10ZXN0cy5wYXRjaCBiLzAwMDEtenNoLTUuOS1kby1ub3QtdXNlLWVncmVwLWluLXRlc3Rz LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDVhMWNmLi4wMDAwMDAwCi0t LSBhLzAwMDEtenNoLTUuOS1kby1ub3QtdXNlLWVncmVwLWluLXRlc3RzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLUZyb20gNjkzNWFhNGI1MTVmZTliNzgyNTA3ODIwYzc3 YWI2ODExMzY0NzBiYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEp1bi1pY2hpIFRh a2ltb3RvIDx0YWtpbW90by1qQGtiYS5iaWdsb2JlLm5lLmpwPgotRGF0ZTogVGh1LCAxNSBTZXAg MjAyMiAxODo1NjoyMCArMDkwMAotU3ViamVjdDogW1BBVENIXSA1MDYyOTogZG8gbm90IHVzZSBl Z3JlcCBpbiB0ZXN0cwotCi1VcHN0cmVhbS1jb21taXQ6IDRmYzVkYzAyOTJhY2Q3N2YxNzI4MWY0 NTE3NzRiYTJjYTQyMDMwMjYKLVNpZ25lZC1vZmYtYnk6IEthbWlsIER1ZGthIDxrZHVka2FAcmVk aGF0LmNvbT4KLS0tLQotIFRlc3QvRDA3bXVsdGlieXRlLnp0c3QgIHwgMTYgKystLS0tLS0tLS0t LS0tLQotIFRlc3QvRTAxb3B0aW9ucy56dHN0ICAgIHwgIDIgKy0KLSBUZXN0L1YwN3BjcmUuenRz dCAgICAgICB8IDE2ICsrLS0tLS0tLS0tLS0tLS0KLSBUZXN0L1gwMnpsZXZpLnp0c3QgICAgICB8 IDExICstLS0tLS0tLS0tCi0gVGVzdC9YMDN6bGViaW5ka2V5Lnp0c3QgfCAxMSArLS0tLS0tLS0t LQotIFRlc3QvWTAxY29tcGxldGlvbi56dHN0IHwgMTEgKy0tLS0tLS0tLS0KLSBUZXN0L3p0c3Qu enNoICAgICAgICAgICB8IDE1ICsrKysrKysrKysrKysrKwotIDcgZmlsZXMgY2hhbmdlZCwgMjMg aW5zZXJ0aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9UZXN0L0QwN211 bHRpYnl0ZS56dHN0IGIvVGVzdC9EMDdtdWx0aWJ5dGUuenRzdAotaW5kZXggZTJlOWEyNS4uNjkw OTM0NiAxMDA2NDQKLS0tLSBhL1Rlc3QvRDA3bXVsdGlieXRlLnp0c3QKLSsrKyBiL1Rlc3QvRDA3 bXVsdGlieXRlLnp0c3QKLUBAIC0xLDE5ICsxLDcgQEAKLSAlcHJlcAotIAotLSMgRmluZCBhIFVU Ri04IGxvY2FsZS4KLS0gIHNldG9wdCBtdWx0aWJ5dGUKLS0jIERvbid0IGxldCBMQ18qIG92ZXJy aWRlIG91ciBjaG9pY2Ugb2YgbG9jYWxlLgotLSAgdW5zZXQgLW0gTENfXCoKLS0gIG1iX29rPQot LSAgbGFuZ3M9KGVuX3tVUyxHQn0ue1VURi0sdXRmfTggZW4uVVRGLTgKLS0JICQobG9jYWxlIC1h IDI+L2Rldi9udWxsIHwgZWdyZXAgJ3V0Zjh8VVRGLTgnKSkKLS0gIGZvciBMQU5HIGluICRsYW5n czsgZG8KLS0gICAgaWYgW1sgw6kgPSA/IF1dOyB0aGVuCi0tICAgICAgbWJfb2s9MQotLSAgICAg IGJyZWFrOwotLSAgICBmaQotLSAgZG9uZQotLSAgaWYgW1sgLXogJG1iX29rIF1dOyB0aGVuCi0r ICBMQU5HPSQoWlRTVF9maW5kX1VURjgpCi0rICBpZiBbWyAteiAkTEFORyBdXTsgdGhlbgotICAg ICBaVFNUX3VuaW1wbGVtZW50ZWQ9Im5vIFVURi04IGxvY2FsZSBvciBtdWx0aWJ5dGUgbW9kZSBp cyBub3QgaW1wbGVtZW50ZWQiCi0gICBlbHNlCi0gICAgIHByaW50IC11ICRaVFNUX2ZkIFRlc3Rp bmcgbXVsdGlieXRlIHdpdGggbG9jYWxlICRMQU5HCi1kaWZmIC0tZ2l0IGEvVGVzdC9FMDFvcHRp b25zLnp0c3QgYi9UZXN0L0UwMW9wdGlvbnMuenRzdAotaW5kZXggMmFjYmZkMy4uZDM4ZmJlZCAx MDA2NDQKLS0tLSBhL1Rlc3QvRTAxb3B0aW9ucy56dHN0Ci0rKysgYi9UZXN0L0UwMW9wdGlvbnMu enRzdAotQEAgLTY1MSw3ICs2NTEsNyBAQAotID5ub2t0YXJnMQotID4wIDEKLSAKLS0gIHNob3dv cHQoKSB7IHNldG9wdCB8IGVncmVwICdsb2NhbG9wdGlvbnN8a3NoYXJyYXlzJzsgfQotKyAgc2hv d29wdCgpIHsgZWNobyAkeyhGTSkkeyhAZikiJChzZXRvcHQpIn06Iyhsb2NhbG9wdGlvbnN8a3No YXJyYXlzKSp9IH0KLSAgIGYxKCkgeyBzZXRvcHQgbG9jYWxvcHRpb25zIGtzaGFycmF5czsgc2hv d29wdCB9Ci0gICBmMigpIHsgc2V0b3B0IGtzaGFycmF5czsgc2hvd29wdCB9Ci0gICBzZXRvcHQg a3Nob3B0aW9ucHJpbnQKLWRpZmYgLS1naXQgYS9UZXN0L1YwN3BjcmUuenRzdCBiL1Rlc3QvVjA3 cGNyZS56dHN0Ci1pbmRleCBjOWM4NDRkLi5jYTEzNDE5IDEwMDY0NAotLS0tIGEvVGVzdC9WMDdw Y3JlLnp0c3QKLSsrKyBiL1Rlc3QvVjA3cGNyZS56dHN0Ci1AQCAtNiwyMCArNiw4IEBACi0gICAg IHJldHVybiAwCi0gICBmaQotICAgc2V0b3B0IHJlbWF0Y2hfcGNyZQotLSMgRmluZCBhIFVURi04 IGxvY2FsZS4KLS0gIHNldG9wdCBtdWx0aWJ5dGUKLS0jIERvbid0IGxldCBMQ18qIG92ZXJyaWRl IG91ciBjaG9pY2Ugb2YgbG9jYWxlLgotLSAgdW5zZXQgLW0gTENfXCoKLS0gIG1iX29rPQotLSAg bGFuZ3M9KGVuX3tVUyxHQn0ue1VURi0sdXRmfTggZW4uVVRGLTgKLS0JICQobG9jYWxlIC1hIDI+ L2Rldi9udWxsIHwgZWdyZXAgJ3V0Zjh8VVRGLTgnKSkKLS0gIGZvciBMQU5HIGluICRsYW5nczsg ZG8KLS0gICAgaWYgW1sgw6kgPSA/IF1dOyB0aGVuCi0tICAgICAgbWJfb2s9MQotLSAgICAgIGJy ZWFrOwotLSAgICBmaQotLSAgZG9uZQotLSAgaWYgW1sgLXogJG1iX29rIF1dOyB0aGVuCi0rICBM QU5HPSQoWlRTVF9maW5kX1VURjgpCi0rICBpZiBbWyAteiAkTEFORyBdXTsgdGhlbgotICAgICBa VFNUX3VuaW1wbGVtZW50ZWQ9Im5vIFVURi04IGxvY2FsZSBvciBtdWx0aWJ5dGUgbW9kZSBpcyBu b3QgaW1wbGVtZW50ZWQiCi0gICBlbHNlCi0gICAgIHByaW50IC11ICRaVFNUX2ZkIFRlc3Rpbmcg UENSRSBtdWx0aWJ5dGUgd2l0aCBsb2NhbGUgJExBTkcKLWRpZmYgLS1naXQgYS9UZXN0L1gwMnps ZXZpLnp0c3QgYi9UZXN0L1gwMnpsZXZpLnp0c3QKLWluZGV4IDgxNDZkNjcuLjIwM2MxM2MgMTAw NjQ0Ci0tLS0gYS9UZXN0L1gwMnpsZXZpLnp0c3QKLSsrKyBiL1Rlc3QvWDAyemxldmkuenRzdAot QEAgLTEsMTYgKzEsNyBAQAotICMgVGVzdHMgb2YgdGhlIHZpIG1vZGUgb2YgWkxFCi0gCi0gJXBy ZXAKLS0gIHVuc2V0IC1tIExDX1wqCi0tICBaU0hfVEVTVF9MQU5HPQotLSAgbGFuZ3M9KGVuX3tV UyxHQn0ue1VURi0sdXRmfTggZW4uVVRGLTgKLS0JICQobG9jYWxlIC1hIDI+L2Rldi9udWxsIHwg ZWdyZXAgJ3V0Zjh8VVRGLTgnKSkKLS0gIGZvciBMQU5HIGluICRsYW5nczsgZG8KLS0gICAgaWYg W1sgw6kgPSA/IF1dOyB0aGVuCi0tICAgICAgWlNIX1RFU1RfTEFORz0kTEFORyAKLS0gICAgICBi cmVhazsKLS0gICAgZmkKLS0gIGRvbmUKLSsgIFpTSF9URVNUX0xBTkc9JChaVFNUX2ZpbmRfVVRG OCkKLSAgIGlmICggem1vZGxvYWQgenNoL3pwdHkgMj4vZGV2L251bGwgKTsgdGhlbgotICAgICAu ICRaVFNUX3NyY2Rpci9jb21wdGVzdAotICAgICBjb21wdGVzdGluaXQgLXYgLXogJFpUU1RfdGVz dGRpci8uLi9TcmMvenNoCi1kaWZmIC0tZ2l0IGEvVGVzdC9YMDN6bGViaW5ka2V5Lnp0c3QgYi9U ZXN0L1gwM3psZWJpbmRrZXkuenRzdAotaW5kZXggNDM2OTJhOC4uNTI3NzMzMiAxMDA2NDQKLS0t LSBhL1Rlc3QvWDAzemxlYmluZGtleS56dHN0Ci0rKysgYi9UZXN0L1gwM3psZWJpbmRrZXkuenRz dAotQEAgLTMsMTYgKzMsNyBAQAotICMgaW50byBiaW5kaW5ncy4gIFRoZSBsYXR0ZXIgaXMgcGFy dGljdWxhcmx5IHRyaWNreSB3aXRoIG11bHRpYnl0ZSBzZXF1ZW5jZXMuCi0gCi0gJXByZXAKLS0g IHVuc2V0IC1tIExDX1wqCi0tICBaU0hfVEVTVF9MQU5HPQotLSAgbGFuZ3M9KGVuX3tVUyxHQn0u e1VURi0sdXRmfTggZW4uVVRGLTgKLS0JICQobG9jYWxlIC1hIDI+L2Rldi9udWxsIHwgZWdyZXAg J3V0Zjh8VVRGLTgnKSkKLS0gIGZvciBMQU5HIGluICRsYW5nczsgZG8KLS0gICAgaWYgW1sgw6kg PSA/IF1dOyB0aGVuCi0tICAgICAgWlNIX1RFU1RfTEFORz0kTEFORwotLSAgICAgIGJyZWFrOwot LSAgICBmaQotLSAgZG9uZQotKyAgWlNIX1RFU1RfTEFORz0kKFpUU1RfZmluZF9VVEY4KQotICAg aWYgKCB6bW9kbG9hZCB6c2gvenB0eSAyPi9kZXYvbnVsbCApOyB0aGVuCi0gICAgIC4gJFpUU1Rf c3JjZGlyL2NvbXB0ZXN0Ci0gICAgIGNvbXB0ZXN0aW5pdCAteiAkWlRTVF90ZXN0ZGlyLy4uL1Ny Yy96c2gKLWRpZmYgLS1naXQgYS9UZXN0L1kwMWNvbXBsZXRpb24uenRzdCBiL1Rlc3QvWTAxY29t cGxldGlvbi56dHN0Ci1pbmRleCA2YWYwZWZjLi5mOTc2ZjlmIDEwMDY0NAotLS0tIGEvVGVzdC9Z MDFjb21wbGV0aW9uLnp0c3QKLSsrKyBiL1Rlc3QvWTAxY29tcGxldGlvbi56dHN0Ci1AQCAtMSwx NiArMSw3IEBACi0gIyBUZXN0cyBmb3IgY29tcGxldGlvbiBzeXN0ZW0uCi0gCi0gJXByZXAKLS0g IHVuc2V0IC1tIExDX1wqCi0tICBaU0hfVEVTVF9MQU5HPQotLSAgbGFuZ3M9KGVuX3tVUyxHQn0u e1VURi0sdXRmfTggZW4uVVRGLTgKLS0gICAgICAgICAkKGxvY2FsZSAtYSAyPi9kZXYvbnVsbCB8 IGVncmVwICd1dGY4fFVURi04JykpCi0tICBmb3IgTEFORyBpbiAkbGFuZ3M7IGRvCi0tICAgIGlm IFtbIMOpID0gPyBdXTsgdGhlbgotLSAgICAgIFpTSF9URVNUX0xBTkc9JExBTkcKLS0gICAgICBi cmVhazsKLS0gICAgZmkKLS0gIGRvbmUKLSsgIFpTSF9URVNUX0xBTkc9JChaVFNUX2ZpbmRfVVRG OCkKLSAgIGlmICggem1vZGxvYWQgenNoL3pwdHkgMj4vZGV2L251bGwgKTsgdGhlbgotICAgICAu ICRaVFNUX3NyY2Rpci9jb21wdGVzdAotICAgICBta2RpciBjb21wLnRtcAotZGlmZiAtLWdpdCBh L1Rlc3QvenRzdC56c2ggYi9UZXN0L3p0c3QuenNoCi1pbmRleCBhY2EyNzVjLi5kOTViNzI2IDEw MDc1NQotLS0tIGEvVGVzdC96dHN0LnpzaAotKysrIGIvVGVzdC96dHN0LnpzaAotQEAgLTM3LDYg KzM3LDIxIEBAIGVtdWxhdGUgLVIgenNoCi0gIyBMQU5HIG11c3QgYmUgcGFzc2VkIHRvIGNoaWxk IHpzaC4KLSBleHBvcnQgTEFORwotIAotKyMgZmluZCBVVEYtOCBsb2NhbGUKLStaVFNUX2ZpbmRf VVRGOCAoKSB7Ci0rICBzZXRvcHQgbXVsdGlieXRlCi0rICAjIERvbid0IGxldCBMQ18qIG92ZXJy aWRlIG91ciBjaG9pY2Ugb2YgbG9jYWxlLgotKyAgdW5zZXQgLW0gTENfXCoKLSsgIGxvY2FsIGxh bmdzPShlbl97VVMsR0J9LntVVEYtLHV0Zn04IGVuLlVURi04Ci0rICAgICAgICAgICAgICAgJHso TSkkKGxvY2FsZSAtYSAyPi9kZXYvbnVsbCk6IyouKHV0Zjh8VVRGLTgpfSkKLSsgIGZvciBMQU5H IGluICRsYW5nczsgZG8KLSsgICAgaWYgW1sgw6kgPSA/IF1dOyB0aGVuCi0rICAgICAgZWNobyAk TEFORwotKyAgICAgIHJldHVybgotKyAgICBmaQotKyAgZG9uZQotK30KLSsKLSAjIERvbid0IHBy b3BhZ2F0ZSB2YXJpYWJsZXMgdGhhdCBhcmUgc2V0IGJ5IGRlZmF1bHQgaW4gdGhlIHNoZWxsLgot IHR5cGVzZXQgK3ggV09SRENIQVJTCi0gCi0tLSAKLTIuMzkuMAotCgpkaWZmIC0tZ2l0IGEvMDAw Mi16c2gtVXNlLWludC1tYWluLWluLXRlc3QtYy1jb2Rlcy5wYXRjaCBiLzAwMDItenNoLVVzZS1p bnQtbWFpbi1pbi10ZXN0LWMtY29kZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDM1ODVjYzQuLjAwMDAwMDAKLS0tIGEvMDAwMi16c2gtVXNlLWludC1tYWluLWluLXRlc3Qt Yy1jb2Rlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU0MSArMCwwIEBACi1jb21taXQgYWI0 ZDYyZWI5NzVhNGM0YzUxZGQzNTgyMjY2NTA1MGUyZGRjNjkxOAotQXV0aG9yOiBOaWNob2xhcyBW aW5zb24gPG52aW5zb24yMzRAZ21haWwuY29tPgotRGF0ZTogICBXZWQgU2VwIDIxIDA5OjIyOjEx IDIwMjIgKzA5MDAKLQotICAgIDUwNjQxOiB1c2UgJ2ludCBtYWluKCknIGluIHRlc3QgQy1jb2Rl cyBpbiBjb25maWd1cmUKLQotZGlmZiAtLWdpdCBhL2FjenNoLm00IGIvYWN6c2gubTQKLWluZGV4 IDEyMDlhYzYxNC4uYjMxMjM2MDIwIDEwMDY0NAotLS0tIGEvYWN6c2gubTQKLSsrKyBiL2FjenNo Lm00Ci1AQCAtNDQsNiArNDQsNyBAQCBBQ19ERUZVTih6c2hfNjRfQklUX1RZUEUsCi0gI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgotICNlbmRpZgotIAotK2ludAotIG1haW4oKQotIHsKLSAgICQxIGZv byA9IDA7IAotQEAgLTExOCw3ICsxMTksNiBAQCBBQ19UUllfQ09NTUFORCgkRExMRCAtbyBjb25m dGVzdDEuJERMX0VYVCAkTERGTEFHUyAkRExMREZMQUdTIGNvbmZ0ZXN0MS5vICRMSUJTCi0gQUNf VFJZX0NPTU1BTkQoJENDIC1jICRDRkxBR1MgJENQUEZMQUdTICRETENGTEFHUyBjb25mdGVzdDIu YyAxPiZBU19NRVNTQUdFX0xPR19GRCkgJiYKLSBBQ19UUllfQ09NTUFORCgkRExMRCAtbyBjb25m dGVzdDIuJERMX0VYVCAkTERGTEFHUyAkRExMREZMQUdTIGNvbmZ0ZXN0Mi5vICRMSUJTIDE+JkFT X01FU1NBR0VfTE9HX0ZEKTsgdGhlbgotICAgICBBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJD RShbWwotLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaWZkZWYgSFBVWDEwRFlOQU1JQwotICNpbmNs dWRlIDxkbC5oPgotICNkZWZpbmUgUlRMRF9MQVpZIEJJTkRfREVGRVJSRUQKLUBAIC0xNDYsMjkg KzE0NiwzMCBAQCBjaGFyICp6c2hfZ2xfc3ltX2FkZHIgOwotICNkZWZpbmUgUlRMRF9HTE9CQUwg MAotICNlbmRpZgotIAotK2ludAotIG1haW4oKQotIHsKLSAgICAgdm9pZCAqaGFuZGxlMSwgKmhh bmRsZTI7Ci0gICAgIHZvaWQgKigqenNoX2dldGFkZHIxKSgpLCAqKCp6c2hfZ2V0YWRkcjIpKCk7 Ci0gICAgIHZvaWQgKnN5bTEsICpzeW0yOwotICAgICBoYW5kbGUxID0gZGxvcGVuKCIuL2NvbmZ0 ZXN0MS4kRExfRVhUIiwgUlRMRF9MQVpZIHwgUlRMRF9HTE9CQUwpOwotLSAgICBpZighaGFuZGxl MSkgZXhpdCgxKTsKLSsgICAgaWYoIWhhbmRsZTEpIHJldHVybigxKTsKLSAgICAgaGFuZGxlMiA9 IGRsb3BlbigiLi9jb25mdGVzdDIuJERMX0VYVCIsIFJUTERfTEFaWSB8IFJUTERfR0xPQkFMKTsK LS0gICAgaWYoIWhhbmRsZTIpIGV4aXQoMSk7Ci0rICAgIGlmKCFoYW5kbGUyKSByZXR1cm4oMSk7 Ci0gICAgIHpzaF9nZXRhZGRyMSA9ICh2b2lkICooKikoKSkgZGxzeW0oaGFuZGxlMSwgIiR7dXN9 enNoX2dldGFkZHIxIik7Ci0gICAgIHpzaF9nZXRhZGRyMiA9ICh2b2lkICooKikoKSkgZGxzeW0o aGFuZGxlMiwgIiR7dXN9enNoX2dldGFkZHIyIik7Ci0gICAgIHN5bTEgPSB6c2hfZ2V0YWRkcjEo KTsKLSAgICAgc3ltMiA9IHpzaF9nZXRhZGRyMigpOwotLSAgICBpZighc3ltMSB8fCAhc3ltMikg ZXhpdCgxKTsKLS0gICAgaWYoc3ltMSAhPSBzeW0yKSBleGl0KDEpOwotKyAgICBpZighc3ltMSB8 fCAhc3ltMikgcmV0dXJuKDEpOwotKyAgICBpZihzeW0xICE9IHN5bTIpIHJldHVybigxKTsKLSAg ICAgZGxjbG9zZShoYW5kbGUxKTsKLSAgICAgaGFuZGxlMSA9IGRsb3BlbigiLi9jb25mdGVzdDEu JERMX0VYVCIsIFJUTERfTEFaWSB8IFJUTERfR0xPQkFMKTsKLS0gICAgaWYoIWhhbmRsZTEpIGV4 aXQoMSk7Ci0rICAgIGlmKCFoYW5kbGUxKSByZXR1cm4oMSk7Ci0gICAgIHpzaF9nZXRhZGRyMSA9 ICh2b2lkICooKikoKSkgZGxzeW0oaGFuZGxlMSwgIiR7dXN9enNoX2dldGFkZHIxIik7Ci0gICAg IHN5bTEgPSB6c2hfZ2V0YWRkcjEoKTsKLS0gICAgaWYoIXN5bTEpIGV4aXQoMSk7Ci0tICAgIGlm KHN5bTEgIT0gc3ltMikgZXhpdCgxKTsKLS0gICAgZXhpdCgwKTsKLSsgICAgaWYoIXN5bTEpIHJl dHVybigxKTsKLSsgICAgaWYoc3ltMSAhPSBzeW0yKSByZXR1cm4oMSk7Ci0rICAgIHJldHVybigw KTsKLSB9Ci0gXV0pXSxbenNoX2N2X3NoYXJlZF8kMT15ZXNdLAotIFt6c2hfY3Zfc2hhcmVkXyQx PW5vXSwKLUBAIC0yMDAsNyArMjAxLDYgQEAgQUNfVFJZX0NPTU1BTkQoJERMTEQgLW8gY29uZnRl c3QxLiRETF9FWFQgJExERkxBR1MgJERMTERGTEFHUyBjb25mdGVzdDEubyAkTElCUwotIEFDX1RS WV9DT01NQU5EKCRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyAkRExDRkxBR1MgY29uZnRlc3QyLmMg MT4mQVNfTUVTU0FHRV9MT0dfRkQpICYmCi0gQUNfVFJZX0NPTU1BTkQoJERMTEQgLW8gY29uZnRl c3QyLiRETF9FWFQgJExERkxBR1MgJERMTERGTEFHUyBjb25mdGVzdDIubyAkTElCUyAxPiZBU19N RVNTQUdFX0xPR19GRCk7IHRoZW4KLSAgICAgQUNfUlVOX0lGRUxTRShbQUNfTEFOR19TT1VSQ0Uo W1sKLS0jaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2lmZGVmIEhQVVgxMERZTkFNSUMKLSAjaW5jbHVk ZSA8ZGwuaD4KLSAjZGVmaW5lIFJUTERfTEFaWSBCSU5EX0RFRkVSUkVECi1AQCAtMjI4LDE5ICsy MjgsMTkgQEAgY2hhciAqenNoX2dsX3N5bV9hZGRyIDsKLSAjZGVmaW5lIFJUTERfR0xPQkFMIDAK LSAjZW5kaWYKLSAKLS0KLStpbnQKLSBtYWluKCkKLSB7Ci0gICAgIHZvaWQgKmhhbmRsZTEsICpo YW5kbGUyOwotICAgICBpbnQgKCpmcmVkMSkoKSwgKCpmcmVkMikoKTsKLSAgICAgaGFuZGxlMSA9 IGRsb3BlbigiLi9jb25mdGVzdDEuJERMX0VYVCIsIFJUTERfTEFaWSB8IFJUTERfR0xPQkFMKTsK LS0gICAgaWYoIWhhbmRsZTEpIGV4aXQoMSk7Ci0rICAgIGlmKCFoYW5kbGUxKSByZXR1cm4oMSk7 Ci0gICAgIGhhbmRsZTIgPSBkbG9wZW4oIi4vY29uZnRlc3QyLiRETF9FWFQiLCBSVExEX0xBWlkg fCBSVExEX0dMT0JBTCk7Ci0tICAgIGlmKCFoYW5kbGUyKSBleGl0KDEpOwotKyAgICBpZighaGFu ZGxlMikgcmV0dXJuKDEpOwotICAgICBmcmVkMSA9IChpbnQgKCopKCkpIGRsc3ltKGhhbmRsZTEs ICIke3VzfWZyZWQiKTsKLSAgICAgZnJlZDIgPSAoaW50ICgqKSgpKSBkbHN5bShoYW5kbGUyLCAi JHt1c31mcmVkIik7Ci0tICAgIGlmKCFmcmVkMSB8fCAhZnJlZDIpIGV4aXQoMSk7Ci0tICAgIGV4 aXQoKCpmcmVkMSkoKSAhPSA0MiB8fCAoKmZyZWQyKSgpICE9IDY5KTsKLSsgICAgaWYoIWZyZWQx IHx8ICFmcmVkMikgcmV0dXJuKDEpOwotKyAgICByZXR1cm4oKCpmcmVkMSkoKSAhPSA0MiB8fCAo KmZyZWQyKSgpICE9IDY5KTsKLSB9Ci0gXV0pXSxbenNoX2N2X3N5c19keW5hbWljX2NsYXNoX29r PXllc10sCi0gW3pzaF9jdl9zeXNfZHluYW1pY19jbGFzaF9vaz1ub10sCi1AQCAtMjc2LDcgKzI3 Niw2IEBAIEFDX1RSWV9DT01NQU5EKCRETExEIC1vIGNvbmZ0ZXN0MS4kRExfRVhUICRMREZMQUdT ICRETExERkxBR1MgY29uZnRlc3QxLm8gJExJQlMKLSBBQ19UUllfQ09NTUFORCgkQ0MgLWMgJENG TEFHUyAkQ1BQRkxBR1MgJERMQ0ZMQUdTIGNvbmZ0ZXN0Mi5jIDE+JkFTX01FU1NBR0VfTE9HX0ZE KSAmJgotIEFDX1RSWV9DT01NQU5EKCRETExEIC1vIGNvbmZ0ZXN0Mi4kRExfRVhUICRMREZMQUdT ICRETExERkxBR1MgY29uZnRlc3QyLm8gJExJQlMgMT4mQVNfTUVTU0FHRV9MT0dfRkQpOyB0aGVu Ci0gICAgIEFDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0tI2luY2x1ZGUgPHN0ZGxp Yi5oPgotICNpZmRlZiBIUFVYMTBEWU5BTUlDCi0gI2luY2x1ZGUgPGRsLmg+Ci0gI2RlZmluZSBS VExEX0xBWlkgQklORF9ERUZFUlJFRAotQEAgLTMwNCwxNyArMzAzLDE4IEBAIGNoYXIgKnpzaF9n bF9zeW1fYWRkciA7Ci0gI2RlZmluZSBSVExEX0dMT0JBTCAwCi0gI2VuZGlmCi0gCi0raW50Ci0g bWFpbigpCi0gewotICAgICB2b2lkICpoYW5kbGU7Ci0gICAgIGludCAoKmJhcm5leXN5bSkoKTsK LSAgICAgaGFuZGxlID0gZGxvcGVuKCIuL2NvbmZ0ZXN0MS4kRExfRVhUIiwgUlRMRF9MQVpZIHwg UlRMRF9HTE9CQUwpOwotLSAgICBpZighaGFuZGxlKSBleGl0KDEpOwotKyAgICBpZighaGFuZGxl KSByZXR1cm4oMSk7Ci0gICAgIGhhbmRsZSA9IGRsb3BlbigiLi9jb25mdGVzdDIuJERMX0VYVCIs IFJUTERfTEFaWSB8IFJUTERfR0xPQkFMKTsKLS0gICAgaWYoIWhhbmRsZSkgZXhpdCgxKTsKLSsg ICAgaWYoIWhhbmRsZSkgcmV0dXJuKDEpOwotICAgICBiYXJuZXlzeW0gPSAoaW50ICgqKSgpKSBk bHN5bShoYW5kbGUsICIke3VzfWJhcm5leSIpOwotLSAgICBpZighYmFybmV5c3ltKSBleGl0KDEp OwotLSAgICBleGl0KCgqYmFybmV5c3ltKSgpICE9IDY5KTsKLSsgICAgaWYoIWJhcm5leXN5bSkg cmV0dXJuKDEpOwotKyAgICByZXR1cm4oKCpiYXJuZXlzeW0pKCkgIT0gNjkpOwotIH0KLSBdXSld LFt6c2hfY3Zfc3lzX2R5bmFtaWNfcnRsZF9nbG9iYWw9eWVzXSwKLSBbenNoX2N2X3N5c19keW5h bWljX3J0bGRfZ2xvYmFsPW5vXSwKLUBAIC0zNDYsNyArMzQ2LDYgQEAgQUNfVFJZX0NPTU1BTkQo JERMTEQgLW8gY29uZnRlc3QxLiRETF9FWFQgJExERkxBR1MgJERMTERGTEFHUyBjb25mdGVzdDEu byAkTElCUwotICAgICBzYXZlX2xkZmxhZ3M9JExERkxBR1MKLSAgICAgTERGTEFHUz0iJExERkxB R1MgJEVYVFJBX0xERkxBR1MiCi0gICAgIEFDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtb Ci0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotICNpZmRlZiBIUFVYMTBEWU5BTUlDCi0gI2luY2x1ZGUg PGRsLmg+Ci0gI2RlZmluZSBSVExEX0xBWlkgQklORF9ERUZFUlJFRAotQEAgLTM3NCwxNSArMzcz LDE2IEBAIGNoYXIgKnpzaF9nbF9zeW1fYWRkciA7Ci0gI2RlZmluZSBSVExEX0dMT0JBTCAwCi0g I2VuZGlmCi0gCi0raW50Ci0gbWFpbigpCi0gewotICAgICB2b2lkICpoYW5kbGU7Ci0gICAgIGlu dCAoKmJhcm5leXN5bSkoKTsKLSAgICAgaGFuZGxlID0gZGxvcGVuKCIuL2NvbmZ0ZXN0MS4kRExf RVhUIiwgUlRMRF9MQVpZIHwgUlRMRF9HTE9CQUwpOwotLSAgICBpZighaGFuZGxlKSBleGl0KDEp OwotKyAgICBpZighaGFuZGxlKSByZXR1cm4oMSk7Ci0gICAgIGJhcm5leXN5bSA9IChpbnQgKCop KCkpIGRsc3ltKGhhbmRsZSwgIiR7dXN9YmFybmV5Iik7Ci0tICAgIGlmKCFiYXJuZXlzeW0pIGV4 aXQoMSk7Ci0tICAgIGV4aXQoKCpiYXJuZXlzeW0pKCkgIT0gNjkpOwotKyAgICBpZighYmFybmV5 c3ltKSByZXR1cm4oMSk7Ci0rICAgIHJldHVybigoKmJhcm5leXN5bSkoKSAhPSA2OSk7Ci0gfQot IAotIGludCBmcmVkICgpIHsgcmV0dXJuIDQyOyB9Ci1AQCAtNDIwLDcgKzQyMCw2IEBAIGVsaWYK LSAgICAgc2F2ZV9sZGZsYWdzPSRMREZMQUdTCi0gICAgIExERkxBR1M9IiRMREZMQUdTICRFWFRS QV9MREZMQUdTIC1zIgotICAgICBBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbWwotLSNp bmNsdWRlIDxzdGRsaWIuaD4KLSAjaWZkZWYgSFBVWDEwRFlOQU1JQwotICNpbmNsdWRlIDxkbC5o PgotICNkZWZpbmUgUlRMRF9MQVpZIEJJTkRfREVGRVJSRUQKLUBAIC00NDgsMTUgKzQ0NywxNiBA QCBjaGFyICp6c2hfZ2xfc3ltX2FkZHIgOwotICNkZWZpbmUgUlRMRF9HTE9CQUwgMAotICNlbmRp ZgotIAotK2ludAotIG1haW4oKQotIHsKLSAgICAgdm9pZCAqaGFuZGxlOwotICAgICBpbnQgKCpi YXJuZXlzeW0pKCk7Ci0gICAgIGhhbmRsZSA9IGRsb3BlbigiLi9jb25mdGVzdDEuJERMX0VYVCIs IFJUTERfTEFaWSB8IFJUTERfR0xPQkFMKTsKLS0gICAgaWYoIWhhbmRsZSkgZXhpdCgxKTsKLSsg ICAgaWYoIWhhbmRsZSkgcmV0dXJuKDEpOwotICAgICBiYXJuZXlzeW0gPSAoaW50ICgqKSgpKSBk bHN5bShoYW5kbGUsICIke3VzfWJhcm5leSIpOwotLSAgICBpZighYmFybmV5c3ltKSBleGl0KDEp OwotLSAgICBleGl0KCgqYmFybmV5c3ltKSgpICE9IDY5KTsKLSsgICAgaWYoIWJhcm5leXN5bSkg cmV0dXJuKDEpOwotKyAgICByZXR1cm4oKCpiYXJuZXlzeW0pKCkgIT0gNjkpOwotIH0KLSAKLSBp bnQgZnJlZCAoKSB7IHJldHVybiA0MjsgfQotQEAgLTQ4OCw3ICs0ODgsNiBAQCBlY2hvICdpbnQg ZnJlZCAoKSB7IHJldHVybiA0MjsgfScgPiBjb25mdGVzdDEuYwotIGlmIEFDX1RSWV9DT01NQU5E KCRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyAkRExDRkxBR1MgY29uZnRlc3QxLmMgMT4mQVNfTUVT U0FHRV9MT0dfRkQpICYmCi0gQUNfVFJZX0NPTU1BTkQoJERMTEQgLW8gY29uZnRlc3QxLiRETF9F WFQgJExERkxBR1MgJERMTERGTEFHUyAtcyBjb25mdGVzdDEubyAkTElCUyAxPiZBU19NRVNTQUdF X0xPR19GRCk7IHRoZW4KLSAgICAgQUNfUlVOX0lGRUxTRShbQUNfTEFOR19TT1VSQ0UoW1sKLS0j aW5jbHVkZSA8c3RkbGliLmg+Ci0gI2lmZGVmIEhQVVgxMERZTkFNSUMKLSAjaW5jbHVkZSA8ZGwu aD4KLSAjZGVmaW5lIFJUTERfTEFaWSBCSU5EX0RFRkVSUkVECi1AQCAtNTE2LDE1ICs1MTUsMTYg QEAgY2hhciAqenNoX2dsX3N5bV9hZGRyIDsKLSAjZGVmaW5lIFJUTERfR0xPQkFMIDAKLSAjZW5k aWYKLSAKLStpbnQKLSBtYWluKCkKLSB7Ci0gICAgIHZvaWQgKmhhbmRsZTsKLSAgICAgaW50ICgq ZnJlZHN5bSkoKTsKLSAgICAgaGFuZGxlID0gZGxvcGVuKCIuL2NvbmZ0ZXN0MS4kRExfRVhUIiwg UlRMRF9MQVpZIHwgUlRMRF9HTE9CQUwpOwotLSAgICBpZighaGFuZGxlKSBleGl0KDEpOwotKyAg ICBpZighaGFuZGxlKSByZXR1cm4oMSk7Ci0gICAgIGZyZWRzeW0gPSAoaW50ICgqKSgpKSBkbHN5 bShoYW5kbGUsICIke3VzfWZyZWQiKTsKLS0gICAgaWYoIWZyZWRzeW0pIGV4aXQoMSk7Ci0tICAg IGV4aXQoKCpmcmVkc3ltKSgpICE9IDQyKTsKLSsgICAgaWYoIWZyZWRzeW0pIHJldHVybigxKTsK LSsgICAgcmV0dXJuKCgqZnJlZHN5bSkoKSAhPSA0Mik7Ci0gfQotIF1dKV0sW3pzaF9jdl9zeXNf ZHluYW1pY19zdHJpcF9saWI9eWVzXSwKLSBbenNoX2N2X3N5c19keW5hbWljX3N0cmlwX2xpYj1u b10sCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCA4OTBl ZjhkZDIuLjA3NDE0MWQzOCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmln dXJlLmFjCi1AQCAtNTg1LDcgKzU4NSw3IEBAIGZpCi0gZG5sICBDaGVja2luZyBpZiBjb21waWxl ciBjb3JyZWN0bHkgY2FzdCBzaWduZWQgdG8gdW5zaWduZWQuCi0gQUNfQ0FDSEVfQ0hFQ0soaWYg c2lnbmVkIHRvIHVuc2lnbmVkIGNhc3RpbmcgaXMgYnJva2VuLAotIHpzaF9jdl9jX2Jyb2tlbl9z aWduZWRfdG9fdW5zaWduZWRfY2FzdGluZywKLS1bQUNfUlVOX0lGRUxTRShbQUNfTEFOR19TT1VS Q0UoW1ttYWluKCl7cmV0dXJuKChpbnQpKHVuc2lnbmVkIGNoYXIpKChjaGFyKSAtMSkgPT0gMjU1 KTt9XV0pXSxbenNoX2N2X2NfYnJva2VuX3NpZ25lZF90b191bnNpZ25lZF9jYXN0aW5nPXllc10s W3pzaF9jdl9jX2Jyb2tlbl9zaWduZWRfdG9fdW5zaWduZWRfY2FzdGluZz1ub10sW3pzaF9jdl9j X2Jyb2tlbl9zaWduZWRfdG9fdW5zaWduZWRfY2FzdGluZz1ub10pXSkKLStbQUNfUlVOX0lGRUxT RShbQUNfTEFOR19TT1VSQ0UoW1tpbnQgbWFpbigpe3JldHVybigoaW50KSh1bnNpZ25lZCBjaGFy KSgoY2hhcikgLTEpID09IDI1NSk7fV1dKV0sW3pzaF9jdl9jX2Jyb2tlbl9zaWduZWRfdG9fdW5z aWduZWRfY2FzdGluZz15ZXNdLFt6c2hfY3ZfY19icm9rZW5fc2lnbmVkX3RvX3Vuc2lnbmVkX2Nh c3Rpbmc9bm9dLFt6c2hfY3ZfY19icm9rZW5fc2lnbmVkX3RvX3Vuc2lnbmVkX2Nhc3Rpbmc9bm9d KV0pCi0gQUhfVEVNUExBVEUoW0JST0tFTl9TSUdORURfVE9fVU5TSUdORURfQ0FTVElOR10sCi0g W0RlZmluZSB0byAxIGlmIGNvbXBpbGVyIGluY29ycmVjdGx5IGNhc3Qgc2lnbmVkIHRvIHVuc2ln bmVkLl0pCi0gaWYgdGVzdCB4JHpzaF9jdl9jX2Jyb2tlbl9zaWduZWRfdG9fdW5zaWduZWRfY2Fz dGluZyA9IHh5ZXM7IHRoZW4KLUBAIC0xMDQ2LDcgKzEwNDYsNyBAQCBlbHNlCi0gICBbQUNfUlVO X0lGRUxTRShbQUNfTEFOR19TT1VSQ0UoW1sKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gCi0t bWFpbigpIHsgcmV0dXJuIHNpemVvZihvZmZfdCkgPCA4OyB9Ci0raW50IG1haW4oKSB7IHJldHVy biBzaXplb2Yob2ZmX3QpIDwgODsgfQotIF1dKV0sW3pzaF9jdl9vZmZfdF9pc182NF9iaXQ9eWVz XSxbenNoX2N2X29mZl90X2lzXzY0X2JpdD1ub10sW3pzaF9jdl9vZmZfdF9pc182NF9iaXQ9bm9d KV0pCi0gICBpZiB0ZXN0IHgkenNoX2N2X29mZl90X2lzXzY0X2JpdCA9IHh5ZXM7IHRoZW4KLSAg ICAgQUNfREVGSU5FKE9GRl9UX0lTXzY0X0JJVCkKLUBAIC0xMDU2LDcgKzEwNTYsNyBAQCBtYWlu KCkgeyByZXR1cm4gc2l6ZW9mKG9mZl90KSA8IDg7IH0KLSAgIFtBQ19SVU5fSUZFTFNFKFtBQ19M QU5HX1NPVVJDRShbWwotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAKLS1tYWluKCkgeyByZXR1 cm4gc2l6ZW9mKGlub190KSA8IDg7IH0KLStpbnQgbWFpbigpIHsgcmV0dXJuIHNpemVvZihpbm9f dCkgPCA4OyB9Ci0gXV0pXSxbenNoX2N2X2lub190X2lzXzY0X2JpdD15ZXNdLFt6c2hfY3ZfaW5v X3RfaXNfNjRfYml0PW5vXSxbenNoX2N2X2lub190X2lzXzY0X2JpdD1ub10pXSkKLSAgIGlmIHRl c3QgeCR6c2hfY3ZfaW5vX3RfaXNfNjRfYml0ID0geHllczsgdGhlbgotICAgICBBQ19ERUZJTkUo SU5PX1RfSVNfNjRfQklUKQotQEAgLTEzNjksNyArMTM2OSw3IEBAIHpzaF9jdl9mdW5jX3JlYWxw YXRoX2FjY2VwdHNfbnVsbCwKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPGxpbWl0 cy5oPgotIF0sWwotLWV4aXQoIXJlYWxwYXRoKCIvIiwgKGNoYXIqKTApKTsKLStyZXR1cm4oIXJl YWxwYXRoKCIvIiwgKGNoYXIqKTApKTsKLSBdKV0sCi0gW3pzaF9jdl9mdW5jX3JlYWxwYXRoX2Fj Y2VwdHNfbnVsbD15ZXNdLAotIFt6c2hfY3ZfZnVuY19yZWFscGF0aF9hY2NlcHRzX251bGw9bm9d LAotQEAgLTEzOTMsMTAgKzEzOTMsOSBAQCBBQ19DQUNIRV9DSEVDSyhpZiB0Z2V0ZW50IGFjY2Vw dHMgTlVMTCwKLSB6c2hfY3ZfZnVuY190Z2V0ZW50X2FjY2VwdHNfbnVsbCwKLSBbQUNfUlVOX0lG RUxTRShbQUNfTEFOR19TT1VSQ0UoW1sKLSAjaW5jbHVkZSA8ZmNudGwuaD4KLS0jaW5jbHVkZSA8 c3RkbGliLmg+Ci0gaW50IHRnZXRlbnQoY2hhciAqLCBjaGFyICopOwotIGNoYXIgKnRnZXRzdHIo Y2hhciAqLCBjaGFyICoqKTsKLS1tYWluKCkKLStpbnQgbWFpbigpCi0gewotICAgICBjaGFyIGJ1 Zls0MDk2XTsKLSAgICAgaW50IHIxID0gdGdldGVudChidWYsICJ2dDEwMCIpOwotQEAgLTE0MDcs NyArMTQwNiw3IEBAIG1haW4oKQotICAgICAJdGdldHN0cigiY2wiLCAmdSk7Ci0gCWNyZWF0KCJj b25mdGVzdC50Z2V0ZW50IiwgMDY0MCk7Ci0gICAgIH0KLS0gICAgZXhpdCgocjEgIT0gcjIpIHx8 IHIyID09IC0xKTsKLSsgICAgcmV0dXJuKChyMSAhPSByMikgfHwgcjIgPT0gLTEpOwotIH0KLSBd XSldLFtpZiB0ZXN0IC1mIGNvbmZ0ZXN0LnRnZXRlbnQ7IHRoZW4KLSAgICAgenNoX2N2X2Z1bmNf dGdldGVudF9hY2NlcHRzX251bGw9eWVzCi1AQCAtMTQyMSwxMCArMTQyMCw5IEBAIEFDX0NBQ0hF X0NIRUNLKGlmIHRnZXRlbnQgcmV0dXJucyAwIG9uIHN1Y2Nlc3MsCi0genNoX2N2X2Z1bmNfdGdl dGVudF96ZXJvX3N1Y2Nlc3MsCi0gW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0g I2luY2x1ZGUgPGZjbnRsLmg+Ci0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotIGludCB0Z2V0ZW50KGNo YXIgKiwgY2hhciopOwotIGNoYXIgKnRnZXRzdHIoY2hhciAqLCBjaGFyICoqKTsKLS1tYWluKCkK LStpbnQgbWFpbigpCi0gewotICAgICBjaGFyIGJ1Zls0MDk2XTsKLSAgICAgaW50IHIxID0gdGdl dGVudChidWYsICIhQCMkJV4mKiIpOwotQEAgLTE0MzUsNyArMTQzMyw3IEBAIG1haW4oKQotICAg ICAJdGdldHN0cigiY2wiLCAmdSk7Ci0gCWNyZWF0KCJjb25mdGVzdC50Z2V0ZW50MCIsIDA2NDAp OwotICAgICB9Ci0tICAgIGV4aXQocjEgPT0gcjIpOwotKyAgICByZXR1cm4ocjEgPT0gcjIpOwot IH0KLSBdXSldLFtpZiB0ZXN0IC1mIGNvbmZ0ZXN0LnRnZXRlbnQwOyB0aGVuCi0gICAgIHpzaF9j dl9mdW5jX3RnZXRlbnRfemVyb19zdWNjZXNzPXllcwotQEAgLTE4NjksOCArMTg2Nyw3IEBAIHpz aF9jdl9ybGltX3RfaXNfbG9uZ2VyLAotICNpbmNsdWRlIDxzeXMvdGltZS5oPgotICNlbmRpZgot ICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLS0jaW5jbHVkZSA8c3RkbGliLmg+Ci0tbWFpbigp e3N0cnVjdCBybGltaXQgcjtleGl0KHNpemVvZihyLnJsaW1fY3VyKSA8PSBzaXplb2YobG9uZykp O31dXSldLFt6c2hfY3ZfcmxpbV90X2lzX2xvbmdlcj15ZXNdLFt6c2hfY3ZfcmxpbV90X2lzX2xv bmdlcj1ub10sW3pzaF9jdl9ybGltX3RfaXNfbG9uZ2VyPXllc10pXSkKLStpbnQgbWFpbigpe3N0 cnVjdCBybGltaXQgcjtyZXR1cm4oc2l6ZW9mKHIucmxpbV9jdXIpIDw9IHNpemVvZihsb25nKSk7 fV1dKV0sW3pzaF9jdl9ybGltX3RfaXNfbG9uZ2VyPXllc10sW3pzaF9jdl9ybGltX3RfaXNfbG9u Z2VyPW5vXSxbenNoX2N2X3JsaW1fdF9pc19sb25nZXI9eWVzXSldKQotIGlmIHRlc3QgeCR6c2hf Y3ZfcmxpbV90X2lzX2xvbmdlciA9IHh5ZXM7IHRoZW4KLSAgIEFDX0NBQ0hFX0NIRUNLKGlmIHJs aW1fdCBpcyBhIHF1YWQsCi0gICB6c2hfY3ZfcmxpbV90X2lzX3F1YWRfdCwKLUBAIC0xODgwLDEz ICsxODc3LDEyIEBAIGlmIHRlc3QgeCR6c2hfY3ZfcmxpbV90X2lzX2xvbmdlciA9IHh5ZXM7IHRo ZW4KLSAjZW5kaWYKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3lzL3Jlc291cmNl Lmg+Ci0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotLW1haW4oKSB7IAotK2ludCBtYWluKCkgewotICAg c3RydWN0IHJsaW1pdCByOwotICAgY2hhciBidWZbMjBdOwotICAgci5ybGltX2N1ciA9IDA7Ci0g ICBzcHJpbnRmKGJ1ZiwgIiVxZCIsIHIucmxpbV9jdXIpOwotLSAgZXhpdChzdHJjbXAoYnVmLCAi MCIpKTsKLSsgIHJldHVybihzdHJjbXAoYnVmLCAiMCIpKTsKLSB9XV0pXSxbenNoX2N2X3JsaW1f dF9pc19xdWFkX3Q9eWVzXSxbenNoX2N2X3JsaW1fdF9pc19xdWFkX3Q9bm9dLFt6c2hfY3Zfcmxp bV90X2lzX3F1YWRfdD1ub10pXSkKLSAgIGlmIHRlc3QgeCR6c2hfY3ZfcmxpbV90X2lzX3F1YWRf dCA9IHh5ZXM7IHRoZW4KLSAgICAgQUNfREVGSU5FKFJMSU1fVF9JU19RVUFEX1QpCi1AQCAtMTkw Myw4ICsxODk5LDcgQEAgZWxzZQotICNpbmNsdWRlIDxzeXMvdGltZS5oPgotICNlbmRpZgotICNp bmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLS0jaW5jbHVkZSA8c3RkbGliLmg+Ci0tICBtYWluKCl7 c3RydWN0IHJsaW1pdCByO3IucmxpbV9jdXI9LTE7ZXhpdChyLnJsaW1fY3VyPDApO31dXSldLFt6 c2hfY3ZfdHlwZV9ybGltX3RfaXNfdW5zaWduZWQ9eWVzXSxbenNoX2N2X3R5cGVfcmxpbV90X2lz X3Vuc2lnbmVkPW5vXSxbenNoX2N2X3R5cGVfcmxpbV90X2lzX3Vuc2lnbmVkPW5vXSldKQotKyAg aW50IG1haW4oKXtzdHJ1Y3QgcmxpbWl0IHI7ci5ybGltX2N1cj0tMTtyZXR1cm4oci5ybGltX2N1 cjwwKTt9XV0pXSxbenNoX2N2X3R5cGVfcmxpbV90X2lzX3Vuc2lnbmVkPXllc10sW3pzaF9jdl90 eXBlX3JsaW1fdF9pc191bnNpZ25lZD1ub10sW3pzaF9jdl90eXBlX3JsaW1fdF9pc191bnNpZ25l ZD1ub10pXSkKLSAgIGlmIHRlc3QgeCR6c2hfY3ZfdHlwZV9ybGltX3RfaXNfdW5zaWduZWQgPSB4 eWVzOyB0aGVuCi0gICAgIEFDX0RFRklORShSTElNX1RfSVNfVU5TSUdORUQpCi0gICAgIERFRkFV TFRfUkxJTV9UPSJ1bnNpZ25lZCAkREVGQVVMVF9STElNX1QiCi1AQCAtMjE4Nyw5ICsyMTgyLDgg QEAgenNoX2N2X3N5c19maWZvLAotICNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDxzaWdu YWwuaD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotICNpbmNs dWRlIDxzeXMvc3RhdC5oPgotLW1haW4oKQotK2ludCBtYWluKCkKLSB7Ci0gICAgIGNoYXIgYzsK LSAgICAgaW50IGZkOwotQEAgLTIyMDAsMTggKzIxOTQsMTggQEAgbWFpbigpCi0gI2Vsc2UKLSAg ICAgaWYobWtub2QoIi90bXAvZmlmbyQkIiwgMDAxMDYwMCwgMCkgPCAwKQotICNlbmRpZgotLQll eGl0KDEpOwotKwlyZXR1cm4oMSk7Ci0gICAgIHBpZCA9IGZvcmsoKTsKLSAgICAgaWYocGlkIDwg MCkKLS0JZXhpdCgxKTsKLSsJcmV0dXJuKDEpOwotICAgICBpZihwaWQpIHsKLSAJZmQgPSBvcGVu KCIvdG1wL2ZpZm8kJCIsIE9fUkRPTkxZKTsKLS0JZXhpdChmZCA8IDAgfHwgcmVhZChmZCwgJmMs IDEpICE9IDEgfHwgYyAhPSAneCcpOwotKwlyZXR1cm4oZmQgPCAwIHx8IHJlYWQoZmQsICZjLCAx KSAhPSAxIHx8IGMgIT0gJ3gnKTsKLSAgICAgfQotICAgICBmZCA9IG9wZW4oIi90bXAvZmlmbyQk IiwgT19XUk9OTFkpOwotICAgICByZXQgPSAoZmQgPCAwIHx8IHdyaXRlKGZkLCAieCIsIDEpIDwg MSk7Ci0gICAgIHVubGluaygiL3RtcC9maWZvJCQiKTsKLS0gICAgZXhpdChyZXQpOwotKyAgICBy ZXR1cm4ocmV0KTsKLSB9Ci0gXV0pXSxbenNoX2N2X3N5c19maWZvPXllc10sW3pzaF9jdl9zeXNf Zmlmbz1ub10sW3pzaF9jdl9zeXNfZmlmbz15ZXNdKQotIF0pCi1AQCAtMjI4OSw4ICsyMjgzLDcg QEAgenNoX2N2X3N5c19saW5rLAotIFtBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbWwot ICNpbmNsdWRlIDx1bmlzdGQuaD4KLSAjaW5jbHVkZSA8ZmNudGwuaD4KLS0jaW5jbHVkZSA8c3Rk bGliLmg+Ci0tbWFpbigpCi0raW50IG1haW4oKQotIHsKLSAgICAgaW50IHJldDsKLSAgICAgY2hh ciAqdG1wZmlsZSwgKm5ld2ZpbGU7Ci1AQCAtMjI5OSwxMSArMjI5MiwxMSBAQCBtYWluKCkKLSAg ICAgdW5saW5rKHRtcGZpbGUpOwotICAgICB1bmxpbmsobmV3ZmlsZSk7Ci0gICAgIGlmKGNyZWF0 KHRtcGZpbGUsIDA2NDQpIDwgMCkKLS0JZXhpdCgxKTsKLSsJcmV0dXJuKDEpOwotICAgICByZXQg PSBsaW5rKHRtcGZpbGUsIG5ld2ZpbGUpOwotICAgICB1bmxpbmsodG1wZmlsZSk7Ci0gICAgIHVu bGluayhuZXdmaWxlKTsKLS0gICAgZXhpdChyZXQ8MCk7Ci0rICAgIHJldHVybihyZXQ8MCk7Ci0g fQotIF1dKV0sW3pzaF9jdl9zeXNfbGluaz15ZXNdLFt6c2hfY3Zfc3lzX2xpbms9bm9dLFt6c2hf Y3Zfc3lzX2xpbms9eWVzXSldKQotIEFIX1RFTVBMQVRFKFtIQVZFX0xJTktdLAotQEAgLTIzMjIs MTIgKzIzMTUsMTEgQEAgenNoX2N2X3N5c19raWxsZXNyY2gsCi0gI2luY2x1ZGUgPHVuaXN0ZC5o PgotICNpbmNsdWRlIDxzaWduYWwuaD4KLSAjaW5jbHVkZSA8ZXJybm8uaD4KLS0jaW5jbHVkZSA8 c3RkbGliLmg+Ci0tbWFpbigpCi0raW50IG1haW4oKQotIHsKLSAgICAgaW50IHBpZCA9IChnZXRw aWQoKSArIDEwMDAwKSAmIDB4ZmZmZmZmOwotICAgICB3aGlsZSAocGlkICYmIChraWxsKHBpZCwg MCkgPT0gMCB8fCBlcnJubyAhPSBFU1JDSCkpIHBpZCA+Pj0gMTsKLS0gICAgZXhpdChlcnJubyE9 RVNSQ0gpOwotKyAgICByZXR1cm4oZXJybm8hPUVTUkNIKTsKLSB9Ci0gXV0pXSxbenNoX2N2X3N5 c19raWxsZXNyY2g9eWVzXSxbenNoX2N2X3N5c19raWxsZXNyY2g9bm9dLFt6c2hfY3Zfc3lzX2tp bGxlc3JjaD15ZXNdKV0pCi0gQUhfVEVNUExBVEUoW0JST0tFTl9LSUxMX0VTUkNIXSwKLUBAIC0y MzQ4LDEyICsyMzQwLDExIEBAIGlmIHRlc3QgeCRzaWduYWxzX3N0eWxlID0geFBPU0lYX1NJR05B TFM7IHRoZW4KLSAgICAgW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0gI2luY2x1 ZGUgPHNpZ25hbC5oPgotICNpbmNsdWRlIDx1bmlzdGQuaD4KLS0jaW5jbHVkZSA8c3RkbGliLmg+ Ci0gaW50IGNoaWxkPTA7Ci0gdm9pZCBoYW5kbGVyKHNpZykKLSAgICAgaW50IHNpZzsKLSB7aWYo c2lnPT1TSUdDSExEKSBjaGlsZD0xO30KLS1tYWluKCkgewotK2ludCBtYWluKCkgewotICAgICBz dHJ1Y3Qgc2lnYWN0aW9uIGFjdDsKLSAgICAgc2lnc2V0X3Qgc2V0OwotICAgICBpbnQgcGlkLCBy ZXQ7Ci1AQCAtMjM2OCw3ICsyMzU5LDcgQEAgbWFpbigpIHsKLSAgICAgaWYocGlkPjApIHsKLSAg ICAgc2lnZW1wdHlzZXQoJnNldCk7Ci0gICAgICAgICByZXQ9c2lnc3VzcGVuZCgmc2V0KTsKLS0g ICAgICAgIGV4aXQoY2hpbGQ9PTApOwotKyAgICAgICAgcmV0dXJuKGNoaWxkPT0wKTsKLSAgICAg fQotIH0KLSBdXSldLFt6c2hfY3Zfc3lzX3NpZ3N1c3BlbmQ9eWVzXSxbenNoX2N2X3N5c19zaWdz dXNwZW5kPW5vXSxbenNoX2N2X3N5c19zaWdzdXNwZW5kPXllc10pXSkKLUBAIC0yNDAwLDE1ICsy MzkxLDE0IEBAIGNhc2UgIngkenNoX3dvcmtpbmdfdGNzZXRwZ3JwIiBpbgotICNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0gI2luY2x1ZGUgPGZjbnRsLmg+Ci0t I2luY2x1ZGUgPHN0ZGxpYi5oPgotLW1haW4oKSB7Ci0raW50IG1haW4oKSB7Ci0gICAgIGludCBm ZDsKLSAgICAgaW50IHJldDsKLSAgICAgZmQ9b3BlbigiL2Rldi90dHkiLCBPX1JEV1IpOwotLSAg ICBpZiAoZmQgPCAwKSBleGl0KDIpOwotKyAgICBpZiAoZmQgPCAwKSByZXR1cm4oMik7Ci0gICAg IHJldD10Y3NldHBncnAoZmQsIHRjZ2V0cGdycChmZCkpOwotLSAgICBpZiAocmV0IDwgMCkgZXhp dCgxKTsKLS0gICAgZXhpdCgwKTsKLSsgICAgaWYgKHJldCA8IDApIHJldHVybigxKTsKLSsgICAg cmV0dXJuKDApOwotIH0KLSBdXSldLFt6c2hfY3Zfc3lzX3Rjc2V0cGdycD15ZXNdLFsKLSBjYXNl ICQ/IGluCi1AQCAtMjQ0OCw3ICsyNDM4LDcgQEAgaWYgdGVzdCB4JGFjX2N2X2Z1bmNfZ2V0cHdu YW0gPSB4eWVzOyB0aGVuCi0gI2luY2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlIDxzdGRsaWIu aD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0tbWFpbigpIHsKLStpbnQgbWFpbigpIHsKLSAgICAg c3RydWN0IHBhc3N3ZCAqcHcxLCAqcHcyOwotICAgICBjaGFyIGJ1ZlsxMDI0XSwgbmFtZVsxMDI0 XTsKLSAgICAgc3ByaW50ZihidWYsICIlZDolZCIsIGdldHBpZCgpLCByYW5kKCkpOwotQEAgLTI0 NTYsNyArMjQ0Niw3IEBAIG1haW4oKSB7Ci0gICAgIGlmIChwdzEpIHN0cmNweShuYW1lLCBwdzEt PnB3X25hbWUpOwotICAgICBzcHJpbnRmKGJ1ZiwgIiVkOiVkIiwgcmFuZCgpLCBnZXRwaWQoKSk7 Ci0gICAgIHB3Mj1nZXRwd25hbShidWYpOwotLSAgICBleGl0KHB3MSE9MCAmJiBwdzIhPTAgJiYg IXN0cmNtcChuYW1lLCBwdzItPnB3X25hbWUpKTsKLSsgICAgcmV0dXJuKHB3MSE9MCAmJiBwdzIh PTAgJiYgIXN0cmNtcChuYW1lLCBwdzItPnB3X25hbWUpKTsKLSB9Ci0gXV0pXSxbenNoX2N2X3N5 c19nZXRwd25hbV9mYWtlZD1ub10sW3pzaF9jdl9zeXNfZ2V0cHduYW1fZmFrZWQ9eWVzXSxbenNo X2N2X3N5c19nZXRwd25hbV9mYWtlZD1ub10pXSkKLSAgICAgaWYgdGVzdCB4JHpzaF9jdl9zeXNf Z2V0cHduYW1fZmFrZWQgPSB4eWVzOyB0aGVuCi1AQCAtMjc3NSwyMCArMjc2NSwxNyBAQCBlbGlm IHRlc3QgIngkZHluYW1pYyIgPSB4eWVzOyB0aGVuCi0gICAgenNoX2N2X3N5c19lbGYsCi0gICAg W0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbLyogVGVzdCBmb3Igd2hldGhlciBFTEYg YmluYXJpZXMgYXJlIHByb2R1Y2VkICovCi0gI2luY2x1ZGUgPGZjbnRsLmg+Ci0tI2luY2x1ZGUg PHN0ZGxpYi5oPgotICNpbmNsdWRlIDx1bmlzdGQuaD4KLS1tYWluKGFyZ2MsIGFyZ3YpCi0taW50 IGFyZ2M7Ci0tY2hhciAqYXJndltdOwotK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p Ci0gewotIAljaGFyIGJbNF07Ci0gCWludCBpID0gb3Blbihhcmd2WzBdLE9fUkRPTkxZKTsKLSAJ aWYoaSA9PSAtMSkgCi0tCQlleGl0KDEpOyAvKiBmYWlsICovCi0rCQlyZXR1cm4oMSk7IC8qIGZh aWwgKi8KLSAJaWYocmVhZChpLGIsNCk9PTQgJiYgYlswXT09MTI3ICYmIGJbMV09PSdFJyAmJiBi WzJdPT0nTCcgJiYgYlszXT09J0YnKQotLQkJZXhpdCgwKTsgLyogc3VjY2VlZCAoeWVzLCBpdCdz IEVMRikgKi8KLSsJCXJldHVybigwKTsgLyogc3VjY2VlZCAoeWVzLCBpdCdzIEVMRikgKi8KLSAJ ZWxzZQotLQkJZXhpdCgxKTsgLyogZmFpbCAqLwotKwkJcmV0dXJuKDEpOyAvKiBmYWlsICovCi0g fV1dKV0sW3pzaF9jdl9zeXNfZWxmPXllc10sW3pzaF9jdl9zeXNfZWxmPW5vXSxbenNoX2N2X3N5 c19lbGY9eWVzXSldKQotIAotICAgIyBXZSB1c2UgWzAtOV0qIGluIGNhc2Ugc3RhdGVtZW50cywg c28gbmVlZCB0byBjaGFuZ2UgcXVvdGluZwotQEAgLTI5MjQsMTMgKzI5MTEsMTIgQEAgTERGTEFH Uz0iJG9sZF9MREZMQUdTIikKLSAgIEFDX0NBQ0hFX0NIRUNLKGlmIHlvdXIgZGxzeW0oKSBuZWVk cyBhIGxlYWRpbmcgdW5kZXJzY29yZSwKLSAgICB6c2hfY3ZfZnVuY19kbHN5bV9uZWVkc191bmRl cnNjb3JlLAotICAgIFtlY2hvIGZhaWxlZCA+Y29uZnRlc3R2YWwgJiYgY2F0ID5jb25mdGVzdC5j IDw8RU9NCi0tZnJlZCAoKSB7IH0KLSt2b2lkIGZyZWQgKCkgeyB9Ci0gRU9NCi0gICAgIEFDX1RS WV9DT01NQU5EKCRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyAkRExDRkxBR1MgY29uZnRlc3QuYyAx PiZBU19NRVNTQUdFX0xPR19GRCkgJiYKLSAgICAgQUNfVFJZX0NPTU1BTkQoJERMTEQgJExERkxB R1MgJERMTERGTEFHUyAtbyBjb25mdGVzdC4kRExfRVhUIGNvbmZ0ZXN0Lm8gMT4mQVNfTUVTU0FH RV9MT0dfRkQpICYmCi0gICAgIEFDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0gI2lu Y2x1ZGUgPHN0ZGlvLmg+Ci0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotICNpZmRlZiBIUFVYMTBEWU5B TUlDCi0gI2luY2x1ZGUgPGRsLmg+Ci0gI2RlZmluZSBSVExEX0xBWlkgQklORF9ERUZFUlJFRAot QEAgLTI5NTcsMTYgKzI5NDMsMTYgQEAgY2hhciAqenNoX2dsX3N5bV9hZGRyIDsKLSAKLSBleHRl cm4gaW50IGZyZWQoKSA7Ci0gCi0tbWFpbigpCi0raW50IG1haW4oKQotIHsKLSAgICAgdm9pZCAq IGhhbmRsZSA7Ci0gICAgIHZvaWQgKiBzeW1ib2wgOwotICAgICBGSUxFICpmPWZvcGVuKCJjb25m dGVzdHZhbCIsICJ3Iik7Ci0tICAgIGlmICghZikgZXhpdCgxKTsKLSsgICAgaWYgKCFmKSByZXR1 cm4oMSk7Ci0gICAgIGhhbmRsZSA9IGRsb3BlbigiLi9jb25mdGVzdC4kRExfRVhUIiwgUlRMRF9M QVpZKSA7Ci0gICAgIGlmIChoYW5kbGUgPT0gTlVMTCkgewotICAgICAgICAgZnByaW50ZiAoZiwg ImRsb3BlbiBmYWlsZWQiKSA7Ci0tICAgICAgICAgICAgZXhpdCgxKTsKLSsgICAgICAgICAgICBy ZXR1cm4oMSk7Ci0gICAgIH0KLSAgICAgc3ltYm9sID0gZGxzeW0oaGFuZGxlLCAiZnJlZCIpIDsK LSAgICAgaWYgKHN5bWJvbCA9PSBOVUxMKSB7Ci1AQCAtMjk3NCwxMyArMjk2MCwxMyBAQCBtYWlu KCkKLSAgICAgICAgIHN5bWJvbCA9IGRsc3ltKGhhbmRsZSwgIl9mcmVkIikgOwotICAgICAgICAg aWYgKHN5bWJvbCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgZnByaW50ZiAoZiwgImRsc3ltIGZh aWxlZCIpIDsKLS0gICAgICAgICAgICAgICAgZXhpdCgxKTsKLSsgICAgICAgICAgICAgICAgcmV0 dXJuKDEpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICBmcHJpbnRmIChmLCAieWVzIikg OwotICAgICB9Ci0gICAgIGVsc2UKLSAgICAgICAgIGZwcmludGYgKGYsICJubyIpIDsKLS0gICAg ZXhpdCgwKTsKLSsgICAgcmV0dXJuKDApOwotIH1dXSldLFt6c2hfY3ZfZnVuY19kbHN5bV9uZWVk c191bmRlcnNjb3JlPWBjYXQgY29uZnRlc3R2YWxgXSxbenNoX2N2X2Z1bmNfZGxzeW1fbmVlZHNf dW5kZXJzY29yZT1mYWlsZWQKLSAgICAgZHluYW1pYz1ub10sW3pzaF9jdl9mdW5jX2Rsc3ltX25l ZWRzX3VuZGVyc2NvcmU9bm9dKV0pCi0gICBpZiB0ZXN0ICJ4JHpzaF9jdl9mdW5jX2Rsc3ltX25l ZWRzX3VuZGVyc2NvcmUiID0geHllczsgdGhlbgoKZGlmZiAtLWdpdCBhLzAwMDQtenNoLWVuYWJs ZS1QQ1JFLWxvY2FsZS1zd2l0Y2hpbmcucGF0Y2ggYi8wMDA0LXpzaC1lbmFibGUtUENSRS1sb2Nh bGUtc3dpdGNoaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmYwM2Jm Li4wMDAwMDAwCi0tLSBhLzAwMDQtenNoLWVuYWJsZS1QQ1JFLWxvY2FsZS1zd2l0Y2hpbmcucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi1Gcm9tIDFiNDIxZTQ5Nzg0NDAyMzRm YjczMTE3Yzg1MDVkYWQxY2NjNjhkNDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBK dW4taWNoaSBUYWtpbW90byA8dGFraW1vdG8takBrYmEuYmlnbG9iZS5uZS5qcD4KLURhdGU6IE1v biwgMjYgU2VwIDIwMjIgMTA6NTI6NTAgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gNTA2NTggKyB0 ZXN0OiBFbmFibGUgdG8gc3dpdGNoIGJldHdlZW4gQy9VVEYtOCBsb2NhbGVzIGluCi0gUENSRQot Ci0tLS0KLSBTcmMvTW9kdWxlcy9wY3JlLmMgfCAxMCArKy0tLS0tLS0tCi0gVGVzdC9WMDdwY3Jl Lnp0c3QgIHwgMTEgKysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9TcmMvTW9kdWxlcy9wY3JlLmMgYi9T cmMvTW9kdWxlcy9wY3JlLmMKLWluZGV4IDYyODllMDAzZS4uNDY4NzVhNTliIDEwMDY0NAotLS0t IGEvU3JjL01vZHVsZXMvcGNyZS5jCi0rKysgYi9TcmMvTW9kdWxlcy9wY3JlLmMKLUBAIC00Nyw4 ICs0Nyw2IEBAIHpwY3JlX3V0ZjhfZW5hYmxlZCh2b2lkKQotICNpZiBkZWZpbmVkKE1VTFRJQllU RV9TVVBQT1JUKSAmJiBkZWZpbmVkKEhBVkVfTkxfTEFOR0lORk8pICYmIGRlZmluZWQoQ09ERVNF VCkKLSAgICAgc3RhdGljIGludCBoYXZlX3V0ZjhfcGNyZSA9IC0xOwotIAotLSAgICAvKiB2YWx1 ZSBjYW4gdG9nZ2xlIGJhc2VkIG9uIE1VTFRJQllURSwgc28gZG9uJ3QKLS0gICAgICogYmUgdG9v IGVhZ2VyIHdpdGggY2FjaGluZyAqLwotICAgICBpZiAoaGF2ZV91dGY4X3BjcmUgPCAtMSkKLSAJ cmV0dXJuIDA7Ci0gCi1AQCAtNTYsMTUgKzU0LDExIEBAIHpwY3JlX3V0ZjhfZW5hYmxlZCh2b2lk KQotIAlyZXR1cm4gMDsKLSAKLSAgICAgaWYgKChoYXZlX3V0ZjhfcGNyZSA9PSAtMSkgJiYKLS0g ICAgICAgICghc3RyY21wKG5sX2xhbmdpbmZvKENPREVTRVQpLCAiVVRGLTgiKSkpIHsKLS0KLS0J aWYgKHBjcmVfY29uZmlnKFBDUkVfQ09ORklHX1VURjgsICZoYXZlX3V0ZjhfcGNyZSkpCi0rCShw Y3JlX2NvbmZpZyhQQ1JFX0NPTkZJR19VVEY4LCAmaGF2ZV91dGY4X3BjcmUpKSkgewotIAkgICAg aGF2ZV91dGY4X3BjcmUgPSAtMjsgLyogZXJrLCBmYWlsZWQgdG8gYXNrICovCi0gICAgIH0KLSAK LS0gICAgaWYgKGhhdmVfdXRmOF9wY3JlIDwgMCkKLS0JcmV0dXJuIDA7Ci0tICAgIHJldHVybiBo YXZlX3V0ZjhfcGNyZTsKLSsgICAgcmV0dXJuIChoYXZlX3V0ZjhfcGNyZSA9PSAxKSAmJiAoIXN0 cmNtcChubF9sYW5naW5mbyhDT0RFU0VUKSwgIlVURi04IikpOwotIAotICNlbHNlCi0gICAgIHJl dHVybiAwOwotZGlmZiAtLWdpdCBhL1Rlc3QvVjA3cGNyZS56dHN0IGIvVGVzdC9WMDdwY3JlLnp0 c3QKLWluZGV4IGNhMTM0MTllNS4uMjJhMGI2NGM3IDEwMDY0NAotLS0tIGEvVGVzdC9WMDdwY3Jl Lnp0c3QKLSsrKyBiL1Rlc3QvVjA3cGNyZS56dHN0Ci1AQCAtMTYyLDMgKzE2MiwxNCBAQAotICAg ICBlY2hvICRtYXRjaFsyXSApCi0gMDpyZWdyZXNzaW9uIGZvciBzZWdtZW50YXRpb24gZmF1bHQs IHdvcmtlcnMvMzgzMDcKLSA+dGVzdAotKwotKyAgTEFOR19TQVZFPSRMQU5HCi0rICBbWyDDqSA9 fiAnXi5ceicgXV07IGVjaG8gJD8KLSsgIExBTkc9QwotKyAgW1sgw6kgPX4gJ14uLlx6JyBdXTsg ZWNobyAkPwotKyAgTEFORz0kTEFOR19TQVZFCi0rICBbWyDDqSA9fiAnXi5ceicgXV07IGVjaG8g JD8KLSswOnN3aWNoIGJldHdlZW4gQy9VVEYtOCBsb2NhbGVzCi0rPjAKLSs+MAotKz4wCi0tLSAK LTIuNDEuMAotCgpkaWZmIC0tZ2l0IGEvMDAwNS16c2gtcG9ydC10by1wY3JlMi5wYXRjaCBiLzAw MDUtenNoLXBvcnQtdG8tcGNyZTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGZkOGVhMGUuLjAwMDAwMDAKLS0tIGEvMDAwNS16c2gtcG9ydC10by1wY3JlMi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDY0MSArMCwwIEBACi1Gcm9tIGI2MmU5MTEzNDFjOGVjNzQ0NjM3OGI0 NzdjNDdkYTQyNTYwNTNkYzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBPbGl2ZXIg S2lkZGxlIDxvcGtAenNoLm9yZz4KLURhdGU6IFNhdCwgMTMgTWF5IDIwMjMgMDA6NTM6MzIgKzAy MDAKLVN1YmplY3Q6IFtQQVRDSF0gNTE3MjM6IG1pZ3JhdGUgcGNyZSBtb2R1bGUgdG8gcGNyZTIK LQotIENoZXJyeS1waWNrZWQtYnk6IEx1a8OhxaEgWmFvcmFsIDxsemFvcmFsQHJlZGhhdC5jb20+ Ci0tLS0KLSBTcmMvTW9kdWxlcy9wY3JlLmMgfCAyMjMgKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gVGVzdC9WMDdwY3JlLnp0c3QgIHwgIDEzICsrLQotIGNv bmZpZ3VyZS5hYyAgICAgICB8ICAyMCArKy0tCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0 aW9ucygrKSwgMTQ5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvU3JjL01vZHVsZXMvcGNy ZS5jIGIvU3JjL01vZHVsZXMvcGNyZS5jCi1pbmRleCA0Njg3NWE1OWIuLjA3OWVjYzJjNSAxMDA2 NDQKLS0tLSBhL1NyYy9Nb2R1bGVzL3BjcmUuYwotKysrIGIvU3JjL01vZHVsZXMvcGNyZS5jCi1A QCAtMzQsMTEgKzM0LDExIEBACi0gI2RlZmluZSBDUENSRV9QTEFJTiAwCi0gCi0gLyoqLwotLSNp ZiBkZWZpbmVkKEhBVkVfUENSRV9DT01QSUxFKSAmJiBkZWZpbmVkKEhBVkVfUENSRV9FWEVDKQot LSNpbmNsdWRlIDxwY3JlLmg+Ci0rI2lmIGRlZmluZWQoSEFWRV9QQ1JFMl9DT01QSUxFXzgpICYm IGRlZmluZWQoSEFWRV9QQ1JFMl9IKQotKyNkZWZpbmUgUENSRTJfQ09ERV9VTklUX1dJRFRIIDgK LSsjaW5jbHVkZSA8cGNyZTIuaD4KLSAKLS1zdGF0aWMgcGNyZSAqcGNyZV9wYXR0ZXJuOwotLXN0 YXRpYyBwY3JlX2V4dHJhICpwY3JlX2hpbnRzOwotK3N0YXRpYyBwY3JlMl9jb2RlICpwY3JlX3Bh dHRlcm47Ci0gCi0gLyoqLwotIHN0YXRpYyBpbnQKLUBAIC01NCw4ICs1NCw4IEBAIHpwY3JlX3V0 ZjhfZW5hYmxlZCh2b2lkKQotIAlyZXR1cm4gMDsKLSAKLSAgICAgaWYgKChoYXZlX3V0ZjhfcGNy ZSA9PSAtMSkgJiYKLS0JKHBjcmVfY29uZmlnKFBDUkVfQ09ORklHX1VURjgsICZoYXZlX3V0Zjhf cGNyZSkpKSB7Ci0tCSAgICBoYXZlX3V0ZjhfcGNyZSA9IC0yOyAvKiBlcmssIGZhaWxlZCB0byBh c2sgKi8KLSsgICAgICAgKHBjcmUyX2NvbmZpZyhQQ1JFMl9DT05GSUdfVU5JQ09ERSwgJmhhdmVf dXRmOF9wY3JlKSkpIHsKLSsgICAgICAgICAgIGhhdmVfdXRmOF9wY3JlID0gLTI7IC8qIGVyaywg ZmFpbGVkIHRvIGFzayAqLwotICAgICB9Ci0gCi0gICAgIHJldHVybiAoaGF2ZV91dGY4X3BjcmUg PT0gMSkgJiYgKCFzdHJjbXAobmxfbGFuZ2luZm8oQ09ERVNFVCksICJVVEYtOCIpKTsKLUBAIC02 OSwxMTUgKzY5LDg3IEBAIHpwY3JlX3V0ZjhfZW5hYmxlZCh2b2lkKQotIHN0YXRpYyBpbnQKLSBi aW5fcGNyZV9jb21waWxlKGNoYXIgKm5hbSwgY2hhciAqKmFyZ3MsIE9wdGlvbnMgb3BzLCBVTlVT RUQoaW50IGZ1bmMpKQotIHsKLS0gICAgaW50IHBjcmVfb3B0cyA9IDAsIHBjcmVfZXJycHRyLCB0 YXJnZXRfbGVuOwotLSAgICBjb25zdCBjaGFyICpwY3JlX2Vycm9yOwotKyAgICB1aW50MzJfdCBw Y3JlX29wdHMgPSAwOwotKyAgICBpbnQgdGFyZ2V0X2xlbjsKLSsgICAgaW50IHBjcmVfZXJyb3I7 Ci0rICAgIFBDUkUyX1NJWkUgcGNyZV9vZmZzZXQ7Ci0gICAgIGNoYXIgKnRhcmdldDsKLSAgICAg Ci0tICAgIGlmKE9QVF9JU1NFVChvcHMsJ2EnKSkgcGNyZV9vcHRzIHw9IFBDUkVfQU5DSE9SRUQ7 Ci0tICAgIGlmKE9QVF9JU1NFVChvcHMsJ2knKSkgcGNyZV9vcHRzIHw9IFBDUkVfQ0FTRUxFU1M7 Ci0tICAgIGlmKE9QVF9JU1NFVChvcHMsJ20nKSkgcGNyZV9vcHRzIHw9IFBDUkVfTVVMVElMSU5F OwotLSAgICBpZihPUFRfSVNTRVQob3BzLCd4JykpIHBjcmVfb3B0cyB8PSBQQ1JFX0VYVEVOREVE OwotLSAgICBpZihPUFRfSVNTRVQob3BzLCdzJykpIHBjcmVfb3B0cyB8PSBQQ1JFX0RPVEFMTDsK LSsgICAgaWYgKE9QVF9JU1NFVChvcHMsICdhJykpIHBjcmVfb3B0cyB8PSBQQ1JFMl9BTkNIT1JF RDsKLSsgICAgaWYgKE9QVF9JU1NFVChvcHMsICdpJykpIHBjcmVfb3B0cyB8PSBQQ1JFMl9DQVNF TEVTUzsKLSsgICAgaWYgKE9QVF9JU1NFVChvcHMsICdtJykpIHBjcmVfb3B0cyB8PSBQQ1JFMl9N VUxUSUxJTkU7Ci0rICAgIGlmIChPUFRfSVNTRVQob3BzLCAneCcpKSBwY3JlX29wdHMgfD0gUENS RTJfRVhURU5ERUQ7Ci0rICAgIGlmIChPUFRfSVNTRVQob3BzLCAncycpKSBwY3JlX29wdHMgfD0g UENSRTJfRE9UQUxMOwotICAgICAKLSAgICAgaWYgKHpwY3JlX3V0ZjhfZW5hYmxlZCgpKQotLQlw Y3JlX29wdHMgfD0gUENSRV9VVEY4OwotLQotLSNpZmRlZiBIQVZFX1BDUkVfU1RVRFkKLS0gICAg aWYgKHBjcmVfaGludHMpCi0tI2lmZGVmIFBDUkVfQ09ORklHX0pJVAotLQlwY3JlX2ZyZWVfc3R1 ZHkocGNyZV9oaW50cyk7Ci0tI2Vsc2UKLS0JcGNyZV9mcmVlKHBjcmVfaGludHMpOwotLSNlbmRp ZgotLSAgICBwY3JlX2hpbnRzID0gTlVMTDsKLS0jZW5kaWYKLSsJcGNyZV9vcHRzIHw9IFBDUkUy X1VURjsKLSAKLSAgICAgaWYgKHBjcmVfcGF0dGVybikKLS0JcGNyZV9mcmVlKHBjcmVfcGF0dGVy bik7Ci0rCXBjcmUyX2NvZGVfZnJlZShwY3JlX3BhdHRlcm4pOwotICAgICBwY3JlX3BhdHRlcm4g PSBOVUxMOwotIAotICAgICB0YXJnZXQgPSB6dHJkdXAoKmFyZ3MpOwotICAgICB1bm1ldGFmeSh0 YXJnZXQsICZ0YXJnZXRfbGVuKTsKLSAKLS0gICAgaWYgKChpbnQpc3RybGVuKHRhcmdldCkgIT0g dGFyZ2V0X2xlbikgewotLQl6d2Fybm5hbShuYW0sICJlbWJlZGRlZCBOVUxzIGluIFBDUkUgcGF0 dGVybiB0ZXJtaW5hdGUgcGF0dGVybiIpOwotLSAgICB9Ci0tCi0tICAgIHBjcmVfcGF0dGVybiA9 IHBjcmVfY29tcGlsZSh0YXJnZXQsIHBjcmVfb3B0cywgJnBjcmVfZXJyb3IsICZwY3JlX2VycnB0 ciwgTlVMTCk7Ci0rICAgIHBjcmVfcGF0dGVybiA9IHBjcmUyX2NvbXBpbGUoKFBDUkUyX1NQVFIp IHRhcmdldCwgKFBDUkUyX1NJWkUpIHRhcmdldF9sZW4sCi0rCSAgICBwY3JlX29wdHMsICZwY3Jl X2Vycm9yLCAmcGNyZV9vZmZzZXQsIE5VTEwpOwotIAotICAgICBmcmVlKHRhcmdldCk7Ci0gCi0g ICAgIGlmIChwY3JlX3BhdHRlcm4gPT0gTlVMTCkKLSAgICAgewotLQl6d2Fybm5hbShuYW0sICJl cnJvciBpbiByZWdleDogJXMiLCBwY3JlX2Vycm9yKTsKLSsJUENSRTJfVUNIQVIgYnVmZmVyWzI1 Nl07Ci0rCXBjcmUyX2dldF9lcnJvcl9tZXNzYWdlKHBjcmVfZXJyb3IsIGJ1ZmZlciwgc2l6ZW9m KGJ1ZmZlcikpOwotKwl6d2Fybm5hbShuYW0sICJlcnJvciBpbiByZWdleDogJXMiLCBidWZmZXIp OwotIAlyZXR1cm4gMTsKLSAgICAgfQotICAgICAKLSAgICAgcmV0dXJuIDA7Ci0gfQotIAotLS8q Ki8KLS0jaWZkZWYgSEFWRV9QQ1JFX1NUVURZCi0tCi0gLyoqLwotIHN0YXRpYyBpbnQKLSBiaW5f cGNyZV9zdHVkeShjaGFyICpuYW0sIFVOVVNFRChjaGFyICoqYXJncyksIFVOVVNFRChPcHRpb25z IG9wcyksIFVOVVNFRChpbnQgZnVuYykpCi0gewotLSAgICBjb25zdCBjaGFyICpwY3JlX2Vycm9y OwotLQotICAgICBpZiAocGNyZV9wYXR0ZXJuID09IE5VTEwpCi0gICAgIHsKLSAJendhcm5uYW0o bmFtLCAibm8gcGF0dGVybiBoYXMgYmVlbiBjb21waWxlZCBmb3Igc3R1ZHkiKTsKLSAJcmV0dXJu IDE7Ci0gICAgIH0KLS0gICAgCi0tICAgIGlmIChwY3JlX2hpbnRzKQotLSNpZmRlZiBQQ1JFX0NP TkZJR19KSVQKLS0JcGNyZV9mcmVlX3N0dWR5KHBjcmVfaGludHMpOwotLSNlbHNlCi0tCXBjcmVf ZnJlZShwY3JlX2hpbnRzKTsKLS0jZW5kaWYKLS0gICAgcGNyZV9oaW50cyA9IE5VTEw7Ci0gCi0t ICAgIHBjcmVfaGludHMgPSBwY3JlX3N0dWR5KHBjcmVfcGF0dGVybiwgMCwgJnBjcmVfZXJyb3Ip OwotLSAgICBpZiAocGNyZV9lcnJvciAhPSBOVUxMKQotLSAgICB7Ci0tCXp3YXJubmFtKG5hbSwg ImVycm9yIHdoaWxlIHN0dWR5aW5nIHJlZ2V4OiAlcyIsIHBjcmVfZXJyb3IpOwotLQlyZXR1cm4g MTsKLSsgICAgaW50IGppdCA9IDA7Ci0rICAgIGlmICghcGNyZTJfY29uZmlnKFBDUkUyX0NPTkZJ R19KSVQsICZqaXQpICYmIGppdCkgewotKwlpZiAocGNyZTJfaml0X2NvbXBpbGUocGNyZV9wYXR0 ZXJuLCBQQ1JFMl9KSVRfQ09NUExFVEUpIDwgMCkgewotKwkgICAgendhcm5uYW0obmFtLCAiZXJy b3Igd2hpbGUgc3R1ZHlpbmcgcmVnZXgiKTsKLSsJICAgIHJldHVybiAxOwotKwl9Ci0gICAgIH0K LSAgICAgCi0gICAgIHJldHVybiAwOwotIH0KLSAKLS0vKiovCi0tI2Vsc2UgLyogIUhBVkVfUENS RV9TVFVEWSAqLwotLQotLSMgZGVmaW5lIGJpbl9wY3JlX3N0dWR5IGJpbl9ub3RhdmFpbAotLQot LS8qKi8KLS0jZW5kaWYgLyogIUhBVkVfUENSRV9TVFVEWSAqLwotLQotLS8qKi8KLSBzdGF0aWMg aW50Ci0tenBjcmVfZ2V0X3N1YnN0cmluZ3MoY2hhciAqYXJnLCBpbnQgKm92ZWMsIGludCBjYXB0 dXJlZF9jb3VudCwgY2hhciAqbWF0Y2h2YXIsCi0tCQkgICAgIGNoYXIgKnN1YnN0cmF2YXIsIGlu dCB3YW50X29mZnNldF9wYWlyLCBpbnQgbWF0Y2hlZGluYXJyLAotLQkJICAgICBpbnQgd2FudF9i ZWdpbl9lbmQpCi0renBjcmVfZ2V0X3N1YnN0cmluZ3MoY2hhciAqYXJnLCBwY3JlMl9tYXRjaF9k YXRhICptZGF0YSwgaW50IGNhcHR1cmVkX2NvdW50LAotKwljaGFyICptYXRjaHZhciwgY2hhciAq c3Vic3RyYXZhciwgaW50IHdhbnRfb2Zmc2V0X3BhaXIsCi0rCWludCBtYXRjaGVkaW5hcnIsIGlu dCB3YW50X2JlZ2luX2VuZCkKLSB7Ci0tICAgIGNoYXIgKipjYXB0dXJlcywgKm1hdGNoX2FsbCwg KiptYXRjaGVzOwotKyAgICBQQ1JFMl9TSVpFICpvdmVjOwotKyAgICBjaGFyICptYXRjaF9hbGws ICoqbWF0Y2hlczsKLSAgICAgY2hhciBvZmZzZXRfYWxsWzUwXTsKLSAgICAgaW50IGNhcHR1cmVf c3RhcnQgPSAxOwotIAotICAgICBpZiAobWF0Y2hlZGluYXJyKSB7Ci0tCS8qIGJhc2gtc3R5bGUg Y2FwdHVyZXNbMF0gZW50aXJlLW1hdGNoZWQgc3RyaW5nIGluIHRoZSBhcnJheSAqLwotKwkvKiBi YXNoLXN0eWxlIG92ZWNbMF0gZW50aXJlLW1hdGNoZWQgc3RyaW5nIGluIHRoZSBhcnJheSAqLwot IAljYXB0dXJlX3N0YXJ0ID0gMDsKLSAgICAgfQotIAotLSAgICAvKiBjYXB0dXJlc1swXSB3aWxs IGJlIGVudGlyZSBtYXRjaGVkIHN0cmluZywgWzFdIGZpcnN0IHN1YnN0cmluZyAqLwotLSAgICBp ZiAoIXBjcmVfZ2V0X3N1YnN0cmluZ19saXN0KGFyZywgb3ZlYywgY2FwdHVyZWRfY291bnQsIChj b25zdCBjaGFyICoqKikmY2FwdHVyZXMpKSB7Ci0tCWludCBuZWxlbSA9IGFycmxlbihjYXB0dXJl cyktMTsKLSsgICAgLyogb3ZlY1swXSB3aWxsIGJlIGVudGlyZSBtYXRjaGVkIHN0cmluZywgWzFd IGZpcnN0IHN1YnN0cmluZyAqLwotKyAgICBvdmVjID0gcGNyZTJfZ2V0X292ZWN0b3JfcG9pbnRl cihtZGF0YSk7Ci0rICAgIGlmIChvdmVjKSB7Ci0rCWludCBuZWxlbSA9IGNhcHR1cmVkX2NvdW50 IC0gMTsKLSAJLyogU2V0IHRvIHRoZSBvZmZzZXRzIG9mIHRoZSBjb21wbGV0ZSBtYXRjaCAqLwot IAlpZiAod2FudF9vZmZzZXRfcGFpcikgewotLQkgICAgc3ByaW50ZihvZmZzZXRfYWxsLCAiJWQg JWQiLCBvdmVjWzBdLCBvdmVjWzFdKTsKLSsJICAgIHNwcmludGYob2Zmc2V0X2FsbCwgIiVsZCAl bGQiLCBvdmVjWzBdLCBvdmVjWzFdKTsKLSAJICAgIHNldHNwYXJhbSgiWlBDUkVfT1AiLCB6dHJk dXAob2Zmc2V0X2FsbCkpOwotIAl9Ci0gCS8qCi1AQCAtMTg2LDcgKzE1OCw3IEBAIHpwY3JlX2dl dF9zdWJzdHJpbmdzKGNoYXIgKmFyZywgaW50ICpvdmVjLCBpbnQgY2FwdHVyZWRfY291bnQsIGNo YXIgKm1hdGNodmFyLAotIAkgKiBvdmVjIGlzIGxlbmd0aCAyKigxK2NhcHR1cmVfbGlzdF9sZW5n dGgpCi0gCSAqLwotIAlpZiAobWF0Y2h2YXIpIHsKLS0JICAgIG1hdGNoX2FsbCA9IG1ldGFmeShj YXB0dXJlc1swXSwgb3ZlY1sxXSAtIG92ZWNbMF0sIE1FVEFfRFVQKTsKLSsJICAgIG1hdGNoX2Fs bCA9IG1ldGFmeShhcmcgKyBvdmVjWzBdLCBvdmVjWzFdIC0gb3ZlY1swXSwgTUVUQV9EVVApOwot IAkgICAgc2V0c3BhcmFtKG1hdGNodmFyLCBtYXRjaF9hbGwpOwotIAl9Ci0gCS8qCi1AQCAtMjAx LDE2ICsxNzMsMTIgQEAgenBjcmVfZ2V0X3N1YnN0cmluZ3MoY2hhciAqYXJnLCBpbnQgKm92ZWMs IGludCBjYXB0dXJlZF9jb3VudCwgY2hhciAqbWF0Y2h2YXIsCi0gCSAqLwotIAlpZiAoc3Vic3Ry YXZhciAmJgotIAkgICAgKCF3YW50X2JlZ2luX2VuZCB8fCBuZWxlbSkpIHsKLS0JICAgIGNoYXIg Kip4LCAqKnk7Ci0rCSAgICBjaGFyICoqeDsKLSAJICAgIGludCB2ZWNfb2ZmLCBpOwotLQkgICAg eSA9ICZjYXB0dXJlc1tjYXB0dXJlX3N0YXJ0XTsKLSAJICAgIG1hdGNoZXMgPSB4ID0gKGNoYXIg KiopIHphbGxvYyhzaXplb2YoY2hhciAqKSAqIChjYXB0dXJlZF9jb3VudCsxLWNhcHR1cmVfc3Rh cnQpKTsKLS0JICAgIGZvciAoaSA9IGNhcHR1cmVfc3RhcnQ7IGkgPCBjYXB0dXJlZF9jb3VudDsg aSsrLCB5KyspIHsKLSsJICAgIGZvciAoaSA9IGNhcHR1cmVfc3RhcnQ7IGkgPCBjYXB0dXJlZF9j b3VudDsgaSsrKSB7Ci0gCQl2ZWNfb2ZmID0gMippOwotLQkJaWYgKCp5KQotLQkJICAgICp4Kysg PSBtZXRhZnkoKnksIG92ZWNbdmVjX29mZisxXS1vdmVjW3ZlY19vZmZdLCBNRVRBX0RVUCk7Ci0t CQllbHNlCi0tCQkgICAgKngrKyA9IE5VTEw7Ci0rCQkqeCsrID0gbWV0YWZ5KGFyZyArIG92ZWNb dmVjX29mZl0sIG92ZWNbdmVjX29mZisxXS1vdmVjW3ZlY19vZmZdLCBNRVRBX0RVUCk7Ci0gCSAg ICB9Ci0gCSAgICAqeCA9IE5VTEw7Ci0gCSAgICBzZXRhcGFyYW0oc3Vic3RyYXZhciwgbWF0Y2hl cyk7Ci1AQCAtMjQ3LDcgKzIxNSw4IEBAIHpwY3JlX2dldF9zdWJzdHJpbmdzKGNoYXIgKmFyZywg aW50ICpvdmVjLCBpbnQgY2FwdHVyZWRfY291bnQsIGNoYXIgKm1hdGNodmFyLAotIAkgICAgc2V0 aXBhcmFtKCJNRU5EIiwgb2ZmcyArICFpc3NldChLU0hBUlJBWVMpIC0gMSk7Ci0gCSAgICBpZiAo bmVsZW0pIHsKLSAJCWNoYXIgKiptYmVnaW4sICoqbWVuZCwgKipicHRyLCAqKmVwdHI7Ci0tCQlp bnQgaSwgKmlwYWlyOwotKwkJaW50IGk7Ci0rCQlzaXplX3QgKmlwYWlyOwotIAotIAkJYnB0ciA9 IG1iZWdpbiA9IHphbGxvYyhzaXplb2YoY2hhciopKihuZWxlbSsxKSk7Ci0gCQllcHRyID0gbWVu ZCA9IHphbGxvYyhzaXplb2YoY2hhciopKihuZWxlbSsxKSk7Ci1AQCAtMjg3LDggKzI1Niw2IEBA IHpwY3JlX2dldF9zdWJzdHJpbmdzKGNoYXIgKmFyZywgaW50ICpvdmVjLCBpbnQgY2FwdHVyZWRf Y291bnQsIGNoYXIgKm1hdGNodmFyLAotIAkJc2V0YXBhcmFtKCJtZW5kIiwgbWVuZCk7Ci0gCSAg ICB9Ci0gCX0KLS0KLS0JcGNyZV9mcmVlX3N1YnN0cmluZ19saXN0KChjb25zdCBjaGFyICoqKWNh cHR1cmVzKTsKLSAgICAgfQotIAotICAgICByZXR1cm4gMDsKLUBAIC0zMTQsNyArMjgxLDggQEAg Z2V0cG9zaW50KGNoYXIgKmluc3RyLCBjaGFyICpuYW0pCi0gc3RhdGljIGludAotIGJpbl9wY3Jl X21hdGNoKGNoYXIgKm5hbSwgY2hhciAqKmFyZ3MsIE9wdGlvbnMgb3BzLCBVTlVTRUQoaW50IGZ1 bmMpKQotIHsKLS0gICAgaW50IHJldCwgY2FwY291bnQsICpvdmVjLCBvdmVjc2l6ZSwgYzsKLSsg ICAgaW50IHJldCwgYzsKLSsgICAgcGNyZTJfbWF0Y2hfZGF0YSAqcGNyZV9tZGF0YSA9IE5VTEw7 Ci0gICAgIGNoYXIgKm1hdGNoZWRfcG9ydGlvbiA9IE5VTEw7Ci0gICAgIGNoYXIgKnBsYWludGV4 dCA9IE5VTEw7Ci0gICAgIGNoYXIgKnJlY2VwdGFjbGUgPSBOVUxMOwotQEAgLTM0NCwzNiArMzEy LDMwIEBAIGJpbl9wY3JlX21hdGNoKGNoYXIgKm5hbSwgY2hhciAqKmFyZ3MsIE9wdGlvbnMgb3Bz LCBVTlVTRUQoaW50IGZ1bmMpKQotICAgICAvKiBGb3IgdGhlIGVudGlyZSBtYXRjaCwgJ1JldHVy bicgdGhlIG9mZnNldCBieXRlIHBvc2l0aW9ucyBpbnN0ZWFkIG9mIHRoZSBtYXRjaGVkIHN0cmlu ZyAqLwotICAgICBpZihPUFRfSVNTRVQob3BzLCdiJykpIHdhbnRfb2Zmc2V0X3BhaXIgPSAxOwot IAotLSAgICBpZiAoKHJldCA9IHBjcmVfZnVsbGluZm8ocGNyZV9wYXR0ZXJuLCBwY3JlX2hpbnRz LCBQQ1JFX0lORk9fQ0FQVFVSRUNPVU5ULCAmY2FwY291bnQpKSkKLS0gICAgewotLQl6d2Fybm5h bShuYW0sICJlcnJvciAlZCBpbiBmdWxsaW5mbyIsIHJldCk7Ci0tCXJldHVybiAxOwotLSAgICB9 Ci0tCi0tICAgIG92ZWNzaXplID0gKGNhcGNvdW50KzEpKjM7Ci0tICAgIG92ZWMgPSB6YWxsb2Mo b3ZlY3NpemUqc2l6ZW9mKGludCkpOwotLQotICAgICBwbGFpbnRleHQgPSB6dHJkdXAoKmFyZ3Mp OwotICAgICB1bm1ldGFmeShwbGFpbnRleHQsICZzdWJqZWN0X2xlbik7Ci0gCi0gICAgIGlmIChv ZmZzZXRfc3RhcnQgPiAwICYmIG9mZnNldF9zdGFydCA+PSBzdWJqZWN0X2xlbikKLS0JcmV0ID0g UENSRV9FUlJPUl9OT01BVENIOwotLSAgICBlbHNlCi0tCXJldCA9IHBjcmVfZXhlYyhwY3JlX3Bh dHRlcm4sIHBjcmVfaGludHMsIHBsYWludGV4dCwgc3ViamVjdF9sZW4sIG9mZnNldF9zdGFydCwg MCwgb3ZlYywgb3ZlY3NpemUpOwotKwlyZXQgPSBQQ1JFMl9FUlJPUl9OT01BVENIOwotKyAgICBl bHNlIHsKLSsJcGNyZV9tZGF0YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVy bihwY3JlX3BhdHRlcm4sIE5VTEwpOwotKwlyZXQgPSBwY3JlMl9tYXRjaChwY3JlX3BhdHRlcm4s IChQQ1JFMl9TUFRSKSBwbGFpbnRleHQsIHN1YmplY3RfbGVuLAotKwkJb2Zmc2V0X3N0YXJ0LCAw LCBwY3JlX21kYXRhLCBOVUxMKTsKLSsgICAgfQotIAotICAgICBpZiAocmV0PT0wKSByZXR1cm5f dmFsdWUgPSAwOwotLSAgICBlbHNlIGlmIChyZXQ9PVBDUkVfRVJST1JfTk9NQVRDSCkgLyogbm8g bWF0Y2ggKi87Ci0rICAgIGVsc2UgaWYgKHJldCA9PSBQQ1JFMl9FUlJPUl9OT01BVENIKSAvKiBu byBtYXRjaCAqLzsKLSAgICAgZWxzZSBpZiAocmV0PjApIHsKLS0JenBjcmVfZ2V0X3N1YnN0cmlu Z3MocGxhaW50ZXh0LCBvdmVjLCByZXQsIG1hdGNoZWRfcG9ydGlvbiwgcmVjZXB0YWNsZSwKLSsJ enBjcmVfZ2V0X3N1YnN0cmluZ3MocGxhaW50ZXh0LCBwY3JlX21kYXRhLCByZXQsIG1hdGNoZWRf cG9ydGlvbiwgcmVjZXB0YWNsZSwKLSAJCQkgICAgIHdhbnRfb2Zmc2V0X3BhaXIsIDAsIDApOwot IAlyZXR1cm5fdmFsdWUgPSAwOwotICAgICB9Ci0gICAgIGVsc2UgewotLQl6d2Fybm5hbShuYW0s ICJlcnJvciBpbiBwY3JlX2V4ZWMgWyVkXSIsIHJldCk7Ci0rCXp3YXJubmFtKG5hbSwgImVycm9y IGluIHBjcmUyX21hdGNoIFslZF0iLCByZXQpOwotICAgICB9Ci0gICAgIAotLSAgICBpZiAob3Zl YykKLS0JemZyZWUob3ZlYywgb3ZlY3NpemUqc2l6ZW9mKGludCkpOwotKyAgICBpZiAocGNyZV9t ZGF0YSkKLSsJcGNyZTJfbWF0Y2hfZGF0YV9mcmVlKHBjcmVfbWRhdGEpOwotICAgICB6c2ZyZWUo cGxhaW50ZXh0KTsKLSAKLSAgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKLUBAIC0zODMsMTcgKzM0 NSwxOSBAQCBiaW5fcGNyZV9tYXRjaChjaGFyICpuYW0sIGNoYXIgKiphcmdzLCBPcHRpb25zIG9w cywgVU5VU0VEKGludCBmdW5jKSkKLSBzdGF0aWMgaW50Ci0gY29uZF9wY3JlX21hdGNoKGNoYXIg KiphLCBpbnQgaWQpCi0gewotLSAgICBwY3JlICpwY3JlX3BhdDsKLS0gICAgY29uc3QgY2hhciAq cGNyZV9lcnI7Ci0rICAgIHBjcmUyX2NvZGUgKnBjcmVfcGF0ID0gTlVMTDsKLSsgICAgaW50IHBj cmVfZXJyOwotKyAgICBQQ1JFMl9TSVpFIHBjcmVfZXJyb2ZmOwotICAgICBjaGFyICpsaHN0ciwg KnJocmUsICpsaHN0cl9wbGFpbiwgKnJocmVfcGxhaW4sICphdmFyLCAqc3ZhcjsKLS0gICAgaW50 IHIgPSAwLCBwY3JlX29wdHMgPSAwLCBwY3JlX2VycnB0ciwgY2FwY250LCAqb3YsIG92c2l6ZTsK LSsgICAgaW50IHIgPSAwLCBwY3JlX29wdHMgPSAwOwotKyAgICBwY3JlMl9tYXRjaF9kYXRhICpw Y3JlX21kYXRhID0gTlVMTDsKLSAgICAgaW50IGxoc3RyX3BsYWluX2xlbiwgcmhyZV9wbGFpbl9s ZW47Ci0gICAgIGludCByZXR1cm5fdmFsdWUgPSAwOwotIAotICAgICBpZiAoenBjcmVfdXRmOF9l bmFibGVkKCkpCi0tCXBjcmVfb3B0cyB8PSBQQ1JFX1VURjg7Ci0rCXBjcmVfb3B0cyB8PSBQQ1JF Ml9VVEY7Ci0gICAgIGlmIChpc3NldChSRU1BVENIUENSRSkgJiYgIWlzc2V0KENBU0VNQVRDSCkp Ci0tCXBjcmVfb3B0cyB8PSBQQ1JFX0NBU0VMRVNTOwotKwlwY3JlX29wdHMgfD0gUENSRTJfQ0FT RUxFU1M7Ci0gCi0gICAgIGxoc3RyID0gY29uZF9zdHIoYSwwLDApOwotICAgICByaHJlID0gY29u ZF9zdHIoYSwxLDApOwotQEAgLTQwMSw5ICszNjUsNiBAQCBjb25kX3BjcmVfbWF0Y2goY2hhciAq KmEsIGludCBpZCkKLSAgICAgcmhyZV9wbGFpbiA9IHp0cmR1cChyaHJlKTsKLSAgICAgdW5tZXRh ZnkobGhzdHJfcGxhaW4sICZsaHN0cl9wbGFpbl9sZW4pOwotICAgICB1bm1ldGFmeShyaHJlX3Bs YWluLCAmcmhyZV9wbGFpbl9sZW4pOwotLSAgICBwY3JlX3BhdCA9IE5VTEw7Ci0tICAgIG92ID0g TlVMTDsKLS0gICAgb3ZzaXplID0gMDsKLSAKLSAgICAgaWYgKGlzc2V0KEJBU0hSRU1BVENIKSkg ewotIAlzdmFyID0gTlVMTDsKLUBAIC00MTUsMjcgKzM3NiwyNyBAQCBjb25kX3BjcmVfbWF0Y2go Y2hhciAqKmEsIGludCBpZCkKLSAKLSAgICAgc3dpdGNoKGlkKSB7Ci0gCSBjYXNlIENQQ1JFX1BM QUlOOgotLQkJaWYgKChpbnQpc3RybGVuKHJocmVfcGxhaW4pICE9IHJocmVfcGxhaW5fbGVuKSB7 Ci0tCQkgICAgendhcm4oImVtYmVkZGVkIE5VTHMgaW4gUENSRSBwYXR0ZXJuIHRlcm1pbmF0ZSBw YXR0ZXJuIik7Ci0tCQl9Ci0tCQlwY3JlX3BhdCA9IHBjcmVfY29tcGlsZShyaHJlX3BsYWluLCBw Y3JlX29wdHMsICZwY3JlX2VyciwgJnBjcmVfZXJycHRyLCBOVUxMKTsKLS0JCWlmIChwY3JlX3Bh dCA9PSBOVUxMKSB7Ci0tCQkgICAgendhcm4oImZhaWxlZCB0byBjb21waWxlIHJlZ2V4cCAvJXMv OiAlcyIsIHJocmUsIHBjcmVfZXJyKTsKLSsJCWlmICghKHBjcmVfcGF0ID0gcGNyZTJfY29tcGls ZSgoUENSRTJfU1BUUikgcmhyZV9wbGFpbiwKLSsJCQkoUENSRTJfU0laRSkgcmhyZV9wbGFpbl9s ZW4sIHBjcmVfb3B0cywKLSsJCQkmcGNyZV9lcnIsICZwY3JlX2Vycm9mZiwgTlVMTCkpKQotKwkJ ewotKwkJICAgIFBDUkUyX1VDSEFSIGJ1ZmZlclsyNTZdOwotKwkJICAgIHBjcmUyX2dldF9lcnJv cl9tZXNzYWdlKHBjcmVfZXJyLCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKLSsJCSAgICB6d2Fy bigiZmFpbGVkIHRvIGNvbXBpbGUgcmVnZXhwIC8lcy86ICVzIiwgcmhyZSwgYnVmZmVyKTsKLSAJ CSAgICBicmVhazsKLSAJCX0KLS0gICAgICAgICAgICAgICAgcGNyZV9mdWxsaW5mbyhwY3JlX3Bh dCwgTlVMTCwgUENSRV9JTkZPX0NBUFRVUkVDT1VOVCwgJmNhcGNudCk7Ci0tICAgIAkJb3ZzaXpl ID0gKGNhcGNudCsxKSozOwotLQkJb3YgPSB6YWxsb2Mob3ZzaXplKnNpemVvZihpbnQpKTsKLS0g ICAgCQlyID0gcGNyZV9leGVjKHBjcmVfcGF0LCBOVUxMLCBsaHN0cl9wbGFpbiwgbGhzdHJfcGxh aW5fbGVuLCAwLCAwLCBvdiwgb3ZzaXplKTsKLS0JCS8qIHIgPCAwID0+IGVycm9yOyByPT0wIG1h dGNoIGJ1dCBub3QgZW5vdWdoIHNpemUgaW4gb3YKLSsJCXBjcmVfbWRhdGEgPSBwY3JlMl9tYXRj aF9kYXRhX2NyZWF0ZV9mcm9tX3BhdHRlcm4ocGNyZV9wYXQsIE5VTEwpOwotKwkJciA9IHBjcmUy X21hdGNoKHBjcmVfcGF0LCAoUENSRTJfU1BUUjgpIGxoc3RyX3BsYWluLCBsaHN0cl9wbGFpbl9s ZW4sCi0rCQkJMCwgMCwgcGNyZV9tZGF0YSwgTlVMTCk7Ci0rCQkvKiByIDwgMCA9PiBlcnJvcjsg cj09MCBtYXRjaCBidXQgbm90IGVub3VnaCBzaXplIGluIG1hdGNoIGRhdGEKLSAJCSAqIHIgPiAw ID0+IChyLTEpIHN1YnN0cmluZ3MgZm91bmQ7IHI9PTEgPT4gbm8gc3Vic3RyaW5ncwotIAkJICov Ci0gICAgIAkJaWYgKHI9PTApIHsKLS0JCSAgICB6d2FybigicmVwb3J0YWJsZSB6c2ggcHJvYmxl bTogcGNyZV9leGVjKCkgcmV0dXJuZWQgMCIpOwotKwkJICAgIHp3YXJuKCJyZXBvcnRhYmxlIHpz aCBwcm9ibGVtOiBwY3JlMl9tYXRjaCgpIHJldHVybmVkIDAiKTsKLSAJCSAgICByZXR1cm5fdmFs dWUgPSAxOwotIAkJICAgIGJyZWFrOwotIAkJfQotLQkgICAgICAgIGVsc2UgaWYgKHI9PVBDUkVf RVJST1JfTk9NQVRDSCkgewotKwkJZWxzZSBpZiAociA9PSBQQ1JFMl9FUlJPUl9OT01BVENIKSB7 Ci0gCQkgICAgcmV0dXJuX3ZhbHVlID0gMDsgLyogbm8gbWF0Y2ggKi8KLSAJCSAgICBicmVhazsK LSAJCX0KLUBAIC00NDQsNyArNDA1LDcgQEAgY29uZF9wY3JlX21hdGNoKGNoYXIgKiphLCBpbnQg aWQpCi0gCQkgICAgYnJlYWs7Ci0gCQl9Ci0gICAgICAgICAgICAgICAgIGVsc2UgaWYgKHI+MCkg ewotLQkJICAgIHpwY3JlX2dldF9zdWJzdHJpbmdzKGxoc3RyX3BsYWluLCBvdiwgciwgc3Zhciwg YXZhciwgMCwKLSsJCSAgICB6cGNyZV9nZXRfc3Vic3RyaW5ncyhsaHN0cl9wbGFpbiwgcGNyZV9t ZGF0YSwgciwgc3ZhciwgYXZhciwgMCwKLSAJCQkJCSBpc3NldChCQVNIUkVNQVRDSCksCi0gCQkJ CQkgIWlzc2V0KEJBU0hSRU1BVENIKSk7Ci0gCQkgICAgcmV0dXJuX3ZhbHVlID0gMTsKLUBAIC00 NTcsMTAgKzQxOCwxMCBAQCBjb25kX3BjcmVfbWF0Y2goY2hhciAqKmEsIGludCBpZCkKLSAJZnJl ZShsaHN0cl9wbGFpbik7Ci0gICAgIGlmKHJocmVfcGxhaW4pCi0gCWZyZWUocmhyZV9wbGFpbik7 Ci0rICAgIGlmIChwY3JlX21kYXRhKQotKwlwY3JlMl9tYXRjaF9kYXRhX2ZyZWUocGNyZV9tZGF0 YSk7Ci0gICAgIGlmIChwY3JlX3BhdCkKLS0JcGNyZV9mcmVlKHBjcmVfcGF0KTsKLS0gICAgaWYg KG92KQotLQl6ZnJlZShvdiwgb3ZzaXplKnNpemVvZihpbnQpKTsKLSsJcGNyZTJfY29kZV9mcmVl KHBjcmVfcGF0KTsKLSAKLSAgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKLSB9Ci1AQCAtNDg5LDEx ICs0NTAsMTEgQEAgc3RhdGljIHN0cnVjdCBidWlsdGluIGJpbnRhYltdID0gewotIAotIHN0YXRp YyBzdHJ1Y3QgZmVhdHVyZXMgbW9kdWxlX2ZlYXR1cmVzID0gewotICAgICBiaW50YWIsIHNpemVv ZihiaW50YWIpL3NpemVvZigqYmludGFiKSwKLS0jaWYgZGVmaW5lZChIQVZFX1BDUkVfQ09NUElM RSkgJiYgZGVmaW5lZChIQVZFX1BDUkVfRVhFQykKLSsjaWYgZGVmaW5lZChIQVZFX1BDUkUyX0NP TVBJTEVfOCkgJiYgZGVmaW5lZChIQVZFX1BDUkUyX0gpCi0gICAgIGNvdGFiLCBzaXplb2YoY290 YWIpL3NpemVvZigqY290YWIpLAotLSNlbHNlIC8qICEoSEFWRV9QQ1JFX0NPTVBJTEUgJiYgSEFW RV9QQ1JFX0VYRUMpICovCi0rI2Vsc2UgLyogIShIQVZFX1BDUkUyX0NPTVBJTEVfOCAmJiBIQVZF X1BDUkUyX0gpICovCi0gICAgIE5VTEwsIDAsCi0tI2VuZGlmIC8qICEoSEFWRV9QQ1JFX0NPTVBJ TEUgJiYgSEFWRV9QQ1JFX0VYRUMpICovCi0rI2VuZGlmIC8qICEoSEFWRV9QQ1JFMl9DT01QSUxF XzggJiYgSEFWRV9QQ1JFMl9IKSAqLwotICAgICBOVUxMLCAwLAotICAgICBOVUxMLCAwLAotICAg ICAwCi1AQCAtNTQwLDE5ICs1MDEsOSBAQCBjbGVhbnVwXyhNb2R1bGUgbSkKLSBpbnQKLSBmaW5p c2hfKFVOVVNFRChNb2R1bGUgbSkpCi0gewotLSNpZiBkZWZpbmVkKEhBVkVfUENSRV9DT01QSUxF KSAmJiBkZWZpbmVkKEhBVkVfUENSRV9FWEVDKQotLSNpZmRlZiBIQVZFX1BDUkVfU1RVRFkKLS0g ICAgaWYgKHBjcmVfaGludHMpCi0tI2lmZGVmIFBDUkVfQ09ORklHX0pJVAotLQlwY3JlX2ZyZWVf c3R1ZHkocGNyZV9oaW50cyk7Ci0tI2Vsc2UKLS0JcGNyZV9mcmVlKHBjcmVfaGludHMpOwotLSNl bmRpZgotLSAgICBwY3JlX2hpbnRzID0gTlVMTDsKLS0jZW5kaWYKLS0KLSsjaWYgZGVmaW5lZChI QVZFX1BDUkUyX0NPTVBJTEVfOCkgJiYgZGVmaW5lZChIQVZFX1BDUkUyX0gpCi0gICAgIGlmIChw Y3JlX3BhdHRlcm4pCi0tCXBjcmVfZnJlZShwY3JlX3BhdHRlcm4pOwotKwlwY3JlMl9jb2RlX2Zy ZWUocGNyZV9wYXR0ZXJuKTsKLSAgICAgcGNyZV9wYXR0ZXJuID0gTlVMTDsKLSAjZW5kaWYKLSAK LWRpZmYgLS1naXQgYS9UZXN0L1YwN3BjcmUuenRzdCBiL1Rlc3QvVjA3cGNyZS56dHN0Ci1pbmRl eCAyMmEwYjY0YzcuLjZlYjM2Njk2NCAxMDA2NDQKLS0tLSBhL1Rlc3QvVjA3cGNyZS56dHN0Ci0r KysgYi9UZXN0L1YwN3BjcmUuenRzdAotQEAgLTExNywxMiArMTE3LDE3IEBACi0gPjc4ODg0OyBa UENSRV9PUDogMjUgMzAKLSA+OTAyMTA7IFpQQ1JFX09QOiAzMSAzNgotIAotLSMgRW1iZWRkZWQg TlVMcyBhbGxvd2VkIGluIHBsYWludGV4dCwgYnV0IG5vdCBpbiBSRSAoYWx0aG91Z2ggXDAgYXMg dHdvLWNoYXJzIGFsbG93ZWQpCi0rIyBFbWJlZGRlZCBOVUxzIGFsbG93ZWQgaW4gcGxhaW50ZXh0 LCBpbiBSRSwgcGNyZSBzdXBwb3J0cyBcMCBhcyB0d28tY2hhcnMKLSAgIFtbICQnYVwwYmNcMGQn ID1+ICdeKGFcMC4pKC4rKSQnIF1dCi0gICBwcmludCAiJHsjTUFUQ0h9OyAkeyNtYXRjaFsxXX07 ICR7I21hdGNoWzJdfSIKLSAwOmVuc3VyZSBBU0NJSSBOVUwgcGFzc2VzIGluIGFuZCBvdXQgb2Yg bWF0Y2hlZCBwbGFpbnRleHQKLSA+NjsgMzsgMwotIAotKyMgUENSRTIgc3VwcG9ydHMgTlVMcyBh bHNvIGluIHRoZSBSRQotKyAgW1sgJCdhXDBiXDBjJyA9fiAkJ14oLlwwKSsnIF1dICYmIHByaW50 ICIkeyNNQVRDSH07ICR7I21hdGNoWzFdfSIKLSswOmVuc3VyZSBBU0NJSSBOVUwgd29ya3MgYWxz byBpbiB0aGUgcmVnZXgKLSs+NDsgMgotKwotICMgRW5zdXJlIHRoZSBsb25nLWZvcm0gaW5maXgg b3BlcmF0b3Igd29ya3MKLSAgIFtbIGZvbyAtcGNyZS1tYXRjaCBeZi4uJCBdXQotICAgcHJpbnQg JD8KLUBAIC0xNjksNyArMTc0LDExIEBACi0gICBbWyDDqSA9fiAnXi4uXHonIF1dOyBlY2hvICQ/ Ci0gICBMQU5HPSRMQU5HX1NBVkUKLSAgIFtbIMOpID1+ICdeLlx6JyBdXTsgZWNobyAkPwotLTA6 c3dpY2ggYmV0d2VlbiBDL1VURi04IGxvY2FsZXMKLSswOnN3aXRjaCBiZXR3ZWVuIEMvVVRGLTgg bG9jYWxlcwotID4wCi0gPjAKLSA+MAotKwotKyAgW1sgYWJjID1+ICdhKGQqKWJjJyBdXSAmJiBw cmludCAiJCNNQVRDSDsgJCNtYXRjaDsgJHsjbWF0Y2hbMV19IgotKzA6ZW1wdHkgY2FwdHVyZQot Kz4zOyAxOyAwCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRl eCBkOGExNzc5MWEuLjQ3MTBkMTY1OSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIv Y29uZmlndXJlLmFjCi1AQCAtNDM4LDcgKzQzOCw3IEBAIGZpXSwKLSAKLSBkbmwgRG8geW91IHdh bnQgdG8gbG9vayBmb3IgcGNyZSBzdXBwb3J0PwotIEFDX0FSR19FTkFCTEUocGNyZSwKLS1BU19I RUxQX1NUUklORyhbLS1lbmFibGUtcGNyZV0sW2VuYWJsZSB0aGUgc2VhcmNoIGZvciB0aGUgcGNy ZSBsaWJyYXJ5IChtYXkgY3JlYXRlIHJ1bi10aW1lIGxpYnJhcnkgZGVwZW5kZW5jaWVzKV0pKQot K0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1wY3JlXSxbZW5hYmxlIHRoZSBzZWFyY2ggZm9yIHRo ZSBwY3JlMiBsaWJyYXJ5IChtYXkgY3JlYXRlIHJ1bi10aW1lIGxpYnJhcnkgZGVwZW5kZW5jaWVz KV0pKQotIAotIGRubCBEbyB5b3Ugd2FudCB0byBsb29rIGZvciBjYXBhYmlsaXR5IHN1cHBvcnQ/ Ci0gQUNfQVJHX0VOQUJMRShjYXAsCi1AQCAtNjUyLDEzICs2NTIsMTIgQEAgQUNfSEVBREVSX1NZ U19XQUlUCi0gCi0gb2xkY2ZsYWdzPSIkQ0ZMQUdTIgotIGlmIHRlc3QgeCRlbmFibGVfcGNyZSA9 IHh5ZXM7IHRoZW4KLS1BQ19DSEVDS19QUk9HKFtQQ1JFQ09ORl0sIHBjcmUtY29uZmlnLCBwY3Jl LWNvbmZpZykKLS1kbmwgVHlwaWNhbGx5IChtZWFuaW5nIG9uIHRoaXMgc2luZ2xlIFJlZEhhdCA5 IGJveCBpbiBmcm9udCBvZiBtZSkKLS1kbmwgcGNyZS1jb25maWcgLS1jZmxhZ3MgcHJvZHVjZXMg YSAtSSBvdXRwdXQgd2hpY2ggbmVlZHMgdG8gZ28gaW50bwotK0FDX0NIRUNLX1BST0coW1BDUkVD T05GXSwgcGNyZTItY29uZmlnLCBwY3JlMi1jb25maWcpCi0rZG5sIHBjcmUyLWNvbmZpZyAtLWNm bGFncyBtYXkgcHJvZHVjZSBhIC1JIG91dHB1dCB3aGljaCBuZWVkcyB0byBnbyBpbnRvCi0gZG5s IENQUEZMQUdTIGVsc2UgY29uZmlndXJlJ3MgcHJlcHJvY2Vzc29yIHRlc3RzIGRvbid0IHBpY2sg aXQgdXAsCi0gZG5sIHByb2R1Y2luZyBhIHdhcm5pbmcuCi0taWYgdGVzdCAieCRhY19jdl9wcm9n X1BDUkVDT05GIiA9IHhwY3JlLWNvbmZpZzsgdGhlbgotLSAgQ1BQRkxBR1M9IiRDUFBGTEFHUyBg cGNyZS1jb25maWcgLS1jZmxhZ3NgIgotK2lmIHRlc3QgIngkYWNfY3ZfcHJvZ19QQ1JFQ09ORiIg PSB4cGNyZTItY29uZmlnOyB0aGVuCi0rICBDUFBGTEFHUz0iJENQUEZMQUdTIGBwY3JlMi1jb25m aWcgLS1jZmxhZ3NgIgotIGZpCi0gZmkKLSAKLUBAIC02NjgsOSArNjY3LDEwIEBAIEFDX0NIRUNL X0hFQURFUlMoc3lzL3RpbWUuaCBzeXMvdGltZXMuaCBzeXMvc2VsZWN0LmggdGVybWNhcC5oIHRl cm1pby5oIFwKLSAJCSBsb2NhbGUuaCBlcnJuby5oIHN0ZGlvLmggc3RkYXJnLmggdmFyYXJncy5o IHN0ZGxpYi5oIFwKLSAJCSB1bmlzdGQuaCBzeXMvY2FwYWJpbGl0eS5oIFwKLSAJCSB1dG1wLmgg dXRtcHguaCBzeXMvdHlwZXMuaCBwd2QuaCBncnAuaCBwb2xsLmggc3lzL21tYW4uaCBcCi0tCQkg bmV0aW5ldC9pbl9zeXN0bS5oIHBjcmUuaCBsYW5naW5mby5oIHdjaGFyLmggc3RkZGVmLmggXAot KwkJIG5ldGluZXQvaW5fc3lzdG0uaCBsYW5naW5mby5oIHdjaGFyLmggc3RkZGVmLmggXAotIAkJ IHN5cy9zdHJvcHRzLmggaWNvbnYuaCBuY3Vyc2VzLmggbmN1cnNlc3cvbmN1cnNlcy5oIFwKLSAJ CSBuY3Vyc2VzL25jdXJzZXMuaCkKLStBQ19DSEVDS19IRUFERVJTKFtwY3JlMi5oXSwsLFsjZGVm aW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCA4XSkKLSBpZiB0ZXN0IHgkZHluYW1pYyA9IHh5ZXM7 IHRoZW4KLSAgIEFDX0NIRUNLX0hFQURFUlMoZGxmY24uaCkKLSAgIEFDX0NIRUNLX0hFQURFUlMo ZGwuaCkKLUBAIC05NDgsOSArOTQ4LDcgQEAgaWYgdGVzdCAieCRhY19mb3VuZF9pY29udiIgPSAi eHllcyI7IHRoZW4KLSBmaQotIAotIGlmIHRlc3QgeCRlbmFibGVfcGNyZSA9IHh5ZXM7IHRoZW4K LS1kbmwgcGNyZS1jb25maWcgc2hvdWxkIHByb2JhYmx5IGJlIGVtcGxveWVkIGhlcmUKLS1kbmwg QUNfU0VBUkNIX0xJQlMocGNyZV9jb21waWxlLCBwY3JlKQotLSAgTElCUz0iYCRhY19jdl9wcm9n X1BDUkVDT05GIC0tbGlic2AgJExJQlMiCi0rICBMSUJTPSJgJGFjX2N2X3Byb2dfUENSRUNPTkYg LS1saWJzOGAgJExJQlMiCi0gZmkKLSAKLSBkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1AQCAt MTMxMyw3ICsxMzExLDcgQEAgQUNfQ0hFQ0tfRlVOQ1Moc3RyZnRpbWUgc3RycHRpbWUgbWt0aW1l IHRpbWVsb2NhbCBcCi0gCSAgICAgICBwYXRoY29uZiBzeXNjb25mIFwKLSAJICAgICAgIHRnZXRl bnQgdGlnZXRmbGFnIHRpZ2V0bnVtIHRpZ2V0c3RyIHNldHVwdGVybSBpbml0c2NyIHJlc2l6ZV90 ZXJtIFwKLSAJICAgICAgIGdldGNjaGFyIHNldGNjaGFyIHdhZGR3c3RyIHdnZXRfd2NoIHdpbl93 Y2ggdXNlX2RlZmF1bHRfY29sb3JzIFwKLS0JICAgICAgIHBjcmVfY29tcGlsZSBwY3JlX3N0dWR5 IHBjcmVfZXhlYyBcCi0rCSAgICAgICBwY3JlMl9jb21waWxlXzggXAotIAkgICAgICAgbmxfbGFu Z2luZm8gXAotIAkgICAgICAgZXJhbmQ0OCBvcGVuX21lbXN0cmVhbSBcCi0gCSAgICAgICBwb3Np eF9vcGVucHQgXAotLS0gCi0yLjQxLjAKLQotRnJvbSAxMGJkYmQ4YjViMGI0MzQ0NWFmZjIzZGNk NDEyZjI1Y2Y2YWEzMjhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSnVuLWljaGkg VGFraW1vdG8gPHRha2ltb3RvLWpAa2JhLmJpZ2xvYmUubmUuanA+Ci1EYXRlOiBUdWUsIDIwIEp1 biAyMDIzIDE4OjE0OjI3ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIDUxODc3OiBkbyBub3QgYnVp bGQgcGNyZSBtb2R1bGUgaWYgcGNyZTItY29uZmlnIGlzIG5vdCBmb3VuZAotCi0gQ2hlcnJ5LXBp Y2tlZC1ieTogTHVrw6HFoSBaYW9yYWwgPGx6YW9yYWxAcmVkaGF0LmNvbT4KLS0tLQotIFNyYy9N b2R1bGVzL3BjcmUubWRkIHwgIDIgKy0KLSBjb25maWd1cmUuYWMgICAgICAgICB8IDMxICsrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlv bnMoKyksIDEzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvU3JjL01vZHVsZXMvcGNyZS5t ZGQgYi9TcmMvTW9kdWxlcy9wY3JlLm1kZAotaW5kZXggNmViM2M2OTFiLi4zZTE1NzkxMTcgMTAw NjQ0Ci0tLS0gYS9TcmMvTW9kdWxlcy9wY3JlLm1kZAotKysrIGIvU3JjL01vZHVsZXMvcGNyZS5t ZGQKLUBAIC0xLDUgKzEsNSBAQAotIG5hbWU9enNoL3BjcmUKLS1saW5rPWBpZiB0ZXN0IHgkZW5h YmxlX3BjcmUgPSB4eWVzICYmIChwY3JlLWNvbmZpZyAtLXZlcnNpb24gPi9kZXYvbnVsbCAyPi9k ZXYvbnVsbCk7IHRoZW4gZWNobyBkeW5hbWljOyBlbHNlIGVjaG8gbm87IGZpYAotK2xpbms9YGlm IHRlc3QgeCRlbmFibGVfcGNyZSA9IHh5ZXM7IHRoZW4gZWNobyBkeW5hbWljOyBlbHNlIGVjaG8g bm87IGZpYAotIGxvYWQ9bm8KLSAKLSBhdXRvZmVhdHVyZXM9ImI6cGNyZV9jb21waWxlIGI6cGNy ZV9zdHVkeSBiOnBjcmVfbWF0Y2giCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmln dXJlLmFjCi1pbmRleCBiYTc2ZjlhNjAuLmM1MjYzMDM1ZSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3Vy ZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNDQwLDYgKzQ0MCwxNyBAQCBkbmwgRG8geW91 IHdhbnQgdG8gbG9vayBmb3IgcGNyZSBzdXBwb3J0PwotIEFDX0FSR19FTkFCTEUocGNyZSwKLSBB U19IRUxQX1NUUklORyhbLS1lbmFibGUtcGNyZV0sW2VuYWJsZSB0aGUgc2VhcmNoIGZvciB0aGUg cGNyZTIgbGlicmFyeSAobWF5IGNyZWF0ZSBydW4tdGltZSBsaWJyYXJ5IGRlcGVuZGVuY2llcyld KSkKLSAKLStBQ19BUkdfVkFSKFBDUkVfQ09ORklHLCBbcGF0aG5hbWUgb2YgcGNyZTItY29uZmln IGlmIGl0IGlzIG5vdCBpbiBQQVRIXSkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9wY3JlIiA9IHh5ZXM7 IHRoZW4KLSsgIEFDX0NIRUNLX1BST0coW1BDUkVfQ09ORklHXSwgcGNyZTItY29uZmlnLCBwY3Jl Mi1jb25maWcpCi0rICBpZiB0ZXN0ICJ4JFBDUkVfQ09ORklHIiA9IHg7IHRoZW4KLSsgICAgZW5h YmxlX3BjcmU9bm8KLSsgICAgQUNfTVNHX1dBUk4oW3BjcmUyLWNvbmZpZyBub3QgZm91bmQ6IHBj cmUgbW9kdWxlIGlzIGRpc2FibGVkLl0pCi0rICAgIEFDX01TR19OT1RJQ0UoCi0rICAgICAgW1Nl dCBQQ1JFX0NPTkZJRyB0byBwYXRobmFtZSBvZiBwY3JlMi1jb25maWcgaWYgaXQgaXMgbm90IGlu IFBBVEguXSkKLSsgIGZpCi0rZmkKLSsKLSBkbmwgRG8geW91IHdhbnQgdG8gbG9vayBmb3IgY2Fw YWJpbGl0eSBzdXBwb3J0PwotIEFDX0FSR19FTkFCTEUoY2FwLAotIEFTX0hFTFBfU1RSSU5HKFst LWVuYWJsZS1jYXBdLFtlbmFibGUgdGhlIHNlYXJjaCBmb3IgUE9TSVggY2FwYWJpbGl0aWVzICht YXkgcmVxdWlyZSBhZGRpdGlvbmFsIGhlYWRlcnMgdG8gYmUgYWRkZWQgYnkgaGFuZCldKSkKLUBA IC02NTUsMTUgKzY2NiwxMiBAQCBBQ19IRUFERVJfRElSRU5UCi0gQUNfSEVBREVSX1NUQVQKLSBB Q19IRUFERVJfU1lTX1dBSVQKLSAKLS1vbGRjZmxhZ3M9IiRDRkxBR1MiCi0taWYgdGVzdCB4JGVu YWJsZV9wY3JlID0geHllczsgdGhlbgotLUFDX0NIRUNLX1BST0coW1BDUkVDT05GXSwgcGNyZTIt Y29uZmlnLCBwY3JlMi1jb25maWcpCi0gZG5sIHBjcmUyLWNvbmZpZyAtLWNmbGFncyBtYXkgcHJv ZHVjZSBhIC1JIG91dHB1dCB3aGljaCBuZWVkcyB0byBnbyBpbnRvCi0gZG5sIENQUEZMQUdTIGVs c2UgY29uZmlndXJlJ3MgcHJlcHJvY2Vzc29yIHRlc3RzIGRvbid0IHBpY2sgaXQgdXAsCi0gZG5s IHByb2R1Y2luZyBhIHdhcm5pbmcuCi0taWYgdGVzdCAieCRhY19jdl9wcm9nX1BDUkVDT05GIiA9 IHhwY3JlMi1jb25maWc7IHRoZW4KLS0gIENQUEZMQUdTPSIkQ1BQRkxBR1MgYHBjcmUyLWNvbmZp ZyAtLWNmbGFnc2AiCi0tZmkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9wY3JlIiA9IHh5ZXM7IHRoZW4K LSsgIENQUEZMQUdTPSJgJFBDUkVfQ09ORklHIC0tY2ZsYWdzYCAkQ1BQRkxBR1MiCi0rICBBQ19D SEVDS19IRUFERVJTKFtwY3JlMi5oXSwsLFsjZGVmaW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCA4 XSkKLSBmaQotIAotIEFDX0NIRUNLX0hFQURFUlMoc3lzL3RpbWUuaCBzeXMvdGltZXMuaCBzeXMv c2VsZWN0LmggdGVybWNhcC5oIHRlcm1pby5oIFwKLUBAIC02NzUsNyArNjgzLDYgQEAgQUNfQ0hF Q0tfSEVBREVSUyhzeXMvdGltZS5oIHN5cy90aW1lcy5oIHN5cy9zZWxlY3QuaCB0ZXJtY2FwLmgg dGVybWlvLmggXAotIAkJIG5ldGluZXQvaW5fc3lzdG0uaCBsYW5naW5mby5oIHdjaGFyLmggc3Rk ZGVmLmggXAotIAkJIHN5cy9zdHJvcHRzLmggaWNvbnYuaCBuY3Vyc2VzLmggbmN1cnNlc3cvbmN1 cnNlcy5oIFwKLSAJCSBuY3Vyc2VzL25jdXJzZXMuaCkKLS1BQ19DSEVDS19IRUFERVJTKFtwY3Jl Mi5oXSwsLFsjZGVmaW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCA4XSkKLSBpZiB0ZXN0IHgkZHlu YW1pYyA9IHh5ZXM7IHRoZW4KLSAgIEFDX0NIRUNLX0hFQURFUlMoZGxmY24uaCkKLSAgIEFDX0NI RUNLX0hFQURFUlMoZGwuaCkKLUBAIC05NTIsMTAgKzk1OSw2IEBAIGlmIHRlc3QgIngkYWNfZm91 bmRfaWNvbnYiID0gInh5ZXMiOyB0aGVuCi0gICAgIFtEZWZpbmUgYXMgY29uc3QgaWYgdGhlIGRl Y2xhcmF0aW9uIG9mIGljb252KCkgbmVlZHMgY29uc3QuXSkKLSBmaQotIAotLWlmIHRlc3QgeCRl bmFibGVfcGNyZSA9IHh5ZXM7IHRoZW4KLS0gIExJQlM9ImAkYWNfY3ZfcHJvZ19QQ1JFQ09ORiAt LWxpYnM4YCAkTElCUyIKLS1maQotLQotIGRubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBkbmwg Q0hFQ0sgVEVSTUNBUCBMSUJSQVJZCi0gZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQEAgLTEz MTYsNyArMTMxOSw2IEBAIEFDX0NIRUNLX0ZVTkNTKHN0cmZ0aW1lIHN0cnB0aW1lIG1rdGltZSB0 aW1lbG9jYWwgXAotIAkgICAgICAgcGF0aGNvbmYgc3lzY29uZiBcCi0gCSAgICAgICB0Z2V0ZW50 IHRpZ2V0ZmxhZyB0aWdldG51bSB0aWdldHN0ciBzZXR1cHRlcm0gaW5pdHNjciByZXNpemVfdGVy bSBcCi0gCSAgICAgICBnZXRjY2hhciBzZXRjY2hhciB3YWRkd3N0ciB3Z2V0X3djaCB3aW5fd2No IHVzZV9kZWZhdWx0X2NvbG9ycyBcCi0tCSAgICAgICBwY3JlMl9jb21waWxlXzggXAotIAkgICAg ICAgbmxfbGFuZ2luZm8gXAotIAkgICAgICAgZXJhbmQ0OCBvcGVuX21lbXN0cmVhbSBcCi0gCSAg ICAgICBwb3NpeF9vcGVucHQgXAotQEAgLTEzNzEsNiArMTM3MywxMSBAQCBpZiB0ZXN0IHgkenNo X2N2X2Z1bmNfcmVhbHBhdGhfYWNjZXB0c19udWxsID0geHllczsgdGhlbgotICAgQUNfREVGSU5F KFJFQUxQQVRIX0FDQ0VQVFNfTlVMTCkKLSBmaQotIAotK2lmIHRlc3QgeCRlbmFibGVfcGNyZSA9 IHh5ZXM7IHRoZW4KLSsgIExJQlM9ImAkUENSRV9DT05GSUcgLS1saWJzOGAgJExJQlMiCi0rICBB Q19DSEVDS19GVU5DUyhwY3JlMl9jb21waWxlXzgpCi0rZmkKLSsKLSBpZiB0ZXN0IHgkZW5hYmxl X2NhcCA9IHh5ZXM7IHRoZW4KLSAgIEFDX0NIRUNLX0ZVTkNTKGNhcF9nZXRfcHJvYykKLSBmaQot LS0gCi0yLjQyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDYtenNoLXN1cHBvcnQtdGV4aW5mby03LjAu cGF0Y2ggYi8wMDA2LXpzaC1zdXBwb3J0LXRleGluZm8tNy4wLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBjNjhiZDI2Li4wMDAwMDAwCi0tLSBhLzAwMDYtenNoLXN1cHBvcnQt dGV4aW5mby03LjAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi1Gcm9tIGVj ZDNmOWM5NTA2Yzc3MjBkYzZjMDgzM2RjNWQ1ZWIwMGU0NDU5YzQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBKdW4taWNoaSBUYWtpbW90byA8dGFraW1vdG8takBrYmEuYmlnbG9iZS5u ZS5qcD4KLURhdGU6IE1vbiwgMTkgSnVuIDIwMjMgMTE6MTk6MjUgKzA5MDAKLVN1YmplY3Q6IFtQ QVRDSF0gNTE4NjI6IHN1cHBvcnQgdGV4aW5mby03LjAKLQotVXBzdHJlYW0tY29tbWl0OiBlY2Qz ZjljOTUwNmM3NzIwZGM2YzA4MzNkYzVkNWViMDBlNDQ1OWM0Ci1DaGVycnktcGlja2VkLWJ5OiBM dWvDocWhIFphb3JhbCA8bHphb3JhbEByZWRoYXQuY29tPgotLS0tCi0gRG9jL01ha2VmaWxlLmlu IHwgMyArKy0KLSBjb25maWd1cmUuYWMgICAgfCA1ICsrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL0RvYy9NYWtlZmls ZS5pbiBiL0RvYy9NYWtlZmlsZS5pbgotaW5kZXggMTM2YjA4MGQ2Li5kYWJlMTFmZTMgMTAwNjQ0 Ci0tLS0gYS9Eb2MvTWFrZWZpbGUuaW4KLSsrKyBiL0RvYy9NYWtlZmlsZS5pbgotQEAgLTQzLDYg KzQzLDcgQEAgVEVYSTJEVkkgPSBAVEVYSTJEVklACi0gRFZJUFMgPSBkdmlwcwotIFRFWEkyUERG ICA9IEBURVhJMlBERkAKLSBURVhJMkhUTUwgPSBAVEVYSTJIVE1MQAotK1NFVF9URVhJMkFOWV9W QVIgPSBAU0VUX1RFWEkyQU5ZX1ZBUkAKLSBQQVBFUlNJWkUgPSBAUEFQRVJTSVpFQAotIAotIC5T VUZGSVhFUzogLnlvIC4xCi1AQCAtMjY2LDcgKzI2Nyw3IEBAIHRleGkyaHRtbC5jb25mOiAkKHNk aXJfdG9wKS9Db25maWcvdmVyc2lvbi5tawotIAlkPWBlY2hvICQoVkVSU0lPTl9EQVRFKWA7IFwK LSAJdj0iPGZvbnQgc2l6ZT1cIi0xXCI+WnNoIHZlcnNpb24gJChWRVJTSU9OKSwgcmVsZWFzZWQg b24gJCRkLjwvZm9udD4iOyBcCi0gCWNhc2UgJyQoVEVYSTJIVE1MKScgaW4gXAotLQkgICp0ZXhp MmFueSopIGVjaG8gInNldF9mcm9tX2luaXRfZmlsZSgnUFJFX0JPRFlfQ0xPU0UnLCckJHYnKTsi IDs7IFwKLSsJICAqdGV4aTJhbnkqKSBlY2hvICIkKFNFVF9URVhJMkFOWV9WQVIpKCdQUkVfQk9E WV9DTE9TRScsJyQkdicpOyIgOzsgXAotIAkgICopIGVjaG8gIlwkJFBSRV9CT0RZX0NMT1NFID0g JyQkdic7IiA7OyBcCi0gCWVzYWMgPiAkQAotIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBi L2NvbmZpZ3VyZS5hYwotaW5kZXggNDcxMGQxNjU5Li5iYTc2ZjlhNjAgMTAwNjQ0Ci0tLS0gYS9j b25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTYyMyw3ICs2MjMsMTIgQEAgZmkK LSAKLSBpZiB0ZXN0IHgiJFRFWEkySFRNTCIgPSB4dGV4aTJhbnk7IHRoZW4KLSAgIFRFWEkySFRN TD0ndGV4aTJhbnkgLWMgVEVYSTJIVE1MPTEnCi0rICBjYXNlIGB0ZXhpMmFueSAtLXZlcnNpb24g Mj4vZGV2L251bGwgfCBzZWQgLWUgJ3MvXi4qKSAqLy8nIC1lIDFxYCBpbgotKyAgICBbWzEtNl1d LiopIFNFVF9URVhJMkFOWV9WQVI9c2V0X2Zyb21faW5pdF9maWxlIDs7Ci0rICAgICopIFNFVF9U RVhJMkFOWV9WQVI9dGV4aW5mb19zZXRfZnJvbV9pbml0X2ZpbGUgOzsKLSsgIGVzYWMKLSBmaQot K0FDX1NVQlNUKFNFVF9URVhJMkFOWV9WQVIpCi0gCi0gY2FzZSAiJExDX1BBUEVSIiBpbgotICAg Pz9fVVMqKSBQQVBFUlNJWkU9dXMgOzsKLS0tIAotMi40Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDA3 LXpzaC1jb25maWd1cmUtYzk5LnBhdGNoIGIvMDAwNy16c2gtY29uZmlndXJlLWM5OS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRiMzYyMy4uMDAwMDAwMAotLS0gYS8wMDA3 LXpzaC1jb25maWd1cmUtYzk5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAot QXZvaWQgaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZXMgaW4gdGVybWluZm8gZ2xvYmFsIHZhcmlh YmxlIGNoZWNrcy4KLVNvbWUgY29tcGlsZXJzIHJlamVjdCB0aGVzZSBpbmNvbXBhdGlibGUgcG9p bnRlciB0eXBlcywgY2F1c2luZyB0aGUKLWNoZWNrcyB0byBhbHdheXMgZmFpbCwgd2hlbiB0aGVz ZSB2YXJpYWJsZXMgYXJlIGluIGZhY3QgYXZhaWxhYmxlLgotCi1TdWJtaXR0ZWQgdXBzdHJlYW06 IDxodHRwczovL3d3dy56c2gub3JnL21sYS93b3JrZXJzLzIwMjMvbXNnMDExMTIuaHRtbD4KLQot ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggYTU4MjQyZjQ1 M2I0YThmMy4uNTUzNGY0MmRmMTRlYjI4YyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysr IGIvY29uZmlndXJlLmFjCi1AQCAtMTc2OSwyNyArMTc2OSwyNyBAQCBpZiB0ZXN0IHgkenNoX2N2 X3BhdGhfdGVybV9oZWFkZXIgIT0geG5vbmU7IHRoZW4KLSAgIGZpCi0gCi0gICBBQ19NU0dfQ0hF Q0tJTkcoaWYgYm9vbGNvZGVzIGlzIGF2YWlsYWJsZSkKLS0gIEFDX0xJTktfSUZFTFNFKFtBQ19M QU5HX1BST0dSQU0oW1skdGVybV9pbmNsdWRlc11dLCBbW2NoYXIgKip0ZXN0ID0gYm9vbGNvZGVz OyBwdXRzKCp0ZXN0KTtdXSldLFtBQ19ERUZJTkUoSEFWRV9CT09MQ09ERVMpIGJvb2xjb2Rlcz15 ZXNdLFtib29sY29kZXM9bm9dKQotKyAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShb WyR0ZXJtX2luY2x1ZGVzXV0sIFtbY2hhciAqKnRlc3QgPSAoY2hhciAqKilib29sY29kZXM7IHB1 dHMoKnRlc3QpO11dKV0sW0FDX0RFRklORShIQVZFX0JPT0xDT0RFUykgYm9vbGNvZGVzPXllc10s W2Jvb2xjb2Rlcz1ub10pCi0gICBBQ19NU0dfUkVTVUxUKCRib29sY29kZXMpCi0gCi0gICBBQ19N U0dfQ0hFQ0tJTkcoaWYgbnVtY29kZXMgaXMgYXZhaWxhYmxlKQotLSAgQUNfTElOS19JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbWyR0ZXJtX2luY2x1ZGVzXV0sIFtbY2hhciAqKnRlc3QgPSBudW1j b2RlczsgcHV0cygqdGVzdCk7XV0pXSxbQUNfREVGSU5FKEhBVkVfTlVNQ09ERVMpIG51bWNvZGVz PXllc10sW251bWNvZGVzPW5vXSkKLSsgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0o W1skdGVybV9pbmNsdWRlc11dLCBbW2NoYXIgKip0ZXN0ID0gKGNoYXIgKiopbnVtY29kZXM7IHB1 dHMoKnRlc3QpO11dKV0sW0FDX0RFRklORShIQVZFX05VTUNPREVTKSBudW1jb2Rlcz15ZXNdLFtu dW1jb2Rlcz1ub10pCi0gICBBQ19NU0dfUkVTVUxUKCRudW1jb2RlcykKLSAKLSAgIEFDX01TR19D SEVDS0lORyhpZiBzdHJjb2RlcyBpcyBhdmFpbGFibGUpCi0tICBBQ19MSU5LX0lGRUxTRShbQUNf TEFOR19QUk9HUkFNKFtbJHRlcm1faW5jbHVkZXNdXSwgW1tjaGFyICoqdGVzdCA9IHN0cmNvZGVz OyBwdXRzKCp0ZXN0KTtdXSldLFtBQ19ERUZJTkUoSEFWRV9TVFJDT0RFUykgc3RyY29kZXM9eWVz XSxbc3RyY29kZXM9bm9dKQotKyAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWyR0 ZXJtX2luY2x1ZGVzXV0sIFtbY2hhciAqKnRlc3QgPSAoY2hhciAqKilzdHJjb2RlczsgcHV0cygq dGVzdCk7XV0pXSxbQUNfREVGSU5FKEhBVkVfU1RSQ09ERVMpIHN0cmNvZGVzPXllc10sW3N0cmNv ZGVzPW5vXSkKLSAgIEFDX01TR19SRVNVTFQoJHN0cmNvZGVzKQotIAotICAgQUNfTVNHX0NIRUNL SU5HKGlmIGJvb2xuYW1lcyBpcyBhdmFpbGFibGUpCi0tICBBQ19MSU5LX0lGRUxTRShbQUNfTEFO R19QUk9HUkFNKFtbJHRlcm1faW5jbHVkZXNdXSwgW1tjaGFyICoqdGVzdCA9IGJvb2xuYW1lczsg cHV0cygqdGVzdCk7XV0pXSxbQUNfREVGSU5FKEhBVkVfQk9PTE5BTUVTKSBib29sbmFtZXM9eWVz XSxbYm9vbG5hbWVzPW5vXSkKLSsgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sk dGVybV9pbmNsdWRlc11dLCBbW2NoYXIgKip0ZXN0ID0gKGNoYXIgKiopYm9vbG5hbWVzOyBwdXRz KCp0ZXN0KTtdXSldLFtBQ19ERUZJTkUoSEFWRV9CT09MTkFNRVMpIGJvb2xuYW1lcz15ZXNdLFti b29sbmFtZXM9bm9dKQotICAgQUNfTVNHX1JFU1VMVCgkYm9vbG5hbWVzKQotIAotICAgQUNfTVNH X0NIRUNLSU5HKGlmIG51bW5hbWVzIGlzIGF2YWlsYWJsZSkKLS0gIEFDX0xJTktfSUZFTFNFKFtB Q19MQU5HX1BST0dSQU0oW1skdGVybV9pbmNsdWRlc11dLCBbW2NoYXIgKip0ZXN0ID0gbnVtbmFt ZXM7IHB1dHMoKnRlc3QpO11dKV0sW0FDX0RFRklORShIQVZFX05VTU5BTUVTKSBudW1uYW1lcz15 ZXNdLFtudW1uYW1lcz1ub10pCi0rICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtb JHRlcm1faW5jbHVkZXNdXSwgW1tjaGFyICoqdGVzdCA9IChjaGFyICoqKW51bW5hbWVzOyBwdXRz KCp0ZXN0KTtdXSldLFtBQ19ERUZJTkUoSEFWRV9OVU1OQU1FUykgbnVtbmFtZXM9eWVzXSxbbnVt bmFtZXM9bm9dKQotICAgQUNfTVNHX1JFU1VMVCgkbnVtbmFtZXMpCi0gCi0gICBBQ19NU0dfQ0hF Q0tJTkcoaWYgc3RybmFtZXMgaXMgYXZhaWxhYmxlKQotLSAgQUNfTElOS19JRkVMU0UoW0FDX0xB TkdfUFJPR1JBTShbWyR0ZXJtX2luY2x1ZGVzXV0sIFtbY2hhciAqKnRlc3QgPSBzdHJuYW1lczsg cHV0cygqdGVzdCk7XV0pXSxbQUNfREVGSU5FKEhBVkVfU1RSTkFNRVMpIHN0cm5hbWVzPXllc10s W3N0cm5hbWVzPW5vXSkKLSsgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1skdGVy bV9pbmNsdWRlc11dLCBbW2NoYXIgKip0ZXN0ID0gKGNoYXIgKiopc3RybmFtZXM7IHB1dHMoKnRl c3QpO11dKV0sW0FDX0RFRklORShIQVZFX1NUUk5BTUVTKSBzdHJuYW1lcz15ZXNdLFtzdHJuYW1l cz1ub10pCi0gICBBQ19NU0dfUkVTVUxUKCRzdHJuYW1lcykKLSAKLSAgIGRubCBUaGVyZSBhcmUg YXBwYXJlbnRseSBkZWZlY3RpdmUgdGVybWluYWwgbGlicmFyeSBoZWFkZXJzIG9uIHNvbWUKCmRp ZmYgLS1naXQgYS8wMDA4LXpzaC1kZWxldGVmaWxlbGlzdC1zZWdmYXVsdC5wYXRjaCBiLzAwMDgt enNoLWRlbGV0ZWZpbGVsaXN0LXNlZ2ZhdWx0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA4YWJhYWIxLi4wMDAwMDAwCi0tLSBhLzAwMDgtenNoLWRlbGV0ZWZpbGVsaXN0LXNl Z2ZhdWx0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotRnJvbSBkM2VkZjMx ODMwNmUzN2QyZDk2YzRlNGVhNDQyZDEwMjA3NzIyZTk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogQmFydCBTY2hhZWZlciA8c2NoYWVmZXJAenNoLm9yZz4KLURhdGU6IFN1biwgMTIg RmViIDIwMjMgMDk6NTI6MzkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gNTE0MDQ6IE51bGxpZnkg ZmlsZWxpc3QgYWZ0ZXIgZGVsZXRpbmcgKGZpeCBzZWdmYXVsdCkKLQotQ2hlcnJ5LXBpY2tlZC1i eTogTHVrw6HFoSBaYW9yYWwgPGx6YW9yYWxAcmVkaGF0LmNvbT4KLVVwc3RyZWFtLWNvbW1pdDog ZDNlZGYzMTgzMDZlMzdkMmQ5NmM0ZTRlYTQ0MmQxMDIwNzcyMmU5NAotLS0tCi0gU3JjL2pvYnMu YyB8IDggKysrKysrLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL1NyYy9qb2JzLmMgYi9TcmMvam9icy5jCi1pbmRleCA0 ODYzOTYyYjkuLjU5ZGRkOTUyZSAxMDA2NDQKLS0tLSBhL1NyYy9qb2JzLmMKLSsrKyBiL1NyYy9q b2JzLmMKLUBAIC0xMzcyLDggKzEzNzIsMTAgQEAgY2xlYW5maWxlbGlzdHModm9pZCkKLSAKLSAg ICAgRFBVVFMoc2hlbGxfZXhpdGluZyA+PSAwLCAiQlVHOiBjbGVhbmZpbGVsaXN0cygpIGJlZm9y ZSBleGl0Iik7Ci0gIAotLSAgICBmb3IgKGkgPSAxOyBpIDw9IG1heGpvYjsgaSsrKQotKyAgICBm b3IgKGkgPSAxOyBpIDw9IG1heGpvYjsgaSsrKSB7Ci0gCWRlbGV0ZWZpbGVsaXN0KGpvYnRhYltp XS5maWxlbGlzdCwgMCk7Ci0rCWpvYnRhYltpXS5maWxlbGlzdCA9IDA7Ci0rICAgIH0KLSB9Ci0g Ci0gLyoqLwotQEAgLTE1MzEsOCArMTUzMywxMCBAQCBoYXZlZmlsZXModm9pZCkKLSAgICAgaW50 IGk7Ci0gCi0gICAgIGZvciAoaSA9IDE7IGkgPD0gbWF4am9iOyBpKyspCi0tCWlmIChqb2J0YWJb aV0uc3RhdCAmJiBqb2J0YWJbaV0uZmlsZWxpc3QpCi0rCWlmIChqb2J0YWJbaV0uc3RhdCAmJiBq b2J0YWJbaV0uZmlsZWxpc3QgJiYKLSsJICAgIHBlZWtmaXJzdChqb2J0YWJbaV0uZmlsZWxpc3Qp KSB7Ci0gCSAgICByZXR1cm4gMTsKLSsJfQotICAgICByZXR1cm4gMDsKLSAKLSB9Ci0tLSAKLTIu NDMuMAotCgpkaWZmIC0tZ2l0IGEvMDAwOS16c2gtc3VwcG9ydC1kbmY1LnBhdGNoIGIvMDAwOS16 c2gtc3VwcG9ydC1kbmY1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTU1 YWEwLi4wMDAwMDAwCi0tLSBhLzAwMDktenNoLXN1cHBvcnQtZG5mNS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDg0NiArMCwwIEBACi1jb21taXQgYjcwYjI0MWNjNWNhODhjYzEyOWZmOWJhMTRm OGFmMmU4ODliOTBlNgotQXV0aG9yOiBKdW4taWNoaSBUYWtpbW90byA8dGFraW1vdG8takBrYmEu YmlnbG9iZS5uZS5qcD4KLURhdGU6ICAgVGh1IE5vdiAyMSAxMjoyNjo1MSAyMDI0ICswOTAwCi0K LSAgICA1MzIzOCAoKzUzMjM5IE1pa2FlbCk6IHN1cHBvcnQgZG5mNQotICAgIAotICAgIHNvbWUg b3B0aW9ucyBldGMgZm9yIGRuZjQgYXJlIGFsc28gdXBkYXRlZAotCi1kaWZmIC0tZ2l0IGEvQ29t cGxldGlvbi9SZWRoYXQvQ29tbWFuZC9fZG5mIGIvQ29tcGxldGlvbi9SZWRoYXQvQ29tbWFuZC9f ZG5mCi1pbmRleCBhNWVkZjg1NjQuLmM0MTc5NWFkZiAxMDA2NDQKLS0tLSBhL0NvbXBsZXRpb24v UmVkaGF0L0NvbW1hbmQvX2RuZgotKysrIGIvQ29tcGxldGlvbi9SZWRoYXQvQ29tbWFuZC9fZG5m Ci1AQCAtMSw3ICsxLDExIEBACi0tI2NvbXBkZWYgZG5mIGRuZi0yIGRuZi0zCi0tIwotLSMgYmFz ZWQgb24gZG5mLTQuMi4xOAotLSMKLSsjY29tcGRlZiBkbmYgZG5mLTIgZG5mLTMgZG5mNAotKyMg YmFzZWQgb24gZG5mLTQuMjEuMQotKwotKyMgYXZvaWQgJ2RuZiAtLXZlcnNpb24nIHNpbmNlIGl0 J3MgcmF0aGVyIHNsb3cgZm9yIGRuZjQKLStpZiBbWyAkc2VydmljZSA9IGRuZiAmJiAkY29tbWFu ZHNbZG5mXTpQID0gKi9kbmY1IF1dOyB0aGVuCi0rICBfZG5mNSAiJEAiICYmIHJldHVybiAwCi0r ICByZXR1cm4gMQotK2ZpCi0gCi0gX2RuZl9oZWxwZXIoKSB7Ci0gICAjIEdldCB0aGUgcGF0aG5h bWUgb2YgdGhlIHB5dGhvbiBleGVjdXRhYmxlIGZyb20gdGhlIDFzdCBsaW5lIG9mIGRuZi0yL2Ru Zi0zLgotQEAgLTY4LDI1ICs3MiwyMyBAQCBfZG5mX3BhY2thZ2VzX29yX3JwbXMoKSB7Ci0gICBm aQotIH0KLSAKLS1fZG5mX2dyb3Vwc19jYWNoaW5nX3BvbGljeSgpIHsKLS0gICMgVE9ETzogQXJl IHRoZXJlIGFueSByZWxpYWJsZSB3YXlzIHRvIHZhbGlkYXRlIHRoZSBjYWNoZT8KLS0gIGxvY2Fs IC1hIG5ld2VyPSggIiQxIihObXctMSkgKSAgICAjIHJlYnVpbGQgaWYgbW9yZSB0aGFuIGEgd2Vl ayBvbGQKLS0gIHJldHVybiAkI25ld2VyCi0tfQotLQotIF9kbmZfZ3JvdXBzKCkgewotLSAgbG9j YWwgcGFja2FnZV9ncm91cHMgdXBkYXRlX3BvbGljeSBleHBsCi0tICB6c3R5bGUgLXMgIjpjb21w bGV0aW9uOiR7Y3VyY29udGV4dH06IiBjYWNoZS1wb2xpY3kgdXBkYXRlX3BvbGljeQotLSAgaWYg W1sgLXogIiR1cGRhdGVfcG9saWN5IiBdXTsgdGhlbgotLSAgICB6c3R5bGUgIjpjb21wbGV0aW9u OiR7Y3VyY29udGV4dH06IiBjYWNoZS1wb2xpY3kgX2RuZl9ncm91cHNfY2FjaGluZ19wb2xpY3kK LS0gIGZpCi0tICBpZiBfY2FjaGVfaW52YWxpZCBkbmYtZ3JvdXBzIHx8ICEgX3JldHJpZXZlX2Nh Y2hlIGRuZi1ncm91cHM7IHRoZW4KLS0gICAgIyB0aGlzIGNhbiBiZSB2ZXJ5IHNsb3cKLS0gICAg cGFja2FnZV9ncm91cHM9KCAkeyR7JHsoTSkkeyhmKSIkKF9jYWxsX3Byb2dyYW0gcGFja2FnZS1n cm91cHMgXAotLSAgICAgICAgICAgICAgICAgICAgICRzZXJ2aWNlIGdyb3VwIGxpc3QgLXYgMj4v ZGV2L251bGwpIn06IyAqfSMqXCh9JVwpKn0gKQotLSAgICBfc3RvcmVfY2FjaGUgZG5mLWdyb3Vw cyBwYWNrYWdlX2dyb3VwcwotLSAgZmkKLS0gIF93YW50ZWQgcGFja2FnZS1ncm91cHMgZXhwbCAn cGFja2FnZSBncm91cCcgY29tcGFkZCAiJEAiIC1hIHBhY2thZ2VfZ3JvdXBzCi0rICAjIG9wdGlv bmFsIG9wdGlvbjogLVQgKGF2YWlsYWJsZXxpbnN0YWxsZWQpCi0rICBsb2NhbCBzZWxlY3RlZCBs aW5lIGdyb3VwcyBzZWN0aW9uPW5vbmUKLSsgIHpwYXJzZW9wdHMgLUQgLUUgLSBUOj1zZWxlY3Rl ZAotKyAgc2VsZWN0ZWQ9JHNlbGVjdGVkWzJdCi0rICBbWyAteiAkc2VsZWN0ZWQgXV0gJiYgc2Vs ZWN0ZWQ9YWxsCi0rICAjIFhYWCBoaWRkZW4gZ3JvdXBzIGFyZSBub3QgaW5jbHVkZWQuCi0rICAj IC0taW5zdGFsbGVkIGFuZCAtLWF2YWlsYWJsZSBjYW4ndCBiZSBzcGVjaWZpZWQgd2l0aCAtLWhp ZGRlbgotKyAgZm9yIGxpbmUgaW4gJHsoZikiJChfY2FsbF9wcm9ncmFtIHBhY2thZ2UtZ3JvdXBz Ci0rICAgICAgICAgICAgICAgICAgICAgICRzZXJ2aWNlIGdyb3VwIGxpc3QgLS0kc2VsZWN0ZWQg LXFDdiAyPi9kZXYvbnVsbCkifTsgZG8KLSsgICAgIyBhIGxpbmUgZm9yIGVhY2ggZ3JvdXAgaXMg b2YgdGhlIGZvbGxvd2luZyBmb3JtOgotKyAgICAjICcgIGRlc2NyaXB0aW9uIG9mIHRoZSBncm91 cCAoZ3JvdXAtaWQpJwotKyAgICBpZiBbWyAkbGluZSA9IFwgIyMoI2IpKCopXCgoWy1fWzphbG51 bTpdXSMpXCkgXV07IHRoZW4KLSsgICAgICBncm91cHMrPSggIiR7bWF0Y2hbMl19OiR7bWF0Y2hb MV19IiApCi0rICAgIGZpCi0rICBkb25lCi0rICBfZGVzY3JpYmUgLXQgZ3JvdXBzICIkc2VsZWN0 ZWQgZ3JvdXAiIGdyb3VwcwotIH0KLSAKLSBfZG5mX3JlcG9xdWVyeSgpIHsKLUBAIC0xOTQsNyAr MTk2LDcgQEAgX2RuZl9yZXBvc2l0b3J5X3BhY2thZ2VzKCkgewotICAgZmkKLSB9Ci0gCi0tX2Ru ZigpIHsKLStfZG5mNCgpIHsKLSAgIGxvY2FsIGNhY2hlX2ZpbGU9Ii92YXIvY2FjaGUvZG5mL3Bh Y2thZ2VzLmRiIgotICAgbG9jYWwgLWEgb3B0cz0oCi0gICAgICcoLTYpLTRbcmVzb2x2ZSB0byBJ UHY0IGFkZHJlc3NlcyBvbmx5XScKLUBAIC0yMjYsNyArMjI4LDcgQEAgX2RuZigpIHsKLSAgICAg Jyoney14KywtLWV4Y2x1ZGU9fSdbZXhjbHVkZSBzcGVjaWZpZWQgcGFja2FnZXNdOiA6IF9zZXF1 ZW5jZSBfZG5mX3BhY2thZ2VzIC1UIGFsbCcKLSAgICAgJy0tZm9yY2VhcmNoPVtmb3JjZSB0aGUg dXNlIG9mIHRoZSBzcGVjaWZpZWQgYXJjaF06YXJjaDogJwotICAgICAnKC0pJ3staCwtLWhlbHB9 J1tzaG93IHRoZSBoZWxwIG1lc3NhZ2VdJwotLSAgICAnLS1pbnN0YWxscm9vdD1bc2V0IGluc3Rh bGwgcm9vdF06ZGlyZWN0b3J5Ol9maWxlcyAtLycKLSsgICAgJy0taW5zdGFsbHJvb3Q9W3NldCBp bnN0YWxsIHJvb3RdOmRpcmVjdG9yeTpfZmlsZXMgLS8gLWcgIi8qIicKLSAgICAgJy0tbmV3cGFj a2FnZVtpbmNsdWRlIG5ld3BhY2thZ2UgcmVsZXZhbnQgcGFja2FnZXNdJwotICAgICAnLS1ub2F1 dG9yZW1vdmVbZGlzYWJsZSByZW1vdmFsIG9mIGRlcGVuZGVuY2llcyB0aGF0IGFyZSBubyBsb25n ZXIgdXNlZF0nCi0gICAgICctLW5vYmVzdFtkbyBub3QgbGltaXQgdHJhbnNhY3Rpb25zIHRvIGJl c3QgY2FuZGlkYXRlc10nCi1AQCAtMjg5LDE4ICsyOTEsMjEgQEAgX2RuZl9jb21tYW5kKCkgewot ICAgaWYgKCggQ1VSUkVOVCA9PSAxICkpOyB0aGVuCi0gICAgIF9kZXNjcmliZSAtdCBkbmYtY29t bWFuZHMgJ2RuZiBjb21tYW5kJyBkbmZfY21kcwotICAgZWxzZQotLSAgICBsb2NhbCBjdXJjb250 ZXh0PSRjdXJjb250ZXh0IGN1cj0kd29yZHNbQ1VSUkVOVF0gY21kIHRtcCBleHBsIHJldD0xCi0r ICAgIGxvY2FsIGN1cj0kd29yZHNbQ1VSUkVOVF0gY21kPSR3b3Jkc1sxXSB0bXAgZXhwbCByZXQ9 MQotICAgICAjIERlYWwgd2l0aCBhbGlhc2VzIChub3QgY29tcHJlaGVuc2l2ZSkKLS0gICAgY2Fz ZSAkd29yZHNbMV0gaW4KLSsgICAgY2FzZSAkY21kIGluCi0gICAgICAgY2hlY2stdXBkZ3JhZGUp IGNtZD1jaGVjay11cGRhdGU7OwotICAgICAgIGRpc3Ryb3N5bmN8ZHN5bmMpIGNtZD1kaXN0cm8t c3luYzs7Ci0gICAgICAgZGcpIGNtZD1kb3duZ3JhZGU7OwotKyAgICAgIGRzeW5jKSBjbWQ9ZGlz dHJvLXN5bmM7OwotICAgICAgIGVyYXNlfHJtKSBjbWQ9cmVtb3ZlOzsKLSAgICAgICBncm91cHN8 Z3JwKSBjbWQ9Z3JvdXA7OwotICAgICAgIGhpc3QpIGNtZD1oaXN0b3J5OzsKLSAgICAgICBpbikg Y21kPWluc3RhbGw7OwotKyAgICAgIGlmKSBjbWQ9aW5mbzs7Ci0rICAgICAgbHMpIGNtZD1saXN0 OzsKLSAgICAgICBtYykgY21kPW1ha2VjYWNoZTs7Ci0tICAgICAgcHJvdnx3aGF0cHJvdmlkZXMp IGNtZD1wcm92aWRlczs7Ci0rICAgICAgcHJvdnx3aGF0cHJvdmlkZXN8d3ApIGNtZD1wcm92aWRl czs7Ci0gICAgICAgcmVpKSBjbWQ9cmVpbnN0YWxsOzsKLSAgICAgICByZXBvaW5mbykgY21kPXJl cG9saXN0OzsKLSAgICAgICBycSkgY21kPXJlcG9xdWVyeTs7Ci1AQCAtMzA4LDkgKzMxMyw5IEBA IF9kbmZfY29tbWFuZCgpIHsKLSAgICAgICBzaCkgY21kPXNoZWxsOzsKLSAgICAgICB1cGRhdGV8 dXApIGNtZD11cGdyYWRlOzsKLSAgICAgICB1cGRhdGUtbWluaW1hbHx1cC1taW4pIGNtZD11cGdy YWRlLW1pbmltYWw7OwotLSAgICAgICopIGNtZD0iJHske2RuZl9jbWRzWyhyKSR3b3Jkc1sxXToq XSUlOip9fSI7OwotKyAgICAgIHVwaWYpIGNtZD11cGRhdGVpbmZvOzsKLSAgICAgZXNhYwotLSAg ICAoKCAkI2NtZCApKSAmJiBjdXJjb250ZXh0PSIke2N1cmNvbnRleHQlOio6Kn06ZG5mLSR7Y21k fToiCi0rICAgIGxvY2FsIGN1cmNvbnRleHQ9IiR7Y3VyY29udGV4dCU6KjoqfTpkbmYtJHtjbWR9 OiIKLSAKLSAgICAgY2FzZSAkY21kIGluCi0gICAgICAgYWxpYXMpCi1AQCAtMzM3LDExICszNDIs OSBAQCBfZG5mX2NvbW1hbmQoKSB7Ci0gICAgICAgICBfZGVzY3JpYmUgLXQgb3B0aW9ucyAnb3B0 aW9uJyB0bXAgJiYgcmV0PTAKLSAgICAgICAgIDs7Ci0gICAgICAgY2hlY2stdXBkYXRlKQotLSAg ICAgICAgaWYgW1sgJGN1ciA9IC0qIF1dOyB0aGVuCi0tICAgICAgICAgIF93YW50ZWQgb3B0aW9u cyBleHBsICdvcHRpb24nIGNvbXBhZGQgLSAtLWNoYW5nZWxvZ3MgJiYgcmV0PTAKLS0gICAgICAg IGVsc2UKLS0gICAgICAgICAgX2RuZl9wYWNrYWdlcyAtVCBpbnN0YWxsZWQgJiYgcmV0PTAKLS0g ICAgICAgIGZpCi0rICAgICAgICBfYXJndW1lbnRzIDogXAotKyAgICAgICAgICAnLS1jaGFuZ2Vs b2dzW2Fsc28gcHJpbnQgY2hhbmdlbG9nIGRlbHRhIG9mIHBhY2thZ2VzXScgXAotKyAgICAgICAg ICAnKjogOl9kbmZfcGFja2FnZXMgLVQgaW5zdGFsbGVkJyAmJiByZXQ9MAotICAgICAgICAgOzsK LSAgICAgICBjbGVhbikKLSAgICAgICAgIHRtcD0oCi1AQCAtMzY4LDIzICszNzEsMzggQEAgX2Ru Zl9jb21tYW5kKCkgewotICAgICAgICAgICAgICJtYXJrOm1hcmsgYSBncm91cCBmb3IgaW5zdGFs bGF0aW9uIG9yIHJlbW92YWwiCi0gICAgICAgICAgICkKLSAgICAgICAgICAgX2Rlc2NyaWJlIC10 IHN1YmNvbW1hbmRzICdzdWJjb21tYW5kJyB0bXAgJiYgcmV0PTAKLS0gICAgICAgIGVsaWYgKCgg Q1VSUkVOVCA9PSAzICkpICYmIFtbICRjdXIgPSAtKiBdXTsgdGhlbgotLSAgICAgICAgICBpZiBb WyAkd29yZHNbMl0gPT0gaW5zdGFsbCBdXTsgdGhlbgotLSAgICAgICAgICAgIF93YW50ZWQgb3B0 aW9ucyBleHBsICdvcHRpb24nIGNvbXBhZGQgLSAtLXdpdGgtb3B0aW9uYWwgJiYgcmV0PTAKLS0g ICAgICAgICAgZWxpZiBbWyAkd29yZHNbMl0gPT0gbGlzdCBdXTsgdGhlbgotLSAgICAgICAgICAg IHRtcD0oCi0tICAgICAgICAgICAgICAnLS1hdmFpbGFibGU6c2hvdyBvbmx5IGF2YWlsYWJsZSBn cm91cHMnCi0tICAgICAgICAgICAgICAnLS1pbnN0YWxsZWQ6c2hvdyBvbmx5IGluc3RhbGxlZCBn cm91cHMnCi0tICAgICAgICAgICAgICAnLS1oaWRkZW46c2hvdyBhbHNvIGhpZGRlbiBncm91cHMn Ci0tICAgICAgICAgICAgICAnLS1pZHM6c2hvdyBhbHNvIElEIG9mIGdyb3VwcycKLS0gICAgICAg ICAgICApCi0tICAgICAgICAgICAgX2Rlc2NyaWJlIC10IG9wdGlvbnMgJ29wdGlvbicgdG1wICYm IHJldD0wCi0tICAgICAgICAgIGZpCi0tICAgICAgICBlbGlmICgoIENVUlJFTlQgPT0gMyApKSAm JiBbWyAkd29yZHNbMl0gPT0gbWFyayBdXTsgdGhlbgotLSAgICAgICAgICBfd2FudGVkIHN1YmNv bW1hbmRzIGV4cGwgJ3N1YmNvbW1hbmQnIFwKLS0gICAgICAgICAgICAgICAgICBjb21wYWRkIC0g aW5zdGFsbCByZW1vdmUgJiYgcmV0PTAKLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgX2RuZl9n cm91cHMgJiYgcmV0PTAKLSsgICAgICAgICAgY2FzZSAkd29yZHNbMl0gaW4KLSsgICAgICAgICAg ICBzdW1tYXJ5KQotKyAgICAgICAgICAgICAgX2FyZ3VtZW50cyA6ICctLWhpZGRlbicgJzI6IDpf ZG5mX2dyb3VwcycgJiYgcmV0PTAKLSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICAgaW5m bykKLSsgICAgICAgICAgICAgIF9kbmZfZ3JvdXBzICYmIHJldD0wCi0rICAgICAgICAgICAgICA7 OwotKyAgICAgICAgICAgIGluc3RhbGwpCi0rICAgICAgICAgICAgICBfYXJndW1lbnRzIDogJy0t d2l0aC1vcHRpb25hbFthbHNvIGluY2x1ZGUgb3B0aW9uYWwgcGFja2FnZXNdJyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICcqOiA6X2RuZl9ncm91cHMgLVQgYXZhaWxhYmxlJyAmJiBy ZXQ9MAotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgICBsaXN0KQotKyAgICAgICAgICAg ICAgX2FyZ3VtZW50cyA6IFwKLSsgICAgICAgICAgICAgICAgJygtLWluc3RhbGxlZCktLWF2YWls YWJsZVtzaG93IG9ubHkgYXZhaWxhYmxlIGdyb3Vwc10nIFwKLSsgICAgICAgICAgICAgICAgJygt LWF2YWlsYWJsZSktLWluc3RhbGxlZFtzaG93IG9ubHkgaW5zdGFsbGVkIGdyb3Vwc10nIFwKLSsg ICAgICAgICAgICAgICAgJy0taGlkZGVuW3Nob3cgYWxzbyBoaWRkZW4gZ3JvdXBzXScgXAotKyAg ICAgICAgICAgICAgICB7LS1pZHMsLXZ9J1tzaG93IGFsc28gSUQgb2YgZ3JvdXBzXScgXAotKyAg ICAgICAgICAgICAgICAnKjogOl9kbmZfZ3JvdXBzJyAmJiByZXQ9MAotKyAgICAgICAgICAgICAg OzsKLSsgICAgICAgICAgICByZW1vdmV8dXBncmFkZSkKLSsgICAgICAgICAgICAgIF9kbmZfZ3Jv dXBzIC1UIGluc3RhbGxlZCAmJiByZXQ9MAotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAg ICBtYXJrKQotKyAgICAgICAgICAgICAgaWYgKCggQ1VSUkVOVCA9PSAzICkpOyB0aGVuCi0rICAg ICAgICAgICAgICAgIF93YW50ZWQgc3ViY29tbWFuZHMgZXhwbCAnc3ViY29tbWFuZCcgXAotKyAg ICAgICAgICAgICAgICAgICAgICAgIGNvbXBhZGQgLSBpbnN0YWxsIHJlbW92ZSAmJiByZXQ9MAot KyAgICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBfZG5mX2dyb3VwcyAmJiByZXQ9 MAotKyAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGVzYWMK LSAgICAgICAgIGZpCi0gICAgICAgICA7OwotICAgICAgIGhlbHApCi1AQCAtMzk5LDEzICs0MTcs MzIgQEAgX2RuZl9jb21tYW5kKCkgewotICAgICAgICAgICAgICJsaXN0Omxpc3QgdHJhbnNhY3Rp b25zIgotICAgICAgICAgICAgICJpbmZvOmRlc2NyaWJlIHRoZSBnaXZlbiB0cmFuc2FjdGlvbnMi Ci0gICAgICAgICAgICAgInJlZG86cmVwZWF0IHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24iCi0r ICAgICAgICAgICAgInJlcGxheTpyZXBsYXkgdHJhbnNhY3Rpb24gc3RvcmVkIGluIHRoZSBzcGVj aWZpZWQgZmlsZSIKLSAgICAgICAgICAgICAicm9sbGJhY2s6dW5kbyBhbGwgc2luY2UgdGhlIGdp dmVuIHRyYW5zYWN0aW9uIgotKyAgICAgICAgICAgICJzdG9yZTpzdG9yZSB0aGUgc3BlY2lmaWVk IHRyYW5zYWN0aW9uIGluIGZpbGUiCi0gICAgICAgICAgICAgInVuZG86dW5kbyB0cmFuc2FjdGlv bnMiCi0gICAgICAgICAgICAgInVzZXJpbnN0YWxsZWQ6bGlzdCBhbGwgcGFja2FnZXMgaW5zdGFs bGVkIGJ5IHVzZXJzIgotICAgICAgICAgICApCi0gICAgICAgICAgIF9kZXNjcmliZSAtdCBzdWJj b21tYW5kcyAnc3ViY29tbWFuZCcgdG1wICYmIHJldD0wCi0tICAgICAgICBlbGlmIFtbICR3b3Jk c1syXSAhPSB1c2VyaW5zdGFsbGVkIF1dOyB0aGVuCi0tICAgICAgICAgIF9tZXNzYWdlICd0cmFu c2FjdGlvbicgJiYgcmV0PTAKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgY2FzZSAkd29yZHNb Ml0gaW4KLSsgICAgICAgICAgICBsaXN0KQotKyAgICAgICAgICAgICAgX2FyZ3VtZW50cyA6ICct LXJldmVyc2Vbb3V0cHV0IGhpc3RvcnkgaW4gcmV2ZXJzZSBvcmRlcl0nIFwKLSsgICAgICAgICAg ICAgICAgJyo6dHJhbnNhY3Rpb24gSUQgb3IgSUQuLklEOiAnICYmIHJldD0wIDs7Ci0rICAgICAg ICAgICAgaW5mbykKLSsgICAgICAgICAgICAgIF9tZXNzYWdlICd0cmFuc2FjdGlvbiBJRCBvciBJ RC4uSUQnICYmIHJldD0wIDs7Ci0rICAgICAgICAgICAgcmVkb3xyb2xsYmFja3x1bmRvKQotKyAg ICAgICAgICAgICAgX21lc3NhZ2UgJ3RyYW5zYWN0aW9uIG9yIHBhY2thZ2UnICYmIHJldD0wIDs7 Ci0rICAgICAgICAgICAgcmVwbGF5KQotKyAgICAgICAgICAgICAgX2FyZ3VtZW50cyA6IFwKLSsg ICAgICAgICAgICAgICAgIi0taWdub3JlLWluc3RhbGxlZFtkb24ndCBjaGVjayBmb3IgaW5zdGFs bGVkIHBhY2thZ2VzIGJlaW5nIGluIHRoZSBzYW1lIHN0YXRlIGFzIHJlY29yZGVkIGluIHRyYW5z YWN0aW9uXSIgXAotKyAgICAgICAgICAgICAgICAiLS1pZ25vcmUtZXh0cmFzW2Rvbid0IGNoZWNr IGZvciBleHRyYSBwYWNrYWdlcyBwdWxsZWQgaW50byB0aGUgdHJhbnNhY3Rpb24gb24gdGhlIHRh cmdldCBzeXN0ZW1dIiBcCi0rICAgICAgICAgICAgICAgICctLXNraXAtdW5hdmFpbGFibGVbc2tp cCBwYWNrYWdlcyB0aGF0IGFyZSBpbiB0cmFuc2FjdGlvbiBidXQgbm90IGluIHRhcmdldCBzeXN0 ZW1dJyBcCi0rICAgICAgICAgICAgICAgICcyOnRyYW5zYWN0aW9uIGZpbGU6X2ZpbGVzJyAmJiBy ZXQ9MCA7OwotKyAgICAgICAgICAgIHN0b3JlKQotKyAgICAgICAgICAgICAgX2FyZ3VtZW50cyA6 IHstbyssLS1vdXRwdXQ9fSdbc3RvcmUgaW4gc3BlY2lmaWVkIGZpbGVdOiA6X2ZpbGVzJyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAnMjp0cmFuc2FjdGlvbjogJyAmJiByZXQ9MCA7Owot KyAgICAgICAgICBlc2FjCi0gICAgICAgICBmaQotICAgICAgICAgOzsKLSAgICAgICBpbmZvfGxp c3QpCi1AQCAtNDEzLDcgKzQ1MCw3IEBAIF9kbmZfY29tbWFuZCgpIHsKLSAgICAgICAgICAgaWYg W1sgJGN1ciA9IC0qIF1dOyB0aGVuCi0gICAgICAgICAgICAgdG1wPSggLS1hbGwgLS1hdmFpbGFi bGUgLS1pbnN0YWxsZWQgLS1leHRyYXMKLSAgICAgICAgICAgICAgICAgICAtLW9ic29sZXRlcyAt LXVwZ3JhZGVzIC0tYXV0b3JlbW92ZSAtLXJlY2VudCApCi0tICAgICAgICAgICAgX3dhbnRlZCBv cHRpb25zIGV4cGwgJ29wdGlvbicgY29tcGFkZCAtYSB0bXAKLSsgICAgICAgICAgICBfd2FudGVk IG9wdGlvbnMgZXhwbCAnb3B0aW9uJyBjb21wYWRkIC1hIHRtcCAmJiByZXQ9MAotICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgX2RuZl9wYWNrYWdlcyAtVCBhbGwgJiYgcmV0PTAKLSAgICAg ICAgICAgZmkKLUBAIC00NDksNiArNDg2LDcgQEAgX2RuZl9jb21tYW5kKCkgewotICAgICAgICAg ICB0bXA9KAotICAgICAgICAgICAgICdpbnN0YWxsOmluc3RhbGwgYSBtb2R1bGUgcHJvZmlsZSBp bmNsdWRpbmcgaXRzIHBhY2thZ2VzJwotICAgICAgICAgICAgICd1cGRhdGU6dXBkYXRlIHBhY2th Z2VzIGFzc29jaWF0ZWQgd2l0aCBhbiBhY3RpdmUgbW9kdWxlIHN0cmVhbScKLSsgICAgICAgICAg ICAnc3dpdGNoLXRvOnN3aXRjaCB0byBhIG1vZHVsZSBzdHJlYW0gYW5kIGNoYW5nZSB2ZXJzaW9u cyBvZiBpbnN0YWxsZWQgcGFja2FnZXMnCi0gICAgICAgICAgICAgJ3JlbW92ZTpyZW1vdmUgaW5z dGFsbGVkIG1vZHVsZSBwcm9maWxlcyBhbmQgdGhlaXIgcGFja2FnZXMnCi0gICAgICAgICAgICAg J2VuYWJsZTplbmFibGUgYSBtb2R1bGUgc3RyZWFtJwotICAgICAgICAgICAgICdkaXNhYmxlOmRp c2FibGUgYSBtb2R1bGUgd2l0aCBhbGwgaXRzIHN0cmVhbXMnCi1AQCAtNTAyLDcgKzU0MCw3IEBA IF9kbmZfY29tbWFuZCgpIHsKLSAgICAgICAgIF9kbmZfcmVwb3F1ZXJ5ICYmIHJldD0wCi0gICAg ICAgICA7OwotICAgICAgIHJlcG9zaXRvcnktcGFja2FnZXMpCi0tICAgICAgICBfZG5mX3JlcG9z aXRvcnlfcGFja2FnZXMKLSsgICAgICAgIF9kbmZfcmVwb3NpdG9yeV9wYWNrYWdlcyAmJiByZXQ9 MAotICAgICAgICAgOzsKLSAgICAgICBzZWFyY2gpCi0gICAgICAgICBpZiBbWyAkY3VyID0gLSog XV07IHRoZW4KLUBAIC01MzEsNiArNTY5LDcgQEAgX2RuZl9jb21tYW5kKCkgewotICAgICAgICAg ICAnLS1saXN0W2Rpc3BsYXkgbGlzdCBvZiBhZHZpc29yaWVzXScKLSAgICAgICAgICAgJy0taW5m b1tkaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIG9mIGFkdmlzb3JpZXNdJwotICAgICAgICAg ICArICcoYXZhaWxhYmlsaXR5KScKLSsgICAgICAgICAgJy1hbGxbaW5jbHVkZSBhZHZpc29yaWVz IGFib3V0IGFueSB2ZXJzaW9ucyBvZiBpbnN0YWxsZWQgcGFja2FnZXNdJwotICAgICAgICAgICAn LS1hdmFpbGFibGVbbGltaXQgdG8gYWR2aXNvcmllcyBhYm91dCBuZXdlciB2ZXJzaW9ucyBvZiBp bnN0YWxsZWQgcGFja2FnZXNdJwotICAgICAgICAgICAnLS1pbnN0YWxsZWRbbGltaXQgdG8gYWR2 aXNvcmllcyBhYm91dCBlcXVhbCBvciBvbGRlciB2ZXJzaW9ucyBvZiBpbnN0YWxsZWQgcGFja2Fn ZXNdJwotICAgICAgICAgICAnLS11cGRhdGVzW2xpbWl0IHRvIGFkdmlzb3JpZXMgYWJvdXQgbmV3 ZXIgYW5kIGF2YWlsYWJsZSB2ZXJzaW9ucyBvZiBpbnN0YWxsZWQgcGFja2FnZXNdJwotQEAgLTU0 OCw0ICs1ODcsNCBAQCBfZG5mX2NvbW1hbmQoKSB7Ci0gICBmaQotIH0KLSAKLS1fZG5mICIkQCIK LStfZG5mNCAiJEAiCi1kaWZmIC0tZ2l0IGEvQ29tcGxldGlvbi9SZWRoYXQvQ29tbWFuZC9fZG5m NSBiL0NvbXBsZXRpb24vUmVkaGF0L0NvbW1hbmQvX2RuZjUKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMDAuLmUxOTRkZDVhNwotLS0tIC9kZXYvbnVsbAotKysrIGIvQ29tcGxl dGlvbi9SZWRoYXQvQ29tbWFuZC9fZG5mNQotQEAgLTAsMCArMSw1NzAgQEAKLSsjY29tcGRlZiBk bmY1Ci0rIyBiYXNlZCBvbiBkbmYtNS4yLjYuMgotKwotKyMgdXRpbGl0eSBmdW5jdGlvbnMKLSsK LStfZG5mNV9oZWxwZXIoKSB7Ci0rICBfY2FsbF9wcm9ncmFtIHNwZWNzICRzZXJ2aWNlICIkeyhx LSlAfSIgIiR7KHEtKVBSRUZJWH1cKiIgXAotKyAgICAgICAgLXFDIC0tYXNzdW1lbm8gLS1ub2dw Z2NoZWNrIDI+L2Rldi9udWxsIDwvZGV2L251bGwKLSt9Ci0rCi0rX2RuZjVfcmVwb3NpdG9yaWVz KCkgewotKyAgIyByZXF1aXJlZCBvcHRpb246IC1UIChhbGx8ZGlzYWJsZWR8ZW5hYmxlZCkKLSsg IGxvY2FsIHNlbGVjdGVkIGV4cGwKLSsgIHpwYXJzZW9wdHMgLUQgLUUgLSBUOj1zZWxlY3RlZAot KyAgc2VsZWN0ZWQ9JHNlbGVjdGVkWzJdCi0rICBfd2FudGVkICRzZWxlY3RlZC1yZXBvc2l0b3Jp ZXMgZXhwbCAiJHNlbGVjdGVkIHJlcG9zaXRvcnkiIFwKLSsgICAgY29tcGFkZCAiJEAiIC0gIiR7 KEApJHsoZikkKF9kbmY1X2hlbHBlciByZXBvIGxpc3QgLS0kc2VsZWN0ZWQpfVsyLC0xXSUlICp9 IgotK30KLSsKLStfZG5mNV9wYWNrYWdlcygpIHsKLSsgICMgcmVxdWlyZWQgb3B0aW9uOiAtVCAo YWxsfGF2YWlsYWJsZXxpbnN0YWxsZWR8dXBncmFkYWJsZSkKLSsgIGxvY2FsIHNlbGVjdGVkIG9w dCBleHBsCi0rICB6cGFyc2VvcHRzIC1EIC1FIC0gVDo9c2VsZWN0ZWQKLSsgIHNlbGVjdGVkPSRz ZWxlY3RlZFsyXQotKyAgY2FzZSAkc2VsZWN0ZWQgaW4KLSsgICAgYWxsKSAgICAgICAgb3B0PScn IDs7ICAgIyBvcHRpb24gLS1hbGwgZG9lcyBub3QgZXhpc3QKLSsgICAgdXBncmFkYWJsZSkgb3B0 PSctLXVwZ3JhZGVzJyA7OwotKyAgICAqKSAgICAgICAgICBvcHQ9Ii0tJHNlbGVjdGVkIiA7Owot KyAgZXNhYwotKyAgX3dhbnRlZCAkc2VsZWN0ZWQtcGFja2FnZXMgZXhwbCAiJHNlbGVjdGVkIHBh Y2thZ2UiIFwKLSsgICAgY29tcGFkZCAiJEAiIC0gJChfZG5mNV9oZWxwZXIgcmVwb3F1ZXJ5ICRv cHQgLS1xZj0nJXtuYW1lfSAnKQotK30KLSsKLStfZG5mNV9ycG1fZmlsZXMoKSB7Ci0rICBsb2Nh bCBleHBsCi0rICBfd2FudGVkIHJwbS1maWxlcyBleHBsICdycG0gZmlsZScgX2ZpbGVzIC1nICco I2kpKi5ycG0oLS4pJwotK30KLSsKLStfZG5mNV9wYWNrYWdlc19vcl9ycG1zKCkgewotKyAgaWYg W1sgIiR3b3Jkc1tDVVJSRU5UXSIgPSAoKi8qfFx+KikgXV07IHRoZW4gIyBpZiBsb29rcyBsaWtl IGEgcGF0aCBuYW1lCi0rICAgIF9kbmZfcnBtX2ZpbGVzCi0rICBlbHNlCi0rICAgIF9kbmY1X3Bh Y2thZ2VzICIkQCIKLSsgIGZpCi0rfQotKwotK19kbmY1X2dyb3VwcygpIHsKLSsgICMgb3B0aW9u YWwgb3B0aW9uOiAtVCAoYXZhaWxhYmxlfGluc3RhbGxlZCkKLSsgIGxvY2FsIHVwZGF0ZV9wb2xp Y3kgc2VsZWN0ZWQgbGluZSBwYXQgZ3JvdXBzCi0rICB6cGFyc2VvcHRzIC1EIC1FIC0gVDo9c2Vs ZWN0ZWQKLSsgIHNlbGVjdGVkPSRzZWxlY3RlZFsyXQotKyAgaWYgW1sgLXogJHNlbGVjdGVkIF1d OyB0aGVuCi0rICAgIHNlbGVjdGVkPWFsbAotKyAgICBvcHQ9ICAjIG9wdGlvbiAtLWFsbCBkb2Vz IG5vdCBleGlzdAotKyAgZWxzZQotKyAgICBvcHQ9LS0kc2VsZWN0ZWQKLSsgIGZpCi0rICAjIFhY WCBoaWRkZW4gZ3JvdXBzIGFyZSBub3QgaW5jbHVkZWQKLSsgIGZvciBsaW5lIGluICR7JHsoZiki JChfZG5mNV9oZWxwZXIgZ3JvdXAgbGlzdCAkb3B0KSJ9WzIsLTFdfTsgZG8KLSsgICAgbGluZT0o ICR7KHopbGluZX0gKQotKyAgICBncm91cHMrPSggIiRsaW5lWzFdOiRsaW5lWzIsLTJdIiApCi0r ICBkb25lCi0rICBfZGVzY3JpYmUgLXQgJHNlbGVjdGVkLWdyb3VwcyAiJHNlbGVjdGVkIGdyb3Vw IiBncm91cHMKLSt9Ci0rCi0rX2RuZjVfZW52aXJvbm1lbnRzKCkgewotKyAgbG9jYWwgbGluZSBl bnZzCi0rICBmb3IgbGluZSBpbiAkeyR7KGYpIiQoX2RuZjVfaGVscGVyIGVudmlyb25tZW50IGxp c3QpIn1bMiwtMV19OyBkbwotKyAgICBsaW5lPSggJHsoeilsaW5lfSApCi0rICAgIGVudnMrPSgg IiRsaW5lWzFdOiRsaW5lWzIsLTJdIiApCi0rICBkb25lCi0rICBfZGVzY3JpYmUgLXQgZW52aXJv bm1lbnRzICdlbnZpcm9ubWVudCcgZW52cwotK30KLSsKLSsjIGNvbXBsZXRlcnMgZm9yIChzZXZl cmFsKSBkbmYgY29tbWFuZHMKLSsKLStfZG5mNS1hZHZpc29yeSAoKSB7Ci0rICBfYXJndW1lbnRz IDogXAotKyAgICAkYWR2aXNvcnlfb3B0cyBcCi0rICAgICctLWNvbnRhaW5zLXBrZ3M9W29ubHkg c2hvdyBhZHZpc29yaWVzIGNvbnRhaW5pbmcgc3BlY2lmaWVkIHBhY2thZ2VzXTogOiBfc2VxdWVu Y2UgX2RuZjVfcGFja2FnZXMgLVQgaW5zdGFsbGVkJyBcCi0rICAgICsgJyh3aXRoKScgXAotKyAg ICAnLS13aXRoLWN2ZVtzaG93IG9ubHkgYWR2aXNvcmllcyByZWZlcmVuY2luZyBDVkUgdGlja2V0 XScgXAotKyAgICAnLS13aXRoLWJ6W3Nob3cgb25seSBhZHZpc29yaWVzIHJlZmVyZW5jaW5nIEJ1 Z3ppbGxhIHRpY2tldF0nIFwKLSsgICAgKyAnKHR5cGUpJyBcCi0rICAgICctLWFsbFtzaG93IGFs bCBhZHZpc29yaWVzXScgXAotKyAgICAnLS1hdmFpbGFibGVbc2hvdyBhZHZpc29yaWVzIGNvbnRh aW5pbmcgbmV3ZXIgdmVyc2lvbnMgb2YgaW5zdGFsbGVkIHBhY2thZ2VzIChkZWZhdWx0KV0nIFwK LSsgICAgJy0taW5zdGFsbGVkW3Nob3cgYWR2aXNvcmllcyBjb250YWluaW5nIGVxdWFsIGFuZCBv bGRlciB2ZXJzaW9uIG9mIGluc3RhbGxlZCBwYWNrYWdlc10nIFwKLSsgICAgJy0tdXBkYXRlc1tz aG93IGFkdmlzb3JpZXMgY29udGFpbmluZyB1cGdyYWRhYmxlIHBhY2thZ2VzXScgXAotKyAgICAr IGFyZ3MgXAotKyAgICAnOnN1YmNvbW1hbmQ6KGxpc3QgaW5mbyBzdW1tYXJ5KScgJyo6YWR2aXNv cnkgc3BlYzonCi0rfQotKwotK19kbmY1LWdyb3VwKCkgewotKyAgbG9jYWwgLWEgdG1wCi0rICBp ZiAoKCBDVVJSRU5UID09IDIgKSk7IHRoZW4KLSsgICAgdG1wPSgKLSsgICAgICAnbGlzdDpsaXN0 IGFsbCBtYXRjaGluZyBncm91cHMnCi0rICAgICAgJ2luZm86cHJpbnQgZGV0YWlsZWQgaW5mb3Jt YXRpb24gYWJvdXQgZ3JvdXBzJwotKyAgICAgICdpbnN0YWxsOmluc3RhbGwgcGFja2FnZXMgZnJv bSBzcGVjaWZpZWQgZ3JvdXBzJwotKyAgICAgICdyZW1vdmU6cmVtb3ZlIHJlbW92YWJsZSBwYWNr YWdlcyBpbiBzcGVjaWZpZWQgZ3JvdXBzJwotKyAgICAgICd1cGdyYWRlOnVwZ3JhZGUgc3BlY2lm aWVkIGdyb3VwcyBhbmQgcGFja2FnZXMgaW4gdGhlbScKLSsgICAgKQotKyAgICBfZGVzY3JpYmUg LXQgc3ViY29tbWFuZHMgJ3N1YmNvbW1hbmQnIHRtcAotKyAgZWxzZQotKyAgICBjYXNlICR3b3Jk c1syXSBpbgotKyAgICAgIGxpc3R8aW5mbykKLSsgICAgICAgIHRtcD0oCi0rICAgICAgICAgICco LS1pbnN0YWxsZWQpLS1hdmFpbGFibGVbc2hvdyBvbmx5IGF2YWlsYWJsZSBncm91cHNdJwotKyAg ICAgICAgICAnKC0tYXZhaWxhYmxlKS0taW5zdGFsbGVkW3Nob3cgb25seSBpbnN0YWxsZWQgZ3Jv dXBzXScKLSsgICAgICAgICAgJy0taGlkZGVuW3Nob3cgYWxzbyBoaWRkZW4gZ3JvdXBzXScKLSsg ICAgICAgICAgJy0tY29udGFpbnMtcGtncz1bc2hvdyBvbmx5IGdyb3VwcyBjb250YWluaW5nIHNw ZWNpZmllZCBwYWNrYWdlc106IDogX3NlcXVlbmNlIF9kbmY1X3BhY2thZ2VzIC1UIGFsbCcKLSsg ICAgICAgICAgJyo6IDogX2RuZjVfZ3JvdXBzJwotKyAgICAgICAgKQotKyAgICAgICAgOzsKLSsg ICAgICBpbnN0YWxsKQotKyAgICAgICAgdG1wPSggJGNvbW1vbl9vcHRzCi0rICAgICAgICAgICAg ICAnLS13aXRoLW9wdGlvbmFsW2luY2x1ZGUgb3B0aW9uYWwgcGFja2FnZXMgZnJvbSB0aGUgZ3Jv dXBzXScKLSsgICAgICAgICAgICAgICcqOiA6IF9kbmY1X2dyb3VwcyAtVCBhdmFpbGFibGUnICkK LSsgICAgICAgIDt8Ci0rICAgICAgdXBncmFkZSkKLSsgICAgICAgIHRtcD0oICR7Y29tbW9uX29w dHM6Iy0tc2tpcC1icm9rZW4qfQotKyAgICAgICAgICAgICAgJyo6IDogX2RuZjVfZ3JvdXBzIC1U IGluc3RhbGxlZCcgKQotKyAgICAgICAgO3wKLSsgICAgICByZW1vdmUpCi0rICAgICAgICB0bXA9 KCAkb2ZmbGluZV9vcHRzCi0rICAgICAgICAgICAgICAnKjogOiBfZG5mNV9ncm91cHMgLVQgaW5z dGFsbGVkJyApCi0rICAgICAgICA7fAotKyAgICAgIGluc3RhbGx8cmVtb3ZlKQotKyAgICAgICAg dG1wKz0oICctLW5vLXBhY2thZ2VzW29wZXJhdGUgb24gZ3JvdXBzIG9ubHksIG5vdCBtYW5pcHVs YXRlIGFueSBwYWNrYWdlc10nICkKLSsgICAgICAgIDt8Ci0rICAgICAgaW5zdGFsbHx1cGdyYWRl KQotKyAgICAgICAgdG1wKz0oICRkb3duZ3JhZGVfb3B0cyApCi0rICAgICAgICA7OwotKyAgICBl c2FjCi0rICAgIF9hcmd1bWVudHMgOiAkdG1wCi0rICBmaQotK30KLSsKLStfZG5mNS1oaXN0b3J5 KCkgewotKyAgbG9jYWwgLWEgdG1wCi0rICBpZiAoKCBDVVJSRU5UID09IDIgKSk7IHRoZW4KLSsg ICAgdG1wPSgKLSsgICAgICAnbGlzdDpsaXN0IGluZm8gYWJvdXQgcmVjb3JkZWQgdHJhbnNhY3Rp b25zJwotKyAgICAgICdpbmZvOnByaW50IGRldGFpbGVkIGFib3V0IHNwZWNpZmljIHRyYW5zYWN0 aW9ucycKLSsgICAgICAndW5kbzpyZXZlcnQgYWxsIGFjdGlvbnMgZnJvbSB0aGUgc3BlY2lmaWVk IHRyYW5zYWN0aW9uJwotKyAgICAgICdyZWRvOnJlcGVhdCB0aGUgc3BlY2lmaWVkIHRyYW5zYWN0 aW9uJwotKyAgICAgICdyb2xsYmFjazp1bmRvIGFsbCB0cmFuc2FjdGlvbnMgcGVyZm9ybWVkIGFm dGVyIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24nCi0rICAgICAgJ3N0b3JlOnN0b3JlIHRoZSB0 cmFuc2FjdGlvbiBpbnRvIGEgZGlyZWN0b3J5JwotKyAgICApCi0rICAgIF9kZXNjcmliZSAtdCBz dWJjb21tYW5kcyAnc3ViY29tbWFuZCcgdG1wCi0rICBlbHNlCi0rICAgIGNhc2UgJHdvcmRzWzJd IGluCi0rICAgICAgbGlzdHxpbmZvKQotKyAgICAgICAgdG1wPSggJy0tcmV2ZXJzZVtyZXZlcnNl IHRoZSBvcmRlciBvZiB0cmFuc2FjdGlvbnMgaW4gb3V0cHV0XScgKQotKyAgICAgICAgOzsKLSsg ICAgICB1bmRvfHJvbGxiYWNrfHJlZG8pCi0rICAgICAgICB0bXA9KCAnLS1za2lwLXVuYXZhaWxh YmxlW2FsbG93IHNraXBwaW5nIGltcG9zc2libGUgYWN0aW9uc10nICkKLSsgICAgICAgIDt8Ci0r ICAgICAgdW5kb3xyb2xsYmFjaykKLSsgICAgICAgIHRtcCs9KCAkcmVwbGF5X29wdHMgKQotKyAg ICAgICAgOzsKLSsgICAgICBzdG9yZSkKLSsgICAgICAgIHRtcD0oIHstbywtLW91dHB1dD19J1tk aXJlY3RvcnkgZm9yIHN0b3JpbmcgdGhlIHRyYW5zYWN0aW9uIChkZWZhdWx0IC4vdHJhbnNhY3Rp b24pXTogOiBfZGlyZWN0b3JpZXMnKQotKyAgICBlc2FjCi0rICAgIF9hcmd1bWVudHMgOiAkdG1w ICcyOnRyYW5zYWN0aW9uOiggKScKLSsgIGZpCi0rfQotKwotK19kbmY1LW1hcmsoKSB7Ci0rICBs b2NhbCAtYSB0bXAKLSsgIGlmICgoIENVUlJFTlQgPT0gMiApKTsgdGhlbgotKyAgICB0bXA9KAot KyAgICAgICd1c2VyOm1hcmsgdGhlIHBhY2thZ2UgYXMgdXNlci1pbnN0YWxsZWQnCi0rICAgICAg J2RlcGVuZGVuY3k6bWFyayB0aGUgcGFja2FnZSBhcyBhIGRlcGVuZGVuY3knCi0rICAgICAgJ3dl YWs6bWFyayB0aGUgcGFja2FnZSBhcyBhIHdlYWsgZGVwZW5kZW5jeScKLSsgICAgICAnZ3JvdXA6 bWFyayB0aGUgcGFja2FnZSBhcyBpbnN0YWxsZWQgYnkgdGhlIHNwZWNpZmllZCBncm91cCcKLSsg ICAgKQotKyAgICBfZGVzY3JpYmUgLXQgc3ViY29tbWFuZHMgJ3N1YmNvbW1hbmQnIHRtcAotKyAg ZWxzZQotKyAgICB0bXA9KAotKyAgICAgICctLXNraXAtdW5hdmFpbGFibGVbc2tpcCBwYWNrYWdl cyBub3QgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW1dJwotKyAgICAgICctLXN0b3JlPVtzdG9yZSB0 aGUgdHJhbnNhY3Rpb24gaW4gc3BlY2lmaWVkIGRpcmVjdG9yeV06IDogX2RpcmVjdG9yaWVzJwot KyAgICApCi0rICAgIGlmIFtbICR3b3Jkc1syXSA9IGdyb3VwIF1dOyB0aGVuCi0rICAgICAgICB0 bXArPSggJzI6Z3JvdXAtaWQ6IF9kbmY1X2dyb3VwcyAtVCBpbnN0YWxsZWQnICkKLSsgICAgZmkK LSsgICAgX2FyZ3VtZW50cyA6ICR0bXAgJyo6IDogX2RuZjVfcGFja2FnZXMgLVQgaW5zdGFsbGVk JwotKyAgZmkKLSt9Ci0rCi0rX2RuZjUtbW9kdWxlKCkgewotKyAgbG9jYWwgLWEgdG1wCi0rICBp ZiAoKCBDVVJSRU5UID09IDIgKSk7IHRoZW4KLSsgICAgdG1wPSgKLSsgICAgICAnbGlzdDpsaXN0 IG1vZHVsZSBzdHJlYW1zJwotKyAgICAgICdpbmZvOnByaW50IGRldGFpbHMgYWJvdXQgbW9kdWxl IHN0cmVhbXMnCi0rICAgICAgJ2VuYWJsZTplbmFibGUgbW9kdWxlIHN0cmVhbXMnCi0rICAgICAg J2Rpc2FibGU6ZGlzYWJsZSBtb2R1bGVzIGluY2x1ZGluZyBhbGwgdGhlaXIgc3RyZWFtcycKLSsg ICAgICAicmVzZXQ6cmVzZXQgbW9kdWxlIHN0YXRlIHNvIGl0J3Mgbm8gbG9uZ2VyIGVuYWJsZWQg b3IgZGlzYWJsZWQiCi0rICAgICkKLSsgICAgX2Rlc2NyaWJlIC10IHN1YmNvbW1hbmRzICdzdWJj b21tYW5kJyB0bXAKLSsgIGVsaWYgKCggQ1VSUkVOVCA9PSAzICkpICYmIFtbICRjdXIgPSAtKiBd XTsgdGhlbgotKyAgICBjYXNlICR3b3Jkc1syXSBpbgotKyAgICAgIGxpc3R8aW5mbykgdG1wPSgg LS1lbmFibGVkIC0tZGlzYWJsZWQgKSA7OwotKyAgICAgIGVuYWJsZSkgICAgdG1wPSggLS1za2lw LWJyb2tlbiAtLXNraXAtdW5hdmFpbGFibGUgKSA7OwotKyAgICAgICopICAgICAgICAgdG1wPSgg LS1za2lwLXVuYXZhaWxhYmxlICkgOzsKLSsgICAgZXNhYwotKyAgICBfd2FudGVkIG9wdGlvbnMg ZXhwbCAnb3B0aW9uJyBjb21wYWRkIC1hIHRtcAotKyAgZWxzZQotKyAgICBfbWVzc2FnZSAnbW9k dWxlIHNwZWMnCi0rICBmaQotK30KLSsKLStfZG5mNS1vZmZsaW5lKCkgeyAgIyBhbHNvIHVzZWQg YnkgdGhlICdzeXN0ZW0tdXBncmFkZScgY29tbWFuZAotKyAgbG9jYWwgLWEgdG1wCi0rICBpZiAo KCBDVVJSRU5UID09IDIgKSk7IHRoZW4KLSsgICAgdG1wPSgKLSsgICAgICAnY2xlYW46cmVtb3Zl IGFueSBzdG9yZWQgb2ZmbGluZSB0cmFuc2FjdGlvbnMgYW5kIGNhY2hlZCBwYWNrYWdlcycKLSsg ICAgICAnbG9nOmxpc3QgYm9vdHMgZHVyaW5nIHdoaWNoIG9mZmxpbmUgdHJhbnNhY3Rpb24gd2Fz IGF0dGVtcHRlZCcKLSsgICAgICAncmVib290OnByZXBhcmUgdGhlIHN5c3RlbSBmb3Igb2ZmbGlu ZSB0cmFuc2FjdGlvbiBhbmQgcmVib290JwotKyAgICApCi0rICAgIGlmIFtbICRjbWQgPSBvZmZs aW5lIF1dOyB0aGVuCi0rICAgICAgdG1wKz0oICdzdGF0dXM6c2hvdyBzdGF0dXMgb2YgdGhlIGN1 cnJlbnQgb2ZmbGluZSB0cmFuc2FjdGlvbicgKQotKyAgICBlbHNlCi0rICAgICAgdG1wKz0oICdk b3dubG9hZDpkb3dubG9hZCBhbGwgcGFja2FnZXMgbmVlZGVkIGZvciB1cGdyYWRlJyApCi0rICAg IGZpCi0rICAgIF9kZXNjcmliZSAtdCBzdWJjb21tYW5kcyAnc3ViY29tbWFuZCcgdG1wICYmIHJl dD0wCi0rICBlbHNlCi0rICAgIGNhc2UgJHdvcmRzWzJdIGluCi0rICAgICAgZG93bmxvYWQpCi0r ICAgICAgICBfYXJndW1lbnRzIDogXAotKyAgICAgICAgICAnLS1yZWxlYXNldmVyPVt0aGUgdmVy c2lvbiB0byB1cGdyYWRlIHRvXTp2ZXJzaW9uIG51bWJlcjonIFwKLSsgICAgICAgICAgJy0tbm8t ZG93bmdyYWRlOmRvIG5vdCBpbnN0YWxsIHBhY2thZ2VzIG9sZGVyIHRoYW4gY3VycmVudGx5IGlu c3RhbGxlZCcgJyo6IDonICYmIHJldD0wCi0rICAgICAgICA7OwotKyAgICAgIGxvZykKLSsgICAg ICAgIF9hcmd1bWVudHMgOiBcCi0rICAgICAgICAgICctLW51bWJlcj1bc2hvdyBsb2cgb2YgdHJh bnNhY3Rpb24gc3BlY2lmaWVkIGJ5IG51bWJlcl06dHJhbnNhY3Rpb24gbnVtYmVyOicgJyo6IDon ICYmIHJldD0wCi0rICAgICAgICA7OwotKyAgICAgIHJlYm9vdCkKLSsgICAgICAgIF93YW50ZWQg b3B0aW9ucyBleHBsICdvcHRpb24nIGNvbXBhZGQgLS0gLS1wb3dlcm9mZiAmJiByZXQ9MAotKyAg ICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSt9Ci0rCi0rX2RuZjUtcmVwb3F1ZXJ5KCkgewot KyAgbG9jYWwgdgotKyAgbG9jYWwgLWEgb3B0cz0oCi0rICAgICRhZHZpc29yeV9vcHRzCi0rICAg ICctLWFyY2g9W2xpbWl0IHJlc3VsdHMgdG8gc3BlY2lmaWVkIGFyY2hpdGVjdHVyZXNdOmxpc3Qg b2YgYXJjaHM6ICcKLSsgICAgJy0tYXZhaWxhYmxlW2xpbWl0IHJlc3VsdHMgdG8gYXZhaWxhYmxl IHBhY2thZ2VzXScKLSsgICAgJy0tZGlzYWJsZS1tb2R1bGFyLWZpbHRlcmluZ1tpbmNsdWRlIHBh Y2thZ2VzIG9mIGluYWN0aXZlIG1vZHVsZSBzdHJlYW1zXScKLSsgICAgJy0tZHVwbGljYXRlc1ts aW1pdCB0byBpbnN0YWxsZWQgZHVwbGljYXRlIHBhY2thZ2VzXScKLSsgICAgJy0tZXhhY3RkZXBz W2xpbWl0IHRvIHBhY2thZ2VzIHRoYXQgcmVxdWlyZSBjYXBhYmlsaXR5IHNwZWNpZmllZCBieSA9 PXdoYXR7cmVxdWlyZXMsZGVwZW5kc31dJwotKyAgICAnLS1leHRyYXNbbGltaXQgdG8gaW5zdGFs bGVkIHBhY2thZ2VzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIGFueSBhdmFpbGFibGUgcmVwb3Np dG9yeV0nCi0rICAgICctLWZpbGU9W2xpbWl0IHJlc3VsdHMgdG8gcGFja2FnZXMgd2hpY2ggb3du IHNwZWNpZmllZCBmaWxlXTpsaXN0IG9mIGZpbGVzOiBfc2VxdWVuY2UgX2ZpbGVzJwotKyAgICAn LS1pbnN0YWxsZWRbcXVlcnkgaW5zdGFsbGVkIHBhY2thZ2VzXScKLSsgICAgJy0taW5zdGFsbG9u bHlbbGltaXQgdG8gaW5zdGFsbGVkIGluc3RhbGxvbmx5IHBhY2thZ2VzXScKLSsgICAgJy0tbGF0 ZXN0LWxpbWl0PVtsaW1pdCB0byBsYXRlc3QgcGFja2FnZXMgb2Ygc3BlY2lmaWVkIG51bWJlcl06 bnVtYmVyOicKLSsgICAgJy0tbGVhdmVzW2xpbWl0IHRvIGdyb3VwcyBvZiBpbnN0YWxsZWQgcGFj a2FnZXMgbm90IHJlcXVpcmVkIGJ5IG90aGVyIGluc3RhbGxlZCBwYWNrYWdlc10nCi0rICAgICct LXByb3ZpZGVycy1vZj1bc2VsZWN0IHBhY2thZ2VzIHRoYXQgcHJvdmlkZSBzcGVjaWZpZWQgYXR0 cmlidXRlXTphdHRyaWJ1dGU6KGNvbmZsaWN0cyBkZXBlbmRzIGVuaGFuY2VzIG9ic29sZXRlcyBw cm92aWRlcyByZWNvbW1lbmRzIHJlcXVpcmVzIHJlcXVpcmVzX3ByZSBzdWdnZXN0cyBzdXBwbGVt ZW50KScKLSsgICAgJy0tcmVjZW50W2xpbWl0IHRvIG9ubHkgcmVjZW50bHkgY2hhbmdlZCBwYWNr YWdlc10nCi0rICAgICctLXJlY3Vyc2l2ZVttYWtlIC0td2hhdHJlcXVpcmVzLy0tcHJvdmlkZXJz LW9mIHdvcmsgcmVjdXJzaXZlbHldJwotKyAgICAnLS1zZWN1cml0eVtsaW1pdCB0byBwYWNrYWdl cyBpbiBzZWN1cml0eSBhZHZpc29yaWVzXScKLSsgICAgJy0tc3JwbVt1c2UgdGhlIGNvcnJlc3Bv bmRpbmcgc291cmNlIFJQTV0nCi0rICAgICctLXVubmVlZGVkW2xpbWl0IHRvIHVubmVlZGVkIGlu c3RhbGxlZCBwYWNrYWdlc10nCi0rICAgICctLXVwZ3JhZGVzW2xpbWl0IHRvIGF2YWlsYWJsZSBw YWNrYWdlcyB0aGF0IHByb3ZpZGUgdXBncmFkZSBmb3IgaW5zdGFsbGVkIHBhY2thZ2VzXScKLSsg ICAgJy0tdXNlcmluc3RhbGxlZFtsaW1pdCB0byBwYWNrYWdlcyB0aGF0IGFyZSBub3QgaW5zdGFs bGVkIGFzIGRlcGVuZGVuY2llc10nCi0rICAgICctLXdoYXRkZXBlbmRzPVtsaW1pdCB0byBwYWNr YWdlcyB0aGF0IHJlcXVpcmUsIGVuaGFuY2UsIHJlY29tbWVuZCwgc3VnZ2VzdCBvZiBzdXBwbGVt ZW50IHNwZWNpZmllZCBjYXBhYmlsaXR5XTpsaXN0IG9mIGNhcGFiaWxpdHk6JwotKyAgICAnLS13 aGF0Y29uZmxpY3RzPVtsaW1pdCB0byBwYWNrYWdlcyB0aGF0IGNvbmZsaWN0cyB3aXRoIHNwZWNp ZmllZCBjYXBhYmlsaXRpZXNdOmxpc3Qgb2YgY2FwYWJpbGl0eTogJwotKyAgKQotKyAgZm9yIHYg aW4gZW5oYW5jZSBvYnNvbGV0ZSBwcm92aWRlIHJlY29tbWVuZCByZXF1aXJlIHN1Z2dlc3Qgc3Vw cGxlbWVudDsgZG8KLSsgICAgb3B0cys9KCAiLS13aGF0JHt2fXM9W2xpbWl0IHRvIHBhY2thZ2Vz IHRoYXQgJHYgc3BlY2lmaWVkIGNhcGFiaWxpdGllc106bGlzdCBvZiBjYXBhYmlsaXR5OiAiKQot KyAgZG9uZQotKyAgIyBtdXR1YWxseSBleGNsdXNpdmUgZm9ybWF0aW5nIG9wdGlvbnMKLSsgIG9w dHMrPSgKLSsgICAgKyAnKGZvcm1hdCknCi0rICAgICctLWNvbmZsaWN0c1tkaXNwbGF5IGNhcGFi aWxpdGllcyB0aGF0IHRoZSBwYWNrYWdlIGNvbmZsaWN0cyB3aXRoXScKLSsgICAgJy0tZGVwZW5k c1tkaXNwbGF5IGNhcGFiaWxpdGllcyB0aGF0IHRoZSBwYWNrYWdlIGRlcGVuZHMgb24sIGVuYWJs ZXMsIHJlY29tbWVuZHMsIHN1Z2dlc3RzIG9yIHN1cHBsZW1lbnRzXScKLSsgICAgJy0tZmlsZXNb c2hvdyBmaWxlcyBpbiB0aGUgcGFja2FnZV0nCi0rICAgICctLXJlcXVpcmVzLXByZVtkaXNwbGF5 IGNhcGFiaWxpdGllcyByZXF1aXJlZCB0byBydW4gcHJlL3Bvc3Qgc2NyaXB0cyBvZiB0aGUgcGFj a2FnZV0nCi0rICAgICctLXNvdXJjZXJwbVtkaXNwbGF5IHNvdXJjZSBSUE0gb2YgdGhlIHBhY2th Z2VdJwotKyAgICAnLS1sb2NhdGlvbltkaXNwbGF5IGxvY2F0aW9uIG9mIHRoZSBwYWNrYWdlXScK LSsgICAgJy0taW5mb1tzaG93IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwYWNrYWdl XScKLSsgICAgJy0tY2hhbmdlbG9nc1twcmludCB0aGUgcGFja2FnZSBjaGFuZ2Vsb2dzXScKLSsg ICAgJygtICopLS1xdWVyeXRhZ3NbbGlzdCB0YWdzIHJlY29nbml6ZWQgYnkgLS1xdWVyeWZvcm1h dF0nCi0rICAgICctLXF1ZXJ5Zm9ybWF0PVtzcGVjaWZ5IG91dHB1dCBmb3JtYXRdOmZvcm1hdDon Ci0rICApCi0rICBmb3IgdiBpbiBlbmhhbmNlIG9ic29sZXRlIHByb3ZpZGUgcmVjb21tZW5kIHJl cXVpcmUgc3VnZ2VzdCBzdXBwbGVtZW50OyBkbwotKyAgICBvcHRzKz0oICItLSR7dn1zW2Rpc3Bs YXkgY2FwYWJpbGl0aWVzICR7dn1lZCBieSB0aGUgcGFja2FnZV0iICkKLSsgIGRvbmUKLSsKLSsg IF9hcmd1bWVudHMgOiAnKjogOiBfZG5mNV9wYWNrYWdlcyAtVCBhbGwnICRvcHRzCi0rfQotKwot KyMgZG5mIGNvbW1hbmRzCi0rCi0rX2RuZjVfY29tbWFuZHMoKSB7Ci0rICBsb2NhbCAtYSBkbmZf Y21kcz0oCi0rICAgICdhZHZpc29yeTptYW5hZ2UgYWR2aXNvcmllcycKLSsgICAgJ2F1dG9yZW1v dmU6cmVtb3ZlIHVubmVlZGVkIHBhY2thZ2VzJwotKyAgICAnY2hlY2s6Y2hlY2sgZm9yIHByb2Js ZW1zIGluIHBhY2thZ2UgZGF0YWJhc2UnCi0rICAgICdjaGVjay11cGdyYWRlOmNoZWNrIGZvciBh dmFpbGFibGUgcGFja2FnZSB1cGdyYWRlcycKLSsgICAgJ2NsZWFuOnJlbW92ZSBvciBpbnZhbGlk YXRlIGNhY2hlZCBkYXRhJwotKyAgICAnZGlzdHJvLXN5bmM6dXAvZG93bmdyYWRlIGluc3RhbGxl ZCBwYWNrYWdlcyB0byB0aGUgbGF0ZXN0IGF2YWlsYWJsZScKLSsgICAgJ2Rvd25ncmFkZTpkb3du Z3JhZGUgcGFja2FnZXMnCi0rICAgICdkb3dubG9hZDpkb3dubG9hZCBwYWNrYWdlcycKLSsgICAg J2Vudmlyb25tZW50Om1hbmFnZSBjb21wcyBlbnZpcm9ubWVudHMnCi0rICAgICdncm91cDptYW5h Z2UgY29tcHMgZ3JvdXBzJwotKyAgICAnaGlzdG9yeTptYW5hZ2UgdHJhbnNhY3Rpb24gaGlzdG9y eScKLSsgICAgJ2luZm86cHJvdmlkZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBwYWNrYWdl cycKLSsgICAgJ2luc3RhbGw6aW5zdGFsbCBwYWNrYWdlcycKLSsgICAgJ2xlYXZlczpsaXN0IGdy b3VwcyBvZiBsZWFmIHBhY2thZ2VzJwotKyAgICAnbGlzdDpsaXN0IGluc3RhbGxlZCBvciBhdmFp bGFibGUgcGFja2FnZXMnCi0rICAgICdtYWtlY2FjaGU6Z2VuZXJhdGUgdGhlIG1ldGFkYXRhIGNh Y2hlJwotKyAgICAnbWFyazpjaGFuZ2UgdGhlIHJlYXNvbiBvZiBhbiBpbnN0YWxsZWQgcGFja2Fn ZScKLSsgICAgJ21vZHVsZTptYW5hZ2UgbW9kdWxlcycKLSsgICAgJ29mZmxpbmU6bWFuYWdlIG9m ZmxpbmUgdHJhbnNhY3Rpb25zJwotKyAgICAncHJvdmlkZXM6ZmluZCB3aGF0IHBhY2thZ2UgcHJv dmlkZXMgdGhlIGdpdmVuIHZhbHVlJwotKyAgICAncmVpbnN0YWxsOnJlaW5zdGFsbCBwYWNrYWdl cycKLSsgICAgJ3JlbW92ZTpyZW1vdmUgcGFja2FnZXMnCi0rICAgICdyZXBsYXk6cmVwbGF5IHN0 b3JlZCB0cmFuc2FjdGlvbnMnCi0rICAgICdyZXBvOm1hbmFnZSByZXBvc2l0b3JpZXMnCi0rICAg ICdyZXBvcXVlcnk6c2VhcmNoIGZvciBwYWNrYWdlcyBpbiByZXBvc2l0b3JpZXMnCi0rICAgICdz ZWFyY2g6c2VhcmNoIGZvciBwYWNrYWdlcyB1c2luZyBrZXl3b3JkcycKLSsgICAgJ3N3YXA6cmVt b3ZlIHNvZnR3YXJlIGFuZCBpbnN0YWxsIGFub3RoZXIgaW4gdGhlIHNpbmdsZSB0cmFuc2FjdGlv bicKLSsgICAgJ3N5c3RlbS11cGdyYWRlOnVwZ3JhZGUgdGhlIHN5c3RlbSB0byBhIG5ldyBtYWpv ciByZWxlYXNlJwotKyAgICAndXBncmFkZTp1cGdyYWRlIHBhY2thZ2VzJwotKyAgICAndmVyc2lv bmxvY2s6cHJvdGVjdCBwYWNrYWdlcyBmcm9tIHVwZGF0ZXMgdG8gbmV3ZXIgdmVyc2lvbnMnCi0r ICApCi0rICBfZGVzY3JpYmUgLXQgZG5mLWNvbW1hbmRzICdkbmYgY29tbWFuZCcgZG5mX2NtZHMK LSt9Ci0rCi0rIyBzdWJjb21tYW5kcyBhbmQgb3B0aW9ucwotKwotK19kbmY1X3N1YmNtZHNfb3B0 cygpIHsKLSsgIGxvY2FsIGN1cj0kd29yZHNbQ1VSUkVOVF0gY21kPSR3b3Jkc1sxXSBleHBsIHJl dD0xCi0rICBsb2NhbCAtYSB0bXAKLSsgICMgY29tbW9uIG9wdGlvbnMKLSsgIGxvY2FsIC1hIG9m ZmxpbmVfb3B0cz0oCi0rICAgICcoLS1zdG9yZSktLW9mZmxpbmVbc3RvcmUgdGhlIHRyYW5zYWN0 aW9uIHRvIGJlIHBlcmZvcm1lZCBvZmZsaW5lXScKLSsgICAgJygtLW9mZmxpbmUpLS1zdG9yZT1b c3RvcmUgdGhlIHRyYW5zYWN0aW9uIGluIHNwZWNpZmllZCBkaXJlY3RvcnldOiA6IF9kaXJlY3Rv cmllcycKLSsgICkKLSsgIGxvY2FsIC1hIGNvbW1vbl9vcHRzPSgKLSsgICAgJG9mZmxpbmVfb3B0 cwotKyAgICAnLS1hbGxvd2VyYXNpbmdbYWxsb3cgZXJhc2luZyBvZiBpbnN0YWxsZWQgcGFja2Fn ZXNdJwotKyAgICAnLS1za2lwLWJyb2tlbltyZXNvbHZlIGRlcGVuZGVuY3kgcHJvYmxlbXMgYnkg c2tpcHBpbmcgcHJvYmxlbWF0aWMgcGFja2FnZXNdJwotKyAgICAiLS1za2lwLXVuYXZhaWxhYmxl W3NraXAgcGFja2FnZXMgdGhhdCBjYW4ndCBiZSBzeW5jaHJvbml6ZWRdIgotKyAgICAnLS1kb3du bG9hZG9ubHlbZG93bmxvYWQgcGFja2FnZXMgd2l0aG91dCBleGVjdXRpbmcgdHJhbnNhY3Rpb25d JwotKyAgKQotKyAgbG9jYWwgLWEgYWR2aXNvcnlfb3B0cz0oCi0rICAgICctLWFkdmlzb3JpZXM9 W2NvbnNpZGVyIG9ubHkgc3BlY2lmaWVkIGFkdmlzb3JpZXNdOmxpc3Qgb2YgYWR2aXNvcmllczon Ci0rICAgICctLWFkdmlzb3J5LXNldmVyaXRpZXM9W2xpbWl0IHRvIGFkdmlzb3JpZXMgd2l0aCBz cGVjaWZpZWQgc2V2ZXJpdHldOnNldmVyaXR5Ol9zZXF1ZW5jZSBjb21wYWRkIC0gY3JpdGljYWwg aW1wb3J0YW50IG1vZGVyYXRlIGxvdyBub25lJwotKyAgICAnLS1ienM9W2xpbWl0IHRvIGFkdmlz b3JpZXMgdGhhdCBmaXggc3BlY2lmaWVkIEJ1Z3ppbGxhIElEXTpsaXN0IG9mIEJ1Z3ppbGxhIElE OicKLSsgICAgJy0tY3Zlcz1bbGltaXQgdG8gYWR2aXNvcmllcyB0aGF0IGZpeCBzcGVjaWZpZWQg Q1ZFIElEXTpsaXN0IG9mIENWRCBJRF06JwotKyAgICAnLS1zZWN1cml0eVtsaW1pdCB0byBzZWN1 cml0eSBhZHZpc29yaWVzXScKLSsgICAgJy0tYnVnZml4W2xpbWl0IHRvIGJ1Z2ZpeCBhZHZpc29y aWVzXScKLSsgICAgJy0tZW5oYW5jZW1lbnRbbGltaXQgdG8gZW5oYW5jZW1lbnQgYWR2aXNvcmll c10nCi0rICAgICctLW5ld3BhY2thZ2VbbGltaXQgdG8gbmV3cGFja2FnZSBhZHZpc29yaWVzXScK LSsgICkKLSsgIGxvY2FsIC1hIGRvd25ncmFkZV9vcHRzPSgKLSsgICAgJygtLW5vLWFsbG93LWRv d25ncmFkZSktLWFsbG93LWRvd25ncmFkZVtlbmFibGUgZG93bmdyYWRlIG9mIGRlcGVuZGVuY2ll c10nCi0rICAgICcoLS1hbGxvdy1kb3duZ3JhZGUpLS1uby1hbGxvdy1kb3duZ3JhZGVbZGlzYWJs ZSBkb3duZ3JhZGUgb2YgZGVwZW5kZW5jaWVzXScKLSsgICkKLSsgIGxvY2FsIC1hIHJlcGxheV9v cHRzPSgKLSsgICAgJy0taWdub3JlLWV4dHJhc1tub3QgY29uc2lkZXIgZXh0cmEgcGFja2FnZXNd JwotKyAgICAnLS1pZ25vcmUtaW5zdGFsbGVkW21pc21hdGNoZXMgYmV0d2VlbiBpbnN0YWxsZWQg YW5kIHN0b3JlZCB0cmFuc2FjdGlvbiBhcmUgbm90IGVycm9yc10nCi0rICApCi0rICAjIERlYWwg d2l0aCBzb21lIGFsaWFzZXMgKG5vdCBjb21wcmVoZW5zaXZlKQotKyAgY2FzZSAkY21kIGluCi0r ICAgIGNoZWNrLXVwZGdyYWRlKSBjbWQ9Y2hlY2stdXBkYXRlOzsKLSsgICAgZGcpIGNtZD1kb3du Z3JhZGU7OwotKyAgICBkc3luYykgY21kPWRpc3Ryby1zeW5jOzsKLSsgICAgZ3JwKSBjbWQ9Z3Jv dXA7OwotKyAgICBpZikgY21kPWluZm87OwotKyAgICBpbikgY21kPWluc3RhbGw7OwotKyAgICBs cykgY21kPWxpc3Q7OwotKyAgICBtYykgY21kPW1ha2VjYWNoZTs7Ci0rICAgIHJlaSkgY21kPXJl aW5zdGFsbDs7Ci0rICAgIHJtKSBjbWQ9cmVtb3ZlIDs7Ci0rICAgIHJxKSBjbWQ9cmVwb3F1ZXJ5 OzsKLSsgICAgc2UpIGNtZD1zZWFyY2g7OwotKyAgICB1cGRhdGV8dXApIGNtZD11cGdyYWRlOzsK LSsgIGVzYWMKLSsgIGxvY2FsIGN1cmNvbnRleHQ9IiR7Y3VyY29udGV4dCU6KjoqfTpkbmYtJHtj bWR9OiIKLSsKLSsgIGNhc2UgJGNtZCBpbgotKyAgICBhZHZpc29yeXxncm91cHxoaXN0b3J5fG1h cmt8bW9kdWxlfG9mZmxpbmV8cmVwb3F1ZXJ5KQotKyAgICAgIF9kbmY1LSRjbWQgJiYgcmV0PTAK LSsgICAgICA7OwotKyAgICBzeXN0ZW0tdXBncmFkZSkKLSsgICAgICBfZG5mNS1vZmZsaW5lICYm IHJldD0wCi0rICAgICAgOzsKLSsgICAgYXV0b3JlbW92ZSkKLSsgICAgICBfYXJndW1lbnRzIDog JG9mZmxpbmVfb3B0cyAmJiByZXQ9MAotKyAgICAgIDs7Ci0rICAgIGNoZWNrKQotKyAgICAgIF9h cmd1bWVudHMgOiBcCi0rICAgICAgICAnLS1kZXBlbmRlbmNpZXNbc2hvdyBtaXNzaW5nIGRlcGVu ZGVuY2llcyBhbmQgY29uZmxpY3RzXScgXAotKyAgICAgICAgJy0tZHVwbGljYXRlc1tzaG93IGR1 cGxpY2F0ZWQgcGFja2FnZXNdJyBcCi0rICAgICAgICAnLS1vYnNvbGV0ZWRbc2hvdyBvYnNvbGV0 ZWQgcGFja2FnZXNdJyAmJiByZXQ9MAotKyAgICAgIDs7Ci0rICAgIGNoZWNrLXVwZ3JhZGUpCi0r ICAgICAgX2FyZ3VtZW50cyA6IFwKLSsgICAgICAgICRhZHZpc29yeV9vcHRzIFwKLSsgICAgICAg ICctLWNoYW5nZWxvZ3NbcHJpbnQgcGFja2FnZSBjaGFuZ2Vsb2dzXScgXAotKyAgICAgICAgJy0t bWluaW1hbFtyZXBvcnRzIHRoZSBsb3dlc3QgdmVyc2lvbnMgb2YgcGFja2FnZXMgdGhhdCBmaXgg YWR2aXNvcmllc10nIFwKLSsgICAgICAgICcqOiA6IF9kbmY1X3BhY2thZ2VzIC1UIGluc3RhbGxl ZCcgJiYgcmV0PTAKLSsgICAgICA7OwotKyAgICBjbGVhbikKLSsgICAgICB0bXA9KAotKyAgICAg ICAgJ2RiY2FjaGU6cmVtb3ZlIGNhY2hlIGZpbGVzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXBvc2l0 b3J5IG1ldGFkYXRhJwotKyAgICAgICAgJ2V4cGlyZS1jYWNoZTptYXJrIHRoZSByZXBvc2l0b3J5 IG1ldGFkYXRhIGV4cGlyZWQnCi0rICAgICAgICAnbWV0YWRhdGE6cmVtb3ZlIHRoZSByZXBvc2l0 b3J5IG1ldGFkYXRhJwotKyAgICAgICAgJ3BhY2thZ2VzOnJlbW92ZSBhbnkgY2FjaGVkIHBhY2th Z2VzJwotKyAgICAgICAgJ2FsbDpjbGVhbiBhbGwnCi0rICAgICAgKQotKyAgICAgIF9kZXNjcmli ZSAtdCBjYWNoZS10eXBlcyAnY2FjaGUgdHlwZScgdG1wICYmIHJldD0wCi0rICAgICAgOzsKLSsg ICAgZGlzdHJvLXN5bmMpCi0rICAgICAgX2FyZ3VtZW50cyA6ICRjb21tb25fb3B0cyAnKjogOiBf ZG5mNV9wYWNrYWdlcyAtVCBpbnN0YWxsZWQnICYmIHJldD0wCi0rICAgICAgOzsKLSsgICAgZG93 bmdyYWRlKQotKyAgICAgIF9hcmd1bWVudHMgOiBcCi0rICAgICAgICAkY29tbW9uX29wdHMgJGRv d25ncmFkZV9vcHRzIFwKLSsgICAgICAgICcqOiA6IF9kbmY1X3BhY2thZ2VzIC1UIGluc3RhbGxl ZCcgJiYgcmV0PTAKLSsgICAgICA7OwotKyAgICBkb3dubG9hZCkKLSsgICAgICBfYXJndW1lbnRz IDogXAotKyAgICAgICAgJy0tYXJjaD1bbGltaXQgdG8gcGFja2FnZXMgb2Ygc3BlY2lmaWVkIGFy Y2hpdGVjdHVyZV06bGlzdCBvZiBhcmNoaXRlY3R1cmVzOicgXAotKyAgICAgICAgJy0tcmVzb2x2 ZVtyZXNvbHZlIGFuZCBkb3dubG9hZCBuZWVkZWQgZGVwZW5kZW5jaWVzXScgXAotKyAgICAgICAg Jy0tYWxsZGVwc1t3aXRoIC0tcmVzb2x2ZSwgYWxzbyBkb3dubG9hZCBhbHJlYWR5IGluc3RhbGxl ZCBkZXBlbmRlbmNpZXNdJyBcCi0rICAgICAgICAnLS1kZXN0ZGlyPVtkb3dubG9hZCB0byB0aGUg c3BlY2lmaWVkIGRpcmVjdG9yeV06IDogX2RpcmVjdG9yaWVzJyBcCi0rICAgICAgICAnLS1zcnBt W2Rvd25sb2FkIHRoZSBzb3VyY2UgcnBtXScgXAotKyAgICAgICAgJy0tdXJsW3ByaW50IHRoZSBs aXN0IG9mIFVSTHMgd2hlcmUgdGhlIHJwbXMgY2FuIGJlIGRvd25sb2FkZWRdJyBcCi0rICAgICAg ICAnKi0tdXJscHJvdG9jb2w9W3dpdGggLS11cmwsIGxpbWl0IHRvIHNwZWNpZmllZCBwcm90b2Nv bHNdOnByb3RvY29sOl9zZXF1ZW5jZSBjb21wYWRkIC0gaHR0cCBodHRwcyBmdHAgZmlsZScgXAot KyAgICAgICAgJyo6IDogX2RuZjVfcGFja2FnZXMgLVQgYWxsJyAmJiByZXQ9MAotKyAgICAgIDs7 Ci0rICAgIGVudmlyb25tZW50KQotKyAgICAgIF9hcmd1bWVudHMgOiBcCi0rICAgICAgICAnLS1h dmFpbGFibGVbc2hvdyBvbmx5IGF2YWlsYWJsZSBlbnZpcm9ubWVudHNdJyBcCi0rICAgICAgICAn LS1pbnN0YWxsZWRbc2hvdyBvbmx5IGluc3RhbGxlZCBlbnZpcm9ubWVudHNdJyBcCi0rICAgICAg ICAnOnN1YmNvbW1hbmQ6KGxpc3QgaW5mbyknIFwKLSsgICAgICAgICcqOiA6IF9kbmY1X2Vudmly b25tZW50cycgJiYgcmV0PTAKLSsgICAgICA7OwotKyAgICBpbmZvfGxpc3QpCi0rICAgICAgX2Fy Z3VtZW50cyA6IFwKLSsgICAgICAgICctLXNob3dkdXBsaWNhdGVzW3Nob3cgYWxsIHZlcnNpb25z IG9mIHRoZSBwYWNrYWdlc10nIFwKLSsgICAgICAgICcqOiA6IF9kbmY1X3BhY2thZ2VzIC1UIGFs bCcgXAotKyAgICAgICAgKyAnKHR5cGUpJyBcCi0rICAgICAgICAnLS1pbnN0YWxsZWRbbGlzdCBv bmx5IGluc3RhbGxlZCBwYWNrYWdlc106KjogOiBfZG5mNV9wYWNrYWdlcyAtVCBpbnN0YWxsZWQn IFwKLSsgICAgICAgICctLWF2YWlsYWJsZVtsaXN0IG9ubHkgYXZhaWxhYmxlIHBhY2thZ2VzXToq OiA6IF9kbmY1X3BhY2thZ2VzIC1UIGF2YWlsYWJsZScgXAotKyAgICAgICAgJy0tZXh0cmFzW2xp c3Qgb25seSBleHRyYXNdJyBcCi0rICAgICAgICAnLS1vYnNvbGV0ZXNbbGlzdCBvbmx5IGluc3Rh bGxlZCBidXQgb2Jzb2xldGVkIHBhY2thZ2VzXToqOiA6IF9kbmY1X3BhY2thZ2VzIC1UIGluc3Rh bGxlZCcgXAotKyAgICAgICAgJy0tcmVjZW50W2xpc3Qgb25seSByZWNlbnRseSBhZGRlZCBwYWNr YWdlc10nIFwKLSsgICAgICAgICctLXVwZ3JhZGVzW2xpc3Qgb25seSBhdmFpbGFibGUgdXBncmFk ZXMgb2YgaW5zdGFsbGVkIHBhY2thZ2VzXToqOiA6IF9kbmY1X3BhY2thZ2VzIC1UIHVwZ3JhZGFi bGUnIFwKLSsgICAgICAgICctLWF1dG9yZW1vdmVbbGlzdCBvbmx5IHBhY2thZ2VzIHRoYXQgd2ls bCBiZSBhdXRvcmVtb3ZlZF06KjogOiBfZG5mNV9wYWNrYWdlcyAtVCBpbnN0YWxsZWQnICYmcmV0 PTAKLSsgICAgICA7OwotKyAgICBpbnN0YWxsKQotKyAgICAgIF9hcmd1bWVudHMgOiBcCi0rICAg ICAgICAkY29tbW9uX29wdHMgJGRvd25ncmFkZV9vcHRzICRhZHZpc29yeV9vcHRzIFwKLSsgICAg ICAgICcqOiA6IF9kbmY1X3BhY2thZ2VzX29yX3JwbXMgLVQgYXZhaWxhYmxlJyAmJiByZXQ9MAot KyAgICAgIDs7Ci0rICAgIGxlYXZlc3xtYWtlY2FjaGUpCi0rICAgICAgIyBub3RoaW5nIHRvIGNv bXBsZXRlCi0rICAgICAgOzsKLSsgICAgcHJvdmlkZXMpCi0rICAgICAgX2ZpbGVzICYmIHJldD0w Ci0rICAgICAgOzsKLSsgICAgcmVpbnN0YWxsKQotKyAgICAgIF9hcmd1bWVudHMgOiBcCi0rICAg ICAgICAkY29tbW9uX29wdHMgJGRvd25ncmFkZV9vcHRzIFwKLSsgICAgICAgICcqOiA6IF9kbmY1 X3BhY2thZ2VzX29yX3JwbXMgLVQgaW5zdGFsbGVkJyAmJiByZXQ9MAotKyAgICAgIDs7Ci0rICAg IHJlbW92ZSkKLSsgICAgICBfYXJndW1lbnRzIDogXAotKyAgICAgICAgJG9mZmxpbmVfb3B0cyBc Ci0rICAgICAgICAnLS1uby1hdXRvcmVtb3ZlW25vdCByZW1vdmUgZGVwZW5kZW5jaWVzIHRoYXQg YXJlIG5vIGxvbmdlciB1c2VkXScgXAotKyAgICAgICAgJyo6IDogX2RuZjVfcGFja2FnZXMgLVQg aW5zdGFsbGVkJyAmJiByZXQ9MAotKyAgICAgIDs7Ci0rICAgIHJlcGxheSkKLSsgICAgICBfYXJn dW1lbnRzIDogXAotKyAgICAgICAgJHJlcGxheV9vcHRzIFwKLSsgICAgICAgICc6dHJhbnNhY3Rp b24gcGF0aDpfZGlyZWN0b3JpZXMnICYmIHJldD0wCi0rICAgICAgOzsKLSsgICAgcmVwbykKLSsg ICAgICBfYXJndW1lbnRzIDogXAotKyAgICAgICAgJy0tYWxsW3Nob3cgaW5mbyBhYm91dCBhbGwg cmVwb3NpdG9yaWVzXScgXAotKyAgICAgICAgJy0tZW5hYmxlZFtzaG93IGluZm8gb25seSBhYm91 dCBlbmFibGVkIHJlcG9zaXRvcmllc10nIFwKLSsgICAgICAgICctLWRpc2FibGVkW3Nob3cgaW5m byBvbmx5IGFib3V0IGRpc2FibGVkIHJlcG9zaXRvcmllc10nIFwKLSsgICAgICAgICc6c3ViY29t bWFuZDoobGlzdCBpbmZvKScgJiYgcmV0PTAKLSsgICAgICA7OwotKyAgICBzZWFyY2gpCi0rICAg ICAgX2FyZ3VtZW50cyA6IFwKLSsgICAgICAgICctLWFsbFtzZWFyY2ggcGF0dGVybnMgYWxzbyBp bnNpZGUgZGVzY3JpcHRpb24gYW5kIFVSTCBmaWVsZHNdJyBcCi0rICAgICAgICAnLS1zaG93ZHVw bGljYXRlc1tzaG93IGFsbCB2ZXJzaW9ucyBvZiBwYWNrYWdlcywgbm90IG9ubHkgdGhlIGxhdGVz dCBvbmVzXScgXAotKyAgICAgICAgJyo6c2VhcmNoIHBhdHRlcm46JyAmJiByZXQ9MAotKyAgICAg IDs7Ci0rICAgIHN3YXApCi0rICAgICAgX2FyZ3VtZW50cyA6IFwKLSsgICAgICAgICRvZmZsaW5l X29wdHMgXAotKyAgICAgICAgJy0tYWxsb3dlcmFzaW5nW2FsbG93IGVyYXNpbmcgb2YgaW5zdGFs bGVkIHBhY2thZ2VzXScgXAotKyAgICAgICAgJzogOiBfZG5mNV9wYWNrYWdlcyAtVCBpbnN0YWxs ZWQnIFwKLSsgICAgICAgICc6IDogX2RuZjVfcGFja2FnZXMgLVQgYXZhaWxhYmxlJyAmJiByZXQ9 MAotKyAgICAgIDs7Ci0rICAgIHVwZ3JhZGUpCi0rICAgICAgX2FyZ3VtZW50cyA6IFwKLSsgICAg ICAgICR7Y29tbW9uX29wdHM6Iy0tc2tpcC1icm9rZW4qfSAkZG93bmdyYWRlX29wdHMgJGFkdmlz b3J5X29wdHMgXAotKyAgICAgICAgJy0tbWluaW1hbFt1cGdyYWRlIG9ubHkgdG8gdGhlIGxvd2Vz dCBhdmFpbGFibGUgdmVyc2lvbnMgdGhhdCBmaXggYWR2aXNvcmllc10nIFwKLSsgICAgICAgICct LWRlc3RkaXI9W3NwZWNpZnkgZGlyZWN0b3J5IGludG8gd2hpY2ggZG93bmxvYWRpbmcgcGFja2Fn ZXNdOiA6IF9kaXJlY3RvcmllcycgXAotKyAgICAgICcqOiA6IF9kbmY1X3BhY2thZ2VzX29yX3Jw bXMgLVQgdXBncmFkYWJsZScgJiYgcmV0PTAKLSsgICAgICA7OwotKyAgICB2ZXJzaW9ubG9jaykK LSsgICAgICBfYXJndW1lbnRzIDogXAotKyAgICAgICAgJzpzdWJjb21tYW5kOihhZGQgZXhjbHVk ZSBjbGVhciBkZWxldGUgbGlzdCknIFwKLSsgICAgICAgICcqOiA6IF9kbmY1X3BhY2thZ2VzIC1U IGFsbCcgJiYgcmV0PTAKLSsgICAgICA7OwotKyAgZXNhYwotKyAgcmV0dXJuIHJldAotK30KLSsK LSsjIG1haW4gY29tcGxldGVyCi0rCi0rX2RuZjUoKSB7Ci0rICBsb2NhbCBjdXJjb250ZXh0PSIk Y3VyY29udGV4dCIgc3RhdGUgc3RhdGVfZGVzY3IgbGluZSByZXQ9MQotKyAgdHlwZXNldCAtQSBv cHRfYXJncwotKyAgbG9jYWwgLWEgb3B0cz0oCi0rICAgICcoLXkgLS1hc3N1bWV5ZXMpLS1hc3N1 bWVub1thbnN3ZXIgbm8gZm9yIGFsbCBxdWVzdGlvbnNdJwotKyAgICAnLS1iZXN0W3RyeSB0aGUg YmVzdCBhdmFpbGFibGUgcGFja2FnZSB2ZXJzaW9uXScKLSsgICAgJygtQyAtLWNhY2hlb25seSkn ey1DLC0tY2FjaGVvbmx5fSJbcnVuIGVudGlyZWx5IGZyb20gc3lzdGVtIGNhY2hlLCBkb24ndCB1 cGRhdGUgY2FjaGVdIgotKyAgICAnLS1jb21tZW50PVthZGQgY29tbWVudCB0byB0cmFuc2FjdGlv biBoaXN0b3J5XTpjb21tZW50OicKLSsgICAgJygtYyAtLWNvbmZpZykney1jKywtLWNvbmZpZz19 J1tzcGVjaWZ5IGNvbmZpZ3VyYXRpb24gZmlsZV06Y29uZmlnIGZpbGU6X2ZpbGVzJwotKyAgICAn LS1kZWJ1Z3NvbHZlcltkdW1wIGRldGFpbGVkIHNvbHZpbmcgcmVzdWx0cyBpbiBmaWxlIC4vZGVi dWdkYXRhXScKLSsgICAgJyotLWRpc2FibGUtcGx1Z2luPVtkaXNhYmxlIHNwZWNpZmllZCBwbHVn aW5zXTpsaXN0IG9mIHBsdWdpbiBuYW1lczonCi0rICAgICcoLS1yZXBvKSotLWRpc2FibGUtcmVw bz1bZGlzYWJsZSBzcGVjaWZpZWQgcmVwb3NdOiA6IF9zZXF1ZW5jZSBfZG5mNV9yZXBvc2l0b3Jp ZXMgLVQgZW5hYmxlZCcKLSsgICAgJy0tZHVtcC1tYWluLWNvbmZpZ1twcmludCBtYWluIGNvbmZp Z3VyYXRpb24gdmFsdWVzIHRvIHN0ZG91dF0nCi0rICAgICcqLS1kdW1wLXJlcG8tY29uZmlnPVtw cmludCByZXBvc2l0b3J5IGNvbmZpZ3VyYXRpb24gdmFsdWVzIHRvIHN0ZG91dF06cmVwaSBpZCcK LSsgICAgJy0tZHVtcC12YXJpYWJsZXNbcHJpbnQgdmFyaWFibGUgdmFsdWVzIHRvIHN0ZG91dF0n Ci0rICAgICcqLS1lbmFibGUtcGx1Z2luPVtlbmFibGUgc3BlY2lmaWVkIHBsdWdpbnNdOmxpc3Qg b2YgcGx1Z2luIG5hbWVzOicKLSsgICAgJyotLWVuYWJsZS1yZXBvPVtlbmFibGUgYWRkaXRpb25h bCByZXBvc106IDogX3NlcXVlbmNlIF9kbmY1X3JlcG9zaXRvcmllcyAtVCBkaXNhYmxlZCcKLSsg ICAgJy0tZm9yY2VhcmNoPVtmb3JjZSB0aGUgdXNlIG9mIHRoZSBzcGVjaWZpZWQgYXJjaF06YXJj aDonCi0rICAgICcoLSkney1oLC0taGVscH0nW3Nob3cgdGhlIGhlbHAgbWVzc2FnZV0nCi0rICAg ICctLWluc3RhbGxyb290PVtzZXQgaW5zdGFsbCByb290XTogOiBfZGlyZWN0b3JpZXMnCi0rICAg ICctLW5vLWJlc3RbZG8gbm90IGxpbWl0IHRyYW5zYWN0aW9ucyB0byBiZXN0IGNhbmRpZGF0ZXNd JwotKyAgICAnLS1uby1kb2NzW2RvIG5vdCBpbnN0YWxsIGRvY3VtZW50YXRpb25dJwotKyAgICAn LS1uby1ncGdjaGVja1tza2lwIGNoZWNraW5nIEdQRyBzaWduYXR1cmVzIG9uIHBhY2thZ2VzXScK LSsgICAgJy0tbm8tcGx1Z2luc1tkaXNhYmxlIGFsbCBwbHVnaW5zXScKLSsgICAgJygtcSAtLXF1 aWV0KSd7LXEsLS1xdWlldH0nW3Nob3cganVzdCB0aGUgcmVsZXZhbnQgY29udGVudF0nCi0rICAg ICctLXJlZnJlc2hbZm9yY2UgcmVmcmVzaGluZyBtZXRhZGF0YSBiZWZvcmUgcnVubmluZyB0aGUg Y29tbWFuZF0nCi0rICAgICctLXJlbGVhc2V2ZXI9W292ZXJyaWRlIGRpc3RyaWJ1dGlvbiByZWxl YXNlIGluIGNvbmZpZyBmaWxlc106cmVsZWFzZSB2ZXI6JwotKyAgICAnKC0tZGlzYWJsZXJlcG8p Ki0tcmVwbz1bZW5hYmxlIGp1c3QgdGhlIHNwZWNpZmllZCByZXBvXTogOiBfc2VxdWVuY2UgX2Ru ZjVfcmVwb3NpdG9yaWVzIC1UIGFsbCcKLSsgICAgJyotLXJlcG9mcm9tcGF0aD1bc3BlY2lmeSBh ZGRpdGlvbmFsIHJlcG9zXTpyZXBvc2l0b3J5X2xhYmVsLHBhdGhfb3JfdXJsOiAnCi0rICAgICcq LS1zZXRvcHQ9W292ZXJyaWRlIG9wdGlvbiBpbiBjb25maWcgZmlsZV06cmVwb2lkLm9wdGlvbj12 YWx1ZTonCi0rICAgICcqLS1zZXR2YXI9W292ZXJyaWRlIERORjUgdmFyaWFibGUgdmFsdWVdJwot KyAgICAnLS1zaG93LW5ldy1sZWF2ZXNbc2hvdyBuZXdseSBpbnN0YWxsZWQgbGVhZiBwYWNrYWdl c10nCi0rICAgICctLXVzZS1ob3N0LWNvbmZpZ1t1c2UgY29uZmlnIGZpbGVzIGFuZCB2YXJpYWJs ZXMgZnJvbSBob3N0IHN5c3RlbV0nCi0rICAgICcoLSAqKS0tdmVyc2lvbltzaG93IGRuZiB2ZXJz aW9uXScKLSsgICAgJygteSAtLWFzc3VtZXllcyAtLWFzc3VtZW5vKSd7LXksLS1hc3N1bWV5ZXN9 J1thbnN3ZXIgeWVzIGZvciBhbGwgcXVlc3Rpb25zXScKLSsgICAgJyoney14KywtLWV4Y2x1ZGU9 fSdbZXhjbHVkZSBzcGVjaWZpZWQgcGFja2FnZXMgZnJvbSB0cmFuc2FjdGlvbl06IDogX3NlcXVl bmNlIF9kbmY1X3BhY2thZ2VzIC1UIGFsbCcKLSsgICkKLSsgIF9hcmd1bWVudHMgLUMgLXMgOiAk b3B0cyAnOiA6LT5jb21tYW5kJyAnKjo6IDotPmNtZF9hcmdzJyAmJiByZXQ9MAotKwotKyAgY2Fz ZSAkc3RhdGUgaW4KLSsgICAgY29tbWFuZCkgX2RuZjVfY29tbWFuZHMgJiYgcmV0PTAgOzsKLSsg ICAgY21kX2FyZ3MpIF9kbmY1X3N1YmNtZHNfb3B0cyAmJiByZXQ9MCA7OwotKyAgZXNhYwotKyAg cmV0dXJuIHJldAotK30KLSsKLStfZG5mNSAiJEAiCgpkaWZmIC0tZ2l0IGEvMDAxMC16c2gtZml4 LWRuZjUtY29tcGxldGlvbi13aXRoLXJwbS1maWxlcy5wYXRjaCBiLzAwMTAtenNoLWZpeC1kbmY1 LWNvbXBsZXRpb24td2l0aC1ycG0tZmlsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGVhY2I4MTAuLjAwMDAwMDAKLS0tIGEvMDAxMC16c2gtZml4LWRuZjUtY29tcGxldGlv bi13aXRoLXJwbS1maWxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLWNv bW1pdCAwNzFlMzI1YzgyNmE4OWI3OTIwNTZjM2ZhZjBjNDAwYjhjMGM1NzM4Ci1BdXRob3I6IENo cmlzdG9waCBFcmhhcmR0IDxjaHJpc3RvcGguZXJoYXJkdEBzaWNoZXJoYS5kZT4KLURhdGU6ICAg VHVlIFNlcCAzMCAwODo0NzoxNSAyMDI1ICswOTAwCi0KLSAgICA1Mzk4MTogX2RuZjU6IGZpeCBj b21wbGV0aW9uIG9mIGxvY2FsIHJwbSBmaWxlcwotCi1kaWZmIC0tZ2l0IGEvQ29tcGxldGlvbi9S ZWRoYXQvQ29tbWFuZC9fZG5mNSBiL0NvbXBsZXRpb24vUmVkaGF0L0NvbW1hbmQvX2RuZjUKLWlu ZGV4IGUxOTRkZDVhNy4uOWNiZjQ1MWE4IDEwMDY0NAotLS0tIGEvQ29tcGxldGlvbi9SZWRoYXQv Q29tbWFuZC9fZG5mNQotKysrIGIvQ29tcGxldGlvbi9SZWRoYXQvQ29tbWFuZC9fZG5mNQotQEAg LTM4LDcgKzM4LDcgQEAgX2RuZjVfcnBtX2ZpbGVzKCkgewotIAotIF9kbmY1X3BhY2thZ2VzX29y X3JwbXMoKSB7Ci0gICBpZiBbWyAiJHdvcmRzW0NVUlJFTlRdIiA9ICgqLyp8XH4qKSBdXTsgdGhl biAjIGlmIGxvb2tzIGxpa2UgYSBwYXRoIG5hbWUKLS0gICAgX2RuZl9ycG1fZmlsZXMKLSsgICAg X2RuZjVfcnBtX2ZpbGVzCi0gICBlbHNlCi0gICAgIF9kbmY1X3BhY2thZ2VzICIkQCIKLSAgIGZp CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggNzQ3NDgwYy4uYmQ0OTRhNSAx MDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEsMiBAQAotU0hBNTEy ICh6c2gtNS45LnRhci54eikgPSBkOTEzOGI3ZjM3OWFkOTQyYTVmNDY4MTlkMmRkNTJkMzFmM2Ex MTI5ZjJhMGQxYjUzZDRjNWNkNDNjMzE4YjYwMzk2ZGE2ZDM3YzU3YzQ3N2I4ZTk1OGZiNzUwMjA5 YWNhMGFlOTNmOGM5ZGQ0MmFjOTU4ZGUwMDZhMGZmMDY3ZQotU0hBNTEyICh6c2gtNS45LnRhci54 ei5hc2MpID0gYjZhNzJmOGRmZDJlZDljMjVlNGFmYTViM2QxM2IyM2MxYmYwYmNlYWNmY2UzYWQw ZmFkZjI0YTlkZjkxMzgyOTE0ZjczMjJlZjRlZDhiZmI0YjY4ODE4ZmIxOGZlMzk3M2QyMjE1NGE2 Y2M2MzhiNDZmMDJlMzBiYWZkOTNmY2IKK1NIQTUxMiAoenNoLTUuOS4xLnRhci54eikgPSBlMTZj MTM1NTkyNjI1NzdlNzI1YjI5MGMzNWNlNjU5OGQ1OGMyYWNkZDIwNGVhYzYxOWU4ZWQ5YjZhOTE4 YmNlMzliZmJmOWQzZWY0YzVlYjg3N2FmN2QzMjc5YzhhNGIxNTQzOWViYTZhMzhjNGU0ZDQ3ZDU1 NTVkNWY3OTg3MgorU0hBNTEyICh6c2gtNS45LjEudGFyLnh6LmFzYykgPSA4YzlmYjM5M2RlOWI5 ZmY4NDM1M2VkMzVmODEyYzhlMDVlNjEzMWMyMzhmZDIzM2EyZjZlM2FhMDJiMDY0NGM3YWZkNTk3 YThiNGU3YTczNzE1MmU0NDc4ZDBkNGRhZTdhNWU0MjU1OTA0N2YxMDBlYjUzNjA0OWM0NDkwY2Vl YgoKZGlmZiAtLWdpdCBhL3pzaC1rZXlyaW5nLmFzYyBiL3pzaC1rZXlyaW5nLmFzYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTRiMTdmCi0tLSAvZGV2L251bGwKKysrIGIv enNoLWtleXJpbmcuYXNjCkBAIC0wLDAgKzEsMjY5IEBACistLS0tLUJFR0lOIFBHUCBQVUJMSUMg S0VZIEJMT0NLLS0tLS0KKworbVFFTkJGd3N3dWdCQ0FEZGt6dWE5SHdDOElwNXpoN1owL25KR0ti TXlxK2NvYlhBcmhIb3M0MHRhZWlkbjArdgorSFJFUzV5NlBIUitoNTZjOVRwbUpFcC9iTENIUDVw THZjU3ovRVR6NytLazgycGxkNjNwT0hlalN4QVFDdTdXdgorMU53clR1NlR5S2xac05HMW9aQnh4 MkxrRU42azhXeSs4OERsUXFab1hPWGFmbWhGK1NtczZndjlEWGEwMjlzdgorQjA3RWVoQXgwMlQr YjAyUXdWVkcvUHE5YXVzdG1zVGQ5RWNOY1ZOUkRuZUQyTGNkeENsbGJTNUlhbWpWYStOVworb2VL WlZxYnNPNzF1VW9sd0J2c2hGU0JMUHNTWThFWmRHQXBqYXpRY1kwbGdrYVJBL1FsTU9pc3lxMm1q VjZGWQorSlhIcmxJM1dXV0sydlJPamIzNUFIaUhFRS9FVmdiNVJWcHh4QUJFQkFBRzBFMlJoYm1F Z1BHUmhibUZBWkdGdQorWVM1cGN6NkpBVTRFRXdFSUFEZ1dJUVI4cCt5cThHSVd1UStKUVVhcytC UnNyb3k3eEFVQ1hDekM2QUliQXdVTAorQ1FnSEFnWVZDZ2tJQ3dJRUZnSURBUUllQVFJWGdBQUtD UkNzK0JSc3JveTd4QTVYQi85M0VRcXpzMGFzMDdVKworZ21QRHB2RTdKd0lZNFRyY3ZBUzdSSGdK NHNFK2FyUjV1VHppSGl4aUhCUVFNZWRiZlY1MUp4Z3dzNldMMEtvOAorN0s4aDlzTjJVR25YSWMx bFd1UTJGRHNocmNwU0hadkx4TDRaN1dDM1JqL0RxMy9udVpaeWxqV1FOSHhnNEJsTworRUpxZTY3 RjVrVDJPSTU5MW94QjZMMUU2RjhzVnNneEQ3Z0JDUFZsLzhDc3laN3dreVcvZ01ScXJsWW9sSmhw UworQjVDMXpLSnp2VUxRSktYRENoOURVeWk3Y0tGdFB5WWZZdFJXZldoS0d6NURodHQ5cXZCbHhK elp1Zlo5UU5RdAorb1BoTkdGMzRRYUxXVENMUmJ0b1ZiTnEyTmx4YWxaNUJ5aGcvMHBCY1FjMnc0 QzcwalN4RjNjKzJvTUVHUUliYworNUdKRmdMcFp1UUVOQkZ3c3d1Z0JDQUQ1cklZZGxMV0hPTXcr c3RXVFJOcXV1M1Nacit2N1JSenJlVjlmT0tOKworbFVpcXdpY1UydUNYMzlzL3ErMnd0RjUzNnIr SVMvNTNEck1BVzhzeGY4ZXJvSytNQm5KWXRQM1U4Qm5CM21hZworYlRKWE1qbmcyWnFaWHZ4emV0 WEx5WFIrMzhmKzZXYkp0VjBCeURlRlFRSllzRnhPYWczcjZldHhyenB3UkZtMAorUEw0NDBmYzBu eE94aHhXV0pjUjBSS1RNWDg3eW1pcGk5bUVUWWVaaTdoOUIzY0R3OGFJVXoyTzNzNDVUdE5sQQor TkkxTU5NVTRzQXNjNWkrdzB6Sk9OOWdUK3JXRFlGajZCaUVxblJvU0syWERtK1dhSmEzRndnVzFX bkhQVGUrRQorUkpGR1Q1OERJQ1UzdGE2Y0NRUGF2WnovS0FMeWo4R0JKK1B5ZGVsSUF2MnJBQkVC QUFHSkFUWUVHQUVJQUNBVworSVFSOHAreXE4R0lXdVErSlFVYXMrQlJzcm95N3hBVUNYQ3pDNkFJ YkRBQUtDUkNzK0JSc3JveTd4T2d4Qi80MAorc3A5eEZxOEwvNTl5UlRlWFNza09zR2szYVVsU25B Q29mY1JDR2dEU1hWNUd3V0ovRzBPOGtyaEhPSVNKS3V4YwordkEwd0xGcTBXQi9FYWZyS0FQVFNr cm54bXE4bm9UM2M4TXBuRlJTWEhxM3NPWGtCNG5xVkVtVXUvQUFBMFRiQworSGN3aEZRRXh2SzdP K2Z1bnhJR1U1dnFIRmVRR0owVmNnQy9LWlVFTU50VlY4YVpHdm43SnpTeEVJd0hWWEdMdQorNUg3 VG5OV3pMemt6SURWWTlJSnBUdXRzYzZSTXZ2NkJWOG9vV0JIU2d6bWgwTVRxRWp3TmFySEFNdWZm ckFqRQoreklPM3FpMFlDYXhTRFZmMmpyV3lZcEIyUW50cGxtVW91YkI5cy9uZ0NxVmI0QTNCN0p4 UG1KdUwvMFhNVVRobgorV1pMV0ZwYkxpbXlvVUNmSG9laFoKKz1kUi9ZCistLS0tLUVORCBQR1Ag UFVCTElDIEtFWSBCTE9DSy0tLS0tCistLS0tLUJFR0lOIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0t LS0KKworbVFHTkJGRzNUUmtCREFETW9GQVNMSU1QOWZheEtmL1Ivck9yWktiQlQ3RXhNWFFUOWNW amxRTEJjak90YjN1dgorNjNOTlRiai9mQkRvSGJnQWFsNGpPcktZUVZQYTBMRHlUN0s5bWdqK1dC aE5aT2JQZURibWJVd0NzcndDNnk0NgorQ0pva1VjMEp3dEwwUW0xZDhkdk1nWjZUek8ySi9aUkJB QitCditXNXBWa1YrM0JpZlM4bWhITHJ3V2FKRDZzMworQXh4bDlQUEFDRzFOQjVtbEl0VWNpN0JL K0pUSTJCdzd3aGUrZ3R5dUNuL2FhdDRueTZOWWdjNzRQdEx6MHVTLworaEcrNGhGTUt2WnJQc2Zs RVkvSDE0R0sxQXV0VzhERlNqVzZBK2V0blY5T0JVZW1HeiswV29GT2pFK0FHSGJ1WQorRlFaWVVj ai9XWlNWY3h5SzBHSmJUYTMvS2JjT3dxTGQreGRJV0xCeWJTYm9QMFRBVWVseW9rKzFQTE9SbFpu ZAorZHd2RTljcDFoRWNFSmovaGxtdWdSN2FzZUcwRmIwdHhVOXgzT253WWFpV2Jzams3b0xWeW5s Y1FHekdlNThJRAorU2Zkc0EyeXdoa3VRTzZxMzk3UXpORFBSblA5MmcrK0haUm0rYkdsM1UwZmZr OEFzcWVmNVRMTVp2VVJSTXkvLworOE9RRmplTVdhWUNYbGYwQUVRRUFBYlFqUkdGdWFXVnNJRk5v WVdoaFppQThaR0Z1YVdWc2MyaEFZWEJoWTJobAorTG05eVp6NkpBaHdFRUFFS0FBWUZBbGZqVHdB QUNna1EzK2FScmpNYm85dEIvQS82QTlFamV6TzVDOG1TNVdKYQorbHorZFpXRWVKRi83NW5wQ3BS c3VDTzV3dVRNWTRhYzVWbERSMEhxQkQ3SkpuUit2Zno0WjI2RXJ0eXlNWm11dQoreHhqNzJlZlQy eTRYaVZBV1hNclFmU1IzcEl4eVRsbnJSNjVRb09JVVhVODErMWpEZ24vVXZLWkZEYTV1aXB3Nwor Zk5pTnFnUTZPWEwxTzRrTHNiTFA5UHI4aHJlRDFQdzBOK0ZDOTNMYTUzN3FEUDFiRkxQQzhZZ2ll NTUrWXlBRQora1dvUGcwKzZlU20rUEk5N3FxQTRyb1BQSEMvc3JHakRaOURHNHhUd21CdTlsM2pa V25oOXZ3ektsMTVBaTFUNAorcko1aXBINmdpUjcvdWhnbEJXbDBDb3FsR3VIZHliNGVRNnMzbHBq SGt4VFQyMXZsdmppMnAwbTFDMEZCOUpMZAorbGdocXFMU0NCTG00MGFkSld5QmVzNmJYdjQ1VVFL M3NZdWJFVENDWG5NL2MyQXRzaEsreVpSdjAxQnVuZzUzWAorYUtkcUFhUFRaeUUvSHlMZW13UkNa SE9iNldLZlhJUWRYOGJUeW9LazlNR2xsYnhLQnhzMng1b0pHOEpIb2NUTgorekJWeVV2K0JKYmdt U242NHMrTnVDZjdYd1JSTU9SbVM3OW9Mb3lrdUNIZTRENENEN1ppcUJ6MXltcXlXUlVQRworbGM4 QzVUNUwvMFlOYSs1VWFjRnd6cGhXd3Q2djJuVmtsL3diMlVWQXQwV0l1MVhxenExYWhjMkZBbmo5 cUFpUworUEVmeUdpNW9TSHpMQVAxa1F2NXRxNU1EeWkwMlpwV2dBSkdlcHhTTWxqNk5SRWlUZjFy NTBGTGsyaEpMb3YrNgorbUlZUG04S1l5OHZMRExPdXdFRVdKaTc3UEhTSkFiMEVFd0VLQUNjQ0d3 TUNIZ0VDRjRBRkN3a0lCd01GRlFvSgorQ0FzRkZnSURBUUFGQWxzNTMwa0ZDUTFFK1NzQUNna1Fw Zjd1T3NlVGRFU1p3Z3YvVTVFckFNSDJMUE05ejhRUQorV2FVazRaTlEzTGwzbStwd1E1L2xsWHJh d3MvOWxEbFg0UTIxTVIwZTZKRVpPVVB4QnNDUTIvcWFBRU4zamJXZAorcHlRWDd4dUNZK1BtVFVP T3gzYzBYVE5BQjY0bW9uTTFaeEtZYTVzRVA2SlBxVVJQRVc1dHlob0FZVUtBU3VCZAoraitvY0s2 dDBJWEdDR3VGK2dOdDc0cVVpNlI2TDNneWlleE1aQXRNQ3BORmQ1TnE4em41RStvRXBMSWRVbnpv aQorekNlbWtubHJxWmZiU2FmRWpod3AweWU2Y2k0TTVGTytJR1FCd3V5aGZ5YkNObHJVV2dhMTlE VGFQT0ZJYnMvRAorLzhweWczQm9jNUFoUklTcVdZMFgzeGZOL1hYNDVCOWlhQXpwOWdWVzN2L05W NXBRN2Vsd0VYaXhDaENXYldsRworcDdjdzNCR2lzb2NkcHlrT3BlS3VTR3VyZE1mUm9sZlY0UWFG SmhqK0pWc3FsZHVGakpFQm5ocnFRM3JsaUd5MworSncwaWdBS1l1Wld0aDhhY1lNcEphYjE4b0hO TFBRR0x2Wkh6aXcrMCtSNU1aYnEzN0dZUThJcGR6Y2JOTVVYWQorWXJSUFJzVW1FdEZwWjVRamhm VHdvclZvOU5IR0VIaGYzbGkwblVOTWxHZnVJelFYaVFHOUJCTUJDZ0FuQWhzRAorQWg0QkFoZUFC UXNKQ0FjREJSVUtDUWdMQlJZQ0F3RUFCUUplTlQ3TkJRa1FGM28wQUFvSkVLWCs3anJIazNSRQor VFpjTC9SY29FNzM3cGtVV3pVK0J2NHF2R2N3SytFUTNXUFdFYjljbUNzbUJxWjRMUmFMUDFVWko3 a3p1YmE1NAorM1FETXV3SW03eHk0R3k1SnR5M3pPRVhLelBqS3lYSUdVVGJmQURzNjVRdGtPeUpP T3lnYnEyaTlrMFR5ZENFUwordjZtTVAzSE55VVByOUt4bmEwZEZiSFo2OWlaR21JQnp3My8yTnp5 Tk9oaDdETG5hVmRtUmY3UXF6cFpZc05HQworQUREanlobVBVbTQ2Vm1zRTJFcUUvaEYyNlU2QTVW NlZISXFlMlhMR1pQcnI0RldiRTlyYy9pMW44cFZSb2U1ZQorS1lsY0FVeGpsUTRCeFJWc0Vad3V3 em5qTHByeE9VanlNNjhjSk9FOEJycG5JQWNFVS84OEhaWXNPOERBTGlneQorTnhPSGtUV083bTVK SStmWDloNCs2cUFLVktXcGE3cVdaODVJRWFHb1dtaVRnWGRmMlA5TjgvOWNUekV6QjUzVgorQVNT Wmw1eit4UXNUeDZrbjNMS2phN090VURLTEdCdmZqc0RTdzFYVG1BY0ZoajFFTFFSUlhmcTM4RmdC QitScQorZS9xT0dXNDYrYytiU01pZDAySE5Da05pcFcva2xvNzdMQjVxblBLai95RWxINDlJL1Ax eDR2VVl4cFVNUGdHWQorK2Nyc3RMUW1SR0Z1YVdWc0lGTm9ZV2hoWmlBOFpDNXpRR1JoYm1sbGJD NXphR0ZvWVdZdWJtRnRaVDZKQWh3RQorRUFFS0FBWUZBbGZqVHZnQUNna1EzK2FScmpNYm85dHBn aEFBdWlrL0tUK1lUaGR5TnJWcTJtejJjOXJremdOSgorYndrdDZYUTQyQXVtYWxUYTFXZHB2UHFp c0VDODhGNnhwUi9rOXVBNG5oL0MvUEx1d0R0bFNjOVpoQnJybEpFNQordVBya3BCS2NLaUdXWWRS RlRHdHlxeHpMQnQyTXFXYjFlV090QkJSamlRa0RCb1AxaCt0SElKSHZrcjY0dW9KRQorYmlTbE0z Q1VqSy8wMGJPN29paVpDS3lkNDV0azFGRUlaVW55R1cyL0pkd045RzBYV3Q3c2RjZkJ4cmNjQ1Rv cgorMzZocllIMGJOS1Nnd2JTbHJhWWRCMDBsbk1ScVFJRkk2SityR0lIcVdQZ0puOVpkVzhoZUQ3 QmVZRFAzVEZQZworQURodnBQNUJJN0FUaTJFQm9BSERXeUlpRmpTWHNsbG1JQnEwNzVPMjNqeWZM YUxpSVkrc0d6U3MyOWQySEFDQQorTnlvYkNxQ3g5aVR1ZktnYXlYTU82YmsvL2ljMzdBQ3MwY3Vi RVZMcUhlR1V5OVBlRnhqSlBENGlYVmJxRXVObword0FteUh0WHBsTkxLR1p1QWZCY1lmaGx4Y0cr eVRYUXp4YjcxMUxJN2lBOE94NDFHQlZUb1FDZ3BpOFhObGd6WgorWTRlNnNQLzN1RlJOTFVtNXpi SDhLYVFGeS9IZ05mWUhXYjdpOHk4ZVN1M1FHYVB2NGppRzllTG8yai9pREYyNgorM0pKZU93Nzc3 Q1dORnZjTVh3VFA0bm92elZjRjlnWW5qT2N4RG9qam4zRHhrM2tSTUVqRzV1NjR0K1NpR3NUUAor ai8xZkliSytFWDlQZHdVSDBGV0ZycTFLMEYvNGxQWUlJVVB1eEFnTi9uRWRwVVJMRFF6WjlYaklD QVp6NTBBNQorYW1TWjFmNDNBYmNpRVZTSkFiMEVFd0VLQUNjQ0d3TUNIZ0VDRjRBRkN3a0lCd01G RlFvSkNBc0ZGZ0lEQVFBRgorQWxzNTMwUUZDUTFFK1NzQUNna1FwZjd1T3NlVGRFVGc3d3YrTW5q S0xHK0o2bWxzNFNWN2RNRmFrSGo0anVxdgorNDF0TFpqL042bjVkTzhLZXY5clRVNVdDUDR2bkFQ SWhMNTI1NHFMK3RjaDhtZC96dHdjNWl4ajVqSVZUVkM3TgoralpCOGxZUXgyeStnNzFZMkpxY2x6 emZlQTJyWjdHMUNRSk1VOURVNGd0VzlUNXJSdWtrMUZmUUdYWEFzNFJ1OAorM2FYUllPZkVrNmxO V3RTNWJuQWJPU1ArKzN0ejh5MzVUeFdnVm53cWtwdThTOWxtU2NpWS9rMk5nUnRqQVRtUgorOXhI RkpsZUhRSzh0bUpuYlVJcm9ONUhkNHdNNTQxbTR6bDBsUUczZk13OG00MzRJVVZMQTR2Nzk3L1Nu MWF2NQorbTIzZXlYQXJ2VG5lTkdIcWtCRzBXR3VWZmZFazA3S3p1alY5ODZzYUNCMDFuSnYrZ0hR MU9lTFNHTVJhNXp3SgorUTdxa0V3OEJzbGZQRFI2cmtoQzVpNkI4aS92UUVOeG5EU1dlQk1RMWdJ ZGkvR3BQeUhxU3NzRUpTWmtUNjJLZworOTRvbGpETU5FRFBqcmxTYzBiQmFIZ2lBcmRTZEZoNWZ3 TFYzemxoL20yeVdJcWc1MlpBMnQ3QWV6VXBUSkg1Qgorc3l3RHBoYTJXdERzMUJNY002VGRWRXBS VS9aS24vTVIramdSaVFHOUJCTUJDZ0FuQWhzREFoNEJBaGVBQlFzSgorQ0FjREJSVUtDUWdMQlJZ Q0F3RUFCUUplTlQ3VEJRa1FGM28wQUFvSkVLWCs3anJIazNSRUJIMEwvaSszWndwVgorNU5janUw aVYzNnFDemhxZ1J5RnUvUHNlTkZERDE5cWM1L0pmVzNUcytOcmlGTkdmZFI4Mm9jVGkzZDhSTTJY UworY3JUK2xZUVhPZDcycDVPR2ptZzFMbFViM2dxR2gzc0l3MTZrSklsaS81Z3MvSHdoWHJ2dW1z N3JiSk8wZWcycQorN3VEaEdJdE1sRTBEbVdPeW4rSEhXWDJXV0FybERnUVBibmNnR1hFZzkyb29M S215NW4vWHI3cksvcHZRTWxoMAorS0VqQ3hyVnRDeG50ZndkcldqTk9JSGM5TzRORWMyK0laMURB cEtsajRGVW1IUGRTSXBBVXBxV1p0MThwVGVteAorRnpVM3ZPMWFBcnFhN1ZLbnVDNklzcVgxZnVJ M1BuMW9meVFjbFVTaTNYakdkLzVTRWRFNjF1c3RDTjd2dzlnUQorNDhYRmM1T2RlZWZ0ZTBGZjBL dE90Njl3MzdPeHBzVVpsaVpmZzFCRDI3UkFHbTdsSjF4MW5GelhzRmwvTkhqVAorRit0Nmx3TXZ0 Yml5Q1FOSllpSWtIZVRZZTVucElHNzNxTzVOTmROSzhGZHdSdkozeXlCcVRZdFkxOXh1Z090Rwor aU9xS0E2ZnZtNFFkeWVpM3FtL2VjbWNzMzE5TnBvWXNMdi82QktsbVV2bW5NWjN0alhHRzduNEV3 YmtCalFSUgordDAwWkFRd0F0K1ljUnJiTFNZNGNaTytUMVo3OGtiK3d0VXB0eVlkc1VUak1OYStS cUZFZ2ludkdXWEppM3Q5eAorSFpEMklkd2pGV1VtbmplVGR4OGJkaWtwVWVkVGxHM0pyRnVyUFgw eE1na2diQy9CRUxGKzRTdWozcUhZVEJyKworaU1NY1paRWFHRk1KNElBSG1sMTFSeWthK3A5ck1W RzhiSHNDb1RSUFl5UGN0TlMwYjFZRzEzWk42cWR1ZysxeAorV3JnVEJCSm50UUVzbnVDdzUxSFpP RkFPUVRQa0xTVHBWSFR2Y2JrRWJqb3RYRld4MzB5c3ZWSG9acG8xZ3h0NQorWFF0UEpBU0Rna29m VWRIWGdjcmpDVERUeDdBb09Tbk5BcmdKVXBkS1l6YVg2MlBBK2p3V0toZlExK1BZK3dVQworN2lH cG1qNDBGTW5kelZidGFWS1JkbEVib1RBT0dPdERiN280ZjAyUkJLNTN2Slk1Wkd0S3E2Y2hCRTND ekJhVworSmN1U2Q3ejZ5YXp4MFc1b0xwdG1nR0hsMXhJNW13MXFZRTU4Yks2Tm9YZ0xsemtpMGFi eVVwbmcxN21NeVduUgora1dVaTJiQWlyQWFIVWtoRUc0U2VPY2Q1ZHZaQjRLUVdrbUdqVEd1NDUx M054QXcvdU5wWFJDdS9HVVBlUy80ZAorM3VnTFVidkpBQkVCQUFHSkFhVUVHQUVDQUE4Q0d3d0ZB bDQxUHRzRkNSQVhla0lBQ2drUXBmN3VPc2VUZEVSOAorWGd2L1NzQ0NNZEFCQWZOelc5aWcrSXFh WURlai9mMXZXa0RtSjdzZWdKK1ROT0tWN2E2dHZhNS9Bbys1TTlEbgorVTBESVZrT0w0anAyaDJG K3NUUzgzemdvT2JiNk5KMTlOQUgycFJpb2JJZGxwYmowckl2UU9ncDZZcGdEbFAzZAorUlFLd3Fu UFNLcXB6d0RLVVhBcENVeUFRdzN4QXAyYXZuVmF5SkhJYm01SWlWZzhGb1MvMFlXWndLdXArcDdx RQorQ3dzQVhmdFJVaFlvbGVqejY1WkRNei9yeGxqRlB2cEJ4QlpzUFpEcUZhWnpMcitQUzd1dmNk QzhRRk1BQTlDdgorZkx6emhIUG1YNE9ndThpS2tTbXlWK3BieGRMeGNnMTN6R3o3R1RPeDQrVlhn YUEzV05EbFU4b2o1MUdYNWJYSQorbnkxamY4R0ZFTERvL2IvZm9nNkhyY3NHaWhFNU1aenVKWita QlhqUjJuYldUUW9qODVqbnhxZVVsSjBXdVh1KworbWRJb0NIdkVCM1Z1K3IyQm4ybnA5dzdhc2tk dVlnays2YWZPSzA2aXRHVU5hYkxMdEFhNU0vZ0svV09Hb3A2eAorTzluUW1kejZWb1o1TmRBODlN bEhUVi9BK3FhaEdxQzIzbTZKZXRvMGpQZVBaa1A5UkxaTHJldm04UHREZXkzYworZVJmOXVRSUZC RmxUZnBzQkQ4QzF2QmhqQ0dTWVRWeFRpUldURU5HVWdtcURXYlVxVTJUWGt2cTMzMzF3OTBGcgor L1M0SnQrdjBVUTVwOUwwV0E5UGFkS2xXRjNNanBlZHR0YkJZUGZYbDY4Qi8waGlOblg4UGtnUDMv STRwZVg2LworMjNBa1NKOG1YQlRzditZbnpDYzBHRnFtMVFhZjZac3hRV0hwU29OWUlMVEgrUSs3 cDRkSmJscHpmNTF3K1VmUQorNjBpQTF5TzRXb3YzRkhac1dya3IyVDFha243ZFZNdlZycnZTSENX RzkwVkhYR0IyV1FrQmtoQ04zQmhhU01VVgorbDlLOCtYU3g0STRyT0MxRmV6SXRNSGdCZlc0UXlE MUhWc0YrZFowc1ZpcHF6d2JBYkowakZvWDFhM0FWRXRBVworNzRkQjJLU0VkNVVzQUovWlVKVjVL M3ZtZmF1ZFdvYmY4czYvWUVkUklvdzR6cGhwaWYvVXJ4TCtJOStSQUdGMgorUHBZM20zR3BKUDNz RW5MOXlYbHFwMEticit4VnV6L2V3UFdXSlI2WEpKaE1DbzhvM2xYUEZoK3NWbWMwZmRiMworbGNl aU9KMEF1Nmx5U1A0L2FaNUhrdVJaQWFKYUxBbGVwMm41ZUx3UGxORVd6V3MrQzlTdGRXTnYwcGh1 UnVtZgorRE5ycVp3UGVhdHlkZnJDd1BDeHhlNjJQenBiVGZudnZROWJWREE2cnNXNFZ5VE5WTkdz a3VHNVdBbHcwR1JFbQorZVZ0SVc1Ylg4NjR3UXJ1QWVoeWg5SkZ1TTFKclM0RmxCaXRIak45V3g4 MGVWSXFSeXFJelZxbVlWY2xVaEdIQQorbEt4R2tic2g1NjRGelN4S1RhcTh3elpOYVdpTEszbWRK bnJYR2w1TFJic0JyU1RDYVpzQUVRRUFBWWtEdkFRWQorQVFJQUR3SWJBZ1VDWGpVKzRRVUpDSHRJ eGdJaHdWVWdCQmtCQWdBR0JRSlpVMzZiQUFvSkVOc242WmRDbXZJTQorY2RnUHZpVzlHRDQrVGEz KzBuU095WXlGbUZZRVQrTWpLVlNoTDN4T3ZwSHNhMXA5T3BpdUtLa29BeDlvOENxVworZFBQRk1a Sjk1UVJIZVRMUXJndDJ5dFEzTDBlNTRReDRnb2lZS0dtRGxjcTcwMXFVd3ZQeXM4L2pBM0l3Uzll bAorMkdCQmNwSUV4cklHK0k5aDZxRGY3SVhBa21SQWp4SS9LZ0dnRU9VRGNzNUhGUmJsSysvYkVh SGpVNkJuUHZLKworZ0I3eTB2eDFaQ0Nsb1cwelBHYjlBbXNIVTl4M05mZHJKZ3JWV2NoakZBNHRH bGxRYlhNem0zYU9PZ0ZEWjBxRAorSzlIeDBhOGxyR1Brc0JXN2ZvSnJpZmhUek1jTE8xNEJTUFR2 L2luQWw4TnBTVzZMUnBvdVg2Nm5KaHk1S1hsSworQy9uNTVMaWlLVTkrNmxWM2JhOEtjRFN6Z3Qv bXkzdEQ3bXlKQmg1SE92OGZ2WGhTZm14Y0ZMSVphMjJlUWZHSgorZUludTg2RTlZME1IellKK3Rl OXFDYU5DMFZheTRWZG1zQzBNb09BTGFjRXozR0J2TEl5RDA2Y1dRamI0QVJYcworajZZUFcvY3A4 cHpha3hlckFBK2dGRG11N0orUmdIK0JEVkRSdTBVazUzZ0NzbkN4YUFJV1ZVNWxMQXk4L2FScAor RzN6VVBuRXdaRlQzZ0NrTGtWLzJuS2xha1B1cGFNMndiOUl0SXZBNG53WWlxazZTQUpQS3doNXBk cU51M2NSRAorMDBSTGZGUzhPcEV6TUNpM3FXZHJUWFh2dGN1dFpueUJKZVlhUzVPUmh5Ui9QTnpO a0xqTlFyTzRReHBRR1J2SworVEZMUDhkMjNZTW9Yam9nQ1pyVzF5SHE3U2hqZFFBWnlBTFJtTVFr UXBmN3VPc2VUZEVUU1RBditKY3lnNTl1SQorNGIrR2p4WWhva1ZmQ1pOMGFCTkJkL09yV0FrMEdP ZkpzTmcyMEFVbTdCVG5iNzZwMnBqNk13THZiZUJaZlEwagorSU1iMU5icEpaOUI4ZmFKemJSZkJC aHM0NXo5ZmYyVXZ5THhmak9qVTdyUk4zbTYzeUJ4TVpKTFJQZ0p3MWs5bgorMEFzcGtrb1dxUUp3 VE9DLzJWTDl4eEpaY2ZHNzQ3eEJXMDRrNFFlWTdWYTBIRkI4VDNucllmMndXUi9LaFlTRworSkxG OCsySHhCR1VMYTZMNHJ3eVVaQjN2Uk9nemVqM2k2ellqNXZwRHNiRFh2ODdBTzZEZWlRZm4zM0VF UU4zeAorVElReFpYN0oySUN3RDRsWm01eEsrSXZtSWpuUWRvQnlOVE84SlE2RXlrZzR6NW1Fd3NC anR1NW4yUWtDT2Y5UworUTlVb2RPSHdRV1pqL041a0VkWS9Lb3lnQXBXYmN0WHJ1ZTJWT2VGZjVN c1NXQ3BuV0hzSVhPRUxlOFF2U3dsRAorV1BUbVVaczBnTi9WUWp6aWZpVk9RWkJZWEFJbnBLYWs2 eEl3bHRCRjFnZmgvYThieVBEODRYN0JETHhVbkZLWQorRXc0R3VlOGVhbzBIbVhwSVVtOXZXZG5G QVUwTnFMYnZWZmJxa3J6eVRSTnpOb3BDNDRDVWZ3elIKKz1LaXlFCistLS0tLUVORCBQR1AgUFVC TElDIEtFWSBCTE9DSy0tLS0tCistLS0tLUJFR0lOIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0K KworbVFHTkJHQnpYemtCREFDalJYVU9aR2RGL2RGQlBZeGJkWDE3dG91aE4zVDFkMDBISDczTEVw WU5ueTVtWTk3aAorTlRFNWxRV0ZRK2VObjdUeDc5UFpNRGVwdjI2bVJITVFSNmV6STJhaGQyVHhE Q25nTkdsUGN1aHNUS2djTlJpdQoraTBuYmdCOHNzcW0vcThZb1crRldKTFdmR3dUZkgzOFZNUDNz MzAyMndVWEFNQS9nejJGVngxdUVGVGF2QzkyaQorTWhybGcvKzRZOXV6cTR3NE9NSUE4UUo1Y1dJ cUJIMFN6YUdFWnR0aG5aUm5MUm9LaDlvWHBnTVo0QnYrb2Z4VAorYTFxc1o2dE5iNG44V2JzY3Yv dllacW4xeU9qNVhJOHV0MjdvY0t1eG5vQVRYT3VLM2FjNTRnWllTeUk5WUZ5aAorbWpMSElNczRx cGVEeWhNWlpSV0FwNmdmUVA0Z1NBdkRHWi83N283cXdWK3Iza1ViWkZseHd6MEM5NlVsNENHVQor U3dSSlQrUEdGeTQ0UEFzdlV1ZHFMQWhyNm5kY2hNTjRITTN2QkF0bmdKSUV6NFlLbmd0cTVPeUFa RVZFRk1EcgorSDFXSjMvOU5FcTdqY3FtbGhFS2Q1dDEzRlBJRTRoZllYMmN3TFY0QkFnY3FCNHVP S0NQLzBJaGcxNEtkMUZvWAorSStqZ3FCeU05MklRZVEwQUVRRUFBYlFZYkd4MVlTQnNiSFZoSUR4 c2JIVmhRR2R0ZUM1amIyMCtpUUhVQkJNQgorQ0FBK0ZpRUVLUUFMcUllcE1aRDNLMjBBKzFMamFM Y0xKVmtGQW1Celh6a0NHd01GQ1FQQ1p3QUZDd2tJQndJRworRlFvSkNBc0NCQllDQXdFQ0hnRUNG NEFBQ2drUSsxTGphTGNMSlZrclpnditPZ2x4ekNZZjlkTnUzZ0hsWjBBQworVnp3SklyQ1pvUzNJ RzM2aWlMc3grZDJqWWdkVGZSM3k0akgyOTRtQ1ZzR2ZvQW9hdmE2bHVuMjdROTRzTUNhSAorTmcw ZmNaZlc1dXdybjhqVytIK0Y3bUNTaHBRTlVESERsWngvYmtDNEpYMmpoRVpDcnFRUlJaVVlUbHRl VlFwdQorNDRUb2lGcTc4aUxzOWZ6OUhGY3pEem1NbVR2S3A0cjg0KzZBaUZ3UXkyT0dBVmJPTjRF bnhJWmpFSmRWS01xUgorOFhIM3RXdUdlcURuQkJxWHJyUzZnN1NBaDlpZGxBOEpmaWZrQk5GU0RN NFNpTlhKWGsxL1R1bVIzdzAwOERqMworNmdxM1cxUDBiOTFnWTJWd1lBVUJlT2NpU0owMmhjVDBT eXdhMU5Ba3l0UUEwZGpFQ2Urd2w0WThaMm53TzR1MworWkNDTkNLVldqdGpvbzFRVXdDeVVjUWwy dkV0N2NKZEVBZmJ6cjBWSDlvYUwwdHJqWHo3VjdZMG9xa0kvWE9TSQord2EvYVRUcnZ5YlNLVEVJ dk1JZkM5SVZqVHduNktNaDl4NjZlaU4xQ21GNmFiZm53cjdjVG4zbWJySjJ6MG5NVgorMU9pdVU2 S2FobmNYaXhvMlhrclVPeVo2T3hzVk5WR21kL3R0bjFJVnFwdk11UUdOQkdCelh6a0JEQUM3cHV1 YworeFV5RXV4V2h3WUd1WUNRWE5laDdtSG5ZUmhkNW5GdU04aG9zYVp4K3c2NVJTeko1VVdLSVBy NnZ0MXZDOEpLMworcjdlbXkxclBJZXV3V0NWVnB6SWNXNmtUUytKZC9aRERZS1Vka285cm0vcmJt SFNjSkYxTHNpUzF5dlZQM2w5UAorME9FMmRiK0lEcURJdER2R2NIU1dneWdSMUcxaGdQbDVjS3ox NDM1MlIrY1JZUURhY0NNbFloZzhkRkwwOGVvUQorOTZabExwaVJMb3gwWDNIRldpaDhaeWhRRi91 TzVjS2p6RWFlUm5yTDl2Vm5lM0JOVlRhTlRzVW9IUHZWUVVKZgorSC9YOENSL0w4QjZFMXNEYTJL V2NSaE9iaFRhVGVVVUZzanFtV2tpT0lEUmRkMjlKRUxEQ0QwTyt0UjI4dytXSworOFh3VisvMmJW LzQ5ZzlEVkNXQ0hENkt4c2NUek9nc3BVS2FOTTJ5NUk1RlpRVlQzVVlwdTZHQ0pMNDZRVnNKWgor ajM0MnRHdVN6RUtIOE1ITmlrSkMwdmcycjdNbkg4b2drY0o3TVZFdkY1YVZ5K1dDNGYwQ2l6MVRq bCtSU2hpdAorZTcxUGVzd1E2cjVsRnRXdmFuRFFnQi9VQmZ2S1R3d0EzcUhRWGU2c3IwbnZKTzI4 UWREMkJvNU5hSWtBRVFFQQorQVlrQnZBUVlBUWdBSmhZaEJDa0FDNmlIcVRHUTl5dHRBUHRTNDJp M0N5VlpCUUpnYzE4NUFoc01CUWtEd21jQQorQUFvSkVQdFM0MmkzQ3lWWjZxUUwvQXF2YXhQS0tQ ZlVReW5EbFd0MzEzcnF6Q0FsczNNRDFMOEI5WWEvTC80UQorSmdhRXNKQXdXOVNrU2tVbmVCNEhU Nkg0enFaQzdORjdpWEd0M2FrbSt0R01zZ1ExdDQxWDdBYzhwOW5FdE5mVworU1gyU3Z0R2d5Rmhp M3FDSkkxdjJlRUVJMDZlNG0wSy9PMWwrdzZVQ3dERmdNa3hVc1A2eVJZSjVvNk4wTWFsQQorT0Vs SlFrTkQ2cm5pNHJCRFVvNFE3UkRmZ05WUk1BWEVjS1hWMDhJNHZleWtmbWs1c0FEK1RyYjJiWVNm cCt1QQorRHZlN1Y5QXp3bFY3Y1NmYUE0b3RKS2szdUl0L004eFRjM2NnaDQ4SmczcHB5d250aUJX bXpJTDJKUFMvMGtCWgoraWQzTXU4YTdZejNjanY1c1k3T2tzanNqdUl4VENIeWN4RlpiaTBReFQv UXRXNkNJdEdEckt1Q0tyNjc0UTl3TworY3dud0RJNm5XMXpIc1RqREZ6YUJZY0Z1N1BISXFYZDJh WmtOV25jOWlPUU9IeExhdFRZS3lEdnpSeVh1T0FRYQorQVBjK0Z5LzdWSTdwSms2NHJrb1JxekFo cDBCaC84RFhtS1htQTdDdVdUWTh3aUZBMFlsQ0xRblZlYmdaL0FMbQorMG1Xa3JoWXhZclFLTTZr eXdwRlM2SmtCalFSbisrWFVBUXdBdlJ5L1BnL0ZyV256RjJDaDAyNGd3ZFA5YmNkdAorRk1jN0th VFRnU0hJKzExYXhRNkljZ0NhTDdmTllRQWsvZjN6emhWY1ZXaGE3MksrNC92RGNsL2pTRHJCQWlN RAorVjB5bHd2ejZpd293cFhYNkE0MjdTU1NsMUZwZVIvc1YwUnhTVHN4VndST2gzb2lZV2JtVzVK NVAwcnRCaHV4ZAorNm9TNnhQMk9TWWpPRWJoYXJ4aVN1OVR5dmhWdU9hZGxGMjNWc2FReWVaazRF QjgrOVVmN3VKc091b3Y1R1VUMworZURZbldnS29Mb2Z4L3Z6SnVwTjdxaHFvUFZNRFFPM24vTDEw U0Z1UmlpWGJ2eFJIdnZEMDJoaG55algrQ1VJTgorTC9scjFsSXZvUDBhS0UxbUpOaWxjQm1uU3BN a1VTNThJcDZYR0J1d0JpVHYrQ1FRRkhZZWZyRGFCUmdLWFB5UworWmhpNFJRQUlVYUdGRmlHRmR3 dFBnY2lQUHQxZlBIakVSTGhYd2p3RGEwZnI1YXd0ZGxIbTlrNHdRT2wvOHVTMQorTHIwN2tuczNO Z0hCZlVHWDhONS9EOVBuS3NnSTFNdUJsNml2TGJPWk9xM012ZmRQa3hCa1dlWVg0UmJwM2JpYgor SXkyalIzb3M4aCtYMit4Q0lFUGdyTG0xaE8zemQrKzVVbFlIQUJFQkFBRzBKMFZ5YVdNZ1EyOXZh eUE4YVd4cworZFdGQWRYTmxjbk11YzI5MWNtTmxabTl5WjJVdWJtVjBQb2tCMFFRVEFRZ0FPeFlo QkFxcFJhMHYyTTg3M1FrVworN2lPSm1UR1EzYkxPQlFKbisrWFVBaHNEQlFzSkNBY0NBaUlDQmhV S0NRZ0xBZ1FXQWdNQkFoNEhBaGVBQUFvSgorRUNPSm1UR1EzYkxPSFkwTC8wMi8yL042K0xBQUFY MkEyL0poRnFNbFBsZW1wc1pEaFFnNHNnYVVwd1pxbFNueAorWkZVa09wTkZHN1VpR0taM1phMmxq K1did1NhVldnUWhzdXVoVVJlbDRtMlNXeTE0eWk2R0ZFblc2ejJ2VzgyYworbHBFdDJjRHZHM3E4 d1dGTEp6Wk5Jd295dWhoS05VeDRIdkVXWnB6UDAyTmQwZGVzdjAvYStmalFrMkdxK2tGbgorVTNn L1lSMmpyM0Z2VHRyZWdHQnZhZnFFbkRrTEE1Mm82UDlpNmQramFyU1g2Zld0QU00LzMyYU1OcWU0 S0l4VQorR1lWbFhkR2U0QzUyU0d3ZTd0dnpCRmp6K05YN0ZRbkdiUHNFLzRJelgvd0FLMEpSMi9P ZGxhSzZZWWRCVDVWRgorYzhCSURtQUR1MDhEVWpFOUVkenVtTktZQXJscmhsL0FvWFBrdWFnWVpt OWRteDluZi8zUGRERXE2WStnQytGMworODMxKzlockFtZXVBTkhGVUNtWVYrZmxtOVBnb2I1RGQz a2M1MGRPSmdldXV1OWtpL2lFT3Uza2d2QzUzTmc5UgorYUpRYWJzTUF4RzdGb0tvaFFHRkZjWm40 VVcvMGlUcTFPYkcyS1U2QTRUSm9pcmZ5alJPK2U5eVJVSXF2QUg0agorZTRKckNNdllId1N5TzRT QkdiUVlSWEpwWXlCRGIyOXJJRHhzYkhWaFFHZHRlQzVqYjIwK2lRSFJCQk1CQ0FBNworRmlFRUNx bEZyUy9Zenp2ZENSYnVJNG1aTVpEZHNzNEZBbWdSZzlFQ0d3TUZDd2tJQndJQ0lnSUdGUW9KQ0Fz QworQkJZQ0F3RUNIZ2NDRjRBQUNna1FJNG1aTVpEZHNzNllYUXY5SDhjS3lyZFQreHVQd2NUYm9z eEVsRmtsN0lQMAorZk01UDdHd09CZ202RWpvVURxSWdBWVB5SFBodnBSWDdtNis0Y2hxcUcvZ2xK MDNUNE1oZ3lZNDdYOCtneVcyQworR21ZS0swVUdoeE9HVXV4cGhydzA5S3dkUHBaMzNza25rcjU1 Z2ZzMFpOaGszOGFWWWhpZ3RiVFc3WTViMVU2aworcGhOVEFrQXl3Yk5Ma1N5YWluWUttRlBuY0hX eGQrRkJ2UnpLam10VjkwR2xBRkVOVlB5UW02QW9mQmtQc3hOSQorR2xiRVNaWlVlODg3SitHVFdX KzJnbzI4Ykp3YVdrRG9VVU13OGNOSXV1Y3p0ZmE0SXluNUswRzBiek5FZWFvRgorYTZKK2N3ZEhH UUtpU2N5RXpVKzV3TitXRmxjbGhnMEZpS00wY2EvcjFLVUphR0M1dnVCNWpINnBuVmpGOFR0Tgor T1d5VjdVYXpQU09VODdBTXY3SS9OOVo5ZFNPUFNwMzB1N1IvTHl6Y2JHakZKdjBCU0pGeDl2ZXVo NTdZb2Y2YworbTdJTTJBeXRFdWRoQ3d5dVNJd001REZLU0ZxeFh3SEE0YzBQTTczNXNHdkZUelU2 Y1JhcTUvZ2hKRk5iOHEwTworSzYrWHlWR2xZblZhU0tUNDVnakRFekladWZjUnhpNWo2Z09VdVFH TkJHZjc1ZFFCREFEeERDSTlFOE1xbHlKcgorUFNRZW5JamVJMWhHblFIWHhuS01iZlgzMlFqVFB1 OStCa00wU3p2OXlaSVE1dHhUTVRPd0E2MkJRVWlKV3huNQorNGlZR0RIT0l1T3k4NmtaK2ZyZ0Zn cllpN2llNnMrenY0MUk2eU5UdS9WbVVWd092VmFDTFBJUTdQQTVVZVhHRQorcWJQdEcyQmVneUpM Tjl3bEkxL2luWlllZS9EMlN2OUFzbk1PMytYZmFnNlUrTFdkK1dEdDBpdGlac0lhaEhIWAord3lR QlRQSkt0RGkrRjBKK0QwN1l4djlibkk4OGg2RlFsWFRuUzhOK3ZhSnRjTlVFOTFxV0NvTHp1NGVD N1F4TworbmYxQmFVcnBYaVFYVUd5UXdHZW03aTdFU2pGQUVGWFZLSERtTE9rMEx6VHltVDZ6V1cw OXl3amFvUGJ6ZnBnQworWEdISVQ0d3BiMCtzelNyWmFvQURCNWhOTWd0cFpYaTY1YTRDK041NXFk L1FnWmRnVFJWbGZOb3Q1eTkrbUtxNworVXJlQWdoL1NUa056Wk1tNGM2aEU1U29oWVBBWHZWZTQ3 SXU1dlBvWFlXak5XZnR4UzN4WWV4aUx3RVdHc0tEYworZ0d6RTF6MGEzdlAvNzVKd2VpKzFWUFMr eVl1YjZ4YjJmaGNKL09NSVdnSktxc1EyZTNNQUVRRUFBWWtCdGdRWQorQVFnQUlCWWhCQXFwUmEw djJNODczUWtXN2lPSm1UR1EzYkxPQlFKbisrWFVBaHNNQUFvSkVDT0ptVEdRM2JMTworYVdRTC9S NHVRMnJYeVFLMnhIYmdIOFVmVDVBYUdYd25Qa0d6UlJ4TmQ2Y3JObDNRcEN5dmsrcnBOdXN6Ukhl SQorMUQwSEs0d3R1cFJPQjBrWXdqVmJHWjBrYWo3WkxDTHdBZEFJNDNlTy9WNk1FcG8wOFRkUGF5 LzNTMHlGNEhzTAorWUVuR0VNanZ4aExGaTVQc0J3ZWp0djloTWFXajg0b0JIQVc4dzlhNWpQUHVw UWhsTmphekxBb29VUDQrbmVCWQorL2N1ek5kYSszdWpPQjRFbjZNZDRGYW1EVUR1WUViTHh3MWJK YnZ4Q0xFckNNdFl3a3RIWi9GcTdML1lzMDJWMQorSmJoaTBTQXNwTm42YzA5RlZUMkYxcXVJdEl1 cnVvRzZkTmVGeHVWVjBwMS9RQnN0VTVFWFMzcGFKbTByWm55bQorYTR4djc5c0o3WkN4Y0oweWZw VDBFUDZMS3lKOW5MOWtvaVdETVdZUmpUbE56SWFXZ3NYVjZLYTg2WkptMTM5aQorSUIyUmdxTXJu UXk0NURJRmdldnZzWHVGWDVFeThtQ1l1K1l5cW9zWlpHdVBJVThocmNtMHpvTGp5dURzU096dQor QXkrcGVuMXpianlYR1FaVk45dHZSeGl6QWEvM3FMN0FkaWxubFpOSktPaUNYVEdFaVNHYUtHaWJm c2VUV29XcworUWc3MTlRPT0KKz0rRmJjCistLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0t LS0tCistLS0tLUJFR0lOIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0KKworbVFFTkJGWldDNGNC Q0FEZ2I3L29Qb0NzOVNFKy9qcnptRFQ3TCtQYllMQ3lnQ0V4eHA0bXQzQ3NTem41eGVmcQorTkdV K2FCSm52eW9uZ2NzWXJXMTczR3VtRGpYQ0czR0J0bm1xczNkRmVvcW5Fc1NaRk1ZaVE0Y3RtV2g0 OFArVwordVFWUU9XdWgwQ1ZTMk9DRm4zN2I1RjlkeTNvRjZnSkZkcWJ3T1hKU2dXTUEvK1N0TUdT a3NsVFlGbEcvSndaMQorY3NrOWpTd1F3L3lLRGxUaUZhcU13SXdTWFRLNWZJdFNuM0YwUit1c2dN aHdSUHU4Z3ZLMjN0bUVobm53Z21sUgoreGZFd0pDTHFHbnZsVzc0ZFJrQ2pZMzQ5R0FHMUlOMmZl bEZmSG4wb2svTGJ4N2NvS1JvRXZIYUNWYm10UFNtWAorUHM5YXhBVjk3d2szN3dTMWRoRVhjanhM YjlHSVpncHRnbzdEQUJFQkFBRzBMbEJsZEdWeUlGTjBaWEJvWlc1egorYjI0Z1BIQXVkeTV6ZEdW d2FHVnVjMjl1UUc1MGJIZHZjbXhrTG1OdmJUNkpBVGNFRXdFSUFDRUZBbFpXQzRjQworR3dNRkN3 a0lCd01GRlFvSkNBc0ZGZ0lEQVFBQ0hnRUNGNEFBQ2drUXB4MmFuVXZiSjdOdGFRZi9SUS9STHZP RworaUk0WEpwL0M5SklWSGZITDdJODAxdVQ4VjN5L2QyK0RlaEZhc1I5VCs2Qi9NZjV5MjJOSTMx aTVYQlF1SzBXbworWnNpN0YzYmhOSHllVmdPL3A1SkxCbXhvaEJ5akw5ZjdCK2s5VHQvRHlXaDY2 QVZhQ29hbTRBQ1I4VEJPbE5rRAorcC84VTB6enJ4RTlmUXJqaksvUHpocFZlOTdMS1NjRUF1Mlpj L3FVRnA0ZVRBbmxxeW9zVHF2VTY0K24xUHJOQworQ3RaVllQbkwxN0dDQzQrUzd5cmgzNEtsbHgr ZmtvSGltVEwvY1VHKzYrN3NibXBVSW1wUCtwZ05FbkwxSXpCQgorYWpaUmwxNTgxTWNNR2hJSDFU QllyRVZuSWhvbm9ub09PN3FyMWVhaFVDRWhWdmFueVZUblNlVFRWUjBWZ0s0cworam9ZTHdETE00 WGlkZ3JrQkRRUldWZ3VIQVFnQTdKVEkwYm90bkJNZlRBR2ZmNER1b29yNW0wUHVFeFFGQ0hjSgor L2RmNVN5VVVza3ljTWxHUjczK0liY1QyRC96QklGRHY1WmhDZE9kbUlXM0NISUNLK1dzN041K0tT emx6QytWZgorMkxNbVh1eUpMaFhlVHFYSTF0YTZiSUdqWGVoNVZBOUpkN0I4ZFJRaENuMU9yR2JG aHd0SlNHZWpUbWNXaUxKVworKzJHVjlzNDRlOU1sc2NNSHZBazlRQXZxclNVSm9Ba04zT0NkZ2pj cEROVlQ4ZWszTm5qQ0Q0eHJCVHhDY0kxbgorS3NKZU9nTkhQa2JvdTkrZUhZODBhbWtBa1JuMlpT STluMjVXamhLQXA5UUdETkw1d3FITGpnSFA2V2lFd3VtTgorRFdQblBkKzVGUUhRWHkxR0hnSDJC b3pmVDFLWkowMTJUMEtldWsvaG5aSi9UVmU0Z3dBUkFRQUJpUUVmQkJnQgorQ0FBSkJRSldWZ3VI QWhzTUFBb0pFS2NkbXAxTDJ5ZXoxVDBIL2ppdHZnQUNjaSs1UFFHMWRqWXdpb1FJdWk0SgorMW5T ZzRIeFcrNFNDcFN3bG1IMkxrS2FGM1dianBQVFJoWWVNWjV6ZE92R25qUFVaQ2pHdFdrV3gwcCtK cnBlLworUUlDM0NOWGVyWDlmcGtyMEs3K2tucWtiMVJzakhVL1lTc1lURERWSnBMM0JRT1p6Vm9j T2pQYTFZUFRmVEJVNQordHNRZEE0Uk9SaTE1THlBV2NFQW1SK1gzcUgySk01cEdQMjNoaE9LbnJG U1NuZkJQNmVmMS9qalJiZks1eUl0WgorNURPZjZpM1dTNDB6eEI2N2RsQmxIWndPUXVZQTNTcjAx aEV6NENlQWtwVjdsUTFnS2VsbTFabWNGUUk2eXFjUgorUG1Wakl1eEUxQS9nVEZlNkxhQWZDR0E2 L0gxSDZMTHdXUS9yblVpL3NlTUo2YVJrei8wNWRnN2o1K0U9Cis9d09WUworLS0tLS1FTkQgUEdQ IFBVQkxJQyBLRVkgQkxPQ0stLS0tLQoKZGlmZiAtLWdpdCBhL3pzaC5zcGVjIGIvenNoLnNwZWMK aW5kZXggODJhMTRhMy4uYTcwNWYwNCAxMDA2NDQKLS0tIGEvenNoLnNwZWMKKysrIGIvenNoLnNw ZWMKQEAgLTEsNDkgKzEsMzYgQEAKIFN1bW1hcnk6IFBvd2VyZnVsIGludGVyYWN0aXZlIHNoZWxs CiBOYW1lOiB6c2gKLVZlcnNpb246IDUuOQotUmVsZWFzZTogMjAlez9kaXN0fQorVmVyc2lvbjog NS45LjEKK1JlbGVhc2U6IDElez9kaXN0fQogTGljZW5zZTogTUlULU1vZGVybi1WYXJpYW50IEFO RCBJU0MgQU5EIEdQTC0yLjAtb25seQogVVJMOiBodHRwOi8venNoLnNvdXJjZWZvcmdlLm5ldC8K KwogU291cmNlMDogaHR0cHM6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0LyV7bmFtZX0vJXtu YW1lfS0le3ZlcnNpb259LnRhci54egotU291cmNlMTogemxvZ2luLnJocwotU291cmNlMjogemxv Z291dC5yaHMKLVNvdXJjZTM6IHpwcm9maWxlLnJocwotU291cmNlNDogenNocmMucmhzCi1Tb3Vy Y2U1OiB6c2hlbnYucmhzCi1Tb3VyY2U2OiBkb3R6c2hyYwotU291cmNlNzogZG90enByb2ZpbGUK LQotIyBkbyBub3QgdXNlIGVncmVwIGluIHRlc3RzIHRvIG1ha2UgdGhlbSBwYXNzIGFnYWluCi1Q YXRjaDE6IDAwMDEtenNoLTUuOS1kby1ub3QtdXNlLWVncmVwLWluLXRlc3RzLnBhdGNoCi0jIFVw c3RyZWFtIGNvbW1pdCBhYjRkNjJlYjk3NWE0YzRjNTFkZDM1ODIyNjY1MDUwZTJkZGM2OTE4Ci1Q YXRjaDI6IDAwMDItenNoLVVzZS1pbnQtbWFpbi1pbi10ZXN0LWMtY29kZXMucGF0Y2gKK1NvdXJj ZTE6IGh0dHBzOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC8le25hbWV9LyV7bmFtZX0tJXt2 ZXJzaW9ufS50YXIueHouYXNjCitTb3VyY2UyOiB6c2gta2V5cmluZy5hc2MKKworU291cmNlMzog emxvZ2luLnJocworU291cmNlNDogemxvZ291dC5yaHMKK1NvdXJjZTU6IHpwcm9maWxlLnJocwor U291cmNlNjogenNocmMucmhzCitTb3VyY2U3OiB6c2hlbnYucmhzCitTb3VyY2U4OiBkb3R6c2hy YworU291cmNlOTogZG90enByb2ZpbGUKKwogIyB1cHN0cmVhbSBjb21taXQgYTg0ZmRkN2M4Zjc3 OTM1ZWNjZTk5ZmYyYjBiZGJhNzM4ODIxZWQ3OQotUGF0Y2gzOiAwMDAzLXpzaC1maXgtbW9kdWxl LWxvYWRpbmctcHJvYmxlbS13aXRoLWZ1bGwtUkVMUk8ucGF0Y2gKLSMgdXBzdHJlYW0gY29tbWl0 IDFiNDIxZTQ5Nzg0NDAyMzRmYjczMTE3Yzg1MDVkYWQxY2NjNjhkNDYKLVBhdGNoNDogMDAwNC16 c2gtZW5hYmxlLVBDUkUtbG9jYWxlLXN3aXRjaGluZy5wYXRjaAotIyB1cHN0cmVhbSBjb21taXQg YjYyZTkxMTM0MWM4ZWM3NDQ2Mzc4YjQ3N2M0N2RhNDI1NjA1M2RjMCBhbmQgMTBiZGJkOGI1YjBi NDM0NDVhZmYyM2RjZDQxMmYyNWNmNmFhMzI4YQotUGF0Y2g1OiAwMDA1LXpzaC1wb3J0LXRvLXBj cmUyLnBhdGNoCi0jIHVwc3RyZWFtIGNvbW1pdCBlY2QzZjljOTUwNmM3NzIwZGM2YzA4MzNkYzVk NWViMDBlNDQ1OWM0Ci1QYXRjaDY6IDAwMDYtenNoLXN1cHBvcnQtdGV4aW5mby03LjAucGF0Y2gK LSMgdXBzdHJlYW0gY29tbWl0IDRjODk4NDljOTgxNzJjOTUxYTlkZWYzNjkwZTg2NDdkYWU3NjMw OGYKLVBhdGNoNzogMDAwNy16c2gtY29uZmlndXJlLWM5OS5wYXRjaAotIyB1cHN0cmVhbSBjb21t aXQgZDNlZGYzMTgzMDZlMzdkMmQ5NmM0ZTRlYTQ0MmQxMDIwNzcyMmU5NAotUGF0Y2g4OiAwMDA4 LXpzaC1kZWxldGVmaWxlbGlzdC1zZWdmYXVsdC5wYXRjaAotIyB1cHN0cmVhbSBjb21taXQgYjcw YjI0MWNjNWNhODhjYzEyOWZmOWJhMTRmOGFmMmU4ODliOTBlNgotUGF0Y2g5OiAwMDA5LXpzaC1z dXBwb3J0LWRuZjUucGF0Y2gKLSMgdXBzdHJlYW0gY29tbWl0IDA3MWUzMjVjODI2YTg5Yjc5MjA1 NmMzZmFmMGM0MDBiOGMwYzU3MzgKLVBhdGNoMTA6IDAwMTAtenNoLWZpeC1kbmY1LWNvbXBsZXRp b24td2l0aC1ycG0tZmlsZXMucGF0Y2gKK1BhdGNoMTogMDAwMy16c2gtZml4LW1vZHVsZS1sb2Fk aW5nLXByb2JsZW0td2l0aC1mdWxsLVJFTFJPLnBhdGNoCiAKICMgZG93bnN0cmVhbSBwYXRjaCBm b3IgcmhieiMyNDQ5OTM5CiAjIGFscmVhZHkgZml4ZWQgdXBzdHJlYW0gaW4gYSBtYWpvciByZWZh Y3RvciBvZiB0ZXJtIGNvbG9yIGF0dHJpYnV0ZSBoYW5kbGluZwogUGF0Y2gxMDA6IDAxMDAtenNo LV9JT19wdXRjLVNJR1NFR1YucGF0Y2gKIAotQnVpbGRSZXF1aXJlczogYXV0b2NvbmYKIEJ1aWxk UmVxdWlyZXM6IGNvcmV1dGlscwogQnVpbGRSZXF1aXJlczogZ2F3awogQnVpbGRSZXF1aXJlczog Z2NjCi1CdWlsZFJlcXVpcmVzOiBnZGJtLWRldmVsCiBCdWlsZFJlcXVpcmVzOiBnbGliYy1sYW5n cGFjay1qYQorQnVpbGRSZXF1aXJlczogZ3BndmVyaWZ5CitCdWlsZFJlcXVpcmVzOiBncm9mZgor QnVpbGRSZXF1aXJlczogaG9zdG5hbWUKIEJ1aWxkUmVxdWlyZXM6IGxpYmNhcC1kZXZlbAogQnVp bGRSZXF1aXJlczogbWFrZQogQnVpbGRSZXF1aXJlczogbmN1cnNlcy1kZXZlbApAQCAtNTQsMTQg KzQxLDYgQEAgQnVpbGRSZXF1aXJlczogdGV4aW5mbwogUmVxdWlyZXMocG9zdCk6IGdyZXAKIFJl cXVpcmVzKHBvc3R1bik6IGNvcmV1dGlscyBncmVwCiAKLSMgdGhlIGhvc3RuYW1lIHBhY2thZ2Ug aXMgbm90IGF2YWlsYWJsZSBvbiBSSEVMLTYKLSVpZiAxMiA8IDAlez9mZWRvcmF9IHx8IDYgPCAw JXs/cmhlbH0KLUJ1aWxkUmVxdWlyZXM6IGhvc3RuYW1lCi0lZWxzZQotIyAvYmluIGFuZCAvdXNy L2JpbiBhcmUgc2VwYXJhdGUgZGlyZWN0b3JpZXMgb24gUkhFTC02Ci0lZGVmaW5lIF9iaW5kaXIg L2JpbgotJWVuZGlmCi0KIFByb3ZpZGVzOiAvYmluL3pzaAogCiAlZGVzY3JpcHRpb24KQEAgLTg3 LDggKzY2LDggQEAgbWVjaGFuaXNtLCBhbmQgbW9yZS4KIFRoaXMgcGFja2FnZSBjb250YWlucyB0 aGUgWnNoIG1hbnVhbCBpbiBodG1sIGZvcm1hdC4KIAogJXByZXAKKyV7Z3BndmVyaWZ5fSAtLWtl eXJpbmc9JyV7U09VUkNFMn0nIC0tc2lnbmF0dXJlPScle1NPVVJDRTF9JyAtLWRhdGE9JyV7U09V UkNFMH0nCiAlYXV0b3NldHVwIC1wMQotYXV0b3JlY29uZiAtZml2CiAKICMgZW5hYmxlIHBhcmFs bGVsIGJ1aWxkCiBzZWQgLWUgJ3N8XlwuTk9UUEFSQUxMRUx8Iy5OT1RQQVJBTExFTHwnIC1pICdD b25maWcvZGVmcy5tay5pbicKQEAgLTEzMSwxMyArMTEwLDEzIEBAIHJtIC1mICRSUE1fQlVJTERf Uk9PVCV7X2JpbmRpcn0venNoLSV7dmVyc2lvbn0KIHJtIC1mICRSUE1fQlVJTERfUk9PVCV7X2lu Zm9kaXJ9L2RpcgogCiBta2RpciAtcCAke1JQTV9CVUlMRF9ST09UfSV7X3N5c2NvbmZkaXJ9Ci1m b3IgaSBpbiAle1NPVVJDRTF9ICV7U09VUkNFMn0gJXtTT1VSQ0UzfSAle1NPVVJDRTR9ICV7U09V UkNFNX07IGRvCitmb3IgaSBpbiAle1NPVVJDRTN9ICV7U09VUkNFNH0gJXtTT1VSQ0U1fSAle1NP VVJDRTZ9ICV7U09VUkNFN307IGRvCiAgICAgaW5zdGFsbCAtbSA2NDQgJGkgJFJQTV9CVUlMRF9S T09UJXtfc3lzY29uZmRpcn0vIiQoYmFzZW5hbWUgJGkgLnJocykiCiBkb25lCiAKIG1rZGlyIC1w ICRSUE1fQlVJTERfUk9PVCV7X3N5c2NvbmZkaXJ9L3NrZWwKLWluc3RhbGwgLW0gNjQ0ICV7U09V UkNFNn0gJFJQTV9CVUlMRF9ST09UJXtfc3lzY29uZmRpcn0vc2tlbC8uenNocmMKLWluc3RhbGwg LW0gNjQ0ICV7U09VUkNFN30gJFJQTV9CVUlMRF9ST09UJXtfc3lzY29uZmRpcn0vc2tlbC8uenBy b2ZpbGUKK2luc3RhbGwgLW0gNjQ0ICV7U09VUkNFOH0gJFJQTV9CVUlMRF9ST09UJXtfc3lzY29u ZmRpcn0vc2tlbC8uenNocmMKK2luc3RhbGwgLW0gNjQ0ICV7U09VUkNFOX0gJFJQTV9CVUlMRF9S T09UJXtfc3lzY29uZmRpcn0vc2tlbC8uenByb2ZpbGUKIAogIyBUaGlzIGlzIGp1c3QgaGVyZSB0 byBzaHV0IHVwIHJwbWxpbnQsIGFuZCBpcyB2ZXJ5IGFubm95aW5nLgogIyBOb3RlIHRoYXQgd2Ug Y2FuJ3QgY2htb2QgZXZlcnl0aGluZyBhcyB0aGVuIHJwbWxpbnQgd2lsbCBjb21wbGFpbiBhYm91 dApAQCAtMTgyLDYgKzE2MSw5IEBAIGZpCiAlZG9jIERvYy8qLmh0bWwKIAogJWNoYW5nZWxvZwor KiBUaHUgSnVuIDA0IDIwMjYgTHVrw6HFoSBaYW9yYWwgPGx6YW9yYWxAcmVkaGF0LmNvbT4gLSA1 LjkuMS0xCistIHJlYmFzZSB0byB0aGUgbGF0ZXN0IHVwc3RyZWFtIHJlbGVhc2UgKHJoYnojMjQ4 MzY2OCkKKwogKiBUdWUgTWFyIDI0IDIwMjYgTHVrw6HFoSBaYW9yYWwgPGx6YW9yYWxAcmVkaGF0 LmNvbT4gLSA1LjktMjAKIC0gZml4IHNlZ2ZhdWx0IGluIF9JT19wdXRjIChyaGJ6IzI0NDk5Mzkp CiAK